Added VPERM optimization for AVX2 shuffles
[oota-llvm.git] / test / CodeGen / X86 / avx-zext.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx | FileCheck %s
2
3 define <8 x i32> @zext_8i16_to_8i32(<8 x i16> %A) nounwind uwtable readnone ssp {
4 ;CHECK: zext_8i16_to_8i32
5 ;CHECK: vpunpckhwd
6 ;CHECK: ret
7
8   %B = zext <8 x i16> %A to <8 x i32>
9   ret <8 x i32>%B
10 }
11
12 define <4 x i64> @zext_4i32_to_4i64(<4 x i32> %A) nounwind uwtable readnone ssp {
13 ;CHECK: zext_4i32_to_4i64
14 ;CHECK: vpunpckhdq
15 ;CHECK: ret
16
17   %B = zext <4 x i32> %A to <4 x i64>
18   ret <4 x i64>%B
19 }
20
21
22 define <8 x i32> @zext_8i8_to_8i32(<8 x i8> %z) {
23 ;CHECK: zext_8i8_to_8i32
24 ;CHECK: vpunpckhwd
25 ;CHECK: vpunpcklwd
26 ;CHECK: vinsertf128
27 ;CHECK: ret
28   %t = zext <8 x i8> %z to <8 x i32>
29   ret <8 x i32> %t
30 }