blob: 5918e8045f62f749adf6bad61abd0a5225a5dd51 [file] [log] [blame]
Andrea Di Biagio510feca2015-03-13 17:29:49 +00001; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=+avx < %s | FileCheck %s
2
3define <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
8entry:
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
13define <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
18entry:
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
23define <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
28entry:
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
33define <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
38entry:
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}