Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s
      2 
      3 define <4 x double> @test1(<4 x double> %A, <4 x double> %B) {
      4 ; CHECK-LABEL: test1:
      5 ; CHECK:       # BB#0:
      6 ; CHECK-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
      7 ; CHECK-NEXT:    retq
      8 entry:
      9   %0 = shufflevector <4 x double> %A, <4 x double> %B, <4 x i32> <i32 undef, i32 1, i32 undef, i32 5>
     10   ret <4 x double> %0
     11 }
     12 
     13 define <4 x double> @test2(<4 x double> %A, <4 x double> %B) {
     14 ; CHECK-LABEL: test2:
     15 ; CHECK:       # BB#0:
     16 ; CHECK-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
     17 ; CHECK-NEXT:    retq
     18 entry:
     19   %0 = shufflevector <4 x double> %A, <4 x double> %B, <4 x i32> <i32 undef, i32 1, i32 undef, i32 1>
     20   ret <4 x double> %0
     21 }
     22 
     23 define <4 x double> @test3(<4 x double> %A, <4 x double> %B) {
     24 ; CHECK-LABEL: test3:
     25 ; CHECK:       # BB#0:
     26 ; CHECK-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
     27 ; CHECK-NEXT:    retq
     28 entry:
     29   %0 = shufflevector <4 x double> %A, <4 x double> %B, <4 x i32> <i32 0, i32 1, i32 undef, i32 5>
     30   ret <4 x double> %0
     31 }
     32 
     33 define <4 x double> @test4(<4 x double> %A, <4 x double> %B) {
     34 ; CHECK-LABEL: test4:
     35 ; CHECK:       # BB#0:
     36 ; CHECK-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
     37 ; CHECK-NEXT:    retq
     38 entry:
     39   %0 = shufflevector <4 x double> %A, <4 x double> %B, <4 x i32> <i32 0, i32 1, i32 undef, i32 1>
     40   ret <4 x double> %0
     41 }
     42