Home | History | Annotate | Download | only in AMDGPU
      1 ; RUN: llc -march=amdgcn -mcpu=tahiti -mattr=+vgpr-spilling -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SI %s
      2 ; RUN: llc -march=amdgcn -mcpu=fiji -mattr=+vgpr-spilling -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
      3 ; XUN: llc -march=amdgcn -mcpu=hawaii -mtriple=amdgcn-unknown-amdhsa -mattr=+vgpr-spilling -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=CIHSA %s
      4 ; XUN: llc -march=amdgcn -mcpu=fiji -mtriple=amdgcn-unknown-amdhsa -mattr=+vgpr-spilling -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VIHSA %s
      5 
      6 ; This ends up using all 256 registers and requires register
      7 ; scavenging which will fail to find an unsued register.
      8 
      9 ; Check the ScratchSize to avoid regressions from spilling
     10 ; intermediate register class copies.
     11 
     12 ; FIXME: The same register is initialized to 0 for every spill.
     13 
     14 declare i32 @llvm.r600.read.tgid.x() #1
     15 declare i32 @llvm.r600.read.tgid.y() #1
     16 declare i32 @llvm.r600.read.tgid.z() #1
     17 
     18 ; GCN-LABEL: {{^}}spill_vgpr_compute:
     19 
     20 ; GCN: s_mov_b32 s16, s3
     21 ; GCN: s_mov_b32 s12, SCRATCH_RSRC_DWORD0
     22 ; GCN-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD1
     23 ; GCN-NEXT: s_mov_b32 s14, -1
     24 ; SI-NEXT: s_mov_b32 s15, 0x80f000
     25 ; VI-NEXT: s_mov_b32 s15, 0x800000
     26 
     27 
     28 ; GCN: buffer_store_dword {{v[0-9]+}}, s[12:15], s16 offset:{{[0-9]+}} ; 4-byte Folded Spill
     29 
     30 ; GCN: buffer_store_dword {{v[0-9]+}}, {{v[0-9]+}}, s[12:15], s16 offen offset:{{[0-9]+}}
     31 ; GCN: buffer_load_dwordx4 {{v\[[0-9]+:[0-9]+\]}}, {{v[0-9]+}}, s[12:15], s16 offen offset:{{[0-9]+}}
     32 
     33 ; GCN: NumVgprs: 256
     34 ; GCN: ScratchSize: 1024
     35 
     36 ; s[0:3] input user SGPRs. s4,s5,s6 = workgroup IDs. s8 scratch offset.
     37 define void @spill_vgpr_compute(<4 x float> %arg6, float addrspace(1)* %arg, i32 %arg1, i32 %arg2, float %arg3, float %arg4, float %arg5) #0 {
     38 bb:
     39   %tmp = add i32 %arg1, %arg2
     40   %tmp7 = extractelement <4 x float> %arg6, i32 0
     41   %tmp8 = extractelement <4 x float> %arg6, i32 1
     42   %tmp9 = extractelement <4 x float> %arg6, i32 2
     43   %tmp10 = extractelement <4 x float> %arg6, i32 3
     44   %tmp11 = bitcast float %arg5 to i32
     45   br label %bb12
     46 
     47 bb12:                                             ; preds = %bb145, %bb
     48   %tmp13 = phi float [ 0.000000e+00, %bb ], [ %tmp338, %bb145 ]
     49   %tmp14 = phi float [ 0.000000e+00, %bb ], [ %tmp337, %bb145 ]
     50   %tmp15 = phi float [ 0.000000e+00, %bb ], [ %tmp336, %bb145 ]
     51   %tmp16 = phi float [ 0.000000e+00, %bb ], [ %tmp339, %bb145 ]
     52   %tmp17 = phi float [ 0.000000e+00, %bb ], [ %tmp335, %bb145 ]
     53   %tmp18 = phi float [ 0.000000e+00, %bb ], [ %tmp334, %bb145 ]
     54   %tmp19 = phi float [ 0.000000e+00, %bb ], [ %tmp333, %bb145 ]
     55   %tmp20 = phi float [ 0.000000e+00, %bb ], [ %tmp340, %bb145 ]
     56   %tmp21 = phi float [ 0.000000e+00, %bb ], [ %tmp332, %bb145 ]
     57   %tmp22 = phi float [ 0.000000e+00, %bb ], [ %tmp331, %bb145 ]
     58   %tmp23 = phi float [ 0.000000e+00, %bb ], [ %tmp330, %bb145 ]
     59   %tmp24 = phi float [ 0.000000e+00, %bb ], [ %tmp341, %bb145 ]
     60   %tmp25 = phi float [ 0.000000e+00, %bb ], [ %tmp329, %bb145 ]
     61   %tmp26 = phi float [ 0.000000e+00, %bb ], [ %tmp328, %bb145 ]
     62   %tmp27 = phi float [ 0.000000e+00, %bb ], [ %tmp327, %bb145 ]
     63   %tmp28 = phi float [ 0.000000e+00, %bb ], [ %tmp342, %bb145 ]
     64   %tmp29 = phi float [ 0.000000e+00, %bb ], [ %tmp326, %bb145 ]
     65   %tmp30 = phi float [ 0.000000e+00, %bb ], [ %tmp325, %bb145 ]
     66   %tmp31 = phi float [ 0.000000e+00, %bb ], [ %tmp324, %bb145 ]
     67   %tmp32 = phi float [ 0.000000e+00, %bb ], [ %tmp343, %bb145 ]
     68   %tmp33 = phi float [ 0.000000e+00, %bb ], [ %tmp323, %bb145 ]
     69   %tmp34 = phi float [ 0.000000e+00, %bb ], [ %tmp322, %bb145 ]
     70   %tmp35 = phi float [ 0.000000e+00, %bb ], [ %tmp321, %bb145 ]
     71   %tmp36 = phi float [ 0.000000e+00, %bb ], [ %tmp344, %bb145 ]
     72   %tmp37 = phi float [ 0.000000e+00, %bb ], [ %tmp320, %bb145 ]
     73   %tmp38 = phi float [ 0.000000e+00, %bb ], [ %tmp319, %bb145 ]
     74   %tmp39 = phi float [ 0.000000e+00, %bb ], [ %tmp318, %bb145 ]
     75   %tmp40 = phi float [ 0.000000e+00, %bb ], [ %tmp345, %bb145 ]
     76   %tmp41 = phi float [ 0.000000e+00, %bb ], [ %tmp317, %bb145 ]
     77   %tmp42 = phi float [ 0.000000e+00, %bb ], [ %tmp316, %bb145 ]
     78   %tmp43 = phi float [ 0.000000e+00, %bb ], [ %tmp315, %bb145 ]
     79   %tmp44 = phi float [ 0.000000e+00, %bb ], [ %tmp346, %bb145 ]
     80   %tmp45 = phi float [ 0.000000e+00, %bb ], [ %tmp314, %bb145 ]
     81   %tmp46 = phi float [ 0.000000e+00, %bb ], [ %tmp313, %bb145 ]
     82   %tmp47 = phi float [ 0.000000e+00, %bb ], [ %tmp312, %bb145 ]
     83   %tmp48 = phi float [ 0.000000e+00, %bb ], [ %tmp347, %bb145 ]
     84   %tmp49 = phi float [ 0.000000e+00, %bb ], [ %tmp311, %bb145 ]
     85   %tmp50 = phi float [ 0.000000e+00, %bb ], [ %tmp310, %bb145 ]
     86   %tmp51 = phi float [ 0.000000e+00, %bb ], [ %tmp309, %bb145 ]
     87   %tmp52 = phi float [ 0.000000e+00, %bb ], [ %tmp348, %bb145 ]
     88   %tmp53 = phi float [ 0.000000e+00, %bb ], [ %tmp308, %bb145 ]
     89   %tmp54 = phi float [ 0.000000e+00, %bb ], [ %tmp307, %bb145 ]
     90   %tmp55 = phi float [ 0.000000e+00, %bb ], [ %tmp306, %bb145 ]
     91   %tmp56 = phi float [ 0.000000e+00, %bb ], [ %tmp349, %bb145 ]
     92   %tmp57 = phi float [ 0.000000e+00, %bb ], [ %tmp305, %bb145 ]
     93   %tmp58 = phi float [ 0.000000e+00, %bb ], [ %tmp304, %bb145 ]
     94   %tmp59 = phi float [ 0.000000e+00, %bb ], [ %tmp303, %bb145 ]
     95   %tmp60 = phi float [ 0.000000e+00, %bb ], [ %tmp350, %bb145 ]
     96   %tmp61 = phi float [ 0.000000e+00, %bb ], [ %tmp302, %bb145 ]
     97   %tmp62 = phi float [ 0.000000e+00, %bb ], [ %tmp301, %bb145 ]
     98   %tmp63 = phi float [ 0.000000e+00, %bb ], [ %tmp300, %bb145 ]
     99   %tmp64 = phi float [ 0.000000e+00, %bb ], [ %tmp351, %bb145 ]
    100   %tmp65 = phi float [ 0.000000e+00, %bb ], [ %tmp299, %bb145 ]
    101   %tmp66 = phi float [ 0.000000e+00, %bb ], [ %tmp298, %bb145 ]
    102   %tmp67 = phi float [ 0.000000e+00, %bb ], [ %tmp297, %bb145 ]
    103   %tmp68 = phi float [ 0.000000e+00, %bb ], [ %tmp352, %bb145 ]
    104   %tmp69 = phi float [ 0.000000e+00, %bb ], [ %tmp296, %bb145 ]
    105   %tmp70 = phi float [ 0.000000e+00, %bb ], [ %tmp295, %bb145 ]
    106   %tmp71 = phi float [ 0.000000e+00, %bb ], [ %tmp294, %bb145 ]
    107   %tmp72 = phi float [ 0.000000e+00, %bb ], [ %tmp353, %bb145 ]
    108   %tmp73 = phi float [ 0.000000e+00, %bb ], [ %tmp293, %bb145 ]
    109   %tmp74 = phi float [ 0.000000e+00, %bb ], [ %tmp292, %bb145 ]
    110   %tmp75 = phi float [ 0.000000e+00, %bb ], [ %tmp291, %bb145 ]
    111   %tmp76 = phi float [ 0.000000e+00, %bb ], [ %tmp354, %bb145 ]
    112   %tmp77 = phi float [ 0.000000e+00, %bb ], [ %tmp290, %bb145 ]
    113   %tmp78 = phi float [ 0.000000e+00, %bb ], [ %tmp289, %bb145 ]
    114   %tmp79 = phi float [ 0.000000e+00, %bb ], [ %tmp288, %bb145 ]
    115   %tmp80 = phi float [ 0.000000e+00, %bb ], [ %tmp355, %bb145 ]
    116   %tmp81 = phi float [ 0.000000e+00, %bb ], [ %tmp287, %bb145 ]
    117   %tmp82 = phi float [ 0.000000e+00, %bb ], [ %tmp286, %bb145 ]
    118   %tmp83 = phi float [ 0.000000e+00, %bb ], [ %tmp285, %bb145 ]
    119   %tmp84 = phi float [ 0.000000e+00, %bb ], [ %tmp356, %bb145 ]
    120   %tmp85 = phi float [ 0.000000e+00, %bb ], [ %tmp284, %bb145 ]
    121   %tmp86 = phi float [ 0.000000e+00, %bb ], [ %tmp283, %bb145 ]
    122   %tmp87 = phi float [ 0.000000e+00, %bb ], [ %tmp282, %bb145 ]
    123   %tmp88 = phi float [ 0.000000e+00, %bb ], [ %tmp357, %bb145 ]
    124   %tmp89 = phi float [ 0.000000e+00, %bb ], [ %tmp281, %bb145 ]
    125   %tmp90 = phi float [ 0.000000e+00, %bb ], [ %tmp280, %bb145 ]
    126   %tmp91 = phi float [ 0.000000e+00, %bb ], [ %tmp279, %bb145 ]
    127   %tmp92 = phi float [ 0.000000e+00, %bb ], [ %tmp358, %bb145 ]
    128   %tmp93 = phi float [ 0.000000e+00, %bb ], [ %tmp359, %bb145 ]
    129   %tmp94 = phi float [ 0.000000e+00, %bb ], [ %tmp360, %bb145 ]
    130   %tmp95 = phi float [ 0.000000e+00, %bb ], [ %tmp409, %bb145 ]
    131   %tmp96 = phi float [ 0.000000e+00, %bb ], [ %tmp361, %bb145 ]
    132   %tmp97 = phi float [ 0.000000e+00, %bb ], [ %tmp362, %bb145 ]
    133   %tmp98 = phi float [ 0.000000e+00, %bb ], [ %tmp363, %bb145 ]
    134   %tmp99 = phi float [ 0.000000e+00, %bb ], [ %tmp364, %bb145 ]
    135   %tmp100 = phi float [ 0.000000e+00, %bb ], [ %tmp365, %bb145 ]
    136   %tmp101 = phi float [ 0.000000e+00, %bb ], [ %tmp366, %bb145 ]
    137   %tmp102 = phi float [ 0.000000e+00, %bb ], [ %tmp367, %bb145 ]
    138   %tmp103 = phi float [ 0.000000e+00, %bb ], [ %tmp368, %bb145 ]
    139   %tmp104 = phi float [ 0.000000e+00, %bb ], [ %tmp369, %bb145 ]
    140   %tmp105 = phi float [ 0.000000e+00, %bb ], [ %tmp370, %bb145 ]
    141   %tmp106 = phi float [ 0.000000e+00, %bb ], [ %tmp371, %bb145 ]
    142   %tmp107 = phi float [ 0.000000e+00, %bb ], [ %tmp372, %bb145 ]
    143   %tmp108 = phi float [ 0.000000e+00, %bb ], [ %tmp373, %bb145 ]
    144   %tmp109 = phi float [ 0.000000e+00, %bb ], [ %tmp374, %bb145 ]
    145   %tmp110 = phi float [ 0.000000e+00, %bb ], [ %tmp375, %bb145 ]
    146   %tmp111 = phi float [ 0.000000e+00, %bb ], [ %tmp376, %bb145 ]
    147   %tmp112 = phi float [ 0.000000e+00, %bb ], [ %tmp377, %bb145 ]
    148   %tmp113 = phi float [ 0.000000e+00, %bb ], [ %tmp378, %bb145 ]
    149   %tmp114 = phi float [ 0.000000e+00, %bb ], [ %tmp379, %bb145 ]
    150   %tmp115 = phi float [ 0.000000e+00, %bb ], [ %tmp380, %bb145 ]
    151   %tmp116 = phi float [ 0.000000e+00, %bb ], [ %tmp381, %bb145 ]
    152   %tmp117 = phi float [ 0.000000e+00, %bb ], [ %tmp382, %bb145 ]
    153   %tmp118 = phi float [ 0.000000e+00, %bb ], [ %tmp383, %bb145 ]
    154   %tmp119 = phi float [ 0.000000e+00, %bb ], [ %tmp384, %bb145 ]
    155   %tmp120 = phi float [ 0.000000e+00, %bb ], [ %tmp385, %bb145 ]
    156   %tmp121 = phi float [ 0.000000e+00, %bb ], [ %tmp386, %bb145 ]
    157   %tmp122 = phi float [ 0.000000e+00, %bb ], [ %tmp387, %bb145 ]
    158   %tmp123 = phi float [ 0.000000e+00, %bb ], [ %tmp388, %bb145 ]
    159   %tmp124 = phi float [ 0.000000e+00, %bb ], [ %tmp389, %bb145 ]
    160   %tmp125 = phi float [ 0.000000e+00, %bb ], [ %tmp390, %bb145 ]
    161   %tmp126 = phi float [ 0.000000e+00, %bb ], [ %tmp391, %bb145 ]
    162   %tmp127 = phi float [ 0.000000e+00, %bb ], [ %tmp392, %bb145 ]
    163   %tmp128 = phi float [ 0.000000e+00, %bb ], [ %tmp393, %bb145 ]
    164   %tmp129 = phi float [ 0.000000e+00, %bb ], [ %tmp394, %bb145 ]
    165   %tmp130 = phi float [ 0.000000e+00, %bb ], [ %tmp395, %bb145 ]
    166   %tmp131 = phi float [ 0.000000e+00, %bb ], [ %tmp396, %bb145 ]
    167   %tmp132 = phi float [ 0.000000e+00, %bb ], [ %tmp397, %bb145 ]
    168   %tmp133 = phi float [ 0.000000e+00, %bb ], [ %tmp398, %bb145 ]
    169   %tmp134 = phi float [ 0.000000e+00, %bb ], [ %tmp399, %bb145 ]
    170   %tmp135 = phi float [ 0.000000e+00, %bb ], [ %tmp400, %bb145 ]
    171   %tmp136 = phi float [ 0.000000e+00, %bb ], [ %tmp401, %bb145 ]
    172   %tmp137 = phi float [ 0.000000e+00, %bb ], [ %tmp402, %bb145 ]
    173   %tmp138 = phi float [ 0.000000e+00, %bb ], [ %tmp403, %bb145 ]
    174   %tmp139 = phi float [ 0.000000e+00, %bb ], [ %tmp404, %bb145 ]
    175   %tmp140 = phi float [ 0.000000e+00, %bb ], [ %tmp405, %bb145 ]
    176   %tmp141 = phi float [ 0.000000e+00, %bb ], [ %tmp406, %bb145 ]
    177   %tmp142 = bitcast float %tmp95 to i32
    178   %tmp143 = icmp sgt i32 %tmp142, 125
    179   br i1 %tmp143, label %bb144, label %bb145
    180 
    181 bb144:                                            ; preds = %bb12
    182   store volatile float %arg3, float addrspace(1)* %arg
    183   store volatile float %tmp91, float addrspace(1)* %arg
    184   store volatile float %tmp90, float addrspace(1)* %arg
    185   store volatile float %tmp89, float addrspace(1)* %arg
    186   store volatile float %tmp87, float addrspace(1)* %arg
    187   store volatile float %tmp86, float addrspace(1)* %arg
    188   store volatile float %tmp85, float addrspace(1)* %arg
    189   store volatile float %tmp83, float addrspace(1)* %arg
    190   store volatile float %tmp82, float addrspace(1)* %arg
    191   store volatile float %tmp81, float addrspace(1)* %arg
    192   store volatile float %tmp79, float addrspace(1)* %arg
    193   store volatile float %tmp78, float addrspace(1)* %arg
    194   store volatile float %tmp77, float addrspace(1)* %arg
    195   store volatile float %tmp75, float addrspace(1)* %arg
    196   store volatile float %tmp74, float addrspace(1)* %arg
    197   store volatile float %tmp73, float addrspace(1)* %arg
    198   store volatile float %tmp71, float addrspace(1)* %arg
    199   store volatile float %tmp70, float addrspace(1)* %arg
    200   store volatile float %tmp69, float addrspace(1)* %arg
    201   store volatile float %tmp67, float addrspace(1)* %arg
    202   store volatile float %tmp66, float addrspace(1)* %arg
    203   store volatile float %tmp65, float addrspace(1)* %arg
    204   store volatile float %tmp63, float addrspace(1)* %arg
    205   store volatile float %tmp62, float addrspace(1)* %arg
    206   store volatile float %tmp61, float addrspace(1)* %arg
    207   store volatile float %tmp59, float addrspace(1)* %arg
    208   store volatile float %tmp58, float addrspace(1)* %arg
    209   store volatile float %tmp57, float addrspace(1)* %arg
    210   store volatile float %tmp55, float addrspace(1)* %arg
    211   store volatile float %tmp54, float addrspace(1)* %arg
    212   store volatile float %tmp53, float addrspace(1)* %arg
    213   store volatile float %tmp51, float addrspace(1)* %arg
    214   store volatile float %tmp50, float addrspace(1)* %arg
    215   store volatile float %tmp49, float addrspace(1)* %arg
    216   store volatile float %tmp47, float addrspace(1)* %arg
    217   store volatile float %tmp46, float addrspace(1)* %arg
    218   store volatile float %tmp45, float addrspace(1)* %arg
    219   store volatile float %tmp43, float addrspace(1)* %arg
    220   store volatile float %tmp42, float addrspace(1)* %arg
    221   store volatile float %tmp41, float addrspace(1)* %arg
    222   store volatile float %tmp39, float addrspace(1)* %arg
    223   store volatile float %tmp38, float addrspace(1)* %arg
    224   store volatile float %tmp37, float addrspace(1)* %arg
    225   store volatile float %tmp35, float addrspace(1)* %arg
    226   store volatile float %tmp34, float addrspace(1)* %arg
    227   store volatile float %tmp33, float addrspace(1)* %arg
    228   store volatile float %tmp31, float addrspace(1)* %arg
    229   store volatile float %tmp30, float addrspace(1)* %arg
    230   store volatile float %tmp29, float addrspace(1)* %arg
    231   store volatile float %tmp27, float addrspace(1)* %arg
    232   store volatile float %tmp26, float addrspace(1)* %arg
    233   store volatile float %tmp25, float addrspace(1)* %arg
    234   store volatile float %tmp23, float addrspace(1)* %arg
    235   store volatile float %tmp22, float addrspace(1)* %arg
    236   store volatile float %tmp21, float addrspace(1)* %arg
    237   store volatile float %tmp19, float addrspace(1)* %arg
    238   store volatile float %tmp18, float addrspace(1)* %arg
    239   store volatile float %tmp17, float addrspace(1)* %arg
    240   store volatile float %tmp15, float addrspace(1)* %arg
    241   store volatile float %tmp14, float addrspace(1)* %arg
    242   store volatile float %tmp13, float addrspace(1)* %arg
    243   store volatile float %tmp16, float addrspace(1)* %arg
    244   store volatile float %tmp20, float addrspace(1)* %arg
    245   store volatile float %tmp24, float addrspace(1)* %arg
    246   store volatile float %tmp28, float addrspace(1)* %arg
    247   store volatile float %tmp32, float addrspace(1)* %arg
    248   store volatile float %tmp36, float addrspace(1)* %arg
    249   store volatile float %tmp40, float addrspace(1)* %arg
    250   store volatile float %tmp44, float addrspace(1)* %arg
    251   store volatile float %tmp48, float addrspace(1)* %arg
    252   store volatile float %tmp52, float addrspace(1)* %arg
    253   store volatile float %tmp56, float addrspace(1)* %arg
    254   store volatile float %tmp60, float addrspace(1)* %arg
    255   store volatile float %tmp64, float addrspace(1)* %arg
    256   store volatile float %tmp68, float addrspace(1)* %arg
    257   store volatile float %tmp72, float addrspace(1)* %arg
    258   store volatile float %tmp76, float addrspace(1)* %arg
    259   store volatile float %tmp80, float addrspace(1)* %arg
    260   store volatile float %tmp84, float addrspace(1)* %arg
    261   store volatile float %tmp88, float addrspace(1)* %arg
    262   store volatile float %tmp92, float addrspace(1)* %arg
    263   store volatile float %tmp93, float addrspace(1)* %arg
    264   store volatile float %tmp94, float addrspace(1)* %arg
    265   store volatile float %tmp96, float addrspace(1)* %arg
    266   store volatile float %tmp97, float addrspace(1)* %arg
    267   store volatile float %tmp98, float addrspace(1)* %arg
    268   store volatile float %tmp99, float addrspace(1)* %arg
    269   store volatile float %tmp100, float addrspace(1)* %arg
    270   store volatile float %tmp101, float addrspace(1)* %arg
    271   store volatile float %tmp102, float addrspace(1)* %arg
    272   store volatile float %tmp103, float addrspace(1)* %arg
    273   store volatile float %tmp104, float addrspace(1)* %arg
    274   store volatile float %tmp105, float addrspace(1)* %arg
    275   store volatile float %tmp106, float addrspace(1)* %arg
    276   store volatile float %tmp107, float addrspace(1)* %arg
    277   store volatile float %tmp108, float addrspace(1)* %arg
    278   store volatile float %tmp109, float addrspace(1)* %arg
    279   store volatile float %tmp110, float addrspace(1)* %arg
    280   store volatile float %tmp111, float addrspace(1)* %arg
    281   store volatile float %tmp112, float addrspace(1)* %arg
    282   store volatile float %tmp113, float addrspace(1)* %arg
    283   store volatile float %tmp114, float addrspace(1)* %arg
    284   store volatile float %tmp115, float addrspace(1)* %arg
    285   store volatile float %tmp116, float addrspace(1)* %arg
    286   store volatile float %tmp117, float addrspace(1)* %arg
    287   store volatile float %tmp118, float addrspace(1)* %arg
    288   store volatile float %tmp119, float addrspace(1)* %arg
    289   store volatile float %tmp120, float addrspace(1)* %arg
    290   store volatile float %tmp121, float addrspace(1)* %arg
    291   store volatile float %tmp122, float addrspace(1)* %arg
    292   store volatile float %tmp123, float addrspace(1)* %arg
    293   store volatile float %tmp124, float addrspace(1)* %arg
    294   store volatile float %tmp125, float addrspace(1)* %arg
    295   store volatile float %tmp126, float addrspace(1)* %arg
    296   store volatile float %tmp127, float addrspace(1)* %arg
    297   store volatile float %tmp128, float addrspace(1)* %arg
    298   store volatile float %tmp129, float addrspace(1)* %arg
    299   store volatile float %tmp130, float addrspace(1)* %arg
    300   store volatile float %tmp131, float addrspace(1)* %arg
    301   store volatile float %tmp132, float addrspace(1)* %arg
    302   store volatile float %tmp133, float addrspace(1)* %arg
    303   store volatile float %tmp134, float addrspace(1)* %arg
    304   store volatile float %tmp135, float addrspace(1)* %arg
    305   store volatile float %tmp136, float addrspace(1)* %arg
    306   store volatile float %tmp137, float addrspace(1)* %arg
    307   store volatile float %tmp138, float addrspace(1)* %arg
    308   store volatile float %tmp139, float addrspace(1)* %arg
    309   store volatile float %arg4, float addrspace(1)* %arg
    310   store volatile float %tmp7, float addrspace(1)* %arg
    311   store volatile float %tmp8, float addrspace(1)* %arg
    312   store volatile float %tmp9, float addrspace(1)* %arg
    313   store volatile float %tmp10, float addrspace(1)* %arg
    314   ret void
    315 
    316 bb145:                                            ; preds = %bb12
    317   %tmp146 = bitcast float %tmp95 to i32
    318   %tmp147 = bitcast float %tmp95 to i32
    319   %tmp148 = add i32 %tmp11, %tmp147
    320   %tmp149 = bitcast i32 %tmp148 to float
    321   %tmp150 = insertelement <128 x float> undef, float %tmp91, i32 0
    322   %tmp151 = insertelement <128 x float> %tmp150, float %tmp90, i32 1
    323   %tmp152 = insertelement <128 x float> %tmp151, float %tmp89, i32 2
    324   %tmp153 = insertelement <128 x float> %tmp152, float %tmp87, i32 3
    325   %tmp154 = insertelement <128 x float> %tmp153, float %tmp86, i32 4
    326   %tmp155 = insertelement <128 x float> %tmp154, float %tmp85, i32 5
    327   %tmp156 = insertelement <128 x float> %tmp155, float %tmp83, i32 6
    328   %tmp157 = insertelement <128 x float> %tmp156, float %tmp82, i32 7
    329   %tmp158 = insertelement <128 x float> %tmp157, float %tmp81, i32 8
    330   %tmp159 = insertelement <128 x float> %tmp158, float %tmp79, i32 9
    331   %tmp160 = insertelement <128 x float> %tmp159, float %tmp78, i32 10
    332   %tmp161 = insertelement <128 x float> %tmp160, float %tmp77, i32 11
    333   %tmp162 = insertelement <128 x float> %tmp161, float %tmp75, i32 12
    334   %tmp163 = insertelement <128 x float> %tmp162, float %tmp74, i32 13
    335   %tmp164 = insertelement <128 x float> %tmp163, float %tmp73, i32 14
    336   %tmp165 = insertelement <128 x float> %tmp164, float %tmp71, i32 15
    337   %tmp166 = insertelement <128 x float> %tmp165, float %tmp70, i32 16
    338   %tmp167 = insertelement <128 x float> %tmp166, float %tmp69, i32 17
    339   %tmp168 = insertelement <128 x float> %tmp167, float %tmp67, i32 18
    340   %tmp169 = insertelement <128 x float> %tmp168, float %tmp66, i32 19
    341   %tmp170 = insertelement <128 x float> %tmp169, float %tmp65, i32 20
    342   %tmp171 = insertelement <128 x float> %tmp170, float %tmp63, i32 21
    343   %tmp172 = insertelement <128 x float> %tmp171, float %tmp62, i32 22
    344   %tmp173 = insertelement <128 x float> %tmp172, float %tmp61, i32 23
    345   %tmp174 = insertelement <128 x float> %tmp173, float %tmp59, i32 24
    346   %tmp175 = insertelement <128 x float> %tmp174, float %tmp58, i32 25
    347   %tmp176 = insertelement <128 x float> %tmp175, float %tmp57, i32 26
    348   %tmp177 = insertelement <128 x float> %tmp176, float %tmp55, i32 27
    349   %tmp178 = insertelement <128 x float> %tmp177, float %tmp54, i32 28
    350   %tmp179 = insertelement <128 x float> %tmp178, float %tmp53, i32 29
    351   %tmp180 = insertelement <128 x float> %tmp179, float %tmp51, i32 30
    352   %tmp181 = insertelement <128 x float> %tmp180, float %tmp50, i32 31
    353   %tmp182 = insertelement <128 x float> %tmp181, float %tmp49, i32 32
    354   %tmp183 = insertelement <128 x float> %tmp182, float %tmp47, i32 33
    355   %tmp184 = insertelement <128 x float> %tmp183, float %tmp46, i32 34
    356   %tmp185 = insertelement <128 x float> %tmp184, float %tmp45, i32 35
    357   %tmp186 = insertelement <128 x float> %tmp185, float %tmp43, i32 36
    358   %tmp187 = insertelement <128 x float> %tmp186, float %tmp42, i32 37
    359   %tmp188 = insertelement <128 x float> %tmp187, float %tmp41, i32 38
    360   %tmp189 = insertelement <128 x float> %tmp188, float %tmp39, i32 39
    361   %tmp190 = insertelement <128 x float> %tmp189, float %tmp38, i32 40
    362   %tmp191 = insertelement <128 x float> %tmp190, float %tmp37, i32 41
    363   %tmp192 = insertelement <128 x float> %tmp191, float %tmp35, i32 42
    364   %tmp193 = insertelement <128 x float> %tmp192, float %tmp34, i32 43
    365   %tmp194 = insertelement <128 x float> %tmp193, float %tmp33, i32 44
    366   %tmp195 = insertelement <128 x float> %tmp194, float %tmp31, i32 45
    367   %tmp196 = insertelement <128 x float> %tmp195, float %tmp30, i32 46
    368   %tmp197 = insertelement <128 x float> %tmp196, float %tmp29, i32 47
    369   %tmp198 = insertelement <128 x float> %tmp197, float %tmp27, i32 48
    370   %tmp199 = insertelement <128 x float> %tmp198, float %tmp26, i32 49
    371   %tmp200 = insertelement <128 x float> %tmp199, float %tmp25, i32 50
    372   %tmp201 = insertelement <128 x float> %tmp200, float %tmp23, i32 51
    373   %tmp202 = insertelement <128 x float> %tmp201, float %tmp22, i32 52
    374   %tmp203 = insertelement <128 x float> %tmp202, float %tmp21, i32 53
    375   %tmp204 = insertelement <128 x float> %tmp203, float %tmp19, i32 54
    376   %tmp205 = insertelement <128 x float> %tmp204, float %tmp18, i32 55
    377   %tmp206 = insertelement <128 x float> %tmp205, float %tmp17, i32 56
    378   %tmp207 = insertelement <128 x float> %tmp206, float %tmp15, i32 57
    379   %tmp208 = insertelement <128 x float> %tmp207, float %tmp14, i32 58
    380   %tmp209 = insertelement <128 x float> %tmp208, float %tmp13, i32 59
    381   %tmp210 = insertelement <128 x float> %tmp209, float %tmp16, i32 60
    382   %tmp211 = insertelement <128 x float> %tmp210, float %tmp20, i32 61
    383   %tmp212 = insertelement <128 x float> %tmp211, float %tmp24, i32 62
    384   %tmp213 = insertelement <128 x float> %tmp212, float %tmp28, i32 63
    385   %tmp214 = insertelement <128 x float> %tmp213, float %tmp32, i32 64
    386   %tmp215 = insertelement <128 x float> %tmp214, float %tmp36, i32 65
    387   %tmp216 = insertelement <128 x float> %tmp215, float %tmp40, i32 66
    388   %tmp217 = insertelement <128 x float> %tmp216, float %tmp44, i32 67
    389   %tmp218 = insertelement <128 x float> %tmp217, float %tmp48, i32 68
    390   %tmp219 = insertelement <128 x float> %tmp218, float %tmp52, i32 69
    391   %tmp220 = insertelement <128 x float> %tmp219, float %tmp56, i32 70
    392   %tmp221 = insertelement <128 x float> %tmp220, float %tmp60, i32 71
    393   %tmp222 = insertelement <128 x float> %tmp221, float %tmp64, i32 72
    394   %tmp223 = insertelement <128 x float> %tmp222, float %tmp68, i32 73
    395   %tmp224 = insertelement <128 x float> %tmp223, float %tmp72, i32 74
    396   %tmp225 = insertelement <128 x float> %tmp224, float %tmp76, i32 75
    397   %tmp226 = insertelement <128 x float> %tmp225, float %tmp80, i32 76
    398   %tmp227 = insertelement <128 x float> %tmp226, float %tmp84, i32 77
    399   %tmp228 = insertelement <128 x float> %tmp227, float %tmp88, i32 78
    400   %tmp229 = insertelement <128 x float> %tmp228, float %tmp92, i32 79
    401   %tmp230 = insertelement <128 x float> %tmp229, float %tmp93, i32 80
    402   %tmp231 = insertelement <128 x float> %tmp230, float %tmp94, i32 81
    403   %tmp232 = insertelement <128 x float> %tmp231, float %tmp96, i32 82
    404   %tmp233 = insertelement <128 x float> %tmp232, float %tmp97, i32 83
    405   %tmp234 = insertelement <128 x float> %tmp233, float %tmp98, i32 84
    406   %tmp235 = insertelement <128 x float> %tmp234, float %tmp99, i32 85
    407   %tmp236 = insertelement <128 x float> %tmp235, float %tmp100, i32 86
    408   %tmp237 = insertelement <128 x float> %tmp236, float %tmp101, i32 87
    409   %tmp238 = insertelement <128 x float> %tmp237, float %tmp102, i32 88
    410   %tmp239 = insertelement <128 x float> %tmp238, float %tmp103, i32 89
    411   %tmp240 = insertelement <128 x float> %tmp239, float %tmp104, i32 90
    412   %tmp241 = insertelement <128 x float> %tmp240, float %tmp105, i32 91
    413   %tmp242 = insertelement <128 x float> %tmp241, float %tmp106, i32 92
    414   %tmp243 = insertelement <128 x float> %tmp242, float %tmp107, i32 93
    415   %tmp244 = insertelement <128 x float> %tmp243, float %tmp108, i32 94
    416   %tmp245 = insertelement <128 x float> %tmp244, float %tmp109, i32 95
    417   %tmp246 = insertelement <128 x float> %tmp245, float %tmp110, i32 96
    418   %tmp247 = insertelement <128 x float> %tmp246, float %tmp111, i32 97
    419   %tmp248 = insertelement <128 x float> %tmp247, float %tmp112, i32 98
    420   %tmp249 = insertelement <128 x float> %tmp248, float %tmp113, i32 99
    421   %tmp250 = insertelement <128 x float> %tmp249, float %tmp114, i32 100
    422   %tmp251 = insertelement <128 x float> %tmp250, float %tmp115, i32 101
    423   %tmp252 = insertelement <128 x float> %tmp251, float %tmp116, i32 102
    424   %tmp253 = insertelement <128 x float> %tmp252, float %tmp117, i32 103
    425   %tmp254 = insertelement <128 x float> %tmp253, float %tmp118, i32 104
    426   %tmp255 = insertelement <128 x float> %tmp254, float %tmp119, i32 105
    427   %tmp256 = insertelement <128 x float> %tmp255, float %tmp120, i32 106
    428   %tmp257 = insertelement <128 x float> %tmp256, float %tmp121, i32 107
    429   %tmp258 = insertelement <128 x float> %tmp257, float %tmp122, i32 108
    430   %tmp259 = insertelement <128 x float> %tmp258, float %tmp123, i32 109
    431   %tmp260 = insertelement <128 x float> %tmp259, float %tmp124, i32 110
    432   %tmp261 = insertelement <128 x float> %tmp260, float %tmp125, i32 111
    433   %tmp262 = insertelement <128 x float> %tmp261, float %tmp126, i32 112
    434   %tmp263 = insertelement <128 x float> %tmp262, float %tmp127, i32 113
    435   %tmp264 = insertelement <128 x float> %tmp263, float %tmp128, i32 114
    436   %tmp265 = insertelement <128 x float> %tmp264, float %tmp129, i32 115
    437   %tmp266 = insertelement <128 x float> %tmp265, float %tmp130, i32 116
    438   %tmp267 = insertelement <128 x float> %tmp266, float %tmp131, i32 117
    439   %tmp268 = insertelement <128 x float> %tmp267, float %tmp132, i32 118
    440   %tmp269 = insertelement <128 x float> %tmp268, float %tmp133, i32 119
    441   %tmp270 = insertelement <128 x float> %tmp269, float %tmp134, i32 120
    442   %tmp271 = insertelement <128 x float> %tmp270, float %tmp135, i32 121
    443   %tmp272 = insertelement <128 x float> %tmp271, float %tmp136, i32 122
    444   %tmp273 = insertelement <128 x float> %tmp272, float %tmp137, i32 123
    445   %tmp274 = insertelement <128 x float> %tmp273, float %tmp138, i32 124
    446   %tmp275 = insertelement <128 x float> %tmp274, float %tmp139, i32 125
    447   %tmp276 = insertelement <128 x float> %tmp275, float %tmp140, i32 126
    448   %tmp277 = insertelement <128 x float> %tmp276, float %tmp141, i32 127
    449   %tmp278 = insertelement <128 x float> %tmp277, float %tmp149, i32 %tmp146
    450   %tmp279 = extractelement <128 x float> %tmp278, i32 0
    451   %tmp280 = extractelement <128 x float> %tmp278, i32 1
    452   %tmp281 = extractelement <128 x float> %tmp278, i32 2
    453   %tmp282 = extractelement <128 x float> %tmp278, i32 3
    454   %tmp283 = extractelement <128 x float> %tmp278, i32 4
    455   %tmp284 = extractelement <128 x float> %tmp278, i32 5
    456   %tmp285 = extractelement <128 x float> %tmp278, i32 6
    457   %tmp286 = extractelement <128 x float> %tmp278, i32 7
    458   %tmp287 = extractelement <128 x float> %tmp278, i32 8
    459   %tmp288 = extractelement <128 x float> %tmp278, i32 9
    460   %tmp289 = extractelement <128 x float> %tmp278, i32 10
    461   %tmp290 = extractelement <128 x float> %tmp278, i32 11
    462   %tmp291 = extractelement <128 x float> %tmp278, i32 12
    463   %tmp292 = extractelement <128 x float> %tmp278, i32 13
    464   %tmp293 = extractelement <128 x float> %tmp278, i32 14
    465   %tmp294 = extractelement <128 x float> %tmp278, i32 15
    466   %tmp295 = extractelement <128 x float> %tmp278, i32 16
    467   %tmp296 = extractelement <128 x float> %tmp278, i32 17
    468   %tmp297 = extractelement <128 x float> %tmp278, i32 18
    469   %tmp298 = extractelement <128 x float> %tmp278, i32 19
    470   %tmp299 = extractelement <128 x float> %tmp278, i32 20
    471   %tmp300 = extractelement <128 x float> %tmp278, i32 21
    472   %tmp301 = extractelement <128 x float> %tmp278, i32 22
    473   %tmp302 = extractelement <128 x float> %tmp278, i32 23
    474   %tmp303 = extractelement <128 x float> %tmp278, i32 24
    475   %tmp304 = extractelement <128 x float> %tmp278, i32 25
    476   %tmp305 = extractelement <128 x float> %tmp278, i32 26
    477   %tmp306 = extractelement <128 x float> %tmp278, i32 27
    478   %tmp307 = extractelement <128 x float> %tmp278, i32 28
    479   %tmp308 = extractelement <128 x float> %tmp278, i32 29
    480   %tmp309 = extractelement <128 x float> %tmp278, i32 30
    481   %tmp310 = extractelement <128 x float> %tmp278, i32 31
    482   %tmp311 = extractelement <128 x float> %tmp278, i32 32
    483   %tmp312 = extractelement <128 x float> %tmp278, i32 33
    484   %tmp313 = extractelement <128 x float> %tmp278, i32 34
    485   %tmp314 = extractelement <128 x float> %tmp278, i32 35
    486   %tmp315 = extractelement <128 x float> %tmp278, i32 36
    487   %tmp316 = extractelement <128 x float> %tmp278, i32 37
    488   %tmp317 = extractelement <128 x float> %tmp278, i32 38
    489   %tmp318 = extractelement <128 x float> %tmp278, i32 39
    490   %tmp319 = extractelement <128 x float> %tmp278, i32 40
    491   %tmp320 = extractelement <128 x float> %tmp278, i32 41
    492   %tmp321 = extractelement <128 x float> %tmp278, i32 42
    493   %tmp322 = extractelement <128 x float> %tmp278, i32 43
    494   %tmp323 = extractelement <128 x float> %tmp278, i32 44
    495   %tmp324 = extractelement <128 x float> %tmp278, i32 45
    496   %tmp325 = extractelement <128 x float> %tmp278, i32 46
    497   %tmp326 = extractelement <128 x float> %tmp278, i32 47
    498   %tmp327 = extractelement <128 x float> %tmp278, i32 48
    499   %tmp328 = extractelement <128 x float> %tmp278, i32 49
    500   %tmp329 = extractelement <128 x float> %tmp278, i32 50
    501   %tmp330 = extractelement <128 x float> %tmp278, i32 51
    502   %tmp331 = extractelement <128 x float> %tmp278, i32 52
    503   %tmp332 = extractelement <128 x float> %tmp278, i32 53
    504   %tmp333 = extractelement <128 x float> %tmp278, i32 54
    505   %tmp334 = extractelement <128 x float> %tmp278, i32 55
    506   %tmp335 = extractelement <128 x float> %tmp278, i32 56
    507   %tmp336 = extractelement <128 x float> %tmp278, i32 57
    508   %tmp337 = extractelement <128 x float> %tmp278, i32 58
    509   %tmp338 = extractelement <128 x float> %tmp278, i32 59
    510   %tmp339 = extractelement <128 x float> %tmp278, i32 60
    511   %tmp340 = extractelement <128 x float> %tmp278, i32 61
    512   %tmp341 = extractelement <128 x float> %tmp278, i32 62
    513   %tmp342 = extractelement <128 x float> %tmp278, i32 63
    514   %tmp343 = extractelement <128 x float> %tmp278, i32 64
    515   %tmp344 = extractelement <128 x float> %tmp278, i32 65
    516   %tmp345 = extractelement <128 x float> %tmp278, i32 66
    517   %tmp346 = extractelement <128 x float> %tmp278, i32 67
    518   %tmp347 = extractelement <128 x float> %tmp278, i32 68
    519   %tmp348 = extractelement <128 x float> %tmp278, i32 69
    520   %tmp349 = extractelement <128 x float> %tmp278, i32 70
    521   %tmp350 = extractelement <128 x float> %tmp278, i32 71
    522   %tmp351 = extractelement <128 x float> %tmp278, i32 72
    523   %tmp352 = extractelement <128 x float> %tmp278, i32 73
    524   %tmp353 = extractelement <128 x float> %tmp278, i32 74
    525   %tmp354 = extractelement <128 x float> %tmp278, i32 75
    526   %tmp355 = extractelement <128 x float> %tmp278, i32 76
    527   %tmp356 = extractelement <128 x float> %tmp278, i32 77
    528   %tmp357 = extractelement <128 x float> %tmp278, i32 78
    529   %tmp358 = extractelement <128 x float> %tmp278, i32 79
    530   %tmp359 = extractelement <128 x float> %tmp278, i32 80
    531   %tmp360 = extractelement <128 x float> %tmp278, i32 81
    532   %tmp361 = extractelement <128 x float> %tmp278, i32 82
    533   %tmp362 = extractelement <128 x float> %tmp278, i32 83
    534   %tmp363 = extractelement <128 x float> %tmp278, i32 84
    535   %tmp364 = extractelement <128 x float> %tmp278, i32 85
    536   %tmp365 = extractelement <128 x float> %tmp278, i32 86
    537   %tmp366 = extractelement <128 x float> %tmp278, i32 87
    538   %tmp367 = extractelement <128 x float> %tmp278, i32 88
    539   %tmp368 = extractelement <128 x float> %tmp278, i32 89
    540   %tmp369 = extractelement <128 x float> %tmp278, i32 90
    541   %tmp370 = extractelement <128 x float> %tmp278, i32 91
    542   %tmp371 = extractelement <128 x float> %tmp278, i32 92
    543   %tmp372 = extractelement <128 x float> %tmp278, i32 93
    544   %tmp373 = extractelement <128 x float> %tmp278, i32 94
    545   %tmp374 = extractelement <128 x float> %tmp278, i32 95
    546   %tmp375 = extractelement <128 x float> %tmp278, i32 96
    547   %tmp376 = extractelement <128 x float> %tmp278, i32 97
    548   %tmp377 = extractelement <128 x float> %tmp278, i32 98
    549   %tmp378 = extractelement <128 x float> %tmp278, i32 99
    550   %tmp379 = extractelement <128 x float> %tmp278, i32 100
    551   %tmp380 = extractelement <128 x float> %tmp278, i32 101
    552   %tmp381 = extractelement <128 x float> %tmp278, i32 102
    553   %tmp382 = extractelement <128 x float> %tmp278, i32 103
    554   %tmp383 = extractelement <128 x float> %tmp278, i32 104
    555   %tmp384 = extractelement <128 x float> %tmp278, i32 105
    556   %tmp385 = extractelement <128 x float> %tmp278, i32 106
    557   %tmp386 = extractelement <128 x float> %tmp278, i32 107
    558   %tmp387 = extractelement <128 x float> %tmp278, i32 108
    559   %tmp388 = extractelement <128 x float> %tmp278, i32 109
    560   %tmp389 = extractelement <128 x float> %tmp278, i32 110
    561   %tmp390 = extractelement <128 x float> %tmp278, i32 111
    562   %tmp391 = extractelement <128 x float> %tmp278, i32 112
    563   %tmp392 = extractelement <128 x float> %tmp278, i32 113
    564   %tmp393 = extractelement <128 x float> %tmp278, i32 114
    565   %tmp394 = extractelement <128 x float> %tmp278, i32 115
    566   %tmp395 = extractelement <128 x float> %tmp278, i32 116
    567   %tmp396 = extractelement <128 x float> %tmp278, i32 117
    568   %tmp397 = extractelement <128 x float> %tmp278, i32 118
    569   %tmp398 = extractelement <128 x float> %tmp278, i32 119
    570   %tmp399 = extractelement <128 x float> %tmp278, i32 120
    571   %tmp400 = extractelement <128 x float> %tmp278, i32 121
    572   %tmp401 = extractelement <128 x float> %tmp278, i32 122
    573   %tmp402 = extractelement <128 x float> %tmp278, i32 123
    574   %tmp403 = extractelement <128 x float> %tmp278, i32 124
    575   %tmp404 = extractelement <128 x float> %tmp278, i32 125
    576   %tmp405 = extractelement <128 x float> %tmp278, i32 126
    577   %tmp406 = extractelement <128 x float> %tmp278, i32 127
    578   %tmp407 = bitcast float %tmp95 to i32
    579   %tmp408 = add i32 %tmp407, 1
    580   %tmp409 = bitcast i32 %tmp408 to float
    581   br label %bb12
    582 }
    583 
    584 attributes #0 = { nounwind }
    585 attributes #1 = { nounwind readnone }
    586