1 ; RUN: opt -S -demanded-bits -analyze < %s | FileCheck %s
3 ; CHECK-LABEL: 'test_mul'
4 ; CHECK-DAG: DemandedBits: 0xFF for %1 = add nsw i32 %a, 5
5 ; CHECK-DAG: DemandedBits: 0xFF for %3 = trunc i32 %2 to i8
6 ; CHECK-DAG: DemandedBits: 0xFF for %2 = mul nsw i32 %1, %b
7 define i8 @test_mul(i32 %a, i32 %b) {
9 %2 = mul nsw i32 %1, %b
10 %3 = trunc i32 %2 to i8
14 ; CHECK-LABEL: 'test_icmp1'
15 ; CHECK-DAG: DemandedBits: 0x1 for %3 = icmp eq i32 %1, %2
16 ; CHECK-DAG: DemandedBits: 0xFFF for %1 = and i32 %a, 255
17 ; CHECK-DAG: DemandedBits: 0xFFF for %2 = shl i32 %1, 4
18 define i1 @test_icmp1(i32 %a, i32 %b) {
21 %3 = icmp eq i32 %1, %2
25 ; CHECK-LABEL: 'test_icmp2'
26 ; CHECK-DAG: DemandedBits: 0x1 for %3 = icmp eq i32 %1, %2
27 ; CHECK-DAG: DemandedBits: 0xFF for %1 = and i32 %a, 255
28 ; CHECK-DAG: DemandedBits: 0xF for %2 = ashr i32 %1, 4
29 define i1 @test_icmp2(i32 %a, i32 %b) {
32 %3 = icmp eq i32 %1, %2