@@ -1535,3 +1535,37 @@ bb3:
1535
1535
%4 = phi i1 [ %3 , %bb1 ], [ %2 , %bb2 ]
1536
1536
ret i1 %4
1537
1537
}
1538
+
1539
+ define i1 @test_icmp_ne_on_wrapped_set (i8 %x ) {
1540
+ ; CHECK-LABEL: @test_icmp_ne_on_wrapped_set(
1541
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp sle i8 [[X:%.*]], -128
1542
+ ; CHECK-NEXT: [[TMP2:%.*]] = icmp sge i8 [[X]], 127
1543
+ ; CHECK-NEXT: [[TMP3:%.*]] = or i1 [[TMP1]], [[TMP2]]
1544
+ ; CHECK-NEXT: br i1 [[TMP3]], label [[BB1:%.*]], label [[BB2:%.*]]
1545
+ ; CHECK: bb2:
1546
+ ; CHECK-NEXT: [[TMP4:%.*]] = tail call i1 @get_bool()
1547
+ ; CHECK-NEXT: br label [[BB3:%.*]]
1548
+ ; CHECK: bb1:
1549
+ ; CHECK-NEXT: [[TMP5:%.*]] = trunc i8 [[X]] to i1
1550
+ ; CHECK-NEXT: br label [[BB3]]
1551
+ ; CHECK: bb3:
1552
+ ; CHECK-NEXT: [[TMP6:%.*]] = phi i1 [ [[TMP5]], [[BB1]] ], [ [[TMP4]], [[BB2]] ]
1553
+ ; CHECK-NEXT: ret i1 [[TMP6]]
1554
+ ;
1555
+ %1 = icmp sle i8 %x , -128
1556
+ %2 = icmp sge i8 %x , 127
1557
+ %3 = or i1 %1 , %2
1558
+ br i1 %3 , label %bb1 , label %bb2
1559
+
1560
+ bb2:
1561
+ %4 = tail call i1 @get_bool ()
1562
+ br label %bb3
1563
+
1564
+ bb1:
1565
+ %5 = icmp eq i8 %x , 127
1566
+ br label %bb3
1567
+
1568
+ bb3:
1569
+ %6 = phi i1 [ %5 , %bb1 ], [ %4 , %bb2 ]
1570
+ ret i1 %6
1571
+ }
0 commit comments