@@ -141,6 +141,24 @@ for.cond.cleanup:
141
141
}
142
142
143
143
144
+ define i32 @issue_121372 (<4 x i32 > %0 ) {
145
+ ; CHECK-LABEL: issue_121372:
146
+ ; CHECK: // %bb.0:
147
+ ; CHECK-NEXT: fmov w8, s0
148
+ ; CHECK-NEXT: cmp w8, #0
149
+ ; CHECK-NEXT: cset w8, eq
150
+ ; CHECK-NEXT: cmp w8, #1
151
+ ; CHECK-NEXT: csetm w0, lt
152
+ ; CHECK-NEXT: ret
153
+ %2 = icmp ule <4 x i32 > %0 , zeroinitializer
154
+ %3 = sext <4 x i1 > %2 to <4 x i32 >
155
+ %4 = icmp sge <4 x i32 > zeroinitializer , %3
156
+ %5 = extractelement <4 x i1 > %4 , i32 0
157
+ %6 = sext i1 %5 to i32
158
+ ret i32 %6
159
+ }
160
+
161
+
144
162
; Negative tests
145
163
146
164
define i1 @extract_icmp_v4i32_splat_rhs (<4 x i32 > %a , i32 %b ) {
@@ -163,9 +181,9 @@ define i1 @extract_icmp_v4i32_splat_rhs_mul_use(<4 x i32> %a, ptr %p) {
163
181
; CHECK-LABEL: extract_icmp_v4i32_splat_rhs_mul_use:
164
182
; CHECK: // %bb.0:
165
183
; CHECK-NEXT: movi v1.4s, #235
166
- ; CHECK-NEXT: adrp x9, .LCPI7_0
184
+ ; CHECK-NEXT: adrp x9, .LCPI8_0
167
185
; CHECK-NEXT: mov x8, x0
168
- ; CHECK-NEXT: ldr q2, [x9, :lo12:.LCPI7_0 ]
186
+ ; CHECK-NEXT: ldr q2, [x9, :lo12:.LCPI8_0 ]
169
187
; CHECK-NEXT: cmhi v0.4s, v1.4s, v0.4s
170
188
; CHECK-NEXT: xtn v1.4h, v0.4s
171
189
; CHECK-NEXT: and v0.16b, v0.16b, v2.16b
0 commit comments