1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i686-pc-linux | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine i64 @foo(i32 %sum) { 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: foo: 6*9880d681SAndroid Build Coastguard Worker; CHECK: # BB#0: # %entry 7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: shrl $2, %eax 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: orl $-67108864, %eax # imm = 0xFC000000 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movl $1073741823, %edx # imm = 0x3FFFFFFF 11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retl 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker %conv = sext i32 %sum to i64 14*9880d681SAndroid Build Coastguard Worker %shr = lshr i64 %conv, 2 15*9880d681SAndroid Build Coastguard Worker %or = or i64 4611686018360279040, %shr 16*9880d681SAndroid Build Coastguard Worker ret i64 %or 17*9880d681SAndroid Build Coastguard Worker} 18