Skip to content

Commit a138d75

Browse files
authored
[GlobalIsel] Fix tests for G_SCMP and G_UCMP (llvm#100133)
The return type of both is signed. Thus, we have to use sext. Follow up to llvm#99820
1 parent fd58e50 commit a138d75

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

llvm/test/CodeGen/AArch64/GlobalISel/legalize-threeway-cmp.mir

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ body: |
1414
; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY]](s64), [[COPY1]]
1515
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1616
; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[C2]], [[SELECT]]
17-
; CHECK-NEXT: $w0 = COPY [[SELECT1]](s32)
17+
; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SELECT1]], 2
18+
; CHECK-NEXT: $w0 = COPY [[SEXT_INREG]](s32)
1819
%0:_(s64) = COPY $x0
1920
%1:_(s64) = COPY $x0
2021
%4:_(s2) = G_SCMP %0(s64), %1
21-
%14:_(s32) = G_ANYEXT %4(s2)
22+
%14:_(s32) = G_SEXT %4(s2)
2223
$w0 = COPY %14(s32)
2324
2425
...
@@ -36,11 +37,12 @@ body: |
3637
; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s64), [[COPY1]]
3738
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3839
; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[C2]], [[SELECT]]
39-
; CHECK-NEXT: $w0 = COPY [[SELECT1]](s32)
40+
; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SELECT1]], 2
41+
; CHECK-NEXT: $w0 = COPY [[SEXT_INREG]](s32)
4042
%0:_(s64) = COPY $x0
4143
%1:_(s64) = COPY $x0
4244
%4:_(s2) = G_UCMP %0(s64), %1
43-
%14:_(s32) = G_ANYEXT %4(s2)
45+
%14:_(s32) = G_SEXT %4(s2)
4446
$w0 = COPY %14(s32)
4547
4648
...
@@ -94,7 +96,8 @@ body: |
9496
; CHECK-NEXT: [[AND3:%[0-9]+]]:_(<4 x s16>) = G_AND [[OR]], [[XOR1]]
9597
; CHECK-NEXT: [[OR1:%[0-9]+]]:_(<4 x s16>) = G_OR [[AND2]], [[AND3]]
9698
; CHECK-NEXT: [[ANYEXT5:%[0-9]+]]:_(<4 x s32>) = G_ANYEXT [[OR1]](<4 x s16>)
97-
; CHECK-NEXT: $q0 = COPY [[ANYEXT5]](<4 x s32>)
99+
; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s32>) = G_SEXT_INREG [[ANYEXT5]], 2
100+
; CHECK-NEXT: $q0 = COPY [[SEXT_INREG]](<4 x s32>)
98101
%0:_(s32) = COPY $w0
99102
%1:_(s32) = COPY $w1
100103
%2:_(s32) = COPY $w2
@@ -106,7 +109,7 @@ body: |
106109
%8:_(s32) = COPY $w3
107110
%9:_(<4 x s32>) = G_BUILD_VECTOR %0(s32), %1(s32), %2(s32), %3(s32)
108111
%10:_(<4 x s2>) = G_UCMP %4(<4 x s32>), %9
109-
%11:_(<4 x s32>) = G_ANYEXT %10(<4 x s2>)
112+
%11:_(<4 x s32>) = G_SEXT %10(<4 x s2>)
110113
$q0 = COPY %11(<4 x s32>)
111114
112115
...
@@ -131,11 +134,12 @@ body: |
131134
; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP4]](s32), [[ICMP5]], [[ICMP3]]
132135
; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
133136
; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[SELECT2]](s32), [[C2]], [[SELECT1]]
134-
; CHECK-NEXT: $w0 = COPY [[SELECT3]](s32)
137+
; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SELECT3]], 2
138+
; CHECK-NEXT: $w0 = COPY [[SEXT_INREG]](s32)
135139
%0:_(s64) = COPY $x0
136140
%1:_(s64) = COPY $x0
137141
%l:_(s128) = G_ANYEXT %0
138142
%r:_(s128) = G_ANYEXT %1
139143
%4:_(s2) = G_UCMP %l(s128), %r
140-
%14:_(s32) = G_ANYEXT %4(s2)
144+
%14:_(s32) = G_SEXT %4(s2)
141145
$w0 = COPY %14(s32)

0 commit comments

Comments
 (0)