Merging r259375:
[oota-llvm.git] / test / Transforms / InstCombine / icmp.ll
index 05f6678e3544062630d3e3910609c61b4ab6d47b..1e64cd7f58207adc52a09fecc4f3ba52baf1e79f 100644 (file)
@@ -819,8 +819,8 @@ define i1 @test68(i32 %x) nounwind uwtable {
 
 ; PR14708
 ; CHECK-LABEL: @test69(
-; CHECK: %1 = and i32 %c, -33
-; CHECK: %2 = icmp eq i32 %1, 65
+; CHECK: %1 = or i32 %c, 32
+; CHECK: %2 = icmp eq i32 %1, 97
 ; CHECK: ret i1 %2
 define i1 @test69(i32 %c) nounwind uwtable {
   %1 = icmp eq i32 %c, 97
@@ -1635,7 +1635,7 @@ entry:
 
 ; CHECK-LABEL: @cmp_sgt_rhs_dec
 ; CHECK-NOT: sub
-; CHECK: icmp sge
+; CHECK: icmp sge i32 %conv, %i
 define i1 @cmp_sgt_rhs_dec(float %x, i32 %i) {
   %conv = fptosi float %x to i32
   %dec = sub nsw i32 %i, 1
@@ -1645,7 +1645,7 @@ define i1 @cmp_sgt_rhs_dec(float %x, i32 %i) {
 
 ; CHECK-LABEL: @cmp_sle_rhs_dec
 ; CHECK-NOT: sub
-; CHECK: icmp slt
+; CHECK: icmp slt i32 %conv, %i
 define i1 @cmp_sle_rhs_dec(float %x, i32 %i) {
   %conv = fptosi float %x to i32
   %dec = sub nsw i32 %i, 1
@@ -1655,7 +1655,7 @@ define i1 @cmp_sle_rhs_dec(float %x, i32 %i) {
 
 ; CHECK-LABEL: @cmp_sge_rhs_inc
 ; CHECK-NOT: add
-; CHECK: icmp sgt
+; CHECK: icmp sgt i32 %conv, %i
 define i1 @cmp_sge_rhs_inc(float %x, i32 %i) {
   %conv = fptosi float %x to i32
   %inc = add nsw i32 %i, 1
@@ -1665,10 +1665,22 @@ define i1 @cmp_sge_rhs_inc(float %x, i32 %i) {
 
 ; CHECK-LABEL: @cmp_slt_rhs_inc
 ; CHECK-NOT: add
-; CHECK: icmp sle
+; CHECK: icmp sle i32 %conv, %i
 define i1 @cmp_slt_rhs_inc(float %x, i32 %i) {
   %conv = fptosi float %x to i32
   %inc = add nsw i32 %i, 1
   %cmp = icmp slt i32 %conv, %inc
   ret i1 %cmp
 }
+
+; CHECK-LABEL: @PR26407
+; CHECK-NEXT: %[[addx:.*]] = add i32 %x, 2147483647
+; CHECK-NEXT: %[[addy:.*]] = add i32 %y, 2147483647
+; CHECK-NEXT: %[[cmp:.*]] = icmp uge i32 %[[addx]], %[[addy]]
+; CHECK-NEXT: ret i1 %[[cmp]]
+define i1 @PR26407(i32 %x, i32 %y) {
+  %addx = add i32 %x, 2147483647
+  %addy = add i32 %y, 2147483647
+  %cmp = icmp uge i32 %addx, %addy
+  ret i1 %cmp
+}