[llvm] 25ce634 - [DemandedBits] Add addition test case from D72423
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 14 08:02:24 PDT 2020
Author: Simon Pilgrim
Date: 2020-08-14T15:59:53+01:00
New Revision: 25ce6341729dab20601787a317ea7c5166c31f15
URL: https://github.com/llvm/llvm-project/commit/25ce6341729dab20601787a317ea7c5166c31f15
DIFF: https://github.com/llvm/llvm-project/commit/25ce6341729dab20601787a317ea7c5166c31f15.diff
LOG: [DemandedBits] Add addition test case from D72423
Added:
llvm/test/Analysis/DemandedBits/add.ll
Modified:
Removed:
################################################################################
diff --git a/llvm/test/Analysis/DemandedBits/add.ll b/llvm/test/Analysis/DemandedBits/add.ll
new file mode 100644
index 000000000000..102d667745a2
--- /dev/null
+++ b/llvm/test/Analysis/DemandedBits/add.ll
@@ -0,0 +1,22 @@
+; RUN: opt -S -demanded-bits -analyze < %s | FileCheck %s
+; RUN: opt -S -disable-output -passes="print<demanded-bits>" < %s 2>&1 | FileCheck %s
+
+; CHECK-DAG: DemandedBits: 0x1f for %5 = or i32 %2, %3
+; CHECK-DAG: DemandedBits: 0xffffffff for %8 = and i32 %7, 16
+; CHECK-DAG: DemandedBits: 0x1f for %4 = and i32 %d, 4
+; CHECK-DAG: DemandedBits: 0x1f for %1 = and i32 %a, 9
+; CHECK-DAG: DemandedBits: 0x1f for %3 = and i32 %c, 13
+; CHECK-DAG: DemandedBits: 0x10 for %7 = add i32 %1, %6
+; CHECK-DAG: DemandedBits: 0x1f for %6 = or i32 %4, %5
+; CHECK-DAG: DemandedBits: 0x1f for %2 = and i32 %b, 9
+define i32 @test_add(i32 %a, i32 %b, i32 %c, i32 %d) {
+ %1 = and i32 %a, 9
+ %2 = and i32 %b, 9
+ %3 = and i32 %c, 13
+ %4 = and i32 %d, 4 ; no bit of %d alive, %4 simplifies to zero
+ %5 = or i32 %2, %3
+ %6 = or i32 %4, %5
+ %7 = add i32 %1, %6
+ %8 = and i32 %7, 16
+ ret i32 %8
+}
\ No newline at end of file
More information about the llvm-commits
mailing list