1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; ModuleID = 'a.bc' 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i32 @foo(i32 %A, i32 %B) { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %A_addr = alloca i32 ; <i32*> [#uses=2] 8*9880d681SAndroid Build Coastguard Worker %B_addr = alloca i32 ; <i32*> [#uses=1] 9*9880d681SAndroid Build Coastguard Worker %retval = alloca i32, align 4 ; <i32*> [#uses=2] 10*9880d681SAndroid Build Coastguard Worker %tmp = alloca i32, align 4 ; <i32*> [#uses=2] 11*9880d681SAndroid Build Coastguard Worker %ret = alloca i32, align 4 ; <i32*> [#uses=2] 12*9880d681SAndroid Build Coastguard Worker store i32 %A, i32* %A_addr 13*9880d681SAndroid Build Coastguard Worker store i32 %B, i32* %B_addr 14*9880d681SAndroid Build Coastguard Worker %tmp1 = load i32, i32* %A_addr ; <i32> [#uses=1] 15*9880d681SAndroid Build Coastguard Worker %tmp2 = call i32 asm "roll $1,$0", "=r,I,0,~{dirflag},~{fpsr},~{flags},~{cc}"( i32 7, i32 %tmp1 ) ; <i32> [#uses=1] 16*9880d681SAndroid Build Coastguard Worker store i32 %tmp2, i32* %ret 17*9880d681SAndroid Build Coastguard Worker %tmp3 = load i32, i32* %ret ; <i32> [#uses=1] 18*9880d681SAndroid Build Coastguard Worker store i32 %tmp3, i32* %tmp 19*9880d681SAndroid Build Coastguard Worker %tmp4 = load i32, i32* %tmp ; <i32> [#uses=1] 20*9880d681SAndroid Build Coastguard Worker store i32 %tmp4, i32* %retval 21*9880d681SAndroid Build Coastguard Worker br label %return 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %entry 24*9880d681SAndroid Build Coastguard Worker %retval5 = load i32, i32* %retval ; <i32> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker ret i32 %retval5 26*9880d681SAndroid Build Coastguard Worker} 27