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

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

Issue 1745393002: Subzero. ARM32. Reverts cl 1687553002. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 9 months 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/fp.arith.ll ('k') | tests_lit/llvm2ice_tests/fp.cmp.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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
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: vmov.f32 s0 65 ; CHECK-DAG: vmov.f32 s0
66 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float1 66 ; CHECK: bl {{.*}} float1
67 ; CHECK-DAG: movt [[CALL]]
68 ; CHECK: blx [[CALL]]
69 call void @float2(float 1.0, float 2.0) 67 call void @float2(float 1.0, float 2.0)
70 ; CHECK-DAG: vmov.f32 s0 68 ; CHECK-DAG: vmov.f32 s0
71 ; CHECK-DAG: vmov.f32 s1 69 ; CHECK-DAG: vmov.f32 s1
72 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float2 70 ; CHECK: bl {{.*}} float2
73 ; CHECK-DAG: movt [[CALL]]
74 ; CHECK: blx [[CALL]]
75 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)
76 ; CHECK-DAG: vmov.f32 s0 72 ; CHECK-DAG: vmov.f32 s0
77 ; CHECK-DAG: vmov.f32 s1 73 ; CHECK-DAG: vmov.f32 s1
78 ; CHECK-DAG: vmov.f32 s2 74 ; CHECK-DAG: vmov.f32 s2
79 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float3 75 ; CHECK: bl {{.*}} float3
80 ; CHECK-DAG: movt [[CALL]]
81 ; CHECK: blx [[CALL]]
82 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)
83 ; CHECK-DAG: vmov.f32 s0 77 ; CHECK-DAG: vmov.f32 s0
84 ; CHECK-DAG: vmov.f32 s1 78 ; CHECK-DAG: vmov.f32 s1
85 ; CHECK-DAG: vmov.f32 s2 79 ; CHECK-DAG: vmov.f32 s2
86 ; CHECK-DAG: vmov.f32 s3 80 ; CHECK-DAG: vmov.f32 s3
87 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float4 81 ; CHECK: bl {{.*}} float4
88 ; CHECK-DAG: movt [[CALL]]
89 ; CHECK: blx [[CALL]]
90 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)
91 ; CHECK-DAG: vmov.f32 s0 83 ; CHECK-DAG: vmov.f32 s0
92 ; CHECK-DAG: vmov.f32 s1 84 ; CHECK-DAG: vmov.f32 s1
93 ; CHECK-DAG: vmov.f32 s2 85 ; CHECK-DAG: vmov.f32 s2
94 ; CHECK-DAG: vmov.f32 s3 86 ; CHECK-DAG: vmov.f32 s3
95 ; CHECK-DAG: vmov.f32 s4 87 ; CHECK-DAG: vmov.f32 s4
96 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float5 88 ; CHECK: bl {{.*}} float5
97 ; CHECK-DAG: movt [[CALL]]
98 ; CHECK: blx [[CALL]]
99 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,
100 float 6.0) 90 float 6.0)
101 ; CHECK-DAG: vmov.f32 s0 91 ; CHECK-DAG: vmov.f32 s0
102 ; CHECK-DAG: vmov.f32 s1 92 ; CHECK-DAG: vmov.f32 s1
103 ; CHECK-DAG: vmov.f32 s2 93 ; CHECK-DAG: vmov.f32 s2
104 ; CHECK-DAG: vmov.f32 s3 94 ; CHECK-DAG: vmov.f32 s3
105 ; CHECK-DAG: vmov.f32 s4 95 ; CHECK-DAG: vmov.f32 s4
106 ; CHECK-DAG: vmov.f32 s5 96 ; CHECK-DAG: vmov.f32 s5
107 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float6 97 ; CHECK: bl {{.*}} float6
108 ; CHECK-DAG: movt [[CALL]]
109 ; CHECK: blx [[CALL]]
110 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,
111 float 6.0, float 7.0) 99 float 6.0, float 7.0)
112 ; CHECK-DAG: vmov.f32 s0 100 ; CHECK-DAG: vmov.f32 s0
113 ; CHECK-DAG: vmov.f32 s1 101 ; CHECK-DAG: vmov.f32 s1
114 ; CHECK-DAG: vmov.f32 s2 102 ; CHECK-DAG: vmov.f32 s2
115 ; CHECK-DAG: vmov.f32 s3 103 ; CHECK-DAG: vmov.f32 s3
116 ; CHECK-DAG: vmov.f32 s4 104 ; CHECK-DAG: vmov.f32 s4
117 ; CHECK-DAG: vmov.f32 s5 105 ; CHECK-DAG: vmov.f32 s5
118 ; CHECK-DAG: vmov.f32 s6 106 ; CHECK-DAG: vmov.f32 s6
119 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float7 107 ; CHECK: bl {{.*}} float7
120 ; CHECK-DAG: movt [[CALL]]
121 ; CHECK: blx [[CALL]]
122 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,
123 float 6.0, float 7.0, float 8.0) 109 float 6.0, float 7.0, float 8.0)
124 ; CHECK-DAG: vmov.f32 s0 110 ; CHECK-DAG: vmov.f32 s0
125 ; CHECK-DAG: vmov.f32 s1 111 ; CHECK-DAG: vmov.f32 s1
126 ; CHECK-DAG: vmov.f32 s2 112 ; CHECK-DAG: vmov.f32 s2
127 ; CHECK-DAG: vmov.f32 s3 113 ; CHECK-DAG: vmov.f32 s3
128 ; CHECK-DAG: vmov.f32 s4 114 ; CHECK-DAG: vmov.f32 s4
129 ; CHECK-DAG: vmov.f32 s5 115 ; CHECK-DAG: vmov.f32 s5
130 ; CHECK-DAG: vmov.f32 s6 116 ; CHECK-DAG: vmov.f32 s6
131 ; CHECK-DAG: vmov.f32 s7 117 ; CHECK-DAG: vmov.f32 s7
132 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float8 118 ; CHECK: bl {{.*}} float8
133 ; CHECK-DAG: movt [[CALL]]
134 ; CHECK: blx [[CALL]]
135 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,
136 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)
137 ; CHECK-DAG: vmov.f32 s0 121 ; CHECK-DAG: vmov.f32 s0
138 ; CHECK-DAG: vmov.f32 s1 122 ; CHECK-DAG: vmov.f32 s1
139 ; CHECK-DAG: vmov.f32 s2 123 ; CHECK-DAG: vmov.f32 s2
140 ; CHECK-DAG: vmov.f32 s3 124 ; CHECK-DAG: vmov.f32 s3
141 ; CHECK-DAG: vmov.f32 s4 125 ; CHECK-DAG: vmov.f32 s4
142 ; CHECK-DAG: vmov.f32 s5 126 ; CHECK-DAG: vmov.f32 s5
143 ; CHECK-DAG: vmov.f32 s6 127 ; CHECK-DAG: vmov.f32 s6
144 ; CHECK-DAG: vmov.f32 s7 128 ; CHECK-DAG: vmov.f32 s7
145 ; CHECK-DAG: vmov.f32 s8 129 ; CHECK-DAG: vmov.f32 s8
146 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float9 130 ; CHECK: bl {{.*}} float9
147 ; CHECK-DAG: movt [[CALL]]
148 ; CHECK: blx [[CALL]]
149 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,
150 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)
151 ; CHECK-DAG: vmov.f32 s0 133 ; CHECK-DAG: vmov.f32 s0
152 ; CHECK-DAG: vmov.f32 s1 134 ; CHECK-DAG: vmov.f32 s1
153 ; CHECK-DAG: vmov.f32 s2 135 ; CHECK-DAG: vmov.f32 s2
154 ; CHECK-DAG: vmov.f32 s3 136 ; CHECK-DAG: vmov.f32 s3
155 ; CHECK-DAG: vmov.f32 s4 137 ; CHECK-DAG: vmov.f32 s4
156 ; CHECK-DAG: vmov.f32 s5 138 ; CHECK-DAG: vmov.f32 s5
157 ; CHECK-DAG: vmov.f32 s6 139 ; CHECK-DAG: vmov.f32 s6
158 ; CHECK-DAG: vmov.f32 s7 140 ; CHECK-DAG: vmov.f32 s7
159 ; CHECK-DAG: vmov.f32 s8 141 ; CHECK-DAG: vmov.f32 s8
160 ; CHECK-DAG: vmov.f32 s9 142 ; CHECK-DAG: vmov.f32 s9
161 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float10 143 ; CHECK: bl {{.*}} float10
162 ; CHECK-DAG: movt [[CALL]]
163 ; CHECK: blx [[CALL]]
164 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,
165 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,
166 float 11.0) 146 float 11.0)
167 ; CHECK-DAG: vmov.f32 s0 147 ; CHECK-DAG: vmov.f32 s0
168 ; CHECK-DAG: vmov.f32 s1 148 ; CHECK-DAG: vmov.f32 s1
169 ; CHECK-DAG: vmov.f32 s2 149 ; CHECK-DAG: vmov.f32 s2
170 ; CHECK-DAG: vmov.f32 s3 150 ; CHECK-DAG: vmov.f32 s3
171 ; CHECK-DAG: vmov.f32 s4 151 ; CHECK-DAG: vmov.f32 s4
172 ; CHECK-DAG: vmov.f32 s5 152 ; CHECK-DAG: vmov.f32 s5
173 ; CHECK-DAG: vmov.f32 s6 153 ; CHECK-DAG: vmov.f32 s6
174 ; CHECK-DAG: vmov.f32 s7 154 ; CHECK-DAG: vmov.f32 s7
175 ; CHECK-DAG: vmov.f32 s8 155 ; CHECK-DAG: vmov.f32 s8
176 ; CHECK-DAG: vmov.f32 s9 156 ; CHECK-DAG: vmov.f32 s9
177 ; CHECK-DAG: vmov.f32 s10 157 ; CHECK-DAG: vmov.f32 s10
178 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float11 158 ; CHECK: bl {{.*}} float11
179 ; CHECK-DAG: movt [[CALL]]
180 ; CHECK: blx [[CALL]]
181 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,
182 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,
183 float 11.0, float 12.0) 161 float 11.0, float 12.0)
184 ; CHECK-DAG: vmov.f32 s0 162 ; CHECK-DAG: vmov.f32 s0
185 ; CHECK-DAG: vmov.f32 s1 163 ; CHECK-DAG: vmov.f32 s1
186 ; CHECK-DAG: vmov.f32 s2 164 ; CHECK-DAG: vmov.f32 s2
187 ; CHECK-DAG: vmov.f32 s3 165 ; CHECK-DAG: vmov.f32 s3
188 ; CHECK-DAG: vmov.f32 s4 166 ; CHECK-DAG: vmov.f32 s4
189 ; CHECK-DAG: vmov.f32 s5 167 ; CHECK-DAG: vmov.f32 s5
190 ; CHECK-DAG: vmov.f32 s6 168 ; CHECK-DAG: vmov.f32 s6
191 ; CHECK-DAG: vmov.f32 s7 169 ; CHECK-DAG: vmov.f32 s7
192 ; CHECK-DAG: vmov.f32 s8 170 ; CHECK-DAG: vmov.f32 s8
193 ; CHECK-DAG: vmov.f32 s9 171 ; CHECK-DAG: vmov.f32 s9
194 ; CHECK-DAG: vmov.f32 s10 172 ; CHECK-DAG: vmov.f32 s10
195 ; CHECK-DAG: vmov.f32 s11 173 ; CHECK-DAG: vmov.f32 s11
196 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float12 174 ; CHECK: bl {{.*}} float12
197 ; CHECK-DAG: movt [[CALL]]
198 ; CHECK: blx [[CALL]]
199 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,
200 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,
201 float 11.0, float 12.0, float 13.0) 177 float 11.0, float 12.0, float 13.0)
202 ; CHECK-DAG: vmov.f32 s0 178 ; CHECK-DAG: vmov.f32 s0
203 ; CHECK-DAG: vmov.f32 s1 179 ; CHECK-DAG: vmov.f32 s1
204 ; CHECK-DAG: vmov.f32 s2 180 ; CHECK-DAG: vmov.f32 s2
205 ; CHECK-DAG: vmov.f32 s3 181 ; CHECK-DAG: vmov.f32 s3
206 ; CHECK-DAG: vmov.f32 s4 182 ; CHECK-DAG: vmov.f32 s4
207 ; CHECK-DAG: vmov.f32 s5 183 ; CHECK-DAG: vmov.f32 s5
208 ; CHECK-DAG: vmov.f32 s6 184 ; CHECK-DAG: vmov.f32 s6
209 ; CHECK-DAG: vmov.f32 s7 185 ; CHECK-DAG: vmov.f32 s7
210 ; CHECK-DAG: vmov.f32 s8 186 ; CHECK-DAG: vmov.f32 s8
211 ; CHECK-DAG: vmov.f32 s9 187 ; CHECK-DAG: vmov.f32 s9
212 ; CHECK-DAG: vmov.f32 s10 188 ; CHECK-DAG: vmov.f32 s10
213 ; CHECK-DAG: vmov.f32 s11 189 ; CHECK-DAG: vmov.f32 s11
214 ; CHECK-DAG: vmov.f32 s12 190 ; CHECK-DAG: vmov.f32 s12
215 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float13 191 ; CHECK: bl {{.*}} float13
216 ; CHECK-DAG: movt [[CALL]]
217 ; CHECK: blx [[CALL]]
218 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,
219 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,
220 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)
221 ; CHECK-DAG: vmov.f32 s0 195 ; CHECK-DAG: vmov.f32 s0
222 ; CHECK-DAG: vmov.f32 s1 196 ; CHECK-DAG: vmov.f32 s1
223 ; CHECK-DAG: vmov.f32 s2 197 ; CHECK-DAG: vmov.f32 s2
224 ; CHECK-DAG: vmov.f32 s3 198 ; CHECK-DAG: vmov.f32 s3
225 ; CHECK-DAG: vmov.f32 s4 199 ; CHECK-DAG: vmov.f32 s4
226 ; CHECK-DAG: vmov.f32 s5 200 ; CHECK-DAG: vmov.f32 s5
227 ; CHECK-DAG: vmov.f32 s6 201 ; CHECK-DAG: vmov.f32 s6
228 ; CHECK-DAG: vmov.f32 s7 202 ; CHECK-DAG: vmov.f32 s7
229 ; CHECK-DAG: vmov.f32 s8 203 ; CHECK-DAG: vmov.f32 s8
230 ; CHECK-DAG: vmov.f32 s9 204 ; CHECK-DAG: vmov.f32 s9
231 ; CHECK-DAG: vmov.f32 s10 205 ; CHECK-DAG: vmov.f32 s10
232 ; CHECK-DAG: vmov.f32 s11 206 ; CHECK-DAG: vmov.f32 s11
233 ; CHECK-DAG: vmov.f32 s12 207 ; CHECK-DAG: vmov.f32 s12
234 ; CHECK-DAG: vmov.f32 s13 208 ; CHECK-DAG: vmov.f32 s13
235 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float14 209 ; CHECK: bl {{.*}} float14
236 ; CHECK-DAG: movt [[CALL]]
237 ; CHECK: blx [[CALL]]
238 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,
239 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,
240 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,
241 float 15.0) 213 float 15.0)
242 ; CHECK-DAG: vmov.f32 s0 214 ; CHECK-DAG: vmov.f32 s0
243 ; CHECK-DAG: vmov.f32 s1 215 ; CHECK-DAG: vmov.f32 s1
244 ; CHECK-DAG: vmov.f32 s2 216 ; CHECK-DAG: vmov.f32 s2
245 ; CHECK-DAG: vmov.f32 s3 217 ; CHECK-DAG: vmov.f32 s3
246 ; CHECK-DAG: vmov.f32 s4 218 ; CHECK-DAG: vmov.f32 s4
247 ; CHECK-DAG: vmov.f32 s5 219 ; CHECK-DAG: vmov.f32 s5
248 ; CHECK-DAG: vmov.f32 s6 220 ; CHECK-DAG: vmov.f32 s6
249 ; CHECK-DAG: vmov.f32 s7 221 ; CHECK-DAG: vmov.f32 s7
250 ; CHECK-DAG: vmov.f32 s8 222 ; CHECK-DAG: vmov.f32 s8
251 ; CHECK-DAG: vmov.f32 s9 223 ; CHECK-DAG: vmov.f32 s9
252 ; CHECK-DAG: vmov.f32 s10 224 ; CHECK-DAG: vmov.f32 s10
253 ; CHECK-DAG: vmov.f32 s11 225 ; CHECK-DAG: vmov.f32 s11
254 ; CHECK-DAG: vmov.f32 s12 226 ; CHECK-DAG: vmov.f32 s12
255 ; CHECK-DAG: vmov.f32 s13 227 ; CHECK-DAG: vmov.f32 s13
256 ; CHECK-DAG: vmov.f32 s14 228 ; CHECK-DAG: vmov.f32 s14
257 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float15 229 ; CHECK: bl {{.*}} float15
258 ; CHECK-DAG: movt [[CALL]]
259 ; CHECK: blx [[CALL]]
260 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,
261 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,
262 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,
263 float 15.0, float 16.0) 233 float 15.0, float 16.0)
264 ; CHECK-DAG: vmov.f32 s0 234 ; CHECK-DAG: vmov.f32 s0
265 ; CHECK-DAG: vmov.f32 s1 235 ; CHECK-DAG: vmov.f32 s1
266 ; CHECK-DAG: vmov.f32 s2 236 ; CHECK-DAG: vmov.f32 s2
267 ; CHECK-DAG: vmov.f32 s3 237 ; CHECK-DAG: vmov.f32 s3
268 ; CHECK-DAG: vmov.f32 s4 238 ; CHECK-DAG: vmov.f32 s4
269 ; CHECK-DAG: vmov.f32 s5 239 ; CHECK-DAG: vmov.f32 s5
270 ; CHECK-DAG: vmov.f32 s6 240 ; CHECK-DAG: vmov.f32 s6
271 ; CHECK-DAG: vmov.f32 s7 241 ; CHECK-DAG: vmov.f32 s7
272 ; CHECK-DAG: vmov.f32 s8 242 ; CHECK-DAG: vmov.f32 s8
273 ; CHECK-DAG: vmov.f32 s9 243 ; CHECK-DAG: vmov.f32 s9
274 ; CHECK-DAG: vmov.f32 s10 244 ; CHECK-DAG: vmov.f32 s10
275 ; CHECK-DAG: vmov.f32 s11 245 ; CHECK-DAG: vmov.f32 s11
276 ; CHECK-DAG: vmov.f32 s12 246 ; CHECK-DAG: vmov.f32 s12
277 ; CHECK-DAG: vmov.f32 s13 247 ; CHECK-DAG: vmov.f32 s13
278 ; CHECK-DAG: vmov.f32 s14 248 ; CHECK-DAG: vmov.f32 s14
279 ; CHECK-DAG: vmov.f32 s15 249 ; CHECK-DAG: vmov.f32 s15
280 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float16 250 ; CHECK: bl {{.*}} float16
281 ; CHECK-DAG: movt [[CALL]]
282 ; CHECK: blx [[CALL]]
283 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,
284 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,
285 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,
286 float 15.0, float 16.0, float 17.0) 254 float 15.0, float 16.0, float 17.0)
287 ; CHECK-DAG: vmov.f32 s0 255 ; CHECK-DAG: vmov.f32 s0
288 ; CHECK-DAG: vmov.f32 s1 256 ; CHECK-DAG: vmov.f32 s1
289 ; CHECK-DAG: vmov.f32 s2 257 ; CHECK-DAG: vmov.f32 s2
290 ; CHECK-DAG: vmov.f32 s3 258 ; CHECK-DAG: vmov.f32 s3
291 ; CHECK-DAG: vmov.f32 s4 259 ; CHECK-DAG: vmov.f32 s4
292 ; CHECK-DAG: vmov.f32 s5 260 ; CHECK-DAG: vmov.f32 s5
293 ; CHECK-DAG: vmov.f32 s6 261 ; CHECK-DAG: vmov.f32 s6
294 ; CHECK-DAG: vmov.f32 s7 262 ; CHECK-DAG: vmov.f32 s7
295 ; CHECK-DAG: vmov.f32 s8 263 ; CHECK-DAG: vmov.f32 s8
296 ; CHECK-DAG: vmov.f32 s9 264 ; CHECK-DAG: vmov.f32 s9
297 ; CHECK-DAG: vmov.f32 s10 265 ; CHECK-DAG: vmov.f32 s10
298 ; CHECK-DAG: vmov.f32 s11 266 ; CHECK-DAG: vmov.f32 s11
299 ; CHECK-DAG: vmov.f32 s12 267 ; CHECK-DAG: vmov.f32 s12
300 ; CHECK-DAG: vmov.f32 s13 268 ; CHECK-DAG: vmov.f32 s13
301 ; CHECK-DAG: vmov.f32 s14 269 ; CHECK-DAG: vmov.f32 s14
302 ; CHECK-DAG: vmov.f32 s15 270 ; CHECK-DAG: vmov.f32 s15
303 ; CHECK-DAG: vstr s{{.*}}, [sp] 271 ; CHECK-DAG: vstr s{{.*}}, [sp]
304 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float17 272 ; CHECK: bl {{.*}} float17
305 ; CHECK-DAG: movt [[CALL]]
306 ; CHECK: blx [[CALL]]
307 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,
308 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,
309 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,
310 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)
311 ; CHECK-DAG: vmov.f32 s0 277 ; CHECK-DAG: vmov.f32 s0
312 ; CHECK-DAG: vmov.f32 s1 278 ; CHECK-DAG: vmov.f32 s1
313 ; CHECK-DAG: vmov.f32 s2 279 ; CHECK-DAG: vmov.f32 s2
314 ; CHECK-DAG: vmov.f32 s3 280 ; CHECK-DAG: vmov.f32 s3
315 ; CHECK-DAG: vmov.f32 s4 281 ; CHECK-DAG: vmov.f32 s4
316 ; CHECK-DAG: vmov.f32 s5 282 ; CHECK-DAG: vmov.f32 s5
317 ; CHECK-DAG: vmov.f32 s6 283 ; CHECK-DAG: vmov.f32 s6
318 ; CHECK-DAG: vmov.f32 s7 284 ; CHECK-DAG: vmov.f32 s7
319 ; CHECK-DAG: vmov.f32 s8 285 ; CHECK-DAG: vmov.f32 s8
320 ; CHECK-DAG: vmov.f32 s9 286 ; CHECK-DAG: vmov.f32 s9
321 ; CHECK-DAG: vmov.f32 s10 287 ; CHECK-DAG: vmov.f32 s10
322 ; CHECK-DAG: vmov.f32 s11 288 ; CHECK-DAG: vmov.f32 s11
323 ; CHECK-DAG: vmov.f32 s12 289 ; CHECK-DAG: vmov.f32 s12
324 ; CHECK-DAG: vmov.f32 s13 290 ; CHECK-DAG: vmov.f32 s13
325 ; CHECK-DAG: vmov.f32 s14 291 ; CHECK-DAG: vmov.f32 s14
326 ; CHECK-DAG: vmov.f32 s15 292 ; CHECK-DAG: vmov.f32 s15
327 ; CHECK-DAG: vstr s{{.*}}, [sp] 293 ; CHECK-DAG: vstr s{{.*}}, [sp]
328 ; CHECK-DAG: vstr s{{.*}}, [sp, #4] 294 ; CHECK-DAG: vstr s{{.*}}, [sp, #4]
329 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} float18 295 ; CHECK: bl {{.*}} float18
330 ; CHECK-DAG: movt [[CALL]]
331 ; CHECK: blx [[CALL]]
332 ret void 296 ret void
333 } 297 }
334 298
335 declare void @double1(double %p0) 299 declare void @double1(double %p0)
336 declare void @double2(double %p0, double %p1) 300 declare void @double2(double %p0, double %p1)
337 declare void @double3(double %p0, double %p1, double %p2) 301 declare void @double3(double %p0, double %p1, double %p2)
338 declare void @double4(double %p0, double %p1, double %p2, double %p3) 302 declare void @double4(double %p0, double %p1, double %p2, double %p3)
339 declare void @double5(double %p0, double %p1, double %p2, double %p3, 303 declare void @double5(double %p0, double %p1, double %p2, double %p3,
340 double %p4) 304 double %p4)
341 declare void @double6(double %p0, double %p1, double %p2, double %p3, 305 declare void @double6(double %p0, double %p1, double %p2, double %p3,
342 double %p4, double %p5) 306 double %p4, double %p5)
343 declare void @double7(double %p0, double %p1, double %p2, double %p3, 307 declare void @double7(double %p0, double %p1, double %p2, double %p3,
344 double %p4, double %p5, double %p6) 308 double %p4, double %p5, double %p6)
345 declare void @double8(double %p0, double %p1, double %p2, double %p3, 309 declare void @double8(double %p0, double %p1, double %p2, double %p3,
346 double %p4, double %p5, double %p6, double %p7) 310 double %p4, double %p5, double %p6, double %p7)
347 declare void @double9(double %p0, double %p1, double %p2, double %p3, 311 declare void @double9(double %p0, double %p1, double %p2, double %p3,
348 double %p4, double %p5, double %p6, double %p7, 312 double %p4, double %p5, double %p6, double %p7,
349 double %p8) 313 double %p8)
350 declare void @double10(double %p0, double %p1, double %p2, double %p3, 314 declare void @double10(double %p0, double %p1, double %p2, double %p3,
351 double %p4, double %p5, double %p6, double %p7, 315 double %p4, double %p5, double %p6, double %p7,
352 double %p8, double %p9) 316 double %p8, double %p9)
353 define internal void @doubleHarness() nounwind { 317 define internal void @doubleHarness() nounwind {
354 ; CHECK-LABEL: doubleHarness 318 ; CHECK-LABEL: doubleHarness
355 call void @double1(double 1.0) 319 call void @double1(double 1.0)
356 ; CHECK-DAG: vmov.f64 d0 320 ; CHECK-DAG: vmov.f64 d0
357 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double1 321 ; CHECK: bl {{.*}} double1
358 ; CHECK-DAG: movt [[CALL]]
359 ; CHECK: blx [[CALL]]
360 call void @double2(double 1.0, double 2.0) 322 call void @double2(double 1.0, double 2.0)
361 ; CHECK-DAG: vmov.f64 d0 323 ; CHECK-DAG: vmov.f64 d0
362 ; CHECK-DAG: vmov.f64 d1 324 ; CHECK-DAG: vmov.f64 d1
363 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double2 325 ; CHECK: bl {{.*}} double2
364 ; CHECK-DAG: movt [[CALL]]
365 ; CHECK: blx [[CALL]]
366 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)
367 ; CHECK-DAG: vmov.f64 d0 327 ; CHECK-DAG: vmov.f64 d0
368 ; CHECK-DAG: vmov.f64 d1 328 ; CHECK-DAG: vmov.f64 d1
369 ; CHECK-DAG: vmov.f64 d2 329 ; CHECK-DAG: vmov.f64 d2
370 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double3 330 ; CHECK: bl {{.*}} double3
371 ; CHECK-DAG: movt [[CALL]]
372 ; CHECK: blx [[CALL]]
373 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)
374 ; CHECK-DAG: vmov.f64 d0 332 ; CHECK-DAG: vmov.f64 d0
375 ; CHECK-DAG: vmov.f64 d1 333 ; CHECK-DAG: vmov.f64 d1
376 ; CHECK-DAG: vmov.f64 d2 334 ; CHECK-DAG: vmov.f64 d2
377 ; CHECK-DAG: vmov.f64 d3 335 ; CHECK-DAG: vmov.f64 d3
378 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double4 336 ; CHECK: bl {{.*}} double4
379 ; CHECK-DAG: movt [[CALL]]
380 ; CHECK: blx [[CALL]]
381 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,
382 double 5.0) 338 double 5.0)
383 ; CHECK-DAG: vmov.f64 d0 339 ; CHECK-DAG: vmov.f64 d0
384 ; CHECK-DAG: vmov.f64 d1 340 ; CHECK-DAG: vmov.f64 d1
385 ; CHECK-DAG: vmov.f64 d2 341 ; CHECK-DAG: vmov.f64 d2
386 ; CHECK-DAG: vmov.f64 d3 342 ; CHECK-DAG: vmov.f64 d3
387 ; CHECK-DAG: vmov.f64 d4 343 ; CHECK-DAG: vmov.f64 d4
388 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double5 344 ; CHECK: bl {{.*}} double5
389 ; CHECK-DAG: movt [[CALL]]
390 ; CHECK: blx [[CALL]]
391 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,
392 double 5.0, double 6.0) 346 double 5.0, double 6.0)
393 ; CHECK-DAG: vmov.f64 d0 347 ; CHECK-DAG: vmov.f64 d0
394 ; CHECK-DAG: vmov.f64 d1 348 ; CHECK-DAG: vmov.f64 d1
395 ; CHECK-DAG: vmov.f64 d2 349 ; CHECK-DAG: vmov.f64 d2
396 ; CHECK-DAG: vmov.f64 d3 350 ; CHECK-DAG: vmov.f64 d3
397 ; CHECK-DAG: vmov.f64 d4 351 ; CHECK-DAG: vmov.f64 d4
398 ; CHECK-DAG: vmov.f64 d5 352 ; CHECK-DAG: vmov.f64 d5
399 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double6 353 ; CHECK: bl {{.*}} double6
400 ; CHECK-DAG: movt [[CALL]]
401 ; CHECK: blx [[CALL]]
402 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,
403 double 5.0, double 6.0, double 7.0) 355 double 5.0, double 6.0, double 7.0)
404 ; CHECK-DAG: vmov.f64 d0 356 ; CHECK-DAG: vmov.f64 d0
405 ; CHECK-DAG: vmov.f64 d1 357 ; CHECK-DAG: vmov.f64 d1
406 ; CHECK-DAG: vmov.f64 d2 358 ; CHECK-DAG: vmov.f64 d2
407 ; CHECK-DAG: vmov.f64 d3 359 ; CHECK-DAG: vmov.f64 d3
408 ; CHECK-DAG: vmov.f64 d4 360 ; CHECK-DAG: vmov.f64 d4
409 ; CHECK-DAG: vmov.f64 d5 361 ; CHECK-DAG: vmov.f64 d5
410 ; CHECK-DAG: vmov.f64 d6 362 ; CHECK-DAG: vmov.f64 d6
411 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double7 363 ; CHECK: bl {{.*}} double7
412 ; CHECK-DAG: movt [[CALL]]
413 ; CHECK: blx [[CALL]]
414 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,
415 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)
416 ; CHECK-DAG: vmov.f64 d0 366 ; CHECK-DAG: vmov.f64 d0
417 ; CHECK-DAG: vmov.f64 d1 367 ; CHECK-DAG: vmov.f64 d1
418 ; CHECK-DAG: vmov.f64 d2 368 ; CHECK-DAG: vmov.f64 d2
419 ; CHECK-DAG: vmov.f64 d3 369 ; CHECK-DAG: vmov.f64 d3
420 ; CHECK-DAG: vmov.f64 d4 370 ; CHECK-DAG: vmov.f64 d4
421 ; CHECK-DAG: vmov.f64 d5 371 ; CHECK-DAG: vmov.f64 d5
422 ; CHECK-DAG: vmov.f64 d6 372 ; CHECK-DAG: vmov.f64 d6
423 ; CHECK-DAG: vmov.f64 d7 373 ; CHECK-DAG: vmov.f64 d7
424 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double8 374 ; CHECK: bl {{.*}} double8
425 ; CHECK-DAG: movt [[CALL]]
426 ; CHECK: blx [[CALL]]
427 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,
428 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,
429 double 9.0) 377 double 9.0)
430 ; CHECK-DAG: vmov.f64 d0 378 ; CHECK-DAG: vmov.f64 d0
431 ; CHECK-DAG: vmov.f64 d1 379 ; CHECK-DAG: vmov.f64 d1
432 ; CHECK-DAG: vmov.f64 d2 380 ; CHECK-DAG: vmov.f64 d2
433 ; CHECK-DAG: vmov.f64 d3 381 ; CHECK-DAG: vmov.f64 d3
434 ; CHECK-DAG: vmov.f64 d4 382 ; CHECK-DAG: vmov.f64 d4
435 ; CHECK-DAG: vmov.f64 d5 383 ; CHECK-DAG: vmov.f64 d5
436 ; CHECK-DAG: vmov.f64 d6 384 ; CHECK-DAG: vmov.f64 d6
437 ; CHECK-DAG: vmov.f64 d7 385 ; CHECK-DAG: vmov.f64 d7
438 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double9
439 ; CHECK-DAG: movt [[CALL]]
440 ; CHECK-DAG: vstr d{{.*}}, [sp] 386 ; CHECK-DAG: vstr d{{.*}}, [sp]
441 ; CHECK: blx [[CALL]] 387 ; CHECK: bl {{.*}} double9
442 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,
443 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,
444 double 9.0, double 10.0) 390 double 9.0, double 10.0)
445 ; CHECK-DAG: vmov.f64 d0 391 ; CHECK-DAG: vmov.f64 d0
446 ; CHECK-DAG: vmov.f64 d1 392 ; CHECK-DAG: vmov.f64 d1
447 ; CHECK-DAG: vmov.f64 d2 393 ; CHECK-DAG: vmov.f64 d2
448 ; CHECK-DAG: vmov.f64 d3 394 ; CHECK-DAG: vmov.f64 d3
449 ; CHECK-DAG: vmov.f64 d4 395 ; CHECK-DAG: vmov.f64 d4
450 ; CHECK-DAG: vmov.f64 d5 396 ; CHECK-DAG: vmov.f64 d5
451 ; CHECK-DAG: vmov.f64 d6 397 ; CHECK-DAG: vmov.f64 d6
452 ; CHECK-DAG: vmov.f64 d7 398 ; CHECK-DAG: vmov.f64 d7
453 ; CHECK-DAG: vstr d{{.*}}, [sp] 399 ; CHECK-DAG: vstr d{{.*}}, [sp]
454 ; CHECK-DAG: vstr d{{.*}}, [sp, #8] 400 ; CHECK-DAG: vstr d{{.*}}, [sp, #8]
455 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} double10 401 ; CHECK: bl {{.*}} double10
456 ; CHECK-DAG: movt [[CALL]]
457 ; CHECK: blx [[CALL]]
458 402
459 ret void 403 ret void
460 } 404 }
461 405
462 declare void @testFDF(float %p0, double %p1, float %p2) 406 declare void @testFDF(float %p0, double %p1, float %p2)
463 declare void @testFDDF(float %p0, double %p1, double %p2, float %p3) 407 declare void @testFDDF(float %p0, double %p1, double %p2, float %p3)
464 declare void @testFDDDF(float %p0, double %p1, double %p2, double %p3, 408 declare void @testFDDDF(float %p0, double %p1, double %p2, double %p3,
465 float %p4) 409 float %p4)
466 declare void @testFDDDDF(float %p0, double %p1, double %p2, double %p3, 410 declare void @testFDDDDF(float %p0, double %p1, double %p2, double %p3,
467 double %p4, float %p5) 411 double %p4, float %p5)
(...skipping 18 matching lines...) Expand all
486 double %p8, float %p9, double %p10) 430 double %p8, float %p9, double %p10)
487 declare void @testFDDDDDDDDFDF(float %p0, double %p1, double %p2, double %p3, 431 declare void @testFDDDDDDDDFDF(float %p0, double %p1, double %p2, double %p3,
488 double %p4, double %p5, double %p6, double %p7, 432 double %p4, double %p5, double %p6, double %p7,
489 double %p8, float %p9, double %p10, float %p11) 433 double %p8, float %p9, double %p10, float %p11)
490 define internal void @packsFloats() nounwind { 434 define internal void @packsFloats() nounwind {
491 ; CHECK-LABEL: packsFloats 435 ; CHECK-LABEL: packsFloats
492 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)
493 ; CHECK-DAG: vmov.f32 s0 437 ; CHECK-DAG: vmov.f32 s0
494 ; CHECK-DAG: vmov.f64 d1 438 ; CHECK-DAG: vmov.f64 d1
495 ; CHECK-DAG: vmov.f32 s1 439 ; CHECK-DAG: vmov.f32 s1
496 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDF 440 ; CHECK: bl {{.*}} testFDF
497 ; CHECK-DAG: movt [[CALL]]
498 ; CHECK: blx [[CALL]]
499 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)
500 ; CHECK-DAG: vmov.f32 s0 442 ; CHECK-DAG: vmov.f32 s0
501 ; CHECK-DAG: vmov.f64 d1 443 ; CHECK-DAG: vmov.f64 d1
502 ; CHECK-DAG: vmov.f64 d2 444 ; CHECK-DAG: vmov.f64 d2
503 ; CHECK-DAG: vmov.f32 s1 445 ; CHECK-DAG: vmov.f32 s1
504 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDF 446 ; CHECK: bl {{.*}} testFDDF
505 ; CHECK-DAG: movt [[CALL]]
506 ; CHECK: blx [[CALL]]
507 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,
508 float 5.0) 448 float 5.0)
509 ; CHECK-DAG: vmov.f32 s0 449 ; CHECK-DAG: vmov.f32 s0
510 ; CHECK-DAG: vmov.f64 d1 450 ; CHECK-DAG: vmov.f64 d1
511 ; CHECK-DAG: vmov.f64 d2 451 ; CHECK-DAG: vmov.f64 d2
512 ; CHECK-DAG: vmov.f64 d3 452 ; CHECK-DAG: vmov.f64 d3
513 ; CHECK-DAG: vmov.f32 s1 453 ; CHECK-DAG: vmov.f32 s1
514 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDF 454 ; CHECK: bl {{.*}} testFDDDF
515 ; CHECK-DAG: movt [[CALL]]
516 ; CHECK: blx [[CALL]]
517 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,
518 double 5.0, float 6.0) 456 double 5.0, float 6.0)
519 ; CHECK-DAG: vmov.f32 s0 457 ; CHECK-DAG: vmov.f32 s0
520 ; CHECK-DAG: vmov.f64 d1 458 ; CHECK-DAG: vmov.f64 d1
521 ; CHECK-DAG: vmov.f64 d2 459 ; CHECK-DAG: vmov.f64 d2
522 ; CHECK-DAG: vmov.f64 d3 460 ; CHECK-DAG: vmov.f64 d3
523 ; CHECK-DAG: vmov.f64 d4 461 ; CHECK-DAG: vmov.f64 d4
524 ; CHECK-DAG: vmov.f32 s1 462 ; CHECK-DAG: vmov.f32 s1
525 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDF 463 ; CHECK: bl {{.*}} testFDDDDF
526 ; CHECK-DAG: movt [[CALL]]
527 ; CHECK: blx [[CALL]]
528 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,
529 double 5.0, double 6.0, float 7.0) 465 double 5.0, double 6.0, float 7.0)
530 ; CHECK-DAG: vmov.f32 s0 466 ; CHECK-DAG: vmov.f32 s0
531 ; CHECK-DAG: vmov.f64 d1 467 ; CHECK-DAG: vmov.f64 d1
532 ; CHECK-DAG: vmov.f64 d2 468 ; CHECK-DAG: vmov.f64 d2
533 ; CHECK-DAG: vmov.f64 d3 469 ; CHECK-DAG: vmov.f64 d3
534 ; CHECK-DAG: vmov.f64 d4 470 ; CHECK-DAG: vmov.f64 d4
535 ; CHECK-DAG: vmov.f64 d5 471 ; CHECK-DAG: vmov.f64 d5
536 ; CHECK-DAG: vmov.f32 s1 472 ; CHECK-DAG: vmov.f32 s1
537 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDF 473 ; CHECK: bl {{.*}} testFDDDDDF
538 ; CHECK-DAG: movt [[CALL]]
539 ; CHECK: blx [[CALL]]
540 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,
541 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)
542 ; CHECK-DAG: vmov.f32 s0 476 ; CHECK-DAG: vmov.f32 s0
543 ; CHECK-DAG: vmov.f64 d1 477 ; CHECK-DAG: vmov.f64 d1
544 ; CHECK-DAG: vmov.f64 d2 478 ; CHECK-DAG: vmov.f64 d2
545 ; CHECK-DAG: vmov.f64 d3 479 ; CHECK-DAG: vmov.f64 d3
546 ; CHECK-DAG: vmov.f64 d4 480 ; CHECK-DAG: vmov.f64 d4
547 ; CHECK-DAG: vmov.f64 d5 481 ; CHECK-DAG: vmov.f64 d5
548 ; CHECK-DAG: vmov.f64 d6 482 ; CHECK-DAG: vmov.f64 d6
549 ; CHECK-DAG: vmov.f32 s1 483 ; CHECK-DAG: vmov.f32 s1
550 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDF 484 ; CHECK: bl {{.*}} testFDDDDDDF
551 ; CHECK-DAG: movt [[CALL]]
552 ; CHECK: blx [[CALL]]
553 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,
554 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,
555 float 9.0) 487 float 9.0)
556 ; CHECK-DAG: vmov.f32 s0 488 ; CHECK-DAG: vmov.f32 s0
557 ; CHECK-DAG: vmov.f64 d1 489 ; CHECK-DAG: vmov.f64 d1
558 ; CHECK-DAG: vmov.f64 d2 490 ; CHECK-DAG: vmov.f64 d2
559 ; CHECK-DAG: vmov.f64 d3 491 ; CHECK-DAG: vmov.f64 d3
560 ; CHECK-DAG: vmov.f64 d4 492 ; CHECK-DAG: vmov.f64 d4
561 ; CHECK-DAG: vmov.f64 d5 493 ; CHECK-DAG: vmov.f64 d5
562 ; CHECK-DAG: vmov.f64 d6 494 ; CHECK-DAG: vmov.f64 d6
563 ; CHECK-DAG: vmov.f64 d7 495 ; CHECK-DAG: vmov.f64 d7
564 ; CHECK-DAG: vmov.f32 s1 496 ; CHECK-DAG: vmov.f32 s1
565 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDF 497 ; CHECK: bl {{.*}} testFDDDDDDDF
566 ; CHECK-DAG: movt [[CALL]]
567 ; CHECK: blx [[CALL]]
568 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,
569 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,
570 float 9.0, double 10.0) 500 float 9.0, double 10.0)
571 ; CHECK-DAG: vmov.f32 s0 501 ; CHECK-DAG: vmov.f32 s0
572 ; CHECK-DAG: vmov.f64 d1 502 ; CHECK-DAG: vmov.f64 d1
573 ; CHECK-DAG: vmov.f64 d2 503 ; CHECK-DAG: vmov.f64 d2
574 ; CHECK-DAG: vmov.f64 d3 504 ; CHECK-DAG: vmov.f64 d3
575 ; CHECK-DAG: vmov.f64 d4 505 ; CHECK-DAG: vmov.f64 d4
576 ; CHECK-DAG: vmov.f64 d5 506 ; CHECK-DAG: vmov.f64 d5
577 ; CHECK-DAG: vmov.f64 d6 507 ; CHECK-DAG: vmov.f64 d6
578 ; CHECK-DAG: vmov.f64 d7 508 ; CHECK-DAG: vmov.f64 d7
579 ; CHECK-DAG: vstr d{{.*}}, [sp] 509 ; CHECK-DAG: vstr d{{.*}}, [sp]
580 ; CHECK-DAG: vmov.f32 s1 510 ; CHECK-DAG: vmov.f32 s1
581 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDFD 511 ; CHECK: bl {{.*}} testFDDDDDDDFD
582 ; CHECK-DAG: movt [[CALL]]
583 ; CHECK: blx [[CALL]]
584 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,
585 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,
586 double 9.0, float 10.0) 514 double 9.0, float 10.0)
587 ; CHECK-DAG: vmov.f32 s0 515 ; CHECK-DAG: vmov.f32 s0
588 ; CHECK-DAG: vmov.f64 d1 516 ; CHECK-DAG: vmov.f64 d1
589 ; CHECK-DAG: vmov.f64 d2 517 ; CHECK-DAG: vmov.f64 d2
590 ; CHECK-DAG: vmov.f64 d3 518 ; CHECK-DAG: vmov.f64 d3
591 ; CHECK-DAG: vmov.f64 d4 519 ; CHECK-DAG: vmov.f64 d4
592 ; CHECK-DAG: vmov.f64 d5 520 ; CHECK-DAG: vmov.f64 d5
593 ; CHECK-DAG: vmov.f64 d6 521 ; CHECK-DAG: vmov.f64 d6
594 ; CHECK-DAG: vmov.f64 d7 522 ; CHECK-DAG: vmov.f64 d7
595 ; CHECK-DAG: vstr d{{.*}}, [sp] 523 ; CHECK-DAG: vstr d{{.*}}, [sp]
596 ; CHECK-DAG: vstr s{{.*}}, [sp, #8] 524 ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
597 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDF 525 ; CHECK: bl {{.*}} testFDDDDDDDDF
598 ; CHECK-DAG: movt [[CALL]]
599 ; CHECK: blx [[CALL]]
600 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,
601 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,
602 double 9.0, double 10.0, float 11.0) 528 double 9.0, double 10.0, float 11.0)
603 ; CHECK-DAG: vmov.f32 s0 529 ; CHECK-DAG: vmov.f32 s0
604 ; CHECK-DAG: vmov.f64 d1 530 ; CHECK-DAG: vmov.f64 d1
605 ; CHECK-DAG: vmov.f64 d2 531 ; CHECK-DAG: vmov.f64 d2
606 ; CHECK-DAG: vmov.f64 d3 532 ; CHECK-DAG: vmov.f64 d3
607 ; CHECK-DAG: vmov.f64 d4 533 ; CHECK-DAG: vmov.f64 d4
608 ; CHECK-DAG: vmov.f64 d5 534 ; CHECK-DAG: vmov.f64 d5
609 ; CHECK-DAG: vmov.f64 d6 535 ; CHECK-DAG: vmov.f64 d6
610 ; CHECK-DAG: vmov.f64 d7 536 ; CHECK-DAG: vmov.f64 d7
611 ; CHECK-DAG: vstr d{{.*}}, [sp] 537 ; CHECK-DAG: vstr d{{.*}}, [sp]
612 ; CHECK-DAG: vstr d{{.*}}, [sp, #8] 538 ; CHECK-DAG: vstr d{{.*}}, [sp, #8]
613 ; CHECK-DAG: vstr s{{.*}}, [sp, #16] 539 ; CHECK-DAG: vstr s{{.*}}, [sp, #16]
614 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDDF 540 ; CHECK: bl {{.*}} testFDDDDDDDDDF
615 ; CHECK-DAG: movt [[CALL]]
616 ; CHECK: blx [[CALL]]
617 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,
618 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,
619 double 9.0, float 10.0, double 11.0) 543 double 9.0, float 10.0, double 11.0)
620 ; CHECK-DAG: vmov.f32 s0 544 ; CHECK-DAG: vmov.f32 s0
621 ; CHECK-DAG: vmov.f64 d1 545 ; CHECK-DAG: vmov.f64 d1
622 ; CHECK-DAG: vmov.f64 d2 546 ; CHECK-DAG: vmov.f64 d2
623 ; CHECK-DAG: vmov.f64 d3 547 ; CHECK-DAG: vmov.f64 d3
624 ; CHECK-DAG: vmov.f64 d4 548 ; CHECK-DAG: vmov.f64 d4
625 ; CHECK-DAG: vmov.f64 d5 549 ; CHECK-DAG: vmov.f64 d5
626 ; CHECK-DAG: vmov.f64 d6 550 ; CHECK-DAG: vmov.f64 d6
627 ; CHECK-DAG: vmov.f64 d7 551 ; CHECK-DAG: vmov.f64 d7
628 ; CHECK-DAG: vstr d{{.*}}, [sp] 552 ; CHECK-DAG: vstr d{{.*}}, [sp]
629 ; CHECK-DAG: vstr s{{.*}}, [sp, #8] 553 ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
630 ; CHECK-DAG: vstr d{{.*}}, [sp, #16] 554 ; CHECK-DAG: vstr d{{.*}}, [sp, #16]
631 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDFD 555 ; CHECK: bl {{.*}} testFDDDDDDDDFD
632 ; CHECK-DAG: movt [[CALL]]
633 ; CHECK: blx [[CALL]]
634 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,
635 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,
636 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)
637 ; CHECK-DAG: vmov.f32 s0 559 ; CHECK-DAG: vmov.f32 s0
638 ; CHECK-DAG: vmov.f64 d1 560 ; CHECK-DAG: vmov.f64 d1
639 ; CHECK-DAG: vmov.f64 d2 561 ; CHECK-DAG: vmov.f64 d2
640 ; CHECK-DAG: vmov.f64 d3 562 ; CHECK-DAG: vmov.f64 d3
641 ; CHECK-DAG: vmov.f64 d4 563 ; CHECK-DAG: vmov.f64 d4
642 ; CHECK-DAG: vmov.f64 d5 564 ; CHECK-DAG: vmov.f64 d5
643 ; CHECK-DAG: vmov.f64 d6 565 ; CHECK-DAG: vmov.f64 d6
644 ; CHECK-DAG: vmov.f64 d7 566 ; CHECK-DAG: vmov.f64 d7
645 ; CHECK-DAG: vstr d{{.*}}, [sp] 567 ; CHECK-DAG: vstr d{{.*}}, [sp]
646 ; CHECK-DAG: vstr s{{.*}}, [sp, #8] 568 ; CHECK-DAG: vstr s{{.*}}, [sp, #8]
647 ; CHECK-DAG: vstr d{{.*}}, [sp, #16] 569 ; CHECK-DAG: vstr d{{.*}}, [sp, #16]
648 ; CHECK-DAG: vstr s{{.*}}, [sp, #24] 570 ; CHECK-DAG: vstr s{{.*}}, [sp, #24]
649 ; CHECK-DAG: movw [[CALL:r[0-9]]], {{.+}} testFDDDDDDDDFD 571 ; CHECK: bl {{.*}} testFDDDDDDDDFD
650 ; CHECK-DAG: movt [[CALL]]
651 ; CHECK: blx [[CALL]]
652 572
653 ret void 573 ret void
654 } 574 }
655 575
656 ; 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/fp.arith.ll ('k') | tests_lit/llvm2ice_tests/fp.cmp.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698