Specify CPU model to avoid breaking ATOM builds
[oota-llvm.git] / test / CodeGen / X86 / fp-trunc.ll
1 ; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
2 ; RUN: llc < %s -march=x86 -mcpu=core-avx-i | FileCheck %s --check-prefix=AVX
3
4 define <1 x float> @test1(<1 x double> %x) nounwind {
5 ; CHECK: test1
6 ; CHECK: cvtsd2ss
7 ; CHECK: ret
8 ; AVX:   test1
9 ; AVX:   vcvtsd2ss
10 ; AVX:   ret
11   %y = fptrunc <1 x double> %x to <1 x float>
12   ret <1 x float> %y
13 }
14
15 define <2 x float> @test2(<2 x double> %x) nounwind {
16 ; CHECK: test2
17 ; CHECK: cvtpd2ps
18 ; CHECK: ret
19 ; AVX:   test2
20 ; AVX-NOT:  vcvtpd2psy
21 ; AVX:   vcvtpd2ps
22 ; AVX:   ret
23   %y = fptrunc <2 x double> %x to <2 x float>
24   ret <2 x float> %y
25 }
26
27 define <4 x float> @test3(<4 x double> %x) nounwind {
28 ; CHECK: test3
29 ; CHECK: cvtpd2ps
30 ; CHECK: cvtpd2ps
31 ; CHECK: movlhps
32 ; CHECK: ret
33 ; AVX:   test3
34 ; AVX:   vcvtpd2psy
35 ; AVX:   ret
36   %y = fptrunc <4 x double> %x to <4 x float>
37   ret <4 x float> %y
38 }
39
40 define <8 x float> @test4(<8 x double> %x) nounwind {
41 ; CHECK: test4
42 ; CHECK: cvtpd2ps
43 ; CHECK: cvtpd2ps
44 ; CHECK: movlhps
45 ; CHECK: cvtpd2ps
46 ; CHECK: cvtpd2ps
47 ; CHECK: movlhps
48 ; CHECK: ret
49 ; AVX:   test4
50 ; AVX:   vcvtpd2psy
51 ; AVX:   vcvtpd2psy
52 ; AVX:   vinsertf128
53 ; AVX:   ret
54   %y = fptrunc <8 x double> %x to <8 x float>
55   ret <8 x float> %y
56 }
57
58