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