[x86] Rename avx-{s,z}ext.ll to vector-{s,z}ext.ll.
[oota-llvm.git] / test / CodeGen / X86 / fp-load-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>* %p) nounwind {
5 ; CHECK: test1
6 ; CHECK: cvtsd2ss
7 ; CHECK: ret
8 ; AVX:   test1
9 ; AVX:   vcvtsd2ss
10 ; AVX:   ret
11   %x = load <1 x double>* %p
12   %y = fptrunc <1 x double> %x to <1 x float>
13   ret <1 x float> %y
14 }
15
16 define <2 x float> @test2(<2 x double>* %p) nounwind {
17 ; CHECK: test2
18 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
19 ; CHECK: ret
20 ; AVX:   test2
21 ; AVX:   vcvtpd2psx {{[0-9]*}}(%{{.*}})
22 ; AVX:   ret
23   %x = load <2 x double>* %p
24   %y = fptrunc <2 x double> %x to <2 x float>
25   ret <2 x float> %y
26 }
27
28 define <4 x float> @test3(<4 x double>* %p) nounwind {
29 ; CHECK: test3
30 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
31 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
32 ; CHECK: movlhps
33 ; CHECK: ret
34 ; AVX:   test3
35 ; AVX:   vcvtpd2psy {{[0-9]*}}(%{{.*}})
36 ; AVX:   ret
37   %x = load <4 x double>* %p
38   %y = fptrunc <4 x double> %x to <4 x float>
39   ret <4 x float> %y
40 }
41
42 define <8 x float> @test4(<8 x double>* %p) nounwind {
43 ; CHECK: test4
44 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
45 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
46 ; CHECK: movlhps
47 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
48 ; CHECK: cvtpd2ps {{[0-9]*}}(%{{.*}})
49 ; CHECK: movlhps
50 ; CHECK: ret
51 ; AVX:   test4
52 ; AVX:   vcvtpd2psy
53 ; AVX:   vcvtpd2psy
54 ; AVX:   vinsertf128
55 ; AVX:   ret
56   %x = load <8 x double>* %p
57   %y = fptrunc <8 x double> %x to <8 x float>
58   ret <8 x float> %y
59 }
60
61