summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/InstCombine/and-or-icmps.ll47
1 files changed, 19 insertions, 28 deletions
diff --git a/llvm/test/Transforms/InstCombine/and-or-icmps.ll b/llvm/test/Transforms/InstCombine/and-or-icmps.ll
index 481e0f2fd20..378b82020d4 100644
--- a/llvm/test/Transforms/InstCombine/and-or-icmps.ll
+++ b/llvm/test/Transforms/InstCombine/and-or-icmps.ll
@@ -255,10 +255,8 @@ define void @simplify_before_foldAndOfICmps() {
define i1 @PR42691_1(i32 %x) {
; CHECK-LABEL: @PR42691_1(
-; CHECK-NEXT: [[C1:%.*]] = icmp slt i32 %x, 0
-; CHECK-NEXT: [[C2:%.*]] = icmp eq i32 %x, 2147483647
-; CHECK-NEXT: [[C:%.*]] = or i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i32 %x, 2147483646
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp slt i32 %x, 0
%c2 = icmp eq i32 %x, 2147483647
@@ -279,10 +277,8 @@ define i1 @PR42691_2(i32 %x) {
define i1 @PR42691_3(i32 %x) {
; CHECK-LABEL: @PR42691_3(
-; CHECK-NEXT: [[C1:%.*]] = icmp sgt i32 %x, -1
-; CHECK-NEXT: [[C2:%.*]] = icmp eq i32 %x, -2147483648
-; CHECK-NEXT: [[C:%.*]] = or i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i32 %x, -2147483647
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp sge i32 %x, 0
%c2 = icmp eq i32 %x, -2147483648
@@ -303,10 +299,9 @@ define i1 @PR42691_4(i32 %x) {
define i1 @PR42691_5(i32 %x) {
; CHECK-LABEL: @PR42691_5(
-; CHECK-NEXT: [[C1:%.*]] = icmp slt i32 %x, 1
-; CHECK-NEXT: [[C2:%.*]] = icmp eq i32 %x, 2147483647
-; CHECK-NEXT: [[C:%.*]] = or i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[X_OFF:%.*]] = add i32 %x, -1
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i32 [[X_OFF]], 2147483645
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp slt i32 %x, 1
%c2 = icmp eq i32 %x, 2147483647
@@ -316,10 +311,9 @@ define i1 @PR42691_5(i32 %x) {
define i1 @PR42691_6(i32 %x) {
; CHECK-LABEL: @PR42691_6(
-; CHECK-NEXT: [[C1:%.*]] = icmp ult i32 %x, -2147483647
-; CHECK-NEXT: [[C2:%.*]] = icmp eq i32 %x, -1
-; CHECK-NEXT: [[C:%.*]] = or i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[X_OFF:%.*]] = add i32 %x, 2147483647
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i32 [[X_OFF]], 2147483645
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp ult i32 %x, 2147483649
%c2 = icmp eq i32 %x, 4294967295
@@ -341,10 +335,9 @@ define i1 @PR42691_7(i32 %x) {
define i1 @PR42691_8(i32 %x) {
; CHECK-LABEL: @PR42691_8(
-; CHECK-NEXT: [[C1:%.*]] = icmp slt i32 %x, 14
-; CHECK-NEXT: [[C2:%.*]] = icmp ne i32 %x, -2147483648
-; CHECK-NEXT: [[C:%.*]] = and i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[X_OFF:%.*]] = add i32 %x, 2147483647
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i32 [[X_OFF]], -2147483635
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp slt i32 %x, 14
%c2 = icmp ne i32 %x, -2147483648
@@ -354,10 +347,9 @@ define i1 @PR42691_8(i32 %x) {
define i1 @PR42691_9(i32 %x) {
; CHECK-LABEL: @PR42691_9(
-; CHECK-NEXT: [[C1:%.*]] = icmp sgt i32 %x, 13
-; CHECK-NEXT: [[C2:%.*]] = icmp ne i32 %x, 2147483647
-; CHECK-NEXT: [[C:%.*]] = and i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[X_OFF:%.*]] = add i32 %x, -14
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i32 [[X_OFF]], 2147483633
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp sgt i32 %x, 13
%c2 = icmp ne i32 %x, 2147483647
@@ -367,10 +359,9 @@ define i1 @PR42691_9(i32 %x) {
define i1 @PR42691_10(i32 %x) {
; CHECK-LABEL: @PR42691_10(
-; CHECK-NEXT: [[C1:%.*]] = icmp ugt i32 %x, 13
-; CHECK-NEXT: [[C2:%.*]] = icmp ne i32 %x, -1
-; CHECK-NEXT: [[C:%.*]] = and i1 [[C1]], [[C2]]
-; CHECK-NEXT: ret i1 [[C]]
+; CHECK-NEXT: [[X_OFF:%.*]] = add i32 %x, -14
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i32 [[X_OFF]], -15
+; CHECK-NEXT: ret i1 [[TMP1]]
;
%c1 = icmp ugt i32 %x, 13
%c2 = icmp ne i32 %x, 4294967295
OpenPOWER on IntegriCloud