diff options
| -rw-r--r-- | llvm/test/Transforms/InstSimplify/shr-nop.ll | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/shr-nop.ll b/llvm/test/Transforms/InstSimplify/shr-nop.ll index f48abc9d373..00fc328d2c8 100644 --- a/llvm/test/Transforms/InstSimplify/shr-nop.ll +++ b/llvm/test/Transforms/InstSimplify/shr-nop.ll @@ -388,3 +388,45 @@ define i32 @exact_ashr_lowbit(i32 %shiftval) { %shr = ashr exact i32 7, %shiftval ret i32 %shr } + +define i32 @ashr_zero(i32 %shiftval) { +; CHECK-LABEL: @ashr_zero( +; CHECK-NEXT: ret i32 0 +; + %shr = ashr i32 0, %shiftval + ret i32 %shr +} + +define i257 @ashr_minus1(i257 %shiftval) { +; CHECK-LABEL: @ashr_minus1( +; CHECK-NEXT: ret i257 -1 +; + %shr = ashr i257 -1, %shiftval + ret i257 %shr +} + +define <2 x i4097> @ashr_zero_vec(<2 x i4097> %shiftval) { +; CHECK-LABEL: @ashr_zero_vec( +; CHECK-NEXT: ret <2 x i4097> zeroinitializer +; + %shr = ashr <2 x i4097> zeroinitializer, %shiftval + ret <2 x i4097> %shr +} + +define <2 x i64> @ashr_minus1_vec(<2 x i64> %shiftval) { +; CHECK-LABEL: @ashr_minus1_vec( +; CHECK-NEXT: ret <2 x i64> <i64 -1, i64 -1> +; + %shr = ashr <2 x i64> <i64 -1, i64 -1>, %shiftval + ret <2 x i64> %shr +} + +define <2 x i4> @ashr_zero_minus1_vec(<2 x i4> %shiftval) { +; CHECK-LABEL: @ashr_zero_minus1_vec( +; CHECK-NEXT: [[SHR:%.*]] = ashr <2 x i4> <i4 0, i4 -1>, %shiftval +; CHECK-NEXT: ret <2 x i4> [[SHR]] +; + %shr = ashr <2 x i4> <i4 0, i4 -1>, %shiftval + ret <2 x i4> %shr +} + |

