xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/extractps.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mcpu=penryn > %t
2*9880d681SAndroid Build Coastguard Worker; RUN: not grep movd %t
3*9880d681SAndroid Build Coastguard Worker; RUN: grep "movss	%xmm" %t | count 1
4*9880d681SAndroid Build Coastguard Worker; RUN: grep "extractps	\$1, %xmm0, " %t | count 1
5*9880d681SAndroid Build Coastguard Worker; PR2647
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker@0 = external global float, align 16         ; <float*>:0 [#uses=2]
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine internal void @""() nounwind {
10*9880d681SAndroid Build Coastguard Worker        load float, float* @0, align 16                ; <float>:1 [#uses=1]
11*9880d681SAndroid Build Coastguard Worker        insertelement <4 x float> undef, float %1, i32 0                ; <<4 x float>>:2 [#uses=1]
12*9880d681SAndroid Build Coastguard Worker        call <4 x float> @llvm.x86.sse.rsqrt.ss( <4 x float> %2 )              ; <<4 x float>>:3 [#uses=1]
13*9880d681SAndroid Build Coastguard Worker        extractelement <4 x float> %3, i32 0            ; <float>:4 [#uses=1]
14*9880d681SAndroid Build Coastguard Worker        store float %4, float* @0, align 16
15*9880d681SAndroid Build Coastguard Worker        ret void
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Workerdefine internal void @""() nounwind {
18*9880d681SAndroid Build Coastguard Worker        load float, float* @0, align 16                ; <float>:1 [#uses=1]
19*9880d681SAndroid Build Coastguard Worker        insertelement <4 x float> undef, float %1, i32 1                ; <<4 x float>>:2 [#uses=1]
20*9880d681SAndroid Build Coastguard Worker        call <4 x float> @llvm.x86.sse.rsqrt.ss( <4 x float> %2 )              ; <<4 x float>>:3 [#uses=1]
21*9880d681SAndroid Build Coastguard Worker        extractelement <4 x float> %3, i32 1            ; <float>:4 [#uses=1]
22*9880d681SAndroid Build Coastguard Worker        store float %4, float* @0, align 16
23*9880d681SAndroid Build Coastguard Worker        ret void
24*9880d681SAndroid Build Coastguard Worker}
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float>) nounwind readnone
27*9880d681SAndroid Build Coastguard Worker
28