Mercurial > hg > Members > tobaru > cbc > CbC_llvm
comparison test/CodeGen/Mips/fpneeded.ll @ 0:95c75e76d11b
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children | 54457678186b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
1 ; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=static -O3 < %s -mips-os16 | FileCheck %s -check-prefix=32 | |
2 | |
3 @x = global float 1.000000e+00, align 4 | |
4 @y = global float 2.000000e+00, align 4 | |
5 @zz = common global float 0.000000e+00, align 4 | |
6 @z = common global float 0.000000e+00, align 4 | |
7 | |
8 define float @fv() #0 { | |
9 entry: | |
10 ret float 1.000000e+00 | |
11 } | |
12 | |
13 ; 32: .set nomips16 # @fv | |
14 ; 32: .ent fv | |
15 ; 32: .set noreorder | |
16 ; 32: .set nomacro | |
17 ; 32: .set noat | |
18 ; 32: jr $ra | |
19 ; 32: .set at | |
20 ; 32: .set macro | |
21 ; 32: .set reorder | |
22 ; 32: .end fv | |
23 | |
24 define double @dv() #0 { | |
25 entry: | |
26 ret double 2.000000e+00 | |
27 } | |
28 | |
29 ; 32: .set nomips16 # @dv | |
30 ; 32: .ent dv | |
31 ; 32: .set noreorder | |
32 ; 32: .set nomacro | |
33 ; 32: .set noat | |
34 ; 32: jr $ra | |
35 ; 32: .set at | |
36 ; 32: .set macro | |
37 ; 32: .set reorder | |
38 ; 32: .end dv | |
39 | |
40 define void @vf(float %x) #0 { | |
41 entry: | |
42 %x.addr = alloca float, align 4 | |
43 store float %x, float* %x.addr, align 4 | |
44 ret void | |
45 } | |
46 | |
47 ; 32: .set nomips16 # @vf | |
48 ; 32: .ent vf | |
49 ; 32: .set noreorder | |
50 ; 32: .set nomacro | |
51 ; 32: .set noat | |
52 ; 32: jr $ra | |
53 ; 32: .set at | |
54 ; 32: .set macro | |
55 ; 32: .set reorder | |
56 ; 32: .end vf | |
57 | |
58 define void @vd(double %x) #0 { | |
59 entry: | |
60 %x.addr = alloca double, align 8 | |
61 store double %x, double* %x.addr, align 8 | |
62 ret void | |
63 } | |
64 | |
65 ; 32: .set nomips16 # @vd | |
66 ; 32: .ent vd | |
67 ; 32: .set noreorder | |
68 ; 32: .set nomacro | |
69 ; 32: .set noat | |
70 ; 32: jr $ra | |
71 ; 32: .set at | |
72 ; 32: .set macro | |
73 ; 32: .set reorder | |
74 ; 32: .end vd | |
75 | |
76 define void @foo1() #0 { | |
77 entry: | |
78 store float 1.000000e+00, float* @zz, align 4 | |
79 %0 = load float* @y, align 4 | |
80 %1 = load float* @x, align 4 | |
81 %add = fadd float %0, %1 | |
82 store float %add, float* @z, align 4 | |
83 ret void | |
84 } | |
85 | |
86 ; 32: .set nomips16 # @foo1 | |
87 ; 32: .ent foo1 | |
88 ; 32: .set noreorder | |
89 ; 32: .set nomacro | |
90 ; 32: .set noat | |
91 ; 32: jr $ra | |
92 ; 32: .set at | |
93 ; 32: .set macro | |
94 ; 32: .set reorder | |
95 ; 32: .end foo1 | |
96 | |
97 define void @foo2() #0 { | |
98 entry: | |
99 %0 = load float* @x, align 4 | |
100 call void @vf(float %0) | |
101 ret void | |
102 } | |
103 | |
104 | |
105 ; 32: .set nomips16 # @foo2 | |
106 ; 32: .ent foo2 | |
107 ; 32: .set noreorder | |
108 ; 32: .set nomacro | |
109 ; 32: .set noat | |
110 ; 32: jr $ra | |
111 ; 32: .set at | |
112 ; 32: .set macro | |
113 ; 32: .set reorder | |
114 ; 32: .end foo2 | |
115 | |
116 define void @foo3() #0 { | |
117 entry: | |
118 %call = call float @fv() | |
119 store float %call, float* @x, align 4 | |
120 ret void | |
121 } | |
122 | |
123 ; 32: .set nomips16 # @foo3 | |
124 ; 32: .ent foo3 | |
125 ; 32: .set noreorder | |
126 ; 32: .set nomacro | |
127 ; 32: .set noat | |
128 ; 32: jr $ra | |
129 ; 32: .set at | |
130 ; 32: .set macro | |
131 ; 32: .set reorder | |
132 ; 32: .end foo3 | |
133 | |
134 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
135 | |
136 define void @vv() #0 { | |
137 entry: | |
138 ret void | |
139 } | |
140 | |
141 ; 32: .set mips16 # @vv | |
142 ; 32: .ent vv | |
143 | |
144 ; 32: save {{.+}} | |
145 ; 32: restore {{.+}} | |
146 ; 32: .end vv | |
147 | |
148 | |
149 |