1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
4 target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
5 target triple = "thumbv7em-arm-none-eabi"
7 ; Function Attrs: nounwind
8 define arm_aapcs_vfpcc void @test(i8* %v50) #0 {
11 ; CHECK-NEXT: movw r1, #65534
12 ; CHECK-NEXT: strh.w r1, [r0, #510]
13 ; CHECK-NEXT: movw r1, #64506
14 ; CHECK-NEXT: movt r1, #65020
15 ; CHECK-NEXT: str.w r1, [r0, #506]
16 ; CHECK-NEXT: movw r1, #63478
17 ; CHECK-NEXT: movt r1, #63992
18 ; CHECK-NEXT: str.w r1, [r0, #502]
19 ; CHECK-NEXT: movw r1, #62450
20 ; CHECK-NEXT: movt r1, #62964
21 ; CHECK-NEXT: str.w r1, [r0, #498]
22 ; CHECK-NEXT: movw r1, #61422
23 ; CHECK-NEXT: movt r1, #61936
24 ; CHECK-NEXT: str.w r1, [r0, #494]
25 ; CHECK-NEXT: movw r1, #60394
26 ; CHECK-NEXT: movt r1, #60908
27 ; CHECK-NEXT: str.w r1, [r0, #490]
28 ; CHECK-NEXT: movw r1, #59366
29 ; CHECK-NEXT: movt r1, #59880
30 ; CHECK-NEXT: str.w r1, [r0, #486]
31 ; CHECK-NEXT: movw r1, #58338
32 ; CHECK-NEXT: movt r1, #58852
33 ; CHECK-NEXT: str.w r1, [r0, #482]
34 ; CHECK-NEXT: movw r1, #57310
35 ; CHECK-NEXT: movt r1, #57824
36 ; CHECK-NEXT: str.w r1, [r0, #478]
37 ; CHECK-NEXT: movw r1, #56282
38 ; CHECK-NEXT: movt r1, #56796
39 ; CHECK-NEXT: str.w r1, [r0, #474]
40 ; CHECK-NEXT: movw r1, #55254
41 ; CHECK-NEXT: movt r1, #55768
42 ; CHECK-NEXT: str.w r1, [r0, #470]
43 ; CHECK-NEXT: movw r1, #54226
44 ; CHECK-NEXT: movt r1, #54740
45 ; CHECK-NEXT: str.w r1, [r0, #466]
46 ; CHECK-NEXT: movw r1, #53198
47 ; CHECK-NEXT: movt r1, #53712
48 ; CHECK-NEXT: str.w r1, [r0, #462]
49 ; CHECK-NEXT: movw r1, #52170
50 ; CHECK-NEXT: movt r1, #52684
51 ; CHECK-NEXT: str.w r1, [r0, #458]
52 ; CHECK-NEXT: movw r1, #51142
53 ; CHECK-NEXT: movt r1, #51656
54 ; CHECK-NEXT: str.w r1, [r0, #454]
55 ; CHECK-NEXT: movw r1, #50114
56 ; CHECK-NEXT: movt r1, #50628
57 ; CHECK-NEXT: str.w r1, [r0, #450]
58 ; CHECK-NEXT: movw r1, #49086
59 ; CHECK-NEXT: movt r1, #49600
60 ; CHECK-NEXT: str.w r1, [r0, #446]
61 ; CHECK-NEXT: movw r1, #48058
62 ; CHECK-NEXT: movt r1, #48572
63 ; CHECK-NEXT: str.w r1, [r0, #442]
64 ; CHECK-NEXT: movw r1, #47030
65 ; CHECK-NEXT: movt r1, #47544
66 ; CHECK-NEXT: str.w r1, [r0, #438]
67 ; CHECK-NEXT: movw r1, #46002
68 ; CHECK-NEXT: movt r1, #46516
69 ; CHECK-NEXT: str.w r1, [r0, #434]
70 ; CHECK-NEXT: movw r1, #44974
71 ; CHECK-NEXT: movt r1, #45488
72 ; CHECK-NEXT: str.w r1, [r0, #430]
73 ; CHECK-NEXT: movw r1, #43946
74 ; CHECK-NEXT: movt r1, #44460
75 ; CHECK-NEXT: str.w r1, [r0, #426]
76 ; CHECK-NEXT: movw r1, #42918
77 ; CHECK-NEXT: movt r1, #43432
78 ; CHECK-NEXT: str.w r1, [r0, #422]
79 ; CHECK-NEXT: movw r1, #41890
80 ; CHECK-NEXT: movt r1, #42404
81 ; CHECK-NEXT: str.w r1, [r0, #418]
82 ; CHECK-NEXT: movw r1, #40862
83 ; CHECK-NEXT: movt r1, #41376
84 ; CHECK-NEXT: str.w r1, [r0, #414]
85 ; CHECK-NEXT: movw r1, #39834
86 ; CHECK-NEXT: movt r1, #40348
87 ; CHECK-NEXT: str.w r1, [r0, #410]
88 ; CHECK-NEXT: movw r1, #38806
89 ; CHECK-NEXT: movt r1, #39320
90 ; CHECK-NEXT: str.w r1, [r0, #406]
91 ; CHECK-NEXT: movw r1, #37778
92 ; CHECK-NEXT: movt r1, #38292
93 ; CHECK-NEXT: str.w r1, [r0, #402]
94 ; CHECK-NEXT: movw r1, #36750
95 ; CHECK-NEXT: movt r1, #37264
96 ; CHECK-NEXT: str.w r1, [r0, #398]
97 ; CHECK-NEXT: movw r1, #35722
98 ; CHECK-NEXT: movt r1, #36236
99 ; CHECK-NEXT: str.w r1, [r0, #394]
101 %v190 = getelementptr inbounds i8, i8* %v50, i32 394
102 store i8 -118, i8* %v190, align 1
103 %v191 = getelementptr inbounds i8, i8* %v50, i32 395
104 store i8 -117, i8* %v191, align 1
105 %v192 = getelementptr inbounds i8, i8* %v50, i32 396
106 store i8 -116, i8* %v192, align 1
107 %v193 = getelementptr inbounds i8, i8* %v50, i32 397
108 store i8 -115, i8* %v193, align 1
109 %v194 = getelementptr inbounds i8, i8* %v50, i32 398
110 store i8 -114, i8* %v194, align 1
111 %v195 = getelementptr inbounds i8, i8* %v50, i32 399
112 store i8 -113, i8* %v195, align 1
113 %v196 = getelementptr inbounds i8, i8* %v50, i32 400
114 store i8 -112, i8* %v196, align 1
115 %v197 = getelementptr inbounds i8, i8* %v50, i32 401
116 store i8 -111, i8* %v197, align 1
117 %v198 = getelementptr inbounds i8, i8* %v50, i32 402
118 store i8 -110, i8* %v198, align 1
119 %v199 = getelementptr inbounds i8, i8* %v50, i32 403
120 store i8 -109, i8* %v199, align 1
121 %v200 = getelementptr inbounds i8, i8* %v50, i32 404
122 store i8 -108, i8* %v200, align 1
123 %v201 = getelementptr inbounds i8, i8* %v50, i32 405
124 store i8 -107, i8* %v201, align 1
125 %v202 = getelementptr inbounds i8, i8* %v50, i32 406
126 store i8 -106, i8* %v202, align 1
127 %v203 = getelementptr inbounds i8, i8* %v50, i32 407
128 store i8 -105, i8* %v203, align 1
129 %v204 = getelementptr inbounds i8, i8* %v50, i32 408
130 store i8 -104, i8* %v204, align 1
131 %v205 = getelementptr inbounds i8, i8* %v50, i32 409
132 store i8 -103, i8* %v205, align 1
133 %v206 = getelementptr inbounds i8, i8* %v50, i32 410
134 store i8 -102, i8* %v206, align 1
135 %v207 = getelementptr inbounds i8, i8* %v50, i32 411
136 store i8 -101, i8* %v207, align 1
137 %v208 = getelementptr inbounds i8, i8* %v50, i32 412
138 store i8 -100, i8* %v208, align 1
139 %v209 = getelementptr inbounds i8, i8* %v50, i32 413
140 store i8 -99, i8* %v209, align 1
141 %v210 = getelementptr inbounds i8, i8* %v50, i32 414
142 store i8 -98, i8* %v210, align 1
143 %v211 = getelementptr inbounds i8, i8* %v50, i32 415
144 store i8 -97, i8* %v211, align 1
145 %v212 = getelementptr inbounds i8, i8* %v50, i32 416
146 store i8 -96, i8* %v212, align 1
147 %v213 = getelementptr inbounds i8, i8* %v50, i32 417
148 store i8 -95, i8* %v213, align 1
149 %v214 = getelementptr inbounds i8, i8* %v50, i32 418
150 store i8 -94, i8* %v214, align 1
151 %v215 = getelementptr inbounds i8, i8* %v50, i32 419
152 store i8 -93, i8* %v215, align 1
153 %v216 = getelementptr inbounds i8, i8* %v50, i32 420
154 store i8 -92, i8* %v216, align 1
155 %v217 = getelementptr inbounds i8, i8* %v50, i32 421
156 store i8 -91, i8* %v217, align 1
157 %v218 = getelementptr inbounds i8, i8* %v50, i32 422
158 store i8 -90, i8* %v218, align 1
159 %v219 = getelementptr inbounds i8, i8* %v50, i32 423
160 store i8 -89, i8* %v219, align 1
161 %v220 = getelementptr inbounds i8, i8* %v50, i32 424
162 store i8 -88, i8* %v220, align 1
163 %v221 = getelementptr inbounds i8, i8* %v50, i32 425
164 store i8 -87, i8* %v221, align 1
165 %v222 = getelementptr inbounds i8, i8* %v50, i32 426
166 store i8 -86, i8* %v222, align 1
167 %v223 = getelementptr inbounds i8, i8* %v50, i32 427
168 store i8 -85, i8* %v223, align 1
169 %v224 = getelementptr inbounds i8, i8* %v50, i32 428
170 store i8 -84, i8* %v224, align 1
171 %v225 = getelementptr inbounds i8, i8* %v50, i32 429
172 store i8 -83, i8* %v225, align 1
173 %v226 = getelementptr inbounds i8, i8* %v50, i32 430
174 store i8 -82, i8* %v226, align 1
175 %v227 = getelementptr inbounds i8, i8* %v50, i32 431
176 store i8 -81, i8* %v227, align 1
177 %v228 = getelementptr inbounds i8, i8* %v50, i32 432
178 store i8 -80, i8* %v228, align 1
179 %v229 = getelementptr inbounds i8, i8* %v50, i32 433
180 store i8 -79, i8* %v229, align 1
181 %v230 = getelementptr inbounds i8, i8* %v50, i32 434
182 store i8 -78, i8* %v230, align 1
183 %v231 = getelementptr inbounds i8, i8* %v50, i32 435
184 store i8 -77, i8* %v231, align 1
185 %v232 = getelementptr inbounds i8, i8* %v50, i32 436
186 store i8 -76, i8* %v232, align 1
187 %v233 = getelementptr inbounds i8, i8* %v50, i32 437
188 store i8 -75, i8* %v233, align 1
189 %v234 = getelementptr inbounds i8, i8* %v50, i32 438
190 store i8 -74, i8* %v234, align 1
191 %v235 = getelementptr inbounds i8, i8* %v50, i32 439
192 store i8 -73, i8* %v235, align 1
193 %v236 = getelementptr inbounds i8, i8* %v50, i32 440
194 store i8 -72, i8* %v236, align 1
195 %v237 = getelementptr inbounds i8, i8* %v50, i32 441
196 store i8 -71, i8* %v237, align 1
197 %v238 = getelementptr inbounds i8, i8* %v50, i32 442
198 store i8 -70, i8* %v238, align 1
199 %v239 = getelementptr inbounds i8, i8* %v50, i32 443
200 store i8 -69, i8* %v239, align 1
201 %v240 = getelementptr inbounds i8, i8* %v50, i32 444
202 store i8 -68, i8* %v240, align 1
203 %v241 = getelementptr inbounds i8, i8* %v50, i32 445
204 store i8 -67, i8* %v241, align 1
205 %v242 = getelementptr inbounds i8, i8* %v50, i32 446
206 store i8 -66, i8* %v242, align 1
207 %v243 = getelementptr inbounds i8, i8* %v50, i32 447
208 store i8 -65, i8* %v243, align 1
209 %v244 = getelementptr inbounds i8, i8* %v50, i32 448
210 store i8 -64, i8* %v244, align 1
211 %v245 = getelementptr inbounds i8, i8* %v50, i32 449
212 store i8 -63, i8* %v245, align 1
213 %v246 = getelementptr inbounds i8, i8* %v50, i32 450
214 store i8 -62, i8* %v246, align 1
215 %v247 = getelementptr inbounds i8, i8* %v50, i32 451
216 store i8 -61, i8* %v247, align 1
217 %v248 = getelementptr inbounds i8, i8* %v50, i32 452
218 store i8 -60, i8* %v248, align 1
219 %v249 = getelementptr inbounds i8, i8* %v50, i32 453
220 store i8 -59, i8* %v249, align 1
221 %v250 = getelementptr inbounds i8, i8* %v50, i32 454
222 store i8 -58, i8* %v250, align 1
223 %v251 = getelementptr inbounds i8, i8* %v50, i32 455
224 store i8 -57, i8* %v251, align 1
225 %v252 = getelementptr inbounds i8, i8* %v50, i32 456
226 store i8 -56, i8* %v252, align 1
227 %v253 = getelementptr inbounds i8, i8* %v50, i32 457
228 store i8 -55, i8* %v253, align 1
229 %v254 = getelementptr inbounds i8, i8* %v50, i32 458
230 store i8 -54, i8* %v254, align 1
231 %v255 = getelementptr inbounds i8, i8* %v50, i32 459
232 store i8 -53, i8* %v255, align 1
233 %v256 = getelementptr inbounds i8, i8* %v50, i32 460
234 store i8 -52, i8* %v256, align 1
235 %v257 = getelementptr inbounds i8, i8* %v50, i32 461
236 store i8 -51, i8* %v257, align 1
237 %v258 = getelementptr inbounds i8, i8* %v50, i32 462
238 store i8 -50, i8* %v258, align 1
239 %v259 = getelementptr inbounds i8, i8* %v50, i32 463
240 store i8 -49, i8* %v259, align 1
241 %v260 = getelementptr inbounds i8, i8* %v50, i32 464
242 store i8 -48, i8* %v260, align 1
243 %v261 = getelementptr inbounds i8, i8* %v50, i32 465
244 store i8 -47, i8* %v261, align 1
245 %v262 = getelementptr inbounds i8, i8* %v50, i32 466
246 store i8 -46, i8* %v262, align 1
247 %v263 = getelementptr inbounds i8, i8* %v50, i32 467
248 store i8 -45, i8* %v263, align 1
249 %v264 = getelementptr inbounds i8, i8* %v50, i32 468
250 store i8 -44, i8* %v264, align 1
251 %v265 = getelementptr inbounds i8, i8* %v50, i32 469
252 store i8 -43, i8* %v265, align 1
253 %v266 = getelementptr inbounds i8, i8* %v50, i32 470
254 store i8 -42, i8* %v266, align 1
255 %v267 = getelementptr inbounds i8, i8* %v50, i32 471
256 store i8 -41, i8* %v267, align 1
257 %v268 = getelementptr inbounds i8, i8* %v50, i32 472
258 store i8 -40, i8* %v268, align 1
259 %v269 = getelementptr inbounds i8, i8* %v50, i32 473
260 store i8 -39, i8* %v269, align 1
261 %v270 = getelementptr inbounds i8, i8* %v50, i32 474
262 store i8 -38, i8* %v270, align 1
263 %v271 = getelementptr inbounds i8, i8* %v50, i32 475
264 store i8 -37, i8* %v271, align 1
265 %v272 = getelementptr inbounds i8, i8* %v50, i32 476
266 store i8 -36, i8* %v272, align 1
267 %v273 = getelementptr inbounds i8, i8* %v50, i32 477
268 store i8 -35, i8* %v273, align 1
269 %v274 = getelementptr inbounds i8, i8* %v50, i32 478
270 store i8 -34, i8* %v274, align 1
271 %v275 = getelementptr inbounds i8, i8* %v50, i32 479
272 store i8 -33, i8* %v275, align 1
273 %v276 = getelementptr inbounds i8, i8* %v50, i32 480
274 store i8 -32, i8* %v276, align 1
275 %v277 = getelementptr inbounds i8, i8* %v50, i32 481
276 store i8 -31, i8* %v277, align 1
277 %v278 = getelementptr inbounds i8, i8* %v50, i32 482
278 store i8 -30, i8* %v278, align 1
279 %v279 = getelementptr inbounds i8, i8* %v50, i32 483
280 store i8 -29, i8* %v279, align 1
281 %v280 = getelementptr inbounds i8, i8* %v50, i32 484
282 store i8 -28, i8* %v280, align 1
283 %v281 = getelementptr inbounds i8, i8* %v50, i32 485
284 store i8 -27, i8* %v281, align 1
285 %v282 = getelementptr inbounds i8, i8* %v50, i32 486
286 store i8 -26, i8* %v282, align 1
287 %v283 = getelementptr inbounds i8, i8* %v50, i32 487
288 store i8 -25, i8* %v283, align 1
289 %v284 = getelementptr inbounds i8, i8* %v50, i32 488
290 store i8 -24, i8* %v284, align 1
291 %v285 = getelementptr inbounds i8, i8* %v50, i32 489
292 store i8 -23, i8* %v285, align 1
293 %v286 = getelementptr inbounds i8, i8* %v50, i32 490
294 store i8 -22, i8* %v286, align 1
295 %v287 = getelementptr inbounds i8, i8* %v50, i32 491
296 store i8 -21, i8* %v287, align 1
297 %v288 = getelementptr inbounds i8, i8* %v50, i32 492
298 store i8 -20, i8* %v288, align 1
299 %v289 = getelementptr inbounds i8, i8* %v50, i32 493
300 store i8 -19, i8* %v289, align 1
301 %v290 = getelementptr inbounds i8, i8* %v50, i32 494
302 store i8 -18, i8* %v290, align 1
303 %v291 = getelementptr inbounds i8, i8* %v50, i32 495
304 store i8 -17, i8* %v291, align 1
305 %v292 = getelementptr inbounds i8, i8* %v50, i32 496
306 store i8 -16, i8* %v292, align 1
307 %v293 = getelementptr inbounds i8, i8* %v50, i32 497
308 store i8 -15, i8* %v293, align 1
309 %v294 = getelementptr inbounds i8, i8* %v50, i32 498
310 store i8 -14, i8* %v294, align 1
311 %v295 = getelementptr inbounds i8, i8* %v50, i32 499
312 store i8 -13, i8* %v295, align 1
313 %v296 = getelementptr inbounds i8, i8* %v50, i32 500
314 store i8 -12, i8* %v296, align 1
315 %v297 = getelementptr inbounds i8, i8* %v50, i32 501
316 store i8 -11, i8* %v297, align 1
317 %v298 = getelementptr inbounds i8, i8* %v50, i32 502
318 store i8 -10, i8* %v298, align 1
319 %v299 = getelementptr inbounds i8, i8* %v50, i32 503
320 store i8 -9, i8* %v299, align 1
321 %v300 = getelementptr inbounds i8, i8* %v50, i32 504
322 store i8 -8, i8* %v300, align 1
323 %v301 = getelementptr inbounds i8, i8* %v50, i32 505
324 store i8 -7, i8* %v301, align 1
325 %v302 = getelementptr inbounds i8, i8* %v50, i32 506
326 store i8 -6, i8* %v302, align 1
327 %v303 = getelementptr inbounds i8, i8* %v50, i32 507
328 store i8 -5, i8* %v303, align 1
329 %v304 = getelementptr inbounds i8, i8* %v50, i32 508
330 store i8 -4, i8* %v304, align 1
331 %v305 = getelementptr inbounds i8, i8* %v50, i32 509
332 store i8 -3, i8* %v305, align 1
333 %v306 = getelementptr inbounds i8, i8* %v50, i32 510
334 store i8 -2, i8* %v306, align 1
335 %v307 = getelementptr inbounds i8, i8* %v50, i32 511
336 store i8 -1, i8* %v307, align 1
340 attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "denormal-fp-math"="preserve-sign" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="cortex-m7" "target-features"="-d32,+dsp,+fp-armv8,+hwdiv,+thumb-mode,-crc,-crypto,-dotprod,-fullfp16,-hwdiv-arm,-neon,-ras" "unsafe-fp-math"="false" "use-soft-float"="false" }