1 ; RUN: opt -S -demanded-bits -analyze < %s | FileCheck %s 2 ; RUN: opt -S -disable-output -passes="print<demanded-bits>" < %s 2>&1 | FileCheck %s 3 4 ; CHECK-DAG: DemandedBits: 0xff000000 for %1 = or i32 %x, 1 5 ; CHECK-DAG: DemandedBits: 0xff for %2 = call i32 @llvm.bitreverse.i32(i32 %1) 6 ; CHECK-DAG: DemandedBits: 0xff for %3 = trunc i32 %2 to i8 7 define i8 @test_bswap(i32 %x) { 8 %1 = or i32 %x, 1 9 %2 = call i32 @llvm.bswap.i32(i32 %1) 10 %3 = trunc i32 %2 to i8 11 ret i8 %3 12 } 13 declare i32 @llvm.bswap.i32(i32) 14 15 ; CHECK-DAG: DemandedBits: 0xff000000 for %1 = or i32 %x, 1 16 ; CHECK-DAG: DemandedBits: 0xff for %2 = call i32 @llvm.bswap.i32(i32 %1) 17 ; CHECK-DAG: DemandedBits: 0xff for %3 = trunc i32 %2 to i8 18 define i8 @test_bitreverse(i32 %x) { 19 %1 = or i32 %x, 1 20 %2 = call i32 @llvm.bitreverse.i32(i32 %1) 21 %3 = trunc i32 %2 to i8 22 ret i8 %3 23 } 24 declare i32 @llvm.bitreverse.i32(i32) 25 26