@@ -275,3 +275,26 @@ define <4 x i32> @shuf_icmp_ugt_v4i32_use(<4 x i32> %x, <4 x i32> %y, <4 x i32>
275
275
%r = sext <4 x i1 > %s to <4 x i32 >
276
276
ret <4 x i32 > %r
277
277
}
278
+
279
+ ; TODO: PR121110 - don't merge equivalent (but not matching) predicates
280
+ define <2 x i1 > @PR121110 () {
281
+ ; CHECK-LABEL: define <2 x i1> @PR121110(
282
+ ; CHECK-SAME: ) #[[ATTR0]] {
283
+ ; CHECK-NEXT: ret <2 x i1> zeroinitializer
284
+ ;
285
+ %ugt = icmp samesign ugt <2 x i32 > < i32 0 , i32 0 >, < i32 0 , i32 0 >
286
+ %sgt = icmp sgt <2 x i32 > < i32 0 , i32 0 >, < i32 6 , i32 4294967292 >
287
+ %res = shufflevector <2 x i1 > %ugt , <2 x i1 > %sgt , <2 x i32 > <i32 0 , i32 3 >
288
+ ret <2 x i1 > %res
289
+ }
290
+
291
+ define <2 x i1 > @PR121110_commute () {
292
+ ; CHECK-LABEL: define <2 x i1> @PR121110_commute(
293
+ ; CHECK-SAME: ) #[[ATTR0]] {
294
+ ; CHECK-NEXT: ret <2 x i1> zeroinitializer
295
+ ;
296
+ %sgt = icmp sgt <2 x i32 > < i32 0 , i32 0 >, < i32 6 , i32 4294967292 >
297
+ %ugt = icmp samesign ugt <2 x i32 > < i32 0 , i32 0 >, < i32 0 , i32 0 >
298
+ %res = shufflevector <2 x i1 > %sgt , <2 x i1 > %ugt , <2 x i32 > <i32 0 , i32 3 >
299
+ ret <2 x i1 > %res
300
+ }
0 commit comments