blob: 39230fe4fbf5895d4622711c9ad95575a39d37c8 [file] [log] [blame]
Bruno Cardoso Lopes65b74e12011-07-21 01:55:47 +00001; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
2
Bruno Cardoso Lopesdbd4fe22011-07-21 02:24:08 +00003; FIXME: use avx versions for punpcklbw, punpckhbw and punpckhwd
Bruno Cardoso Lopes65b74e12011-07-21 01:55:47 +00004
5; CHECK: vextractf128 $0
6; CHECK-NEXT: punpcklbw
7; CHECK-NEXT: punpckhbw
8; CHECK-NEXT: vinsertf128 $0
9; CHECK-NEXT: vinsertf128 $1
10; CHECK-NEXT: vpermilps $85
11define <32 x i8> @funcA(<32 x i8> %a) nounwind uwtable readnone ssp {
12entry:
13 %shuffle = shufflevector <32 x i8> %a, <32 x i8> undef, <32 x i32> <i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5>
14 ret <32 x i8> %shuffle
15}
16
Bruno Cardoso Lopesdbd4fe22011-07-21 02:24:08 +000017; CHECK: vextractf128 $0
18; CHECK-NEXT: punpckhwd
19; CHECK-NEXT: vinsertf128 $0
20; CHECK-NEXT: vinsertf128 $1
21; CHECK-NEXT: vpermilps $85
22define <16 x i16> @funcB(<16 x i16> %a) nounwind uwtable readnone ssp {
23entry:
24 %shuffle = shufflevector <16 x i16> %a, <16 x i16> undef, <16 x i32> <i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5>
25 ret <16 x i16> %shuffle
26}
27