From 0221a1478f0d9a3bd34acedee871a977f09b6d5d Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Wed, 29 Nov 2017 17:21:39 +0000 Subject: [PATCH] [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 --- .../InstCombine/zext-bool-add-sub.ll | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) 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> , [[ZEXT]] +; CHECK-NEXT: ret <2 x i32> [[SUB]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %sub = sub <2 x i32> , %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> , [[ZEXT]] +; CHECK-NEXT: ret <2 x i32> [[SUB]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %sub = sub <2 x i32> , %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 -- 2.50.1