[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Analysis / DemandedBits / add.ll
blob5be1d004a4c8450bda7cb96d2508d0a8277b925c
1 ; RUN: opt -S -disable-output -passes="print<demanded-bits>" < %s 2>&1 | FileCheck %s
3 ; CHECK-LABEL: Printing analysis 'Demanded Bits Analysis' for function 'test_add':
4 ; CHECK-DAG: DemandedBits: 0x1e for   %1 = and i32 %a, 9
5 ; CHECK-DAG: DemandedBits: 0x1a for   %2 = and i32 %b, 9
6 ; CHECK-DAG: DemandedBits: 0x1a for   %3 = and i32 %c, 13
7 ; CHECK-DAG: DemandedBits: 0x1a for   %4 = and i32 %d, 4
8 ; CHECK-DAG: DemandedBits: 0x1a for   %5 = or i32 %2, %3
9 ; CHECK-DAG: DemandedBits: 0x1a for   %6 = or i32 %4, %5
10 ; CHECK-DAG: DemandedBits: 0x10 for   %7 = add i32 %1, %6
11 ; CHECK-DAG: DemandedBits: 0xffffffff for   %8 = and i32 %7, 16
12 define i32 @test_add(i32 %a, i32 %b, i32 %c, i32 %d) {
13   %1 = and i32 %a, 9
14   %2 = and i32 %b, 9
15   %3 = and i32 %c, 13
16   %4 = and i32 %d, 4 ; no bit of %d alive, %4 simplifies to zero
17   %5 = or i32 %2, %3
18   %6 = or i32 %4, %5
19   %7 = add i32 %1, %6
20   %8 = and i32 %7, 16
21   ret i32 %8