1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; 4278190095 = 0xff00000f 4*9880d681SAndroid Build Coastguard Workerdefine i32 @f1(i32 %a) { 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f1: 6*9880d681SAndroid Build Coastguard Worker; CHECK: bfc r 7*9880d681SAndroid Build Coastguard Worker %tmp = and i32 %a, 4278190095 8*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker; 4286578688 = 0xff800000 12*9880d681SAndroid Build Coastguard Workerdefine i32 @f2(i32 %a) { 13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2: 14*9880d681SAndroid Build Coastguard Worker; CHECK: bfc r 15*9880d681SAndroid Build Coastguard Worker %tmp = and i32 %a, 4286578688 16*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker; 4095 = 0x00000fff 20*9880d681SAndroid Build Coastguard Workerdefine i32 @f3(i32 %a) { 21*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f3: 22*9880d681SAndroid Build Coastguard Worker; CHECK: bfc r 23*9880d681SAndroid Build Coastguard Worker %tmp = and i32 %a, 4095 24*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; 2147483646 = 0x7ffffffe not implementable w/ BFC 28*9880d681SAndroid Build Coastguard Workerdefine i32 @f4(i32 %a) { 29*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f4: 30*9880d681SAndroid Build Coastguard Worker %tmp = and i32 %a, 2147483646 31*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 32*9880d681SAndroid Build Coastguard Worker} 33