1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker@foo = global i8 127 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i32 @main() nounwind { 6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: main: 7*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: ret 8*9880d681SAndroid Build Coastguard Worker; CHECK: sar{{.}} $5 9*9880d681SAndroid Build Coastguard Worker; CHECK: ret 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker %tmp = load i8, i8* @foo 12*9880d681SAndroid Build Coastguard Worker %bf.lo = lshr i8 %tmp, 5 13*9880d681SAndroid Build Coastguard Worker %bf.lo.cleared = and i8 %bf.lo, 7 14*9880d681SAndroid Build Coastguard Worker %1 = shl i8 %bf.lo.cleared, 5 15*9880d681SAndroid Build Coastguard Worker %bf.val.sext = ashr i8 %1, 5 16*9880d681SAndroid Build Coastguard Worker %conv = sext i8 %bf.val.sext to i32 17*9880d681SAndroid Build Coastguard Worker ret i32 %conv 18*9880d681SAndroid Build Coastguard Worker} 19