blob: ba199dbf56080588d4f417bba7bca0eec8e91337 [file] [log] [blame]
Tanya Lattner6263f942008-02-17 20:02:20 +00001; RUN: llvm-as < %s | llc -march=arm -mattr=+vfp2 > %t
Dan Gohman28beeea2007-08-15 13:36:28 +00002; RUN: grep fmsr %t | count 4
Reid Spencereb1d74e2007-04-16 17:36:08 +00003; RUN: grep fsitos %t
Dan Gohman28beeea2007-08-15 13:36:28 +00004; RUN: grep fmrs %t | count 2
Reid Spencereb1d74e2007-04-16 17:36:08 +00005; RUN: grep fsitod %t
Chris Lattner2adcf102007-11-28 05:27:07 +00006; RUN: grep fmrrd %t | count 3
7; RUN: not grep fmdrr %t
Reid Spencereb1d74e2007-04-16 17:36:08 +00008; RUN: grep fldd %t
Reid Spencereb1d74e2007-04-16 17:36:08 +00009; RUN: grep fuitod %t
10; RUN: grep fuitos %t
11; RUN: grep 1065353216 %t
Evan Cheng02b985c2007-01-19 09:20:23 +000012
Tanya Lattner6263f942008-02-17 20:02:20 +000013define float @f(i32 %a) {
Evan Cheng02b985c2007-01-19 09:20:23 +000014entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000015 %tmp = sitofp i32 %a to float ; <float> [#uses=1]
16 ret float %tmp
Evan Cheng02b985c2007-01-19 09:20:23 +000017}
18
Tanya Lattner6263f942008-02-17 20:02:20 +000019define double @g(i32 %a) {
Evan Cheng02b985c2007-01-19 09:20:23 +000020entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000021 %tmp = sitofp i32 %a to double ; <double> [#uses=1]
Evan Cheng02b985c2007-01-19 09:20:23 +000022 ret double %tmp
23}
24
Tanya Lattner6263f942008-02-17 20:02:20 +000025define double @uint_to_double(i32 %a) {
Evan Cheng02b985c2007-01-19 09:20:23 +000026entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000027 %tmp = uitofp i32 %a to double ; <double> [#uses=1]
28 ret double %tmp
Evan Cheng02b985c2007-01-19 09:20:23 +000029}
30
Tanya Lattner6263f942008-02-17 20:02:20 +000031define float @uint_to_float(i32 %a) {
Evan Cheng02b985c2007-01-19 09:20:23 +000032entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000033 %tmp = uitofp i32 %a to float ; <float> [#uses=1]
34 ret float %tmp
Evan Cheng02b985c2007-01-19 09:20:23 +000035}
Rafael Espindola27185192006-09-29 21:20:16 +000036
Tanya Lattner6263f942008-02-17 20:02:20 +000037define double @h(double* %v) {
Rafael Espindola5aca9272006-10-07 14:03:39 +000038entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000039 %tmp = load double* %v ; <double> [#uses=1]
40 ret double %tmp
Rafael Espindola5aca9272006-10-07 14:03:39 +000041}
42
Tanya Lattner6263f942008-02-17 20:02:20 +000043define float @h2() {
Rafael Espindolacd71da52006-10-03 17:27:58 +000044entry:
45 ret float 1.000000e+00
46}
Rafael Espindolaa2845842006-10-05 16:48:49 +000047
Tanya Lattner6263f942008-02-17 20:02:20 +000048define double @f2(double %a) {
Rafael Espindolaa2845842006-10-05 16:48:49 +000049 ret double %a
50}
Rafael Espindola4a408d42006-10-06 12:50:22 +000051
Tanya Lattner6263f942008-02-17 20:02:20 +000052define void @f3() {
Rafael Espindola614057b2006-10-06 19:10:05 +000053entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000054 %tmp = call double @f5( ) ; <double> [#uses=1]
55 call void @f4( double %tmp )
56 ret void
Rafael Espindola4a408d42006-10-06 12:50:22 +000057}
Rafael Espindola614057b2006-10-06 19:10:05 +000058
Tanya Lattner6263f942008-02-17 20:02:20 +000059declare void @f4(double)
60
61declare double @f5()
62