[llvm] d625439 - [DemandedBits] Add tests for shl.
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 6 06:33:28 PDT 2023
Author: Florian Hahn
Date: 2023-07-06T14:33:12+01:00
New Revision: d6254396197267f3fe939f1613d22479f4de5440
URL: https://github.com/llvm/llvm-project/commit/d6254396197267f3fe939f1613d22479f4de5440
DIFF: https://github.com/llvm/llvm-project/commit/d6254396197267f3fe939f1613d22479f4de5440.diff
LOG: [DemandedBits] Add tests for shl.
Add test coverage for demanded bit analysis of shl.
Added:
llvm/test/Analysis/DemandedBits/shl.ll
Modified:
Removed:
################################################################################
diff --git a/llvm/test/Analysis/DemandedBits/shl.ll b/llvm/test/Analysis/DemandedBits/shl.ll
new file mode 100644
index 00000000000000..e41f5f41077353
--- /dev/null
+++ b/llvm/test/Analysis/DemandedBits/shl.ll
@@ -0,0 +1,66 @@
+; RUN: opt -S -disable-output -passes="print<demanded-bits>" < %s 2>&1 | FileCheck %s
+
+define i8 @test_shl_const_amount_4(i32 %a) {
+; CHECK-LABEL: 'test_shl_const_amount_4'
+; CHECK-DAG: DemandedBits: 0xff for %shl = shl i32 %a, 4
+; CHECK-DAG: DemandedBits: 0xf for %a in %shl = shl i32 %a, 4
+; CHECK-DAG: DemandedBits: 0xffffffff for 4 in %shl = shl i32 %a, 4
+; CHECK-DAG: DemandedBits: 0xff for %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl in %shl.t = trunc i32 %shl to i8
+;
+ %shl = shl i32 %a, 4
+ %shl.t = trunc i32 %shl to i8
+ ret i8 %shl.t
+}
+
+define i8 @test_shl_const_amount_5(i32 %a) {
+; CHECK-LABEL: 'test_shl_const_amount_5'
+; CHECK-DAG: DemandedBits: 0xff for %shl = shl i32 %a, 5
+; CHECK-DAG: DemandedBits: 0x7 for %a in %shl = shl i32 %a, 5
+; CHECK-DAG: DemandedBits: 0xffffffff for 5 in %shl = shl i32 %a, 5
+; CHECK-DAG: DemandedBits: 0xff for %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl in %shl.t = trunc i32 %shl to i8
+;
+ %shl = shl i32 %a, 5
+ %shl.t = trunc i32 %shl to i8
+ ret i8 %shl.t
+}
+
+define i8 @test_shl_const_amount_8(i32 %a) {
+; CHECK-LABEL: 'test_shl_const_amount_8'
+; CHECK-DAG: DemandedBits: 0xff for %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl in %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl = shl i32 %a, 8
+; CHECK-DAG: DemandedBits: 0x0 for %a in %shl = shl i32 %a, 8
+; CHECK-DAG: DemandedBits: 0xffffffff for 8 in %shl = shl i32 %a, 8
+;
+ %shl = shl i32 %a, 8
+ %shl.t = trunc i32 %shl to i8
+ ret i8 %shl.t
+}
+
+define i8 @test_shl_const_amount_9(i32 %a) {
+; CHECK-LABEL: 'test_shl_const_amount_9'
+; CHECK-DAG: DemandedBits: 0xff for %shl = shl i32 %a, 9
+; CHECK-DAG: DemandedBits: 0x0 for %a in %shl = shl i32 %a, 9
+; CHECK-DAG: DemandedBits: 0xffffffff for 9 in %shl = shl i32 %a, 9
+; CHECK-DAG: DemandedBits: 0xff for %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl in %shl.t = trunc i32 %shl to i8
+;
+ %shl = shl i32 %a, 9
+ %shl.t = trunc i32 %shl to i8
+ ret i8 %shl.t
+}
+
+define i8 @test_shl(i32 %a, i32 %b) {
+; CHECK-LABEL: 'test_shl'
+; CHECK-DAG: DemandedBits: 0xff for %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl in %shl.t = trunc i32 %shl to i8
+; CHECK-DAG: DemandedBits: 0xff for %shl = shl i32 %a, %b
+; CHECK-DAG: DemandedBits: 0xffffffff for %a in %shl = shl i32 %a, %b
+; CHECK-DAG: DemandedBits: 0xffffffff for %b in %shl = shl i32 %a, %b
+;
+ %shl = shl i32 %a, %b
+ %shl.t = trunc i32 %shl to i8
+ ret i8 %shl.t
+}
More information about the llvm-commits
mailing list