diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-07-09 07:58:32 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-07-09 07:58:32 +0000 |
commit | 11c29bafd584da2e39ee5d885ca2d53035bc1372 (patch) | |
tree | e6c74cff6f23d7a23b5c783c2597dc0b80b91c93 /test | |
parent | 377a5c1a87b879b7a05a635ed7bbf125b0b61e28 (diff) | |
download | llvm-11c29bafd584da2e39ee5d885ca2d53035bc1372.tar.gz llvm-11c29bafd584da2e39ee5d885ca2d53035bc1372.tar.bz2 llvm-11c29bafd584da2e39ee5d885ca2d53035bc1372.tar.xz |
Commit r185909 was a misapplied patch, fix it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185910 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/InstCombine/icmp.ll | 58 | ||||
-rw-r--r-- | test/Transforms/InstCombine/shift.ll | 5 |
2 files changed, 60 insertions, 3 deletions
diff --git a/test/Transforms/InstCombine/icmp.ll b/test/Transforms/InstCombine/icmp.ll index aaac9b6493..fbf7f3d6c3 100644 --- a/test/Transforms/InstCombine/icmp.ll +++ b/test/Transforms/InstCombine/icmp.ll @@ -1163,3 +1163,61 @@ define i1 @icmp_sub_3_X_uge_2(i32 %X) { %cmp = icmp uge i32 %add, 2 ret i1 %cmp } + +; CHECK: @icmp_add_X_-14_ult_2 +; CHECK-NEXT: [[AND:%[a-z0-9]+]] = and i32 %X, -2 +; CHECK-NEXT: [[CMP:%[a-z0-9]+]] = icmp eq i32 [[AND]], 14 +; CHECK-NEXT: ret i1 [[CMP]] +define i1 @icmp_add_X_-14_ult_2(i32 %X) { + %add = add i32 %X, -14 + %cmp = icmp ult i32 %add, 2 + ret i1 %cmp +} + +; CHECK: @icmp_sub_3_X_ult_2 +; CHECK-NEXT: [[OR:%[a-z0-9]+]] = or i32 %X, 1 +; CHECK-NEXT: [[CMP:%[a-z0-9]+]] = icmp eq i32 [[OR]], 3 +; CHECK-NEXT: ret i1 [[CMP]] +define i1 @icmp_sub_3_X_ult_2(i32 %X) { + %add = sub i32 3, %X + %cmp = icmp ult i32 %add, 2 + ret i1 %cmp +} + +; CHECK: @icmp_add_X_-14_uge_2 +; CHECK-NEXT: [[AND:%[a-z0-9]+]] = and i32 %X, -2 +; CHECK-NEXT: [[CMP:%[a-z0-9]+]] = icmp ne i32 [[AND]], 14 +; CHECK-NEXT: ret i1 [[CMP]] +define i1 @icmp_add_X_-14_uge_2(i32 %X) { + %add = add i32 %X, -14 + %cmp = icmp uge i32 %add, 2 + ret i1 %cmp +} + +; CHECK: @icmp_sub_3_X_uge_2 +; CHECK-NEXT: [[OR:%[a-z0-9]+]] = or i32 %X, 1 +; CHECK-NEXT: [[CMP:%[a-z0-9]+]] = icmp ne i32 [[OR]], 3 +; CHECK-NEXT: ret i1 [[CMP]] +define i1 @icmp_sub_3_X_uge_2(i32 %X) { + %add = sub i32 3, %X + %cmp = icmp uge i32 %add, 2 + ret i1 %cmp +} + +; CHECK: @icmp_and_X_-16_eq-16 +; CHECK-NEXT: [[CMP:%[a-z0-9]+]] = icmp ugt i32 %X, -17 +; CHECK-NEXT: ret i1 [[CMP]] +define i1 @icmp_and_X_-16_eq-16(i32 %X) { + %and = and i32 %X, -16 + %cmp = icmp eq i32 %and, -16 + ret i1 %cmp +} + +; CHECK: @icmp_and_X_-16_ne-16 +; CHECK-NEXT: [[CMP:%[a-z0-9]+]] = icmp ult i32 %X, -16 +; CHECK-NEXT: ret i1 [[CMP]] +define i1 @icmp_and_X_-16_ne-16(i32 %X) { + %and = and i32 %X, -16 + %cmp = icmp ne i32 %and, -16 + ret i1 %cmp +} diff --git a/test/Transforms/InstCombine/shift.ll b/test/Transforms/InstCombine/shift.ll index 41f8aa9ee8..aac8803398 100644 --- a/test/Transforms/InstCombine/shift.ll +++ b/test/Transforms/InstCombine/shift.ll @@ -272,11 +272,10 @@ define i1 @test19(i32 %A) { define i1 @test19a(i32 %A) { ; CHECK: @test19a -; CHECK-NEXT: and i32 %A, -4 -; CHECK-NEXT: icmp eq i32 +; CHECK-NEXT: icmp ugt i32 %A, -5 ; CHECK-NEXT: ret i1 %B = ashr i32 %A, 2 ; <i32> [#uses=1] - ;; (X & -4) == -4 + ;; X >u ~4 %C = icmp eq i32 %B, -1 ; <i1> [#uses=1] ret i1 %C } |