76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=X863; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse4.1 | FileCheck %s --check-prefix=X644 5define void @t1(ptr %R, ptr %P1) nounwind {6; X86-LABEL: t1:7; X86: # %bb.0:8; X86-NEXT: movl {{[0-9]+}}(%esp), %eax9; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx10; X86-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero11; X86-NEXT: movss %xmm0, (%eax)12; X86-NEXT: retl13;14; X64-LABEL: t1:15; X64: # %bb.0:16; X64-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero17; X64-NEXT: movss %xmm0, (%rdi)18; X64-NEXT: retq19 %X = load <4 x float>, ptr %P120 %tmp = extractelement <4 x float> %X, i32 321 store float %tmp, ptr %R22 ret void23}24 25define float @t2(ptr %P1) nounwind {26; X86-LABEL: t2:27; X86: # %bb.0:28; X86-NEXT: movl {{[0-9]+}}(%esp), %eax29; X86-NEXT: flds 8(%eax)30; X86-NEXT: retl31;32; X64-LABEL: t2:33; X64: # %bb.0:34; X64-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero35; X64-NEXT: retq36 %X = load <4 x float>, ptr %P137 %tmp = extractelement <4 x float> %X, i32 238 ret float %tmp39}40 41define void @t3(ptr %R, ptr %P1) nounwind {42; X86-LABEL: t3:43; X86: # %bb.0:44; X86-NEXT: movl {{[0-9]+}}(%esp), %eax45; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx46; X86-NEXT: movl 12(%ecx), %ecx47; X86-NEXT: movl %ecx, (%eax)48; X86-NEXT: retl49;50; X64-LABEL: t3:51; X64: # %bb.0:52; X64-NEXT: movl 12(%rsi), %eax53; X64-NEXT: movl %eax, (%rdi)54; X64-NEXT: retq55 %X = load <4 x i32>, ptr %P156 %tmp = extractelement <4 x i32> %X, i32 357 store i32 %tmp, ptr %R58 ret void59}60 61define i32 @t4(ptr %P1) nounwind {62; X86-LABEL: t4:63; X86: # %bb.0:64; X86-NEXT: movl {{[0-9]+}}(%esp), %eax65; X86-NEXT: movl 12(%eax), %eax66; X86-NEXT: retl67;68; X64-LABEL: t4:69; X64: # %bb.0:70; X64-NEXT: movl 12(%rdi), %eax71; X64-NEXT: retq72 %X = load <4 x i32>, ptr %P173 %tmp = extractelement <4 x i32> %X, i32 374 ret i32 %tmp75}76