blob: 299cb8f815036a3a60b3f5ae85c4bf2008bcf40e [file] [log] [blame]
Edward O'Callaghan81fff072009-11-22 11:45:44 +00001; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 | FileCheck %s
Dale Johannesen4ac075c2007-05-03 20:54:42 +00002
3@i = weak global i32 0 ; <i32*> [#uses=2]
4@u = weak global i32 0 ; <i32*> [#uses=2]
5
Evan Cheng070549e2007-05-07 21:49:35 +00006define i32 @foo1(float *%x) {
7 %tmp1 = load float* %x
8 %tmp2 = bitcast float %tmp1 to i32
9 ret i32 %tmp2
10}
11
12define i64 @foo2(double *%x) {
13 %tmp1 = load double* %x
14 %tmp2 = bitcast double %tmp1 to i64
15 ret i64 %tmp2
16}
17
Dale Johannesen4ac075c2007-05-03 20:54:42 +000018define void @foo5(float %x) {
Evan Cheng070549e2007-05-07 21:49:35 +000019 %tmp1 = fptosi float %x to i32
Dale Johannesen4ac075c2007-05-03 20:54:42 +000020 store i32 %tmp1, i32* @i
21 ret void
22}
23
24define void @foo6(float %x) {
Evan Cheng070549e2007-05-07 21:49:35 +000025 %tmp1 = fptoui float %x to i32
Dale Johannesen4ac075c2007-05-03 20:54:42 +000026 store i32 %tmp1, i32* @u
27 ret void
28}
29
30define void @foo7(double %x) {
Evan Cheng070549e2007-05-07 21:49:35 +000031 %tmp1 = fptosi double %x to i32
Dale Johannesen4ac075c2007-05-03 20:54:42 +000032 store i32 %tmp1, i32* @i
33 ret void
34}
35
36define void @foo8(double %x) {
Evan Cheng070549e2007-05-07 21:49:35 +000037 %tmp1 = fptoui double %x to i32
Dale Johannesen4ac075c2007-05-03 20:54:42 +000038 store i32 %tmp1, i32* @u
39 ret void
40}
Evan Cheng7de291a2007-05-09 21:54:34 +000041
42define void @foo9(double %x) {
43 %tmp = fptoui double %x to i16
44 store i16 %tmp, i16* null
45 ret void
46}
Edward O'Callaghan85d1aab2009-11-22 12:50:05 +000047; CHECK: foo9:
48; CHECK: vmov r0, s0
Edward O'Callaghan81fff072009-11-22 11:45:44 +000049