xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2008-02-25-InlineAsmBug.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i686-pc-linux-gnu -mattr=+sse2
2*9880d681SAndroid Build Coastguard Worker; PR2076
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @h264_h_loop_filter_luma_mmx2(i8* %pix, i32 %stride, i32 %alpha, i32 %beta, i8* %tc0) nounwind  {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker	%tmp164 = getelementptr [16 x i32], [16 x i32]* null, i32 0, i32 11		; <i32*> [#uses=1]
7*9880d681SAndroid Build Coastguard Worker	%tmp169 = getelementptr [16 x i32], [16 x i32]* null, i32 0, i32 13		; <i32*> [#uses=1]
8*9880d681SAndroid Build Coastguard Worker	%tmp174 = getelementptr [16 x i32], [16 x i32]* null, i32 0, i32 15		; <i32*> [#uses=1]
9*9880d681SAndroid Build Coastguard Worker	%tmp154.sum317 = add i32 0, %stride		; <i32> [#uses=1]
10*9880d681SAndroid Build Coastguard Worker	%tmp154.sum315 = mul i32 %stride, 6		; <i32> [#uses=1]
11*9880d681SAndroid Build Coastguard Worker	%tmp154.sum = mul i32 %stride, 7		; <i32> [#uses=1]
12*9880d681SAndroid Build Coastguard Worker	%pix_addr.0327.rec = mul i32 0, 0		; <i32> [#uses=4]
13*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb292, label %bb32
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerbb32:		; preds = %entry
16*9880d681SAndroid Build Coastguard Worker	%pix_addr.0327.sum340 = add i32 %pix_addr.0327.rec, 0		; <i32> [#uses=1]
17*9880d681SAndroid Build Coastguard Worker	%tmp154 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum340		; <i8*> [#uses=1]
18*9880d681SAndroid Build Coastguard Worker	%tmp177178 = bitcast i8* %tmp154 to i32*		; <i32*> [#uses=1]
19*9880d681SAndroid Build Coastguard Worker	%pix_addr.0327.sum339 = add i32 %pix_addr.0327.rec, %tmp154.sum317		; <i32> [#uses=1]
20*9880d681SAndroid Build Coastguard Worker	%tmp181 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum339		; <i8*> [#uses=1]
21*9880d681SAndroid Build Coastguard Worker	%tmp181182 = bitcast i8* %tmp181 to i32*		; <i32*> [#uses=1]
22*9880d681SAndroid Build Coastguard Worker	%pix_addr.0327.sum338 = add i32 %pix_addr.0327.rec, %tmp154.sum315		; <i32> [#uses=1]
23*9880d681SAndroid Build Coastguard Worker	%tmp186 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum338		; <i8*> [#uses=1]
24*9880d681SAndroid Build Coastguard Worker	%tmp186187 = bitcast i8* %tmp186 to i32*		; <i32*> [#uses=1]
25*9880d681SAndroid Build Coastguard Worker	%pix_addr.0327.sum337 = add i32 %pix_addr.0327.rec, %tmp154.sum		; <i32> [#uses=1]
26*9880d681SAndroid Build Coastguard Worker	%tmp191 = getelementptr i8, i8* %pix, i32 %pix_addr.0327.sum337		; <i8*> [#uses=1]
27*9880d681SAndroid Build Coastguard Worker	%tmp191192 = bitcast i8* %tmp191 to i32*		; <i32*> [#uses=1]
28*9880d681SAndroid Build Coastguard Worker	call void asm sideeffect "movd  $4, %mm0                \0A\09movd  $5, %mm1                \0A\09movd  $6, %mm2                \0A\09movd  $7, %mm3                \0A\09punpcklbw %mm1, %mm0         \0A\09punpcklbw %mm3, %mm2         \0A\09movq %mm0, %mm1              \0A\09punpcklwd %mm2, %mm0         \0A\09punpckhwd %mm2, %mm1         \0A\09movd  %mm0, $0                \0A\09punpckhdq %mm0, %mm0         \0A\09movd  %mm0, $1                \0A\09movd  %mm1, $2                \0A\09punpckhdq %mm1, %mm1         \0A\09movd  %mm1, $3                \0A\09", "=*m,=*m,=*m,=*m,*m,*m,*m,*m,~{dirflag},~{fpsr},~{flags}"( i32* null, i32* %tmp164, i32* %tmp169, i32* %tmp174, i32* %tmp177178, i32* %tmp181182, i32* %tmp186187, i32* %tmp191192 ) nounwind
29*9880d681SAndroid Build Coastguard Worker	unreachable
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerbb292:		; preds = %entry
32*9880d681SAndroid Build Coastguard Worker	ret void
33*9880d681SAndroid Build Coastguard Worker}
34