125ce6341SSimon Pilgrim; RUN: opt -S -disable-output -passes="print<demanded-bits>" < %s 2>&1 | FileCheck %s 225ce6341SSimon Pilgrim 3*99b3b8e5SFlorian Hahn; CHECK-LABEL: Printing analysis 'Demanded Bits Analysis' for function 'test_add': 4c1f6ce0cSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x1e for %1 = and i32 %a, 9 5c1f6ce0cSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x1a for %2 = and i32 %b, 9 6c1f6ce0cSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x1a for %3 = and i32 %c, 13 7c1f6ce0cSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x1a for %4 = and i32 %d, 4 8c1f6ce0cSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x1a for %5 = or i32 %2, %3 9c1f6ce0cSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x1a for %6 = or i32 %4, %5 1079d9e2cdSSimon Pilgrim; CHECK-DAG: DemandedBits: 0x10 for %7 = add i32 %1, %6 1179d9e2cdSSimon Pilgrim; CHECK-DAG: DemandedBits: 0xffffffff for %8 = and i32 %7, 16 1225ce6341SSimon Pilgrimdefine i32 @test_add(i32 %a, i32 %b, i32 %c, i32 %d) { 1325ce6341SSimon Pilgrim %1 = and i32 %a, 9 1425ce6341SSimon Pilgrim %2 = and i32 %b, 9 1525ce6341SSimon Pilgrim %3 = and i32 %c, 13 1625ce6341SSimon Pilgrim %4 = and i32 %d, 4 ; no bit of %d alive, %4 simplifies to zero 1725ce6341SSimon Pilgrim %5 = or i32 %2, %3 1825ce6341SSimon Pilgrim %6 = or i32 %4, %5 1925ce6341SSimon Pilgrim %7 = add i32 %1, %6 2025ce6341SSimon Pilgrim %8 = and i32 %7, 16 2125ce6341SSimon Pilgrim ret i32 %8 2225ce6341SSimon Pilgrim} 23