Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(415)

Side by Side Diff: tests_lit/llvm2ice_tests/fp.arm.call.ll

Issue 1438773004: Subzero. ARM32. Improve constant lowering. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/llvm2ice_tests/bool-folding.ll ('k') | tests_lit/llvm2ice_tests/unreachable.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Tests validating the vfp calling convention for ARM32. 1 ; Tests validating the vfp calling convention for ARM32.
2 ; 2 ;
3 ; RUN: %if --need=target_ARM32 --need=allow_dump \ 3 ; RUN: %if --need=target_ARM32 --need=allow_dump \
4 ; RUN: --command %p2i --filetype=asm --assemble \ 4 ; RUN: --command %p2i --filetype=asm --assemble \
5 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \ 5 ; RUN: --disassemble --target arm32 -i %s --args -O2 --skip-unimplemented \
6 ; RUN: -allow-externally-defined-symbols \ 6 ; RUN: -allow-externally-defined-symbols \
7 ; RUN: | %if --need=target_ARM32 --need=allow_dump \ 7 ; RUN: | %if --need=target_ARM32 --need=allow_dump \
8 ; RUN: --command FileCheck %s 8 ; RUN: --command FileCheck %s
9 ; RUN: %if --need=target_ARM32 --need=allow_dump \ 9 ; RUN: %if --need=target_ARM32 --need=allow_dump \
10 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target arm32 \ 10 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target arm32 \
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 float %p5, float %p6, float %p7, float %p8, float %p9, 55 float %p5, float %p6, float %p7, float %p8, float %p9,
56 float %p10, float %p11, float %p12, float %p13, 56 float %p10, float %p11, float %p12, float %p13,
57 float %p14, float %p15, float %p16) 57 float %p14, float %p15, float %p16)
58 declare void @float18(float %p0, float %p1, float %p2, float %p3, float %p4, 58 declare void @float18(float %p0, float %p1, float %p2, float %p3, float %p4,
59 float %p5, float %p6, float %p7, float %p8, float %p9, 59 float %p5, float %p6, float %p7, float %p8, float %p9,
60 float %p10, float %p11, float %p12, float %p13, 60 float %p10, float %p11, float %p12, float %p13,
61 float %p14, float %p15, float %p16, float %p17) 61 float %p14, float %p15, float %p16, float %p17)
62 define internal void @floatHarness() nounwind { 62 define internal void @floatHarness() nounwind {
63 ; CHECK-LABEL: floatHarness 63 ; CHECK-LABEL: floatHarness
64 call void @float1(float 1.0) 64 call void @float1(float 1.0)
65 ; CHECK-DAG: vldr s0 65 ; CHECK-DAG: vmov.f32 s0
66 ; CHECK: bl {{.*}} float1 66 ; CHECK: bl {{.*}} float1
67 call void @float2(float 1.0, float 2.0) 67 call void @float2(float 1.0, float 2.0)
68 ; CHECK-DAG: vldr s0 68 ; CHECK-DAG: vmov.f32 s0
69 ; CHECK-DAG: vldr s1 69 ; CHECK-DAG: vmov.f32 s1
70 ; CHECK: bl {{.*}} float2 70 ; CHECK: bl {{.*}} float2
71 call void @float3(float 1.0, float 2.0, float 3.0) 71 call void @float3(float 1.0, float 2.0, float 3.0)
72 ; CHECK-DAG: vldr s0 72 ; CHECK-DAG: vmov.f32 s0
73 ; CHECK-DAG: vldr s1 73 ; CHECK-DAG: vmov.f32 s1
74 ; CHECK-DAG: vldr s2 74 ; CHECK-DAG: vmov.f32 s2
75 ; CHECK: bl {{.*}} float3 75 ; CHECK: bl {{.*}} float3
76 call void @float4(float 1.0, float 2.0, float 3.0, float 4.0) 76 call void @float4(float 1.0, float 2.0, float 3.0, float 4.0)
77 ; CHECK-DAG: vldr s0 77 ; CHECK-DAG: vmov.f32 s0
78 ; CHECK-DAG: vldr s1 78 ; CHECK-DAG: vmov.f32 s1
79 ; CHECK-DAG: vldr s2 79 ; CHECK-DAG: vmov.f32 s2
80 ; CHECK-DAG: vldr s3 80 ; CHECK-DAG: vmov.f32 s3
81 ; CHECK: bl {{.*}} float4 81 ; CHECK: bl {{.*}} float4
82 call void @float5(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0) 82 call void @float5(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0)
83 ; CHECK-DAG: vldr s0 83 ; CHECK-DAG: vmov.f32 s0
84 ; CHECK-DAG: vldr s1 84 ; CHECK-DAG: vmov.f32 s1
85 ; CHECK-DAG: vldr s2 85 ; CHECK-DAG: vmov.f32 s2
86 ; CHECK-DAG: vldr s3 86 ; CHECK-DAG: vmov.f32 s3
87 ; CHECK-DAG: vldr s4 87 ; CHECK-DAG: vmov.f32 s4
88 ; CHECK: bl {{.*}} float5 88 ; CHECK: bl {{.*}} float5
89 call void @float6(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 89 call void @float6(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
90 float 6.0) 90 float 6.0)
91 ; CHECK-DAG: vldr s0 91 ; CHECK-DAG: vmov.f32 s0
92 ; CHECK-DAG: vldr s1 92 ; CHECK-DAG: vmov.f32 s1
93 ; CHECK-DAG: vldr s2 93 ; CHECK-DAG: vmov.f32 s2
94 ; CHECK-DAG: vldr s3 94 ; CHECK-DAG: vmov.f32 s3
95 ; CHECK-DAG: vldr s4 95 ; CHECK-DAG: vmov.f32 s4
96 ; CHECK-DAG: vldr s5 96 ; CHECK-DAG: vmov.f32 s5
97 ; CHECK: bl {{.*}} float6 97 ; CHECK: bl {{.*}} float6
98 call void @float7(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 98 call void @float7(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
99 float 6.0, float 7.0) 99 float 6.0, float 7.0)
100 ; CHECK-DAG: vldr s0 100 ; CHECK-DAG: vmov.f32 s0
101 ; CHECK-DAG: vldr s1 101 ; CHECK-DAG: vmov.f32 s1
102 ; CHECK-DAG: vldr s2 102 ; CHECK-DAG: vmov.f32 s2
103 ; CHECK-DAG: vldr s3 103 ; CHECK-DAG: vmov.f32 s3
104 ; CHECK-DAG: vldr s4 104 ; CHECK-DAG: vmov.f32 s4
105 ; CHECK-DAG: vldr s5 105 ; CHECK-DAG: vmov.f32 s5
106 ; CHECK-DAG: vldr s6 106 ; CHECK-DAG: vmov.f32 s6
107 ; CHECK: bl {{.*}} float7 107 ; CHECK: bl {{.*}} float7
108 call void @float8(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 108 call void @float8(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
109 float 6.0, float 7.0, float 8.0) 109 float 6.0, float 7.0, float 8.0)
110 ; CHECK-DAG: vldr s0 110 ; CHECK-DAG: vmov.f32 s0
111 ; CHECK-DAG: vldr s1 111 ; CHECK-DAG: vmov.f32 s1
112 ; CHECK-DAG: vldr s2 112 ; CHECK-DAG: vmov.f32 s2
113 ; CHECK-DAG: vldr s3 113 ; CHECK-DAG: vmov.f32 s3
114 ; CHECK-DAG: vldr s4 114 ; CHECK-DAG: vmov.f32 s4
115 ; CHECK-DAG: vldr s5 115 ; CHECK-DAG: vmov.f32 s5
116 ; CHECK-DAG: vldr s6 116 ; CHECK-DAG: vmov.f32 s6
117 ; CHECK-DAG: vldr s7 117 ; CHECK-DAG: vmov.f32 s7
118 ; CHECK: bl {{.*}} float8 118 ; CHECK: bl {{.*}} float8
119 call void @float9(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 119 call void @float9(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
120 float 6.0, float 7.0, float 8.0, float 9.0) 120 float 6.0, float 7.0, float 8.0, float 9.0)
121 ; CHECK-DAG: vldr s0 121 ; CHECK-DAG: vmov.f32 s0
122 ; CHECK-DAG: vldr s1 122 ; CHECK-DAG: vmov.f32 s1
123 ; CHECK-DAG: vldr s2 123 ; CHECK-DAG: vmov.f32 s2
124 ; CHECK-DAG: vldr s3 124 ; CHECK-DAG: vmov.f32 s3
125 ; CHECK-DAG: vldr s4 125 ; CHECK-DAG: vmov.f32 s4
126 ; CHECK-DAG: vldr s5 126 ; CHECK-DAG: vmov.f32 s5
127 ; CHECK-DAG: vldr s6 127 ; CHECK-DAG: vmov.f32 s6
128 ; CHECK-DAG: vldr s7 128 ; CHECK-DAG: vmov.f32 s7
129 ; CHECK-DAG: vldr s8 129 ; CHECK-DAG: vmov.f32 s8
130 ; CHECK: bl {{.*}} float9 130 ; CHECK: bl {{.*}} float9
131 call void @float10(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 131 call void @float10(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
132 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0) 132 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0)
133 ; CHECK-DAG: vldr s0 133 ; CHECK-DAG: vmov.f32 s0
134 ; CHECK-DAG: vldr s1 134 ; CHECK-DAG: vmov.f32 s1
135 ; CHECK-DAG: vldr s2 135 ; CHECK-DAG: vmov.f32 s2
136 ; CHECK-DAG: vldr s3 136 ; CHECK-DAG: vmov.f32 s3
137 ; CHECK-DAG: vldr s4 137 ; CHECK-DAG: vmov.f32 s4
138 ; CHECK-DAG: vldr s5 138 ; CHECK-DAG: vmov.f32 s5
139 ; CHECK-DAG: vldr s6 139 ; CHECK-DAG: vmov.f32 s6
140 ; CHECK-DAG: vldr s7 140 ; CHECK-DAG: vmov.f32 s7
141 ; CHECK-DAG: vldr s8 141 ; CHECK-DAG: vmov.f32 s8
142 ; CHECK-DAG: vldr s9 142 ; CHECK-DAG: vmov.f32 s9
143 ; CHECK: bl {{.*}} float10 143 ; CHECK: bl {{.*}} float10
144 call void @float11(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 144 call void @float11(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
145 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 145 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
146 float 11.0) 146 float 11.0)
147 ; CHECK-DAG: vldr s0 147 ; CHECK-DAG: vmov.f32 s0
148 ; CHECK-DAG: vldr s1 148 ; CHECK-DAG: vmov.f32 s1
149 ; CHECK-DAG: vldr s2 149 ; CHECK-DAG: vmov.f32 s2
150 ; CHECK-DAG: vldr s3 150 ; CHECK-DAG: vmov.f32 s3
151 ; CHECK-DAG: vldr s4 151 ; CHECK-DAG: vmov.f32 s4
152 ; CHECK-DAG: vldr s5 152 ; CHECK-DAG: vmov.f32 s5
153 ; CHECK-DAG: vldr s6 153 ; CHECK-DAG: vmov.f32 s6
154 ; CHECK-DAG: vldr s7 154 ; CHECK-DAG: vmov.f32 s7
155 ; CHECK-DAG: vldr s8 155 ; CHECK-DAG: vmov.f32 s8
156 ; CHECK-DAG: vldr s9 156 ; CHECK-DAG: vmov.f32 s9
157 ; CHECK-DAG: vldr s10 157 ; CHECK-DAG: vmov.f32 s10
158 ; CHECK: bl {{.*}} float11 158 ; CHECK: bl {{.*}} float11
159 call void @float12(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 159 call void @float12(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
160 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 160 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
161 float 11.0, float 12.0) 161 float 11.0, float 12.0)
162 ; CHECK-DAG: vldr s0 162 ; CHECK-DAG: vmov.f32 s0
163 ; CHECK-DAG: vldr s1 163 ; CHECK-DAG: vmov.f32 s1
164 ; CHECK-DAG: vldr s2 164 ; CHECK-DAG: vmov.f32 s2
165 ; CHECK-DAG: vldr s3 165 ; CHECK-DAG: vmov.f32 s3
166 ; CHECK-DAG: vldr s4 166 ; CHECK-DAG: vmov.f32 s4
167 ; CHECK-DAG: vldr s5 167 ; CHECK-DAG: vmov.f32 s5
168 ; CHECK-DAG: vldr s6 168 ; CHECK-DAG: vmov.f32 s6
169 ; CHECK-DAG: vldr s7 169 ; CHECK-DAG: vmov.f32 s7
170 ; CHECK-DAG: vldr s8 170 ; CHECK-DAG: vmov.f32 s8
171 ; CHECK-DAG: vldr s9 171 ; CHECK-DAG: vmov.f32 s9
172 ; CHECK-DAG: vldr s10 172 ; CHECK-DAG: vmov.f32 s10
173 ; CHECK-DAG: vldr s11 173 ; CHECK-DAG: vmov.f32 s11
174 ; CHECK: bl {{.*}} float12 174 ; CHECK: bl {{.*}} float12
175 call void @float13(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 175 call void @float13(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
176 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 176 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
177 float 11.0, float 12.0, float 13.0) 177 float 11.0, float 12.0, float 13.0)
178 ; CHECK-DAG: vldr s0 178 ; CHECK-DAG: vmov.f32 s0
179 ; CHECK-DAG: vldr s1 179 ; CHECK-DAG: vmov.f32 s1
180 ; CHECK-DAG: vldr s2 180 ; CHECK-DAG: vmov.f32 s2
181 ; CHECK-DAG: vldr s3 181 ; CHECK-DAG: vmov.f32 s3
182 ; CHECK-DAG: vldr s4 182 ; CHECK-DAG: vmov.f32 s4
183 ; CHECK-DAG: vldr s5 183 ; CHECK-DAG: vmov.f32 s5
184 ; CHECK-DAG: vldr s6 184 ; CHECK-DAG: vmov.f32 s6
185 ; CHECK-DAG: vldr s7 185 ; CHECK-DAG: vmov.f32 s7
186 ; CHECK-DAG: vldr s8 186 ; CHECK-DAG: vmov.f32 s8
187 ; CHECK-DAG: vldr s9 187 ; CHECK-DAG: vmov.f32 s9
188 ; CHECK-DAG: vldr s10 188 ; CHECK-DAG: vmov.f32 s10
189 ; CHECK-DAG: vldr s11 189 ; CHECK-DAG: vmov.f32 s11
190 ; CHECK-DAG: vldr s12 190 ; CHECK-DAG: vmov.f32 s12
191 ; CHECK: bl {{.*}} float13 191 ; CHECK: bl {{.*}} float13
192 call void @float14(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 192 call void @float14(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
193 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 193 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
194 float 11.0, float 12.0, float 13.0, float 14.0) 194 float 11.0, float 12.0, float 13.0, float 14.0)
195 ; CHECK-DAG: vldr s0 195 ; CHECK-DAG: vmov.f32 s0
196 ; CHECK-DAG: vldr s1 196 ; CHECK-DAG: vmov.f32 s1
197 ; CHECK-DAG: vldr s2 197 ; CHECK-DAG: vmov.f32 s2
198 ; CHECK-DAG: vldr s3 198 ; CHECK-DAG: vmov.f32 s3
199 ; CHECK-DAG: vldr s4 199 ; CHECK-DAG: vmov.f32 s4
200 ; CHECK-DAG: vldr s5 200 ; CHECK-DAG: vmov.f32 s5
201 ; CHECK-DAG: vldr s6 201 ; CHECK-DAG: vmov.f32 s6
202 ; CHECK-DAG: vldr s7 202 ; CHECK-DAG: vmov.f32 s7
203 ; CHECK-DAG: vldr s8 203 ; CHECK-DAG: vmov.f32 s8
204 ; CHECK-DAG: vldr s9 204 ; CHECK-DAG: vmov.f32 s9
205 ; CHECK-DAG: vldr s10 205 ; CHECK-DAG: vmov.f32 s10
206 ; CHECK-DAG: vldr s11 206 ; CHECK-DAG: vmov.f32 s11
207 ; CHECK-DAG: vldr s12 207 ; CHECK-DAG: vmov.f32 s12
208 ; CHECK-DAG: vldr s13 208 ; CHECK-DAG: vmov.f32 s13
209 ; CHECK: bl {{.*}} float14 209 ; CHECK: bl {{.*}} float14
210 call void @float15(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 210 call void @float15(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
211 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 211 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
212 float 11.0, float 12.0, float 13.0, float 14.0, 212 float 11.0, float 12.0, float 13.0, float 14.0,
213 float 15.0) 213 float 15.0)
214 ; CHECK-DAG: vldr s0 214 ; CHECK-DAG: vmov.f32 s0
215 ; CHECK-DAG: vldr s1 215 ; CHECK-DAG: vmov.f32 s1
216 ; CHECK-DAG: vldr s2 216 ; CHECK-DAG: vmov.f32 s2
217 ; CHECK-DAG: vldr s3 217 ; CHECK-DAG: vmov.f32 s3
218 ; CHECK-DAG: vldr s4 218 ; CHECK-DAG: vmov.f32 s4
219 ; CHECK-DAG: vldr s5 219 ; CHECK-DAG: vmov.f32 s5
220 ; CHECK-DAG: vldr s6 220 ; CHECK-DAG: vmov.f32 s6
221 ; CHECK-DAG: vldr s7 221 ; CHECK-DAG: vmov.f32 s7
222 ; CHECK-DAG: vldr s8 222 ; CHECK-DAG: vmov.f32 s8
223 ; CHECK-DAG: vldr s9 223 ; CHECK-DAG: vmov.f32 s9
224 ; CHECK-DAG: vldr s10 224 ; CHECK-DAG: vmov.f32 s10
225 ; CHECK-DAG: vldr s11 225 ; CHECK-DAG: vmov.f32 s11
226 ; CHECK-DAG: vldr s12 226 ; CHECK-DAG: vmov.f32 s12
227 ; CHECK-DAG: vldr s13 227 ; CHECK-DAG: vmov.f32 s13
228 ; CHECK-DAG: vldr s14 228 ; CHECK-DAG: vmov.f32 s14
229 ; CHECK: bl {{.*}} float15 229 ; CHECK: bl {{.*}} float15
230 call void @float16(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 230 call void @float16(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
231 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 231 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
232 float 11.0, float 12.0, float 13.0, float 14.0, 232 float 11.0, float 12.0, float 13.0, float 14.0,
233 float 15.0, float 16.0) 233 float 15.0, float 16.0)
234 ; CHECK-DAG: vldr s0 234 ; CHECK-DAG: vmov.f32 s0
235 ; CHECK-DAG: vldr s1 235 ; CHECK-DAG: vmov.f32 s1
236 ; CHECK-DAG: vldr s2 236 ; CHECK-DAG: vmov.f32 s2
237 ; CHECK-DAG: vldr s3 237 ; CHECK-DAG: vmov.f32 s3
238 ; CHECK-DAG: vldr s4 238 ; CHECK-DAG: vmov.f32 s4
239 ; CHECK-DAG: vldr s5 239 ; CHECK-DAG: vmov.f32 s5
240 ; CHECK-DAG: vldr s6 240 ; CHECK-DAG: vmov.f32 s6
241 ; CHECK-DAG: vldr s7 241 ; CHECK-DAG: vmov.f32 s7
242 ; CHECK-DAG: vldr s8 242 ; CHECK-DAG: vmov.f32 s8
243 ; CHECK-DAG: vldr s9 243 ; CHECK-DAG: vmov.f32 s9
244 ; CHECK-DAG: vldr s10 244 ; CHECK-DAG: vmov.f32 s10
245 ; CHECK-DAG: vldr s11 245 ; CHECK-DAG: vmov.f32 s11
246 ; CHECK-DAG: vldr s12 246 ; CHECK-DAG: vmov.f32 s12
247 ; CHECK-DAG: vldr s13 247 ; CHECK-DAG: vmov.f32 s13
248 ; CHECK-DAG: vldr s14 248 ; CHECK-DAG: vmov.f32 s14
249 ; CHECK-DAG: vldr s15 249 ; CHECK-DAG: vmov.f32 s15
250 ; CHECK: bl {{.*}} float16 250 ; CHECK: bl {{.*}} float16
251 call void @float17(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 251 call void @float17(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
252 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 252 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
253 float 11.0, float 12.0, float 13.0, float 14.0, 253 float 11.0, float 12.0, float 13.0, float 14.0,
254 float 15.0, float 16.0, float 17.0) 254 float 15.0, float 16.0, float 17.0)
255 ; CHECK-DAG: vldr s0 255 ; CHECK-DAG: vmov.f32 s0
256 ; CHECK-DAG: vldr s1 256 ; CHECK-DAG: vmov.f32 s1
257 ; CHECK-DAG: vldr s2 257 ; CHECK-DAG: vmov.f32 s2
258 ; CHECK-DAG: vldr s3 258 ; CHECK-DAG: vmov.f32 s3
259 ; CHECK-DAG: vldr s4 259 ; CHECK-DAG: vmov.f32 s4
260 ; CHECK-DAG: vldr s5 260 ; CHECK-DAG: vmov.f32 s5
261 ; CHECK-DAG: vldr s6 261 ; CHECK-DAG: vmov.f32 s6
262 ; CHECK-DAG: vldr s7 262 ; CHECK-DAG: vmov.f32 s7
263 ; CHECK-DAG: vldr s8 263 ; CHECK-DAG: vmov.f32 s8
264 ; CHECK-DAG: vldr s9 264 ; CHECK-DAG: vmov.f32 s9
265 ; CHECK-DAG: vldr s10 265 ; CHECK-DAG: vmov.f32 s10
266 ; CHECK-DAG: vldr s11 266 ; CHECK-DAG: vmov.f32 s11
267 ; CHECK-DAG: vldr s12 267 ; CHECK-DAG: vmov.f32 s12
268 ; CHECK-DAG: vldr s13 268 ; CHECK-DAG: vmov.f32 s13
269 ; CHECK-DAG: vldr s14 269 ; CHECK-DAG: vmov.f32 s14
270 ; CHECK-DAG: vldr s15 270 ; CHECK-DAG: vmov.f32 s15
271 ; CHECK-DAG: vstr s{{.*}}, [sp] 271 ; CHECK-DAG: vstr s{{.*}}, [sp]
272 ; CHECK: bl {{.*}} float17 272 ; CHECK: bl {{.*}} float17
273 call void @float18(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, 273 call void @float18(float 1.0, float 2.0, float 3.0, float 4.0, float 5.0,
274 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, 274 float 6.0, float 7.0, float 8.0, float 9.0, float 10.0,
275 float 11.0, float 12.0, float 13.0, float 14.0, 275 float 11.0, float 12.0, float 13.0, float 14.0,
276 float 15.0, float 16.0, float 17.0, float 18.0) 276 float 15.0, float 16.0, float 17.0, float 18.0)
277 ; CHECK-DAG: vldr s0 277 ; CHECK-DAG: vmov.f32 s0
278 ; CHECK-DAG: vldr s1 278 ; CHECK-DAG: vmov.f32 s1
279 ; CHECK-DAG: vldr s2 279 ; CHECK-DAG: vmov.f32 s2
280 ; CHECK-DAG: vldr s3 280 ; CHECK-DAG: vmov.f32 s3
281 ; CHECK-DAG: vldr s4 281 ; CHECK-DAG: vmov.f32 s4
282 ; CHECK-DAG: vldr s5 282 ; CHECK-DAG: vmov.f32 s5
283 ; CHECK-DAG: vldr s6 283 ; CHECK-DAG: vmov.f32 s6
284 ; CHECK-DAG: vldr s7 284 ; CHECK-DAG: vmov.f32 s7
285 ; CHECK-DAG: vldr s8 285 ; CHECK-DAG: vmov.f32 s8
286 ; CHECK-DAG: vldr s9 286 ; CHECK-DAG: vmov.f32 s9
287 ; CHECK-DAG: vldr s10 287 ; CHECK-DAG: vmov.f32 s10
288 ; CHECK-DAG: vldr s11 288 ; CHECK-DAG: vmov.f32 s11
289 ; CHECK-DAG: vldr s12 289 ; CHECK-DAG: vmov.f32 s12
290 ; CHECK-DAG: vldr s13 290 ; CHECK-DAG: vmov.f32 s13
291 ; CHECK-DAG: vldr s14 291 ; CHECK-DAG: vmov.f32 s14
292 ; CHECK-DAG: vldr s15 292 ; CHECK-DAG: vmov.f32 s15
293 ; CHECK-DAG: vstr s{{.*}}, [sp] 293 ; CHECK-DAG: vstr s{{.*}}, [sp]
294 ; CHECK-DAG: vstr s{{.*}}, [sp, #4] 294 ; CHECK-DAG: vstr s{{.*}}, [sp, #4]
295 ; CHECK: bl {{.*}} float18 295 ; CHECK: bl {{.*}} float18
296 ret void 296 ret void
297 } 297 }
298 298
299 declare void @double1(double %p0) 299 declare void @double1(double %p0)
300 declare void @double2(double %p0, double %p1) 300 declare void @double2(double %p0, double %p1)
301 declare void @double3(double %p0, double %p1, double %p2) 301 declare void @double3(double %p0, double %p1, double %p2)
302 declare void @double4(double %p0, double %p1, double %p2, double %p3) 302 declare void @double4(double %p0, double %p1, double %p2, double %p3)
303 declare void @double5(double %p0, double %p1, double %p2, double %p3, 303 declare void @double5(double %p0, double %p1, double %p2, double %p3,
304 double %p4) 304 double %p4)
305 declare void @double6(double %p0, double %p1, double %p2, double %p3, 305 declare void @double6(double %p0, double %p1, double %p2, double %p3,
306 double %p4, double %p5) 306 double %p4, double %p5)
307 declare void @double7(double %p0, double %p1, double %p2, double %p3, 307 declare void @double7(double %p0, double %p1, double %p2, double %p3,
308 double %p4, double %p5, double %p6) 308 double %p4, double %p5, double %p6)
309 declare void @double8(double %p0, double %p1, double %p2, double %p3, 309 declare void @double8(double %p0, double %p1, double %p2, double %p3,
310 double %p4, double %p5, double %p6, double %p7) 310 double %p4, double %p5, double %p6, double %p7)
311 declare void @double9(double %p0, double %p1, double %p2, double %p3, 311 declare void @double9(double %p0, double %p1, double %p2, double %p3,
312 double %p4, double %p5, double %p6, double %p7, 312 double %p4, double %p5, double %p6, double %p7,
313 double %p8) 313 double %p8)
314 declare void @double10(double %p0, double %p1, double %p2, double %p3, 314 declare void @double10(double %p0, double %p1, double %p2, double %p3,
315 double %p4, double %p5, double %p6, double %p7, 315 double %p4, double %p5, double %p6, double %p7,
316 double %p8, double %p9) 316 double %p8, double %p9)
317 define internal void @doubleHarness() nounwind { 317 define internal void @doubleHarness() nounwind {
318 ; CHECK-LABEL: doubleHarness 318 ; CHECK-LABEL: doubleHarness
319 call void @double1(double 1.0) 319 call void @double1(double 1.0)
320 ; CHECK-DAG: vldr d0 320 ; CHECK-DAG: vmov.f64 d0
321 ; CHECK: bl {{.*}} double1 321 ; CHECK: bl {{.*}} double1
322 call void @double2(double 1.0, double 2.0) 322 call void @double2(double 1.0, double 2.0)
323 ; CHECK-DAG: vldr d0 323 ; CHECK-DAG: vmov.f64 d0
324 ; CHECK-DAG: vldr d1 324 ; CHECK-DAG: vmov.f64 d1
325 ; CHECK: bl {{.*}} double2 325 ; CHECK: bl {{.*}} double2
326 call void @double3(double 1.0, double 2.0, double 3.0) 326 call void @double3(double 1.0, double 2.0, double 3.0)
327 ; CHECK-DAG: vldr d0 327 ; CHECK-DAG: vmov.f64 d0
328 ; CHECK-DAG: vldr d1 328 ; CHECK-DAG: vmov.f64 d1
329 ; CHECK-DAG: vldr d2 329 ; CHECK-DAG: vmov.f64 d2
330 ; CHECK: bl {{.*}} double3 330 ; CHECK: bl {{.*}} double3
331 call void @double4(double 1.0, double 2.0, double 3.0, double 4.0) 331 call void @double4(double 1.0, double 2.0, double 3.0, double 4.0)
332 ; CHECK-DAG: vldr d0 332 ; CHECK-DAG: vmov.f64 d0
333 ; CHECK-DAG: vldr d1 333 ; CHECK-DAG: vmov.f64 d1
334 ; CHECK-DAG: vldr d2 334 ; CHECK-DAG: vmov.f64 d2
335 ; CHECK-DAG: vldr d3 335 ; CHECK-DAG: vmov.f64 d3
336 ; CHECK: bl {{.*}} double4 336 ; CHECK: bl {{.*}} double4
337 call void @double5(double 1.0, double 2.0, double 3.0, double 4.0, 337 call void @double5(double 1.0, double 2.0, double 3.0, double 4.0,
338 double 5.0) 338 double 5.0)
339 ; CHECK-DAG: vldr d0 339 ; CHECK-DAG: vmov.f64 d0
340 ; CHECK-DAG: vldr d1 340 ; CHECK-DAG: vmov.f64 d1
341 ; CHECK-DAG: vldr d2 341 ; CHECK-DAG: vmov.f64 d2
342 ; CHECK-DAG: vldr d3 342 ; CHECK-DAG: vmov.f64 d3
343 ; CHECK-DAG: vldr d4 343 ; CHECK-DAG: vmov.f64 d4
344 ; CHECK: bl {{.*}} double5 344 ; CHECK: bl {{.*}} double5
345 call void @double6(double 1.0, double 2.0, double 3.0, double 4.0, 345 call void @double6(double 1.0, double 2.0, double 3.0, double 4.0,
346 double 5.0, double 6.0) 346 double 5.0, double 6.0)
347 ; CHECK-DAG: vldr d0 347 ; CHECK-DAG: vmov.f64 d0
348 ; CHECK-DAG: vldr d1 348 ; CHECK-DAG: vmov.f64 d1
349 ; CHECK-DAG: vldr d2 349 ; CHECK-DAG: vmov.f64 d2
350 ; CHECK-DAG: vldr d3 350 ; CHECK-DAG: vmov.f64 d3
351 ; CHECK-DAG: vldr d4 351 ; CHECK-DAG: vmov.f64 d4
352 ; CHECK-DAG: vldr d5 352 ; CHECK-DAG: vmov.f64 d5
353 ; CHECK: bl {{.*}} double6 353 ; CHECK: bl {{.*}} double6
354 call void @double7(double 1.0, double 2.0, double 3.0, double 4.0, 354 call void @double7(double 1.0, double 2.0, double 3.0, double 4.0,
355 double 5.0, double 6.0, double 7.0) 355 double 5.0, double 6.0, double 7.0)
356 ; CHECK-DAG: vldr d0 356 ; CHECK-DAG: vmov.f64 d0
357 ; CHECK-DAG: vldr d1 357 ; CHECK-DAG: vmov.f64 d1
358 ; CHECK-DAG: vldr d2 358 ; CHECK-DAG: vmov.f64 d2
359 ; CHECK-DAG: vldr d3 359 ; CHECK-DAG: vmov.f64 d3
360 ; CHECK-DAG: vldr d4 360 ; CHECK-DAG: vmov.f64 d4
361 ; CHECK-DAG: vldr d5 361 ; CHECK-DAG: vmov.f64 d5
362 ; CHECK-DAG: vldr d6 362 ; CHECK-DAG: vmov.f64 d6
363 ; CHECK: bl {{.*}} double7 363 ; CHECK: bl {{.*}} double7
364 call void @double8(double 1.0, double 2.0, double 3.0, double 4.0, 364 call void @double8(double 1.0, double 2.0, double 3.0, double 4.0,
365 double 5.0, double 6.0, double 7.0, double 8.0) 365 double 5.0, double 6.0, double 7.0, double 8.0)
366 ; CHECK-DAG: vldr d0 366 ; CHECK-DAG: vmov.f64 d0
367 ; CHECK-DAG: vldr d1 367 ; CHECK-DAG: vmov.f64 d1
368 ; CHECK-DAG: vldr d2 368 ; CHECK-DAG: vmov.f64 d2
369 ; CHECK-DAG: vldr d3 369 ; CHECK-DAG: vmov.f64 d3
370 ; CHECK-DAG: vldr d4 370 ; CHECK-DAG: vmov.f64 d4
371 ; CHECK-DAG: vldr d5 371 ; CHECK-DAG: vmov.f64 d5
372 ; CHECK-DAG: vldr d6 372 ; CHECK-DAG: vmov.f64 d6
373 ; CHECK-DAG: vldr d7 373 ; CHECK-DAG: vmov.f64 d7
374 ; CHECK: bl {{.*}} double8 374 ; CHECK: bl {{.*}} double8
375 call void @double9(double 1.0, double 2.0, double 3.0, double 4.0, 375 call void @double9(double 1.0, double 2.0, double 3.0, double 4.0,
376 double 5.0, double 6.0, double 7.0, double 8.0, 376 double 5.0, double 6.0, double 7.0, double 8.0,
377 double 9.0) 377 double 9.0)
378 ; CHECK-DAG: vldr d0 378 ; CHECK-DAG: vmov.f64 d0
379 ; CHECK-DAG: vldr d1 379 ; CHECK-DAG: vmov.f64 d1
380 ; CHECK-DAG: vldr d2 380 ; CHECK-DAG: vmov.f64 d2
381 ; CHECK-DAG: vldr d3 381 ; CHECK-DAG: vmov.f64 d3
382 ; CHECK-DAG: vldr d4 382 ; CHECK-DAG: vmov.f64 d4
383 ; CHECK-DAG: vldr d5 383 ; CHECK-DAG: vmov.f64 d5
384 ; CHECK-DAG: vldr d6 384 ; CHECK-DAG: vmov.f64 d6
385 ; CHECK-DAG: vldr d7 385 ; CHECK-DAG: vmov.f64 d7
386 ; CHECK-DAG: vstr d{{.*}}, [sp] 386 ; CHECK-DAG: vstr d{{.*}}, [sp]
387 ; CHECK: bl {{.*}} double9 387 ; CHECK: bl {{.*}} double9
388 call void @double10(double 1.0, double 2.0, double 3.0, double 4.0, 388 call void @double10(double 1.0, double 2.0, double 3.0, double 4.0,
389 double 5.0, double 6.0, double 7.0, double 8.0, 389 double 5.0, double 6.0, double 7.0, double 8.0,
390 double 9.0, double 10.0) 390 double 9.0, double 10.0)
391 ; CHECK-DAG: vldr d0 391 ; CHECK-DAG: vmov.f64 d0
392 ; CHECK-DAG: vldr d1 392 ; CHECK-DAG: vmov.f64 d1
393 ; CHECK-DAG: vldr d2 393 ; CHECK-DAG: vmov.f64 d2
394 ; CHECK-DAG: vldr d3 394 ; CHECK-DAG: vmov.f64 d3
395 ; CHECK-DAG: vldr d4 395 ; CHECK-DAG: vmov.f64 d4
396 ; CHECK-DAG: vldr d5 396 ; CHECK-DAG: vmov.f64 d5
397 ; CHECK-DAG: vldr d6 397 ; CHECK-DAG: vmov.f64 d6
398 ; CHECK-DAG: vldr d7 398 ; CHECK-DAG: vmov.f64 d7
399 ; CHECK-DAG: vstr d{{.*}}, [sp] 399 ; CHECK-DAG: vstr d{{.*}}, [sp]
400 ; CHECK-DAG: vstr d{{.*}}, [sp, #8] 400 ; CHECK-DAG: vstr d{{.*}}, [sp, #8]
401 ; CHECK: bl {{.*}} double10 401 ; CHECK: bl {{.*}} double10
402 402
403 ret void 403 ret void
404 } 404 }
405 405
406 declare void @testFDF(float %p0, double %p1, float %p2) 406 declare void @testFDF(float %p0, double %p1, float %p2)
407 declare void @testFDDF(float %p0, double %p1, double %p2, float %p3) 407 declare void @testFDDF(float %p0, double %p1, double %p2, float %p3)
408 declare void @testFDDDF(float %p0, double %p1, double %p2, double %p3, 408 declare void @testFDDDF(float %p0, double %p1, double %p2, double %p3,
(...skipping 18 matching lines...) Expand all
427 double %p8, double %p9, float %p10) 427 double %p8, double %p9, float %p10)
428 declare void @testFDDDDDDDDFD(float %p0, double %p1, double %p2, double %p3, 428 declare void @testFDDDDDDDDFD(float %p0, double %p1, double %p2, double %p3,
429 double %p4, double %p5, double %p6, double %p7, 429 double %p4, double %p5, double %p6, double %p7,
430 double %p8, float %p9, double %p10) 430 double %p8, float %p9, double %p10)
431 declare void @testFDDDDDDDDFDF(float %p0, double %p1, double %p2, double %p3, 431 declare void @testFDDDDDDDDFDF(float %p0, double %p1, double %p2, double %p3,
432 double %p4, double %p5, double %p6, double %p7, 432 double %p4, double %p5, double %p6, double %p7,
433 double %p8, float %p9, double %p10, float %p11) 433 double %p8, float %p9, double %p10, float %p11)
434 define internal void @packsFloats() nounwind { 434 define internal void @packsFloats() nounwind {
435 ; CHECK-LABEL: packsFloats 435 ; CHECK-LABEL: packsFloats
436 call void @testFDF(float 1.0, double 2.0, float 3.0) 436 call void @testFDF(float 1.0, double 2.0, float 3.0)
437 ; CHECK-DAG: vldr s0 437 ; CHECK-DAG: vmov.f32 s0
438 ; CHECK-DAG: vldr d1 438 ; CHECK-DAG: vmov.f64 d1
439 ; CHECK-DAG: vldr s1 439 ; CHECK-DAG: vmov.f32 s1
440 ; CHECK: bl {{.*}} testFDF 440 ; CHECK: bl {{.*}} testFDF
441 call void @testFDDF(float 1.0, double 2.0, double 3.0, float 4.0) 441 call void @testFDDF(float 1.0, double 2.0, double 3.0, float 4.0)
442 ; CHECK-DAG: vldr s0 442 ; CHECK-DAG: vmov.f32 s0
443 ; CHECK-DAG: vldr d1 443 ; CHECK-DAG: vmov.f64 d1
444 ; CHECK-DAG: vldr d2 444 ; CHECK-DAG: vmov.f64 d2
445 ; CHECK-DAG: vldr s1 445 ; CHECK-DAG: vmov.f32 s1
446 ; CHECK: bl {{.*}} testFDDF 446 ; CHECK: bl {{.*}} testFDDF
447 call void @testFDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 447 call void @testFDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
448 float 5.0) 448 float 5.0)
449 ; CHECK-DAG: vldr s0 449 ; CHECK-DAG: vmov.f32 s0
450 ; CHECK-DAG: vldr d1 450 ; CHECK-DAG: vmov.f64 d1
451 ; CHECK-DAG: vldr d2 451 ; CHECK-DAG: vmov.f64 d2
452 ; CHECK-DAG: vldr d3 452 ; CHECK-DAG: vmov.f64 d3
453 ; CHECK-DAG: vldr s1 453 ; CHECK-DAG: vmov.f32 s1
454 ; CHECK: bl {{.*}} testFDDDF 454 ; CHECK: bl {{.*}} testFDDDF
455 call void @testFDDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 455 call void @testFDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
456 double 5.0, float 6.0) 456 double 5.0, float 6.0)
457 ; CHECK-DAG: vldr s0 457 ; CHECK-DAG: vmov.f32 s0
458 ; CHECK-DAG: vldr d1 458 ; CHECK-DAG: vmov.f64 d1
459 ; CHECK-DAG: vldr d2 459 ; CHECK-DAG: vmov.f64 d2
460 ; CHECK-DAG: vldr d3 460 ; CHECK-DAG: vmov.f64 d3
461 ; CHECK-DAG: vldr d4 461 ; CHECK-DAG: vmov.f64 d4
462 ; CHECK-DAG: vldr s1 462 ; CHECK-DAG: vmov.f32 s1
463 ; CHECK: bl {{.*}} testFDDDDF 463 ; CHECK: bl {{.*}} testFDDDDF
464 call void @testFDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 464 call void @testFDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
465 double 5.0, double 6.0, float 7.0) 465 double 5.0, double 6.0, float 7.0)
466 ; CHECK-DAG: vldr s0 466 ; CHECK-DAG: vmov.f32 s0
467 ; CHECK-DAG: vldr d1 467 ; CHECK-DAG: vmov.f64 d1
468 ; CHECK-DAG: vldr d2 468 ; CHECK-DAG: vmov.f64 d2
469 ; CHECK-DAG: vldr d3 469 ; CHECK-DAG: vmov.f64 d3
470 ; CHECK-DAG: vldr d4 470 ; CHECK-DAG: vmov.f64 d4
471 ; CHECK-DAG: vldr d5 471 ; CHECK-DAG: vmov.f64 d5
472 ; CHECK-DAG: vldr s1 472 ; CHECK-DAG: vmov.f32 s1
473 ; CHECK: bl {{.*}} testFDDDDDF 473 ; CHECK: bl {{.*}} testFDDDDDF
474 call void @testFDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 474 call void @testFDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
475 double 5.0, double 6.0, double 7.0, float 8.0) 475 double 5.0, double 6.0, double 7.0, float 8.0)
476 ; CHECK-DAG: vldr s0 476 ; CHECK-DAG: vmov.f32 s0
477 ; CHECK-DAG: vldr d1 477 ; CHECK-DAG: vmov.f64 d1
478 ; CHECK-DAG: vldr d2 478 ; CHECK-DAG: vmov.f64 d2
479 ; CHECK-DAG: vldr d3 479 ; CHECK-DAG: vmov.f64 d3
480 ; CHECK-DAG: vldr d4 480 ; CHECK-DAG: vmov.f64 d4
481 ; CHECK-DAG: vldr d5 481 ; CHECK-DAG: vmov.f64 d5
482 ; CHECK-DAG: vldr d6 482 ; CHECK-DAG: vmov.f64 d6
483 ; CHECK-DAG: vldr s1 483 ; CHECK-DAG: vmov.f32 s1
484 ; CHECK: bl {{.*}} testFDDDDDDF 484 ; CHECK: bl {{.*}} testFDDDDDDF
485 call void @testFDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 485 call void @testFDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
486 double 5.0, double 6.0, double 7.0, double 8.0, 486 double 5.0, double 6.0, double 7.0, double 8.0,
487 float 9.0) 487 float 9.0)
488 ; CHECK-DAG: vldr s0 488 ; CHECK-DAG: vmov.f32 s0
489 ; CHECK-DAG: vldr d1 489 ; CHECK-DAG: vmov.f64 d1
490 ; CHECK-DAG: vldr d2 490 ; CHECK-DAG: vmov.f64 d2
491 ; CHECK-DAG: vldr d3 491 ; CHECK-DAG: vmov.f64 d3
492 ; CHECK-DAG: vldr d4 492 ; CHECK-DAG: vmov.f64 d4
493 ; CHECK-DAG: vldr d5 493 ; CHECK-DAG: vmov.f64 d5
494 ; CHECK-DAG: vldr d6 494 ; CHECK-DAG: vmov.f64 d6
495 ; CHECK-DAG: vldr d7 495 ; CHECK-DAG: vmov.f64 d7
496 ; CHECK-DAG: vldr s1 496 ; CHECK-DAG: vmov.f32 s1
497 ; CHECK: bl {{.*}} testFDDDDDDDF 497 ; CHECK: bl {{.*}} testFDDDDDDDF
498 call void @testFDDDDDDDFD(float 1.0, double 2.0, double 3.0, double 4.0, 498 call void @testFDDDDDDDFD(float 1.0, double 2.0, double 3.0, double 4.0,
499 double 5.0, double 6.0, double 7.0, double 8.0, 499 double 5.0, double 6.0, double 7.0, double 8.0,
500 float 9.0, double 10.0) 500 float 9.0, double 10.0)
501 ; CHECK-DAG: vldr s0 501 ; CHECK-DAG: vmov.f32 s0
502 ; CHECK-DAG: vldr d1 502 ; CHECK-DAG: vmov.f64 d1
503 ; CHECK-DAG: vldr d2 503 ; CHECK-DAG: vmov.f64 d2
504 ; CHECK-DAG: vldr d3 504 ; CHECK-DAG: vmov.f64 d3
505 ; CHECK-DAG: vldr d4 505 ; CHECK-DAG: vmov.f64 d4
506 ; CHECK-DAG: vldr d5 506 ; CHECK-DAG: vmov.f64 d5
507 ; CHECK-DAG: vldr d6 507 ; CHECK-DAG: vmov.f64 d6
508 ; CHECK-DAG: vldr d7 508 ; CHECK-DAG: vmov.f64 d7
509 ; CHECK-DAG: vstr d{{.*}}, [sp] 509 ; CHECK-DAG: vstr d{{.*}}, [sp]
510 ; CHECK-DAG: vldr s1 510 ; CHECK-DAG: vmov.f32 s1
511 ; CHECK: bl {{.*}} testFDDDDDDDFD 511 ; CHECK: bl {{.*}} testFDDDDDDDFD
512 call void @testFDDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 512 call void @testFDDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
513 double 5.0, double 6.0, double 7.0, double 8.0, 513 double 5.0, double 6.0, double 7.0, double 8.0,
514 double 9.0, float 10.0) 514 double 9.0, float 10.0)
515 ; CHECK-DAG: vldr s0 515 ; CHECK-DAG: vmov.f32 s0
516 ; CHECK-DAG: vldr d1 516 ; CHECK-DAG: vmov.f64 d1
517 ; CHECK-DAG: vldr d2 517 ; CHECK-DAG: vmov.f64 d2
518 ; CHECK-DAG: vldr d3 518 ; CHECK-DAG: vmov.f64 d3
519 ; CHECK-DAG: vldr d4 519 ; CHECK-DAG: vmov.f64 d4
520 ; CHECK-DAG: vldr d5 520 ; CHECK-DAG: vmov.f64 d5
521 ; CHECK-DAG: vldr d6 521 ; CHECK-DAG: vmov.f64 d6
522 ; CHECK-DAG: vldr d7 522 ; CHECK-DAG: vmov.f64 d7
523 ; CHECK-DAG: vstr d{{.*}}, [sp] 523 ; CHECK-DAG: vstr d{{.*}}, [sp]
524 ; CHECK-DAG: vstr s{{.*}}, [sp, #8] 524 ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
525 ; CHECK: bl {{.*}} testFDDDDDDDDF 525 ; CHECK: bl {{.*}} testFDDDDDDDDF
526 call void @testFDDDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0, 526 call void @testFDDDDDDDDDF(float 1.0, double 2.0, double 3.0, double 4.0,
527 double 5.0, double 6.0, double 7.0, double 8.0, 527 double 5.0, double 6.0, double 7.0, double 8.0,
528 double 9.0, double 10.0, float 11.0) 528 double 9.0, double 10.0, float 11.0)
529 ; CHECK-DAG: vldr s0 529 ; CHECK-DAG: vmov.f32 s0
530 ; CHECK-DAG: vldr d1 530 ; CHECK-DAG: vmov.f64 d1
531 ; CHECK-DAG: vldr d2 531 ; CHECK-DAG: vmov.f64 d2
532 ; CHECK-DAG: vldr d3 532 ; CHECK-DAG: vmov.f64 d3
533 ; CHECK-DAG: vldr d4 533 ; CHECK-DAG: vmov.f64 d4
534 ; CHECK-DAG: vldr d5 534 ; CHECK-DAG: vmov.f64 d5
535 ; CHECK-DAG: vldr d6 535 ; CHECK-DAG: vmov.f64 d6
536 ; CHECK-DAG: vldr d7 536 ; CHECK-DAG: vmov.f64 d7
537 ; CHECK-DAG: vstr d{{.*}}, [sp] 537 ; CHECK-DAG: vstr d{{.*}}, [sp]
538 ; CHECK-DAG: vstr d{{.*}}, [sp, #8] 538 ; CHECK-DAG: vstr d{{.*}}, [sp, #8]
539 ; CHECK-DAG: vstr s{{.*}}, [sp, #16] 539 ; CHECK-DAG: vstr s{{.*}}, [sp, #16]
540 ; CHECK: bl {{.*}} testFDDDDDDDDDF 540 ; CHECK: bl {{.*}} testFDDDDDDDDDF
541 call void @testFDDDDDDDDFD(float 1.0, double 2.0, double 3.0, double 4.0, 541 call void @testFDDDDDDDDFD(float 1.0, double 2.0, double 3.0, double 4.0,
542 double 5.0, double 6.0, double 7.0, double 8.0, 542 double 5.0, double 6.0, double 7.0, double 8.0,
543 double 9.0, float 10.0, double 11.0) 543 double 9.0, float 10.0, double 11.0)
544 ; CHECK-DAG: vldr s0 544 ; CHECK-DAG: vmov.f32 s0
545 ; CHECK-DAG: vldr d1 545 ; CHECK-DAG: vmov.f64 d1
546 ; CHECK-DAG: vldr d2 546 ; CHECK-DAG: vmov.f64 d2
547 ; CHECK-DAG: vldr d3 547 ; CHECK-DAG: vmov.f64 d3
548 ; CHECK-DAG: vldr d4 548 ; CHECK-DAG: vmov.f64 d4
549 ; CHECK-DAG: vldr d5 549 ; CHECK-DAG: vmov.f64 d5
550 ; CHECK-DAG: vldr d6 550 ; CHECK-DAG: vmov.f64 d6
551 ; CHECK-DAG: vldr d7 551 ; CHECK-DAG: vmov.f64 d7
552 ; CHECK-DAG: vstr d{{.*}}, [sp] 552 ; CHECK-DAG: vstr d{{.*}}, [sp]
553 ; CHECK-DAG: vstr s{{.*}}, [sp, #8] 553 ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
554 ; CHECK-DAG: vstr d{{.*}}, [sp, #16] 554 ; CHECK-DAG: vstr d{{.*}}, [sp, #16]
555 ; CHECK: bl {{.*}} testFDDDDDDDDFD 555 ; CHECK: bl {{.*}} testFDDDDDDDDFD
556 call void @testFDDDDDDDDFDF(float 1.0, double 2.0, double 3.0, double 4.0, 556 call void @testFDDDDDDDDFDF(float 1.0, double 2.0, double 3.0, double 4.0,
557 double 5.0, double 6.0, double 7.0, double 8.0, 557 double 5.0, double 6.0, double 7.0, double 8.0,
558 double 9.0, float 10.0, double 11.0, float 12.0) 558 double 9.0, float 10.0, double 11.0, float 12.0)
559 ; CHECK-DAG: vldr s0 559 ; CHECK-DAG: vmov.f32 s0
560 ; CHECK-DAG: vldr d1 560 ; CHECK-DAG: vmov.f64 d1
561 ; CHECK-DAG: vldr d2 561 ; CHECK-DAG: vmov.f64 d2
562 ; CHECK-DAG: vldr d3 562 ; CHECK-DAG: vmov.f64 d3
563 ; CHECK-DAG: vldr d4 563 ; CHECK-DAG: vmov.f64 d4
564 ; CHECK-DAG: vldr d5 564 ; CHECK-DAG: vmov.f64 d5
565 ; CHECK-DAG: vldr d6 565 ; CHECK-DAG: vmov.f64 d6
566 ; CHECK-DAG: vldr d7 566 ; CHECK-DAG: vmov.f64 d7
567 ; CHECK-DAG: vstr d{{.*}}, [sp] 567 ; CHECK-DAG: vstr d{{.*}}, [sp]
568 ; CHECK-DAG: vstr s{{.*}}, [sp, #8] 568 ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
569 ; CHECK-DAG: vstr d{{.*}}, [sp, #16] 569 ; CHECK-DAG: vstr d{{.*}}, [sp, #16]
570 ; CHECK-DAG: vstr s{{.*}}, [sp, #24] 570 ; CHECK-DAG: vstr s{{.*}}, [sp, #24]
571 ; CHECK: bl {{.*}} testFDDDDDDDDFD 571 ; CHECK: bl {{.*}} testFDDDDDDDDFD
572 572
573 ret void 573 ret void
574 } 574 }
575 575
576 ; TODO(jpp): add tests for stack alignment. 576 ; TODO(jpp): add tests for stack alignment.
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/bool-folding.ll ('k') | tests_lit/llvm2ice_tests/unreachable.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698