[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