53 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown -mattr=+sse4.2 | FileCheck %s --check-prefix=X323; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+sse4.2 | FileCheck %s --check-prefix=X644 5define float @extractFloat1() nounwind {6; X32-LABEL: extractFloat1:7; X32: # %bb.0: # %entry8; X32-NEXT: fld19; X32-NEXT: retl10;11; X64-LABEL: extractFloat1:12; X64: # %bb.0: # %entry13; X64-NEXT: movss {{.*#+}} xmm0 = [1.0E+0,0.0E+0,0.0E+0,0.0E+0]14; X64-NEXT: retq15entry:16 %tmp0 = bitcast <1 x double> <double 0x000000003F800000> to <2 x float>17 %tmp1 = extractelement <2 x float> %tmp0, i32 018 ret float %tmp119}20 21define float @extractFloat2() nounwind {22; X32-LABEL: extractFloat2:23; X32: # %bb.0: # %entry24; X32-NEXT: fldz25; X32-NEXT: retl26;27; X64-LABEL: extractFloat2:28; X64: # %bb.0: # %entry29; X64-NEXT: xorps %xmm0, %xmm030; X64-NEXT: retq31entry:32 %tmp4 = bitcast <1 x double> <double 0x000000003F800000> to <2 x float>33 %tmp5 = extractelement <2 x float> %tmp4, i32 134 ret float %tmp535}36 37define i32 @extractInt2() nounwind {38; X32-LABEL: extractInt2:39; X32: # %bb.0: # %entry40; X32-NEXT: xorl %eax, %eax41; X32-NEXT: retl42;43; X64-LABEL: extractInt2:44; X64: # %bb.0: # %entry45; X64-NEXT: xorl %eax, %eax46; X64-NEXT: retq47entry:48 %tmp4 = bitcast <1 x i64> <i64 256> to <2 x i32>49 %tmp5 = extractelement <2 x i32> %tmp4, i32 150 ret i32 %tmp551}52 53