@@ -275,3 +275,26 @@ define <4 x i32> @shuf_icmp_ugt_v4i32_use(<4 x i32> %x, <4 x i32> %y, <4 x i32>
275275 %r = sext <4 x i1 > %s to <4 x i32 >
276276 ret <4 x i32 > %r
277277}
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