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

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

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