Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / Hexagon / hrc-stack-coloring.ll
blob9b77337cfc978473773fc12c606c07663be1eeb5
1 ; RUN: llc  -march=hexagon < %s | FileCheck %s
2 ; This test is no longer connected to HRC.
4 target triple = "hexagon"
6 %s.0 = type { ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i16, i16, i16, i32, i32, i32, i32, i16, i8, i8, i8, i8, float, float, float, float, float, float, float, float, float, float, float, [4 x %s.7], [4 x %s.7], [20 x %s.7], [104 x %s.7], [20 x i32], [257 x %s.8], %s.9 }
7 %s.1 = type { i16, i8, i16, i8, i8, i8, i8, i8 }
8 %s.2 = type { i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [20 x i16], i8, i16 }
9 %s.3 = type { i8, i8, i8, i8, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i32, i32, i32, [2 x [2 x i32]], %s.4 }
10 %s.4 = type { %s.5, [976 x i8] }
11 %s.5 = type { %s.6 }
12 %s.6 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }
13 %s.7 = type { i64 }
14 %s.8 = type { i32, i32 }
15 %s.9 = type { %s.10, [1960 x i8] }
16 %s.10 = type { i64, i64, i64, i64, i64, i64, i64, [104 x %s.11], [104 x float] }
17 %s.11 = type { i64, i64 }
18 %s.12 = type { float, float }
20 ; CHECK: .type   f0,@function
21 ; This allocframe argument value may change, but typically should remain
22 ; in the 250-280 range. This test was introduced to test a change that
23 ; reduced stack usage from around 568 bytes to 280 bytes.
24 ; After r308350 the stack size is ~300.
25 ; CHECK: allocframe(r29,#304):raw
26 define void @f0(ptr %a0, ptr %a1, ptr %a2) #0 {
27 b0:
28   %v0 = alloca ptr, align 4
29   %v1 = alloca ptr, align 4
30   %v2 = alloca ptr, align 4
31   %v3 = alloca float, align 4
32   %v4 = alloca float, align 4
33   %v5 = alloca float, align 4
34   %v6 = alloca float, align 4
35   %v7 = alloca float, align 4
36   %v8 = alloca float, align 4
37   %v9 = alloca float, align 4
38   %v10 = alloca float, align 4
39   %v11 = alloca float, align 4
40   %v12 = alloca float, align 4
41   %v13 = alloca double, align 8
42   %v14 = alloca double, align 8
43   %v15 = alloca double, align 8
44   %v16 = alloca double, align 8
45   %v17 = alloca double, align 8
46   %v18 = alloca double, align 8
47   %v19 = alloca double, align 8
48   %v20 = alloca double, align 8
49   %v21 = alloca double, align 8
50   %v22 = alloca double, align 8
51   %v23 = alloca double, align 8
52   %v24 = alloca double, align 8
53   %v25 = alloca double, align 8
54   %v26 = alloca double, align 8
55   %v27 = alloca double, align 8
56   %v28 = alloca double, align 8
57   %v29 = alloca double, align 8
58   %v30 = alloca double, align 8
59   %v31 = alloca double, align 8
60   %v32 = alloca double, align 8
61   %v33 = alloca double, align 8
62   store ptr %a0, ptr %v0, align 4
63   store ptr %a1, ptr %v1, align 4
64   store ptr %a2, ptr %v2, align 4
65   store double 1.000000e+00, ptr %v32, align 8
66   %v34 = load ptr, ptr %v1, align 4
67   %v37 = load i64, ptr %v34, align 8
68   %v38 = sitofp i64 %v37 to double
69   %v39 = load double, ptr %v32, align 8
70   %v40 = fmul double %v38, %v39
71   store double %v40, ptr %v13, align 8
72   %v41 = load ptr, ptr %v1, align 4
73   %v42 = getelementptr inbounds %s.11, ptr %v41, i32 1
74   %v44 = load i64, ptr %v42, align 8
75   %v45 = sitofp i64 %v44 to double
76   %v46 = load double, ptr %v32, align 8
77   %v47 = fmul double %v45, %v46
78   store double %v47, ptr %v14, align 8
79   %v48 = load ptr, ptr %v1, align 4
80   %v49 = getelementptr inbounds %s.11, ptr %v48, i32 1
81   %v50 = getelementptr inbounds %s.11, ptr %v49, i32 0, i32 1
82   %v51 = load i64, ptr %v50, align 8
83   %v52 = sitofp i64 %v51 to double
84   %v53 = load double, ptr %v32, align 8
85   %v54 = fmul double %v52, %v53
86   store double %v54, ptr %v15, align 8
87   %v55 = load ptr, ptr %v1, align 4
88   %v56 = getelementptr inbounds %s.11, ptr %v55, i32 2
89   %v58 = load i64, ptr %v56, align 8
90   %v59 = sitofp i64 %v58 to double
91   %v60 = load double, ptr %v32, align 8
92   %v61 = fmul double %v59, %v60
93   store double %v61, ptr %v16, align 8
94   %v62 = load ptr, ptr %v1, align 4
95   %v63 = getelementptr inbounds %s.11, ptr %v62, i32 2
96   %v64 = getelementptr inbounds %s.11, ptr %v63, i32 0, i32 1
97   %v65 = load i64, ptr %v64, align 8
98   %v66 = sitofp i64 %v65 to double
99   %v67 = load double, ptr %v32, align 8
100   %v68 = fmul double %v66, %v67
101   store double %v68, ptr %v17, align 8
102   %v69 = load ptr, ptr %v1, align 4
103   %v70 = getelementptr inbounds %s.11, ptr %v69, i32 3
104   %v72 = load i64, ptr %v70, align 8
105   %v73 = sitofp i64 %v72 to double
106   %v74 = load double, ptr %v32, align 8
107   %v75 = fmul double %v73, %v74
108   store double %v75, ptr %v18, align 8
109   %v76 = load ptr, ptr %v1, align 4
110   %v77 = getelementptr inbounds %s.11, ptr %v76, i32 3
111   %v78 = getelementptr inbounds %s.11, ptr %v77, i32 0, i32 1
112   %v79 = load i64, ptr %v78, align 8
113   %v80 = sitofp i64 %v79 to double
114   %v81 = load double, ptr %v32, align 8
115   %v82 = fmul double %v80, %v81
116   store double %v82, ptr %v19, align 8
117   %v83 = load double, ptr %v13, align 8
118   %v84 = load double, ptr %v13, align 8
119   %v85 = fmul double %v83, %v84
120   %v86 = load double, ptr %v14, align 8
121   %v87 = load double, ptr %v14, align 8
122   %v88 = fmul double %v86, %v87
123   %v89 = fsub double %v85, %v88
124   %v90 = load double, ptr %v15, align 8
125   %v91 = load double, ptr %v15, align 8
126   %v92 = fmul double %v90, %v91
127   %v93 = fsub double %v89, %v92
128   store double %v93, ptr %v20, align 8
129   %v94 = load double, ptr %v13, align 8
130   %v95 = load double, ptr %v14, align 8
131   %v96 = fmul double %v94, %v95
132   %v97 = load double, ptr %v16, align 8
133   %v98 = load double, ptr %v14, align 8
134   %v99 = fmul double %v97, %v98
135   %v100 = fsub double %v96, %v99
136   %v101 = load double, ptr %v17, align 8
137   %v102 = load double, ptr %v15, align 8
138   %v103 = fmul double %v101, %v102
139   %v104 = fsub double %v100, %v103
140   store double %v104, ptr %v21, align 8
141   %v105 = load double, ptr %v13, align 8
142   %v106 = load double, ptr %v15, align 8
143   %v107 = fmul double %v105, %v106
144   %v108 = load double, ptr %v16, align 8
145   %v109 = load double, ptr %v15, align 8
146   %v110 = fmul double %v108, %v109
147   %v111 = fadd double %v107, %v110
148   %v112 = load double, ptr %v17, align 8
149   %v113 = load double, ptr %v14, align 8
150   %v114 = fmul double %v112, %v113
151   %v115 = fsub double %v111, %v114
152   store double %v115, ptr %v22, align 8
153   %v116 = load double, ptr %v13, align 8
154   %v117 = load double, ptr %v16, align 8
155   %v118 = fmul double %v116, %v117
156   %v119 = load double, ptr %v18, align 8
157   %v120 = load double, ptr %v14, align 8
158   %v121 = fmul double %v119, %v120
159   %v122 = fsub double %v118, %v121
160   %v123 = load double, ptr %v19, align 8
161   %v124 = load double, ptr %v15, align 8
162   %v125 = fmul double %v123, %v124
163   %v126 = fsub double %v122, %v125
164   store double %v126, ptr %v23, align 8
165   %v127 = load double, ptr %v13, align 8
166   %v128 = load double, ptr %v17, align 8
167   %v129 = fmul double %v127, %v128
168   %v130 = load double, ptr %v18, align 8
169   %v131 = load double, ptr %v15, align 8
170   %v132 = fmul double %v130, %v131
171   %v133 = fadd double %v129, %v132
172   %v134 = load double, ptr %v19, align 8
173   %v135 = load double, ptr %v14, align 8
174   %v136 = fmul double %v134, %v135
175   %v137 = fsub double %v133, %v136
176   store double %v137, ptr %v24, align 8
177   %v138 = load double, ptr %v14, align 8
178   %v139 = load double, ptr %v14, align 8
179   %v140 = fmul double %v138, %v139
180   %v141 = load double, ptr %v15, align 8
181   %v142 = load double, ptr %v15, align 8
182   %v143 = fmul double %v141, %v142
183   %v144 = fsub double %v140, %v143
184   %v145 = load double, ptr %v16, align 8
185   %v146 = load double, ptr %v13, align 8
186   %v147 = fmul double %v145, %v146
187   %v148 = fsub double %v144, %v147
188   store double %v148, ptr %v25, align 8
189   %v149 = load double, ptr %v14, align 8
190   %v150 = load double, ptr %v15, align 8
191   %v151 = fmul double %v149, %v150
192   %v152 = fmul double %v151, 2.000000e+00
193   %v153 = load double, ptr %v17, align 8
194   %v154 = load double, ptr %v13, align 8
195   %v155 = fmul double %v153, %v154
196   %v156 = fsub double %v152, %v155
197   store double %v156, ptr %v26, align 8
198   %v157 = load double, ptr %v14, align 8
199   %v158 = load double, ptr %v16, align 8
200   %v159 = fmul double %v157, %v158
201   %v160 = load double, ptr %v15, align 8
202   %v161 = load double, ptr %v17, align 8
203   %v162 = fmul double %v160, %v161
204   %v163 = fsub double %v159, %v162
205   %v164 = load double, ptr %v18, align 8
206   %v165 = load double, ptr %v13, align 8
207   %v166 = fmul double %v164, %v165
208   %v167 = fsub double %v163, %v166
209   store double %v167, ptr %v27, align 8
210   %v168 = load double, ptr %v14, align 8
211   %v169 = load double, ptr %v17, align 8
212   %v170 = fmul double %v168, %v169
213   %v171 = load double, ptr %v15, align 8
214   %v172 = load double, ptr %v16, align 8
215   %v173 = fmul double %v171, %v172
216   %v174 = fadd double %v170, %v173
217   %v175 = load double, ptr %v19, align 8
218   %v176 = load double, ptr %v13, align 8
219   %v177 = fmul double %v175, %v176
220   %v178 = fsub double %v174, %v177
221   store double %v178, ptr %v28, align 8
222   %v179 = load double, ptr %v16, align 8
223   %v180 = load double, ptr %v16, align 8
224   %v181 = fmul double %v179, %v180
225   %v182 = load double, ptr %v17, align 8
226   %v183 = load double, ptr %v17, align 8
227   %v184 = fmul double %v182, %v183
228   %v185 = fsub double %v181, %v184
229   %v186 = load double, ptr %v18, align 8
230   %v187 = load double, ptr %v14, align 8
231   %v188 = fmul double %v186, %v187
232   %v189 = fsub double %v185, %v188
233   %v190 = load double, ptr %v19, align 8
234   %v191 = load double, ptr %v15, align 8
235   %v192 = fmul double %v190, %v191
236   %v193 = fadd double %v189, %v192
237   store double %v193, ptr %v29, align 8
238   %v194 = load double, ptr %v16, align 8
239   %v195 = load double, ptr %v17, align 8
240   %v196 = fmul double %v194, %v195
241   %v197 = fmul double %v196, 2.000000e+00
242   %v198 = load double, ptr %v18, align 8
243   %v199 = load double, ptr %v15, align 8
244   %v200 = fmul double %v198, %v199
245   %v201 = fsub double %v197, %v200
246   %v202 = load double, ptr %v19, align 8
247   %v203 = load double, ptr %v14, align 8
248   %v204 = fmul double %v202, %v203
249   %v205 = fsub double %v201, %v204
250   store double %v205, ptr %v30, align 8
251   %v206 = load double, ptr %v20, align 8
252   %v207 = load double, ptr %v20, align 8
253   %v208 = fmul double %v206, %v207
254   %v209 = load double, ptr %v21, align 8
255   %v210 = load double, ptr %v21, align 8
256   %v211 = fmul double %v209, %v210
257   %v212 = fsub double %v208, %v211
258   %v213 = load double, ptr %v22, align 8
259   %v214 = load double, ptr %v22, align 8
260   %v215 = fmul double %v213, %v214
261   %v216 = fsub double %v212, %v215
262   %v217 = load double, ptr %v23, align 8
263   %v218 = load double, ptr %v25, align 8
264   %v219 = fmul double %v217, %v218
265   %v220 = fmul double %v219, 2.000000e+00
266   %v221 = fadd double %v216, %v220
267   %v222 = load double, ptr %v24, align 8
268   %v223 = load double, ptr %v26, align 8
269   %v224 = fmul double %v222, %v223
270   %v225 = fmul double %v224, 2.000000e+00
271   %v226 = fadd double %v221, %v225
272   %v227 = load double, ptr %v27, align 8
273   %v228 = load double, ptr %v27, align 8
274   %v229 = fmul double %v227, %v228
275   %v230 = fsub double %v226, %v229
276   %v231 = load double, ptr %v28, align 8
277   %v232 = load double, ptr %v28, align 8
278   %v233 = fmul double %v231, %v232
279   %v234 = fsub double %v230, %v233
280   %v235 = load double, ptr %v29, align 8
281   %v236 = load double, ptr %v29, align 8
282   %v237 = fmul double %v235, %v236
283   %v238 = fadd double %v234, %v237
284   %v239 = load double, ptr %v30, align 8
285   %v240 = load double, ptr %v30, align 8
286   %v241 = fmul double %v239, %v240
287   %v242 = fadd double %v238, %v241
288   store double %v242, ptr %v31, align 8
289   %v243 = load double, ptr %v31, align 8
290   %v244 = call double @f1(double %v243) #1
291   %v245 = load double, ptr %v32, align 8
292   %v246 = fcmp olt double %v244, %v245
293   br i1 %v246, label %b1, label %b2
295 b1:                                               ; preds = %b0
296   %v247 = load ptr, ptr %v0, align 4
297   %v248 = getelementptr inbounds %s.0, ptr %v247, i32 0, i32 2
298   %v249 = load ptr, ptr %v248, align 4
299   store i8 3, ptr %v249, align 1
300   br label %b3
302 b2:                                               ; preds = %b0
303   %v251 = load double, ptr %v32, align 8
304   %v252 = load double, ptr %v31, align 8
305   %v253 = fdiv double %v251, %v252
306   store double %v253, ptr %v32, align 8
307   %v254 = load double, ptr %v13, align 8
308   %v255 = load double, ptr %v20, align 8
309   %v256 = fmul double %v254, %v255
310   %v257 = load double, ptr %v14, align 8
311   %v258 = load double, ptr %v21, align 8
312   %v259 = fmul double %v257, %v258
313   %v260 = fsub double %v256, %v259
314   %v261 = load double, ptr %v15, align 8
315   %v262 = load double, ptr %v22, align 8
316   %v263 = fmul double %v261, %v262
317   %v264 = fsub double %v260, %v263
318   %v265 = load double, ptr %v16, align 8
319   %v266 = load double, ptr %v25, align 8
320   %v267 = fmul double %v265, %v266
321   %v268 = fadd double %v264, %v267
322   %v269 = load double, ptr %v17, align 8
323   %v270 = load double, ptr %v26, align 8
324   %v271 = fmul double %v269, %v270
325   %v272 = fadd double %v268, %v271
326   store double %v272, ptr %v33, align 8
327   %v273 = load double, ptr %v33, align 8
328   %v274 = load double, ptr %v32, align 8
329   %v275 = fmul double %v273, %v274
330   %v276 = fptrunc double %v275 to float
331   store float %v276, ptr %v3, align 4
332   %v277 = load double, ptr %v14, align 8
333   %v278 = fsub double -0.000000e+00, %v277
334   %v279 = load double, ptr %v20, align 8
335   %v280 = fmul double %v278, %v279
336   %v281 = load double, ptr %v16, align 8
337   %v282 = load double, ptr %v21, align 8
338   %v283 = fmul double %v281, %v282
339   %v284 = fadd double %v280, %v283
340   %v285 = load double, ptr %v17, align 8
341   %v286 = load double, ptr %v22, align 8
342   %v287 = fmul double %v285, %v286
343   %v288 = fadd double %v284, %v287
344   %v289 = load double, ptr %v18, align 8
345   %v290 = load double, ptr %v25, align 8
346   %v291 = fmul double %v289, %v290
347   %v292 = fsub double %v288, %v291
348   %v293 = load double, ptr %v19, align 8
349   %v294 = load double, ptr %v26, align 8
350   %v295 = fmul double %v293, %v294
351   %v296 = fsub double %v292, %v295
352   store double %v296, ptr %v33, align 8
353   %v297 = load double, ptr %v33, align 8
354   %v298 = load double, ptr %v32, align 8
355   %v299 = fmul double %v297, %v298
356   %v300 = fptrunc double %v299 to float
357   store float %v300, ptr %v4, align 4
358   %v301 = load double, ptr %v15, align 8
359   %v302 = fsub double -0.000000e+00, %v301
360   %v303 = load double, ptr %v20, align 8
361   %v304 = fmul double %v302, %v303
362   %v305 = load double, ptr %v16, align 8
363   %v306 = load double, ptr %v22, align 8
364   %v307 = fmul double %v305, %v306
365   %v308 = fsub double %v304, %v307
366   %v309 = load double, ptr %v17, align 8
367   %v310 = load double, ptr %v21, align 8
368   %v311 = fmul double %v309, %v310
369   %v312 = fadd double %v308, %v311
370   %v313 = load double, ptr %v18, align 8
371   %v314 = load double, ptr %v26, align 8
372   %v315 = fmul double %v313, %v314
373   %v316 = fadd double %v312, %v315
374   %v317 = load double, ptr %v19, align 8
375   %v318 = load double, ptr %v25, align 8
376   %v319 = fmul double %v317, %v318
377   %v320 = fsub double %v316, %v319
378   store double %v320, ptr %v33, align 8
379   %v321 = load double, ptr %v33, align 8
380   %v322 = load double, ptr %v32, align 8
381   %v323 = fmul double %v321, %v322
382   %v324 = fptrunc double %v323 to float
383   store float %v324, ptr %v5, align 4
384   %v325 = load double, ptr %v16, align 8
385   %v326 = load double, ptr %v29, align 8
386   %v327 = fmul double %v325, %v326
387   %v328 = load double, ptr %v17, align 8
388   %v329 = load double, ptr %v30, align 8
389   %v330 = fmul double %v328, %v329
390   %v331 = fadd double %v327, %v330
391   %v332 = load double, ptr %v14, align 8
392   %v333 = load double, ptr %v27, align 8
393   %v334 = fmul double %v332, %v333
394   %v335 = fsub double %v331, %v334
395   %v336 = load double, ptr %v15, align 8
396   %v337 = load double, ptr %v28, align 8
397   %v338 = fmul double %v336, %v337
398   %v339 = fsub double %v335, %v338
399   %v340 = load double, ptr %v13, align 8
400   %v341 = load double, ptr %v25, align 8
401   %v342 = fmul double %v340, %v341
402   %v343 = fadd double %v339, %v342
403   store double %v343, ptr %v33, align 8
404   %v344 = load double, ptr %v33, align 8
405   %v345 = load double, ptr %v32, align 8
406   %v346 = fmul double %v344, %v345
407   %v347 = fptrunc double %v346 to float
408   store float %v347, ptr %v6, align 4
409   %v348 = load double, ptr %v16, align 8
410   %v349 = load double, ptr %v30, align 8
411   %v350 = fmul double %v348, %v349
412   %v351 = load double, ptr %v17, align 8
413   %v352 = load double, ptr %v29, align 8
414   %v353 = fmul double %v351, %v352
415   %v354 = fsub double %v350, %v353
416   %v355 = load double, ptr %v14, align 8
417   %v356 = load double, ptr %v28, align 8
418   %v357 = fmul double %v355, %v356
419   %v358 = fsub double %v354, %v357
420   %v359 = load double, ptr %v15, align 8
421   %v360 = load double, ptr %v27, align 8
422   %v361 = fmul double %v359, %v360
423   %v362 = fadd double %v358, %v361
424   %v363 = load double, ptr %v13, align 8
425   %v364 = load double, ptr %v26, align 8
426   %v365 = fmul double %v363, %v364
427   %v366 = fadd double %v362, %v365
428   store double %v366, ptr %v33, align 8
429   %v367 = load double, ptr %v33, align 8
430   %v368 = load double, ptr %v32, align 8
431   %v369 = fmul double %v367, %v368
432   %v370 = fptrunc double %v369 to float
433   store float %v370, ptr %v7, align 4
434   %v371 = load double, ptr %v14, align 8
435   %v372 = fsub double -0.000000e+00, %v371
436   %v373 = load double, ptr %v29, align 8
437   %v374 = fmul double %v372, %v373
438   %v375 = load double, ptr %v15, align 8
439   %v376 = load double, ptr %v30, align 8
440   %v377 = fmul double %v375, %v376
441   %v378 = fsub double %v374, %v377
442   %v379 = load double, ptr %v13, align 8
443   %v380 = load double, ptr %v27, align 8
444   %v381 = fmul double %v379, %v380
445   %v382 = fadd double %v378, %v381
446   %v383 = load double, ptr %v14, align 8
447   %v384 = load double, ptr %v25, align 8
448   %v385 = fmul double %v383, %v384
449   %v386 = fsub double %v382, %v385
450   %v387 = load double, ptr %v15, align 8
451   %v388 = load double, ptr %v26, align 8
452   %v389 = fmul double %v387, %v388
453   %v390 = fadd double %v386, %v389
454   store double %v390, ptr %v33, align 8
455   %v391 = load double, ptr %v33, align 8
456   %v392 = load double, ptr %v32, align 8
457   %v393 = fmul double %v391, %v392
458   %v394 = fptrunc double %v393 to float
459   store float %v394, ptr %v8, align 4
460   %v395 = load double, ptr %v14, align 8
461   %v396 = fsub double -0.000000e+00, %v395
462   %v397 = load double, ptr %v30, align 8
463   %v398 = fmul double %v396, %v397
464   %v399 = load double, ptr %v15, align 8
465   %v400 = load double, ptr %v29, align 8
466   %v401 = fmul double %v399, %v400
467   %v402 = fadd double %v398, %v401
468   %v403 = load double, ptr %v13, align 8
469   %v404 = load double, ptr %v28, align 8
470   %v405 = fmul double %v403, %v404
471   %v406 = fadd double %v402, %v405
472   %v407 = load double, ptr %v14, align 8
473   %v408 = load double, ptr %v26, align 8
474   %v409 = fmul double %v407, %v408
475   %v410 = fsub double %v406, %v409
476   %v411 = load double, ptr %v15, align 8
477   %v412 = load double, ptr %v25, align 8
478   %v413 = fmul double %v411, %v412
479   %v414 = fsub double %v410, %v413
480   store double %v414, ptr %v33, align 8
481   %v415 = load double, ptr %v33, align 8
482   %v416 = load double, ptr %v32, align 8
483   %v417 = fmul double %v415, %v416
484   %v418 = fptrunc double %v417 to float
485   store float %v418, ptr %v9, align 4
486   %v419 = load double, ptr %v13, align 8
487   %v420 = load double, ptr %v20, align 8
488   %v421 = fmul double %v419, %v420
489   %v422 = load double, ptr %v16, align 8
490   %v423 = load double, ptr %v23, align 8
491   %v424 = fmul double %v422, %v423
492   %v425 = fsub double %v421, %v424
493   %v426 = load double, ptr %v17, align 8
494   %v427 = load double, ptr %v24, align 8
495   %v428 = fmul double %v426, %v427
496   %v429 = fsub double %v425, %v428
497   %v430 = load double, ptr %v18, align 8
498   %v431 = load double, ptr %v27, align 8
499   %v432 = fmul double %v430, %v431
500   %v433 = fadd double %v429, %v432
501   %v434 = load double, ptr %v19, align 8
502   %v435 = load double, ptr %v28, align 8
503   %v436 = fmul double %v434, %v435
504   %v437 = fadd double %v433, %v436
505   store double %v437, ptr %v33, align 8
506   %v438 = load double, ptr %v33, align 8
507   %v439 = load double, ptr %v32, align 8
508   %v440 = fmul double %v438, %v439
509   %v441 = fptrunc double %v440 to float
510   store float %v441, ptr %v10, align 4
511   %v442 = load double, ptr %v18, align 8
512   %v443 = fsub double -0.000000e+00, %v442
513   %v444 = load double, ptr %v29, align 8
514   %v445 = fmul double %v443, %v444
515   %v446 = load double, ptr %v19, align 8
516   %v447 = load double, ptr %v30, align 8
517   %v448 = fmul double %v446, %v447
518   %v449 = fsub double %v445, %v448
519   %v450 = load double, ptr %v14, align 8
520   %v451 = load double, ptr %v23, align 8
521   %v452 = fmul double %v450, %v451
522   %v453 = fadd double %v449, %v452
523   %v454 = load double, ptr %v15, align 8
524   %v455 = load double, ptr %v24, align 8
525   %v456 = fmul double %v454, %v455
526   %v457 = fadd double %v453, %v456
527   %v458 = load double, ptr %v13, align 8
528   %v459 = load double, ptr %v21, align 8
529   %v460 = fmul double %v458, %v459
530   %v461 = fsub double %v457, %v460
531   store double %v461, ptr %v33, align 8
532   %v462 = load double, ptr %v33, align 8
533   %v463 = load double, ptr %v32, align 8
534   %v464 = fmul double %v462, %v463
535   %v465 = fptrunc double %v464 to float
536   store float %v465, ptr %v11, align 4
537   %v466 = load double, ptr %v18, align 8
538   %v467 = fsub double -0.000000e+00, %v466
539   %v468 = load double, ptr %v30, align 8
540   %v469 = fmul double %v467, %v468
541   %v470 = load double, ptr %v19, align 8
542   %v471 = load double, ptr %v29, align 8
543   %v472 = fmul double %v470, %v471
544   %v473 = fadd double %v469, %v472
545   %v474 = load double, ptr %v14, align 8
546   %v475 = load double, ptr %v24, align 8
547   %v476 = fmul double %v474, %v475
548   %v477 = fadd double %v473, %v476
549   %v478 = load double, ptr %v15, align 8
550   %v479 = load double, ptr %v23, align 8
551   %v480 = fmul double %v478, %v479
552   %v481 = fsub double %v477, %v480
553   %v482 = load double, ptr %v13, align 8
554   %v483 = load double, ptr %v22, align 8
555   %v484 = fmul double %v482, %v483
556   %v485 = fsub double %v481, %v484
557   store double %v485, ptr %v33, align 8
558   %v486 = load double, ptr %v33, align 8
559   %v487 = load double, ptr %v32, align 8
560   %v488 = fmul double %v486, %v487
561   %v489 = fptrunc double %v488 to float
562   store float %v489, ptr %v12, align 4
563   %v490 = load float, ptr %v3, align 4
564   %v491 = load ptr, ptr %v2, align 4
565   store float %v490, ptr %v491, align 4
566   %v494 = load ptr, ptr %v2, align 4
567   %v496 = getelementptr inbounds %s.12, ptr %v494, i32 0, i32 1
568   store float 0.000000e+00, ptr %v496, align 4
569   %v497 = load float, ptr %v4, align 4
570   %v498 = load ptr, ptr %v2, align 4
571   %v499 = getelementptr inbounds %s.12, ptr %v498, i32 1
572   store float %v497, ptr %v499, align 4
573   %v501 = load float, ptr %v5, align 4
574   %v502 = load ptr, ptr %v2, align 4
575   %v503 = getelementptr inbounds %s.12, ptr %v502, i32 1
576   %v504 = getelementptr inbounds %s.12, ptr %v503, i32 0, i32 1
577   store float %v501, ptr %v504, align 4
578   %v505 = load float, ptr %v6, align 4
579   %v506 = load ptr, ptr %v2, align 4
580   %v507 = getelementptr inbounds %s.12, ptr %v506, i32 2
581   store float %v505, ptr %v507, align 4
582   %v509 = load float, ptr %v7, align 4
583   %v510 = load ptr, ptr %v2, align 4
584   %v511 = getelementptr inbounds %s.12, ptr %v510, i32 2
585   %v512 = getelementptr inbounds %s.12, ptr %v511, i32 0, i32 1
586   store float %v509, ptr %v512, align 4
587   %v513 = load float, ptr %v8, align 4
588   %v514 = load ptr, ptr %v2, align 4
589   %v515 = getelementptr inbounds %s.12, ptr %v514, i32 3
590   store float %v513, ptr %v515, align 4
591   %v517 = load float, ptr %v9, align 4
592   %v518 = load ptr, ptr %v2, align 4
593   %v519 = getelementptr inbounds %s.12, ptr %v518, i32 3
594   %v520 = getelementptr inbounds %s.12, ptr %v519, i32 0, i32 1
595   store float %v517, ptr %v520, align 4
596   %v521 = load float, ptr %v4, align 4
597   %v522 = load ptr, ptr %v2, align 4
598   %v523 = getelementptr inbounds %s.12, ptr %v522, i32 4
599   store float %v521, ptr %v523, align 4
600   %v525 = load float, ptr %v5, align 4
601   %v526 = fsub float -0.000000e+00, %v525
602   %v527 = load ptr, ptr %v2, align 4
603   %v528 = getelementptr inbounds %s.12, ptr %v527, i32 4
604   %v529 = getelementptr inbounds %s.12, ptr %v528, i32 0, i32 1
605   store float %v526, ptr %v529, align 4
606   %v530 = load float, ptr %v10, align 4
607   %v531 = load ptr, ptr %v2, align 4
608   %v532 = getelementptr inbounds %s.12, ptr %v531, i32 5
609   store float %v530, ptr %v532, align 4
610   %v534 = load ptr, ptr %v2, align 4
611   %v535 = getelementptr inbounds %s.12, ptr %v534, i32 5
612   %v536 = getelementptr inbounds %s.12, ptr %v535, i32 0, i32 1
613   store float 0.000000e+00, ptr %v536, align 4
614   %v537 = load float, ptr %v11, align 4
615   %v538 = load ptr, ptr %v2, align 4
616   %v539 = getelementptr inbounds %s.12, ptr %v538, i32 6
617   store float %v537, ptr %v539, align 4
618   %v541 = load float, ptr %v12, align 4
619   %v542 = load ptr, ptr %v2, align 4
620   %v543 = getelementptr inbounds %s.12, ptr %v542, i32 6
621   %v544 = getelementptr inbounds %s.12, ptr %v543, i32 0, i32 1
622   store float %v541, ptr %v544, align 4
623   %v545 = load float, ptr %v6, align 4
624   %v546 = load ptr, ptr %v2, align 4
625   %v547 = getelementptr inbounds %s.12, ptr %v546, i32 7
626   store float %v545, ptr %v547, align 4
627   %v549 = load float, ptr %v7, align 4
628   %v550 = load ptr, ptr %v2, align 4
629   %v551 = getelementptr inbounds %s.12, ptr %v550, i32 7
630   %v552 = getelementptr inbounds %s.12, ptr %v551, i32 0, i32 1
631   store float %v549, ptr %v552, align 4
632   %v553 = load float, ptr %v6, align 4
633   %v554 = load ptr, ptr %v2, align 4
634   %v555 = getelementptr inbounds %s.12, ptr %v554, i32 8
635   store float %v553, ptr %v555, align 4
636   %v557 = load float, ptr %v7, align 4
637   %v558 = fsub float -0.000000e+00, %v557
638   %v559 = load ptr, ptr %v2, align 4
639   %v560 = getelementptr inbounds %s.12, ptr %v559, i32 8
640   %v561 = getelementptr inbounds %s.12, ptr %v560, i32 0, i32 1
641   store float %v558, ptr %v561, align 4
642   %v562 = load float, ptr %v11, align 4
643   %v563 = load ptr, ptr %v2, align 4
644   %v564 = getelementptr inbounds %s.12, ptr %v563, i32 9
645   store float %v562, ptr %v564, align 4
646   %v566 = load float, ptr %v12, align 4
647   %v567 = fsub float -0.000000e+00, %v566
648   %v568 = load ptr, ptr %v2, align 4
649   %v569 = getelementptr inbounds %s.12, ptr %v568, i32 9
650   %v570 = getelementptr inbounds %s.12, ptr %v569, i32 0, i32 1
651   store float %v567, ptr %v570, align 4
652   %v571 = load float, ptr %v10, align 4
653   %v572 = load ptr, ptr %v2, align 4
654   %v573 = getelementptr inbounds %s.12, ptr %v572, i32 10
655   store float %v571, ptr %v573, align 4
656   %v575 = load ptr, ptr %v2, align 4
657   %v576 = getelementptr inbounds %s.12, ptr %v575, i32 10
658   %v577 = getelementptr inbounds %s.12, ptr %v576, i32 0, i32 1
659   store float 0.000000e+00, ptr %v577, align 4
660   %v578 = load float, ptr %v4, align 4
661   %v579 = load ptr, ptr %v2, align 4
662   %v580 = getelementptr inbounds %s.12, ptr %v579, i32 11
663   store float %v578, ptr %v580, align 4
664   %v582 = load float, ptr %v5, align 4
665   %v583 = load ptr, ptr %v2, align 4
666   %v584 = getelementptr inbounds %s.12, ptr %v583, i32 11
667   %v585 = getelementptr inbounds %s.12, ptr %v584, i32 0, i32 1
668   store float %v582, ptr %v585, align 4
669   %v586 = load float, ptr %v8, align 4
670   %v587 = load ptr, ptr %v2, align 4
671   %v588 = getelementptr inbounds %s.12, ptr %v587, i32 12
672   store float %v586, ptr %v588, align 4
673   %v590 = load float, ptr %v9, align 4
674   %v591 = fsub float -0.000000e+00, %v590
675   %v592 = load ptr, ptr %v2, align 4
676   %v593 = getelementptr inbounds %s.12, ptr %v592, i32 12
677   %v594 = getelementptr inbounds %s.12, ptr %v593, i32 0, i32 1
678   store float %v591, ptr %v594, align 4
679   %v595 = load float, ptr %v6, align 4
680   %v596 = load ptr, ptr %v2, align 4
681   %v597 = getelementptr inbounds %s.12, ptr %v596, i32 13
682   store float %v595, ptr %v597, align 4
683   %v599 = load float, ptr %v7, align 4
684   %v600 = fsub float -0.000000e+00, %v599
685   %v601 = load ptr, ptr %v2, align 4
686   %v602 = getelementptr inbounds %s.12, ptr %v601, i32 13
687   %v603 = getelementptr inbounds %s.12, ptr %v602, i32 0, i32 1
688   store float %v600, ptr %v603, align 4
689   %v604 = load float, ptr %v4, align 4
690   %v605 = load ptr, ptr %v2, align 4
691   %v606 = getelementptr inbounds %s.12, ptr %v605, i32 14
692   store float %v604, ptr %v606, align 4
693   %v608 = load float, ptr %v5, align 4
694   %v609 = fsub float -0.000000e+00, %v608
695   %v610 = load ptr, ptr %v2, align 4
696   %v611 = getelementptr inbounds %s.12, ptr %v610, i32 14
697   %v612 = getelementptr inbounds %s.12, ptr %v611, i32 0, i32 1
698   store float %v609, ptr %v612, align 4
699   %v613 = load float, ptr %v3, align 4
700   %v614 = load ptr, ptr %v2, align 4
701   %v615 = getelementptr inbounds %s.12, ptr %v614, i32 15
702   store float %v613, ptr %v615, align 4
703   %v617 = load ptr, ptr %v2, align 4
704   %v618 = getelementptr inbounds %s.12, ptr %v617, i32 15
705   %v619 = getelementptr inbounds %s.12, ptr %v618, i32 0, i32 1
706   store float 0.000000e+00, ptr %v619, align 4
707   br label %b3
709 b3:                                               ; preds = %b2, %b1
710   ret void
713 ; Function Attrs: nounwind readnone
714 declare double @f1(double) #1
716 attributes #0 = { nounwind "target-cpu"="hexagonv55" }
717 attributes #1 = { nounwind readnone }