1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i686-- -mcpu=corei7 | FileCheck %s --check-prefix=X86
3 ; RUN: llc < %s -mtriple=x86_64-- -mcpu=corei7 | FileCheck %s --check-prefix=X64
5 define float @test(ptr %A) nounwind {
7 ; X86: # %bb.0: # %entry
9 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
10 ; X86-NEXT: movaps (%eax), %xmm0
11 ; X86-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
12 ; X86-NEXT: xorps %xmm1, %xmm1
13 ; X86-NEXT: movaps %xmm1, (%eax)
14 ; X86-NEXT: movss %xmm0, (%esp)
15 ; X86-NEXT: flds (%esp)
20 ; X64: # %bb.0: # %entry
21 ; X64-NEXT: movaps (%rdi), %xmm0
22 ; X64-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
23 ; X64-NEXT: xorps %xmm1, %xmm1
24 ; X64-NEXT: movaps %xmm1, (%rdi)
27 %T = load <4 x float>, ptr %A
28 %R = extractelement <4 x float> %T, i32 3
29 store <4 x float><float 0.0, float 0.0, float 0.0, float 0.0>, ptr %A