diff options
author | Sanjay Patel <spatel@rotateright.com> | 2017-10-13 14:09:45 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2017-10-13 14:09:45 +0000 |
commit | 45d5568010d7cc666e1b26ab2bbecd273b292be1 (patch) | |
tree | a118302b29bc31780b4349edb305b5ca959c5583 | |
parent | 3344a21236837f9920eca7439656a1127f937862 (diff) | |
download | bcm5719-llvm-45d5568010d7cc666e1b26ab2bbecd273b292be1.tar.gz bcm5719-llvm-45d5568010d7cc666e1b26ab2bbecd273b292be1.zip |
[InstCombine] add tests for boolean extend + add; NFC
llvm-svn: 315681
-rw-r--r-- | llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll b/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll index bf6bdad0392..f73c7c31c29 100644 --- a/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll +++ b/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll @@ -61,3 +61,35 @@ define i32 @PR30273_three_bools(i1 %x, i1 %y, i1 %z) { ret i32 %sel2 } +define i32 @zext_add_scalar(i1 %x) { +; CHECK-LABEL: @zext_add_scalar( +; CHECK-NEXT: [[ADD:%.*]] = select i1 %x, i32 43, i32 42 +; CHECK-NEXT: ret i32 [[ADD]] +; + %zext = zext i1 %x to i32 + %add = add i32 %zext, 42 + ret i32 %add +} + +define <2 x i32> @zext_add_vec_splat(<2 x i1> %x) { +; CHECK-LABEL: @zext_add_vec_splat( +; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32> +; CHECK-NEXT: [[ADD:%.*]] = or <2 x i32> [[ZEXT]], <i32 42, i32 42> +; CHECK-NEXT: ret <2 x i32> [[ADD]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %add = add <2 x i32> %zext, <i32 42, i32 42> + ret <2 x i32> %add +} + +define <2 x i32> @zext_add_vec(<2 x i1> %x) { +; CHECK-LABEL: @zext_add_vec( +; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32> +; CHECK-NEXT: [[ADD:%.*]] = add nuw nsw <2 x i32> [[ZEXT]], <i32 42, i32 23> +; CHECK-NEXT: ret <2 x i32> [[ADD]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %add = add <2 x i32> %zext, <i32 42, i32 23> + ret <2 x i32> %add +} + |