From 25ce6341729dab20601787a317ea7c5166c31f15 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Fri, 14 Aug 2020 15:59:53 +0100 Subject: [PATCH] [DemandedBits] Add addition test case from D72423 --- llvm/test/Analysis/DemandedBits/add.ll | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 llvm/test/Analysis/DemandedBits/add.ll 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" < %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