From cef604c5bb04dd64302d702ec26405557f434c1e Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Thu, 20 Apr 2017 20:44:54 +0000 Subject: [PATCH] [InstCombine] add tests for demanded bits ashr/lshr splat constants; NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300884 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstCombine/shift.ll | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/Transforms/InstCombine/shift.ll b/test/Transforms/InstCombine/shift.ll index 60ba35557f7..72d361e8b6d 100644 --- a/test/Transforms/InstCombine/shift.ll +++ b/test/Transforms/InstCombine/shift.ll @@ -1268,3 +1268,25 @@ define <2 x i64> @test_64_splat_vec(<2 x i32> %t) { ret <2 x i64> %shl } +define <2 x i8> @ashr_demanded_bits_splat(<2 x i8> %x) { +; CHECK-LABEL: @ashr_demanded_bits_splat( +; CHECK-NEXT: [[AND:%.*]] = and <2 x i8> %x, +; CHECK-NEXT: [[SHR:%.*]] = ashr exact <2 x i8> [[AND]], +; CHECK-NEXT: ret <2 x i8> [[SHR]] +; + %and = and <2 x i8> %x, + %shr = ashr <2 x i8> %and, + ret <2 x i8> %shr +} + +define <2 x i8> @lshr_demanded_bits_splat(<2 x i8> %x) { +; CHECK-LABEL: @lshr_demanded_bits_splat( +; CHECK-NEXT: [[AND:%.*]] = and <2 x i8> %x, +; CHECK-NEXT: [[SHR:%.*]] = lshr exact <2 x i8> [[AND]], +; CHECK-NEXT: ret <2 x i8> [[SHR]] +; + %and = and <2 x i8> %x, + %shr = lshr <2 x i8> %and, + ret <2 x i8> %shr +} + -- 2.40.0