cleaned line endings in the newly added test file
[oota-llvm.git] / test / CodeGen / X86 / avx2-conversions.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -mattr=+avx2 | FileCheck %s
2
3 ; CHECK: trunc4
4 ; CHECK: vpermd
5 ; CHECK-NOT: vinsert
6 ; CHECK: ret
7 define <4 x i32> @trunc4(<4 x i64> %A) nounwind {
8   %B = trunc <4 x i64> %A to <4 x i32>
9   ret <4 x i32>%B
10 }
11
12 ; CHECK: trunc8
13 ; CHECK: vpshufb
14 ; CHECK-NOT: vinsert
15 ; CHECK: ret
16
17 define <8 x i16> @trunc8(<8 x i32> %A) nounwind {
18   %B = trunc <8 x i32> %A to <8 x i16>
19   ret <8 x i16>%B
20 }
21
22 ; CHECK: sext4
23 ; CHECK: vpmovsxdq
24 ; CHECK-NOT: vinsert
25 ; CHECK: ret
26 define <4 x i64> @sext4(<4 x i32> %A) nounwind {
27   %B = sext <4 x i32> %A to <4 x i64>
28   ret <4 x i64>%B
29 }
30
31 ; CHECK: sext8
32 ; CHECK: vpmovsxwd
33 ; CHECK-NOT: vinsert
34 ; CHECK: ret
35 define <8 x i32> @sext8(<8 x i16> %A) nounwind {
36   %B = sext <8 x i16> %A to <8 x i32>
37   ret <8 x i32>%B
38 }
39
40 ; CHECK: zext4
41 ; CHECK: vpmovzxdq
42 ; CHECK-NOT: vinsert
43 ; CHECK: ret
44 define <4 x i64> @zext4(<4 x i32> %A) nounwind {
45   %B = zext <4 x i32> %A to <4 x i64>
46   ret <4 x i64>%B
47 }
48
49 ; CHECK: zext8
50 ; CHECK: vpmovzxwd
51 ; CHECK-NOT: vinsert
52 ; CHECK: ret
53 define <8 x i32> @zext8(<8 x i16> %A) nounwind {
54   %B = zext <8 x i16> %A to <8 x i32>
55   ret <8 x i32>%B
56 }
57 ; CHECK: zext_8i8_8i32
58 ; CHECK: vpmovzxwd
59 ; CHECK: vpand
60 ; CHECK: ret
61 define <8 x i32> @zext_8i8_8i32(<8 x i8> %A) nounwind {
62   %B = zext <8 x i8> %A to <8 x i32>  
63   ret <8 x i32>%B
64 }
65
66
67
68