From 5e896628b74dcbe285da55278df7399085abdfd8 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Fri, 7 Oct 2022 13:03:56 -0400 Subject: [PATCH] [InstCombine] add tests for ashr exact; NFC --- llvm/test/Transforms/InstCombine/ashr-lshr.ll | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/llvm/test/Transforms/InstCombine/ashr-lshr.ll b/llvm/test/Transforms/InstCombine/ashr-lshr.ll index 8708479..1ee5c9a 100644 --- a/llvm/test/Transforms/InstCombine/ashr-lshr.ll +++ b/llvm/test/Transforms/InstCombine/ashr-lshr.ll @@ -582,3 +582,25 @@ define <3 x i43> @ashr_sub_nsw_splat_undef(<3 x i43> %x, <3 x i43> %y) { %shr = ashr <3 x i43> %sub, ret <3 x i43> %shr } + +define i8 @ashr_known_pos_exact(i8 %x, i8 %y) { +; CHECK-LABEL: @ashr_known_pos_exact( +; CHECK-NEXT: [[P:%.*]] = and i8 [[X:%.*]], 127 +; CHECK-NEXT: [[R:%.*]] = lshr i8 [[P]], [[Y:%.*]] +; CHECK-NEXT: ret i8 [[R]] +; + %p = and i8 %x, 127 + %r = ashr exact i8 %p, %y + ret i8 %r +} + +define <2 x i8> @ashr_known_pos_exact_vec(<2 x i8> %x, <2 x i8> %y) { +; CHECK-LABEL: @ashr_known_pos_exact_vec( +; CHECK-NEXT: [[P:%.*]] = mul nsw <2 x i8> [[X:%.*]], [[X]] +; CHECK-NEXT: [[R:%.*]] = lshr <2 x i8> [[P]], [[Y:%.*]] +; CHECK-NEXT: ret <2 x i8> [[R]] +; + %p = mul nsw <2 x i8> %x, %x + %r = ashr exact <2 x i8> %p, %y + ret <2 x i8> %r +} -- 2.7.4