diff options
author | Sanjay Patel <spatel@rotateright.com> | 2017-11-29 17:21:39 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2017-11-29 17:21:39 +0000 |
commit | 0221a1478f0d9a3bd34acedee871a977f09b6d5d (patch) | |
tree | ffdbba7093a9ab7706bb8de67d5a0291db8b4f08 /test | |
parent | 1c969b0dcc70a36fd256fe5ab4272dd401002467 (diff) |
[InstCombine] add tests for select-of-constants; NFC
These are variants of a test that was originally added in:
https://reviews.llvm.org/rL75531
...but removed with:
https://reviews.llvm.org/rL159230
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319327 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/InstCombine/zext-bool-add-sub.ll | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/zext-bool-add-sub.ll b/test/Transforms/InstCombine/zext-bool-add-sub.ll index 4ee8ee2acd1..5a5b092c4d8 100644 --- a/test/Transforms/InstCombine/zext-bool-add-sub.ll +++ b/test/Transforms/InstCombine/zext-bool-add-sub.ll @@ -18,6 +18,39 @@ define i32 @a(i1 zeroext %x, i1 zeroext %y) { ret i32 %add } +define i32 @zextsub(i1 %x) { +; CHECK-LABEL: @zextsub( +; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 %x to i32 +; CHECK-NEXT: [[SUB:%.*]] = sub nsw i32 11, [[ZEXT]] +; CHECK-NEXT: ret i32 [[SUB]] +; + %zext = zext i1 %x to i32 + %sub = sub i32 11, %zext + ret i32 %sub +} + +define <2 x i32> @zextsub_splat(<2 x i1> %x) { +; CHECK-LABEL: @zextsub_splat( +; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32> +; CHECK-NEXT: [[SUB:%.*]] = sub nsw <2 x i32> <i32 42, i32 42>, [[ZEXT]] +; CHECK-NEXT: ret <2 x i32> [[SUB]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %sub = sub <2 x i32> <i32 42, i32 42>, %zext + ret <2 x i32> %sub +} + +define <2 x i32> @zextsub_vec(<2 x i1> %x) { +; CHECK-LABEL: @zextsub_vec( +; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32> +; CHECK-NEXT: [[SUB:%.*]] = sub nsw <2 x i32> <i32 11, i32 42>, [[ZEXT]] +; CHECK-NEXT: ret <2 x i32> [[SUB]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %sub = sub <2 x i32> <i32 11, i32 42>, %zext + ret <2 x i32> %sub +} + define i32 @PR30273_select(i1 %a, i1 %b) { ; CHECK-LABEL: @PR30273_select( ; CHECK-NEXT: [[ZEXT:%.*]] = zext i1 %a to i32 |