Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -march=x86 -mattr=+sse2 -o %t
      2 ; RUN: grep movq %t | count 2
      3 
      4 ; Used movq to load i64 into a v2i64 when the top i64 is 0.
      5 
      6 define <2 x i64> @foo1(i64* %y) nounwind  {
      7 entry:
      8 	%tmp1 = load i64* %y, align 8		; <i64> [#uses=1]
      9 	%s2v = insertelement <2 x i64> undef, i64 %tmp1, i32 0
     10 	%loadl = shufflevector <2 x i64> zeroinitializer, <2 x i64> %s2v, <2 x i32> <i32 2, i32 1>
     11 	ret <2 x i64> %loadl
     12 }
     13 
     14 
     15 define <4 x float> @foo2(i64* %p) nounwind {
     16 entry:
     17 	%load = load i64* %p
     18 	%s2v = insertelement <2 x i64> undef, i64 %load, i32 0
     19 	%loadl = shufflevector <2 x i64> zeroinitializer, <2 x i64> %s2v, <2 x i32> <i32 2, i32 1>
     20 	%0 = bitcast <2 x i64> %loadl to <4 x float>
     21 	ret <4 x float> %0
     22 }
     23