| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -mtriple=amdgpu9.08-amd-amdhsa -start-before=greedy,1 -stop-after=prolog-epilog -verify-machineinstrs -verify-regalloc -o - %s | FileCheck --check-prefixes=GCN %s |
| |
| # The VGPR pair spilled and restored around the callsite is used in the next basic block. |
| # |
| # AMDGPU target spill hooks storeRegToStackSlot/loadRegFromStackSlot handle the register spills via |
| # spill pseudos to insert a single instruction per spill to tackle the limitation during inline spiller |
| # that incorrectly updates the Liveintervals in case of a spill lowered into multiple instructions. |
| # AV spills were handled earlier by converting them into equivalent VGPR spills by adding appropriate copies. |
| # The multiple instructions (a copy + vgpr spill pseudo) introduced an incorrect liverange that caused a |
| # crash during RA. It is fixed by introducing AV* spill pseudos to ensure a single instruction per spill and |
| # the test started compiling successfully. |
| |
| --- |
| name: test_av_spill_cross_bb_usage |
| tracksRegLiveness: true |
| frameInfo: |
| adjustsStack: true |
| stack: |
| - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 } |
| machineFunctionInfo: |
| scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3 |
| stackPtrOffsetReg: '$sgpr32' |
| body: | |
| ; GCN-LABEL: name: test_av_spill_cross_bb_usage |
| ; GCN: bb.0: |
| ; GCN-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; GCN-NEXT: liveins: $sgpr30, $sgpr31, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr40, $vgpr41, $vgpr42, $vgpr43, $vgpr44, $vgpr45, $vgpr46, $vgpr56, $vgpr57, $vgpr58, $vgpr59, $vgpr60, $vgpr61, $sgpr30_sgpr31 |
| ; GCN-NEXT: {{ $}} |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_def_aspace_cfa $sgpr32, 0, 6 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_register_pair $pc_reg, $sgpr30, 32, $sgpr31, 32 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr0 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr1 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr2 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr3 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr4 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr5 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr6 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr7 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr8 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr9 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr10 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr11 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr12 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr13 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr14 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr15 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr16 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr17 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr18 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr19 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr20 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr21 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr22 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr23 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr24 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr25 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr26 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr27 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr28 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr29 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr30 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr31 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr32 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr33 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr34 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr35 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr36 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr37 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr38 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr39 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr48 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr49 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr50 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr51 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr52 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr53 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr54 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr55 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr64 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr65 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr66 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr67 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr68 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr69 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr70 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr71 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr80 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr81 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr82 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr83 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr84 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr85 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr86 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr87 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr96 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr97 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr98 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr99 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr100 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr101 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr102 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr103 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr112 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr113 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr114 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr115 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr116 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr117 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr118 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr119 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr128 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr129 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr130 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr131 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr132 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr133 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr134 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr135 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr144 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr145 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr146 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr147 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr148 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr149 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr150 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr151 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr160 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr161 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr162 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr163 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr164 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr165 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr166 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr167 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr176 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr177 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr178 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr179 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr180 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr181 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr182 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr183 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr192 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr193 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr194 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr195 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr196 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr197 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr198 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr199 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr208 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr209 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr210 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr211 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr212 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr213 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr214 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr215 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr224 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr225 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr226 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr227 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr228 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr229 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr230 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr231 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr240 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr241 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr242 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr243 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr244 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr245 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr246 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $vgpr247 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr0 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr1 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr2 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr3 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr4 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr5 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr6 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr7 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr8 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr9 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr10 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr11 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr12 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr13 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr14 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr15 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr16 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr17 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr18 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr19 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr20 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr21 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr22 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr23 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr24 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr25 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr26 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr27 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr28 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr29 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr30 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr31 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr32 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr33 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr34 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr35 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr36 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr37 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr38 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr39 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr40 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr41 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr42 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr43 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr44 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr45 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr46 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr47 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr48 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr49 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr50 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr51 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr52 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr53 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr54 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr55 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr56 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr57 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr58 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr59 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr60 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr61 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr62 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr63 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr64 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr65 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr66 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr67 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr68 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr69 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr70 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr71 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr72 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr73 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr74 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr75 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr76 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr77 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr78 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr79 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr80 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr81 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr82 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr83 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr84 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr85 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr86 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr87 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr88 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr89 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr90 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr91 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr92 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr93 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr94 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr95 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr96 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr97 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr98 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr99 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr100 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr101 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr102 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr103 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr104 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr105 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr106 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr107 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr108 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr109 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr110 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr111 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr112 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr113 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr114 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr115 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr116 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr117 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr118 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr119 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr120 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr121 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr122 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr123 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr124 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr125 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr126 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr127 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr128 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr129 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr130 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr131 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr132 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr133 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr134 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr135 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr136 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr137 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr138 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr139 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr140 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr141 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr142 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr143 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr144 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr145 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr146 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr147 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr148 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr149 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr150 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr151 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr152 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr153 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr154 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr155 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr156 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr157 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr158 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr159 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr160 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr161 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr162 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr163 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr164 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr165 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr166 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr167 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr168 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr169 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr170 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr171 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr172 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr173 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr174 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr175 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr176 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr177 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr178 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr179 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr180 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr181 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr182 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr183 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr184 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr185 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr186 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr187 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr188 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr189 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr190 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr191 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr192 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr193 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr194 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr195 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr196 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr197 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr198 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr199 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr200 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr201 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr202 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr203 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr204 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr205 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr206 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr207 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr208 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr209 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr210 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr211 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr212 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr213 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr214 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr215 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr216 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr217 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr218 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr219 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr220 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr221 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr222 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr223 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr224 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr225 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr226 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr227 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr228 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr229 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr230 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr231 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr232 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr233 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr234 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr235 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr236 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr237 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr238 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr239 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr240 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr241 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr242 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr243 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr244 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr245 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr246 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr247 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr248 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr249 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr250 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr251 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr252 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr253 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr254 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $agpr255 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr0 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr1 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr2 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr3 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr4 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr5 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr6 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr7 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr8 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr9 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr10 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr11 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr12 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr13 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr14 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr15 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr16 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr17 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr18 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr19 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr20 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr21 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr22 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr23 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr24 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr25 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr26 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr27 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr28 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr29 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr40 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr41 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr42 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr43 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr44 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr45 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr46 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr47 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr56 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr57 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr58 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr59 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr60 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr61 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr62 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr63 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr72 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr73 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr74 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr75 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr76 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr77 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr78 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr79 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr88 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr89 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr90 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr91 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr92 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr93 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr94 |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION undefined $sgpr95 |
| ; GCN-NEXT: $sgpr4_sgpr5 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET $vgpr40, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 68, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.3, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION offset $vgpr40, 4352 |
| ; GCN-NEXT: $exec = S_MOV_B64 killed $sgpr4_sgpr5 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr41, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 44, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.4, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr41, 32, $exec, 64, 2816 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr42, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 40, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.5, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr42, 32, $exec, 64, 2560 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr43, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 36, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.6, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr43, 32, $exec, 64, 2304 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr44, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 32, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.7, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr44, 32, $exec, 64, 2048 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr45, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 28, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.8, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr45, 32, $exec, 64, 1792 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr46, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 24, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.9, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr46, 32, $exec, 64, 1536 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr56, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 20, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.10, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr56, 32, $exec, 64, 1280 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr57, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 16, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.11, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr57, 32, $exec, 64, 1024 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr58, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 12, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.12, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr58, 32, $exec, 64, 768 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr59, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 8, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.13, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr59, 32, $exec, 64, 512 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr60, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.14, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr60, 32, $exec, 64, 256 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr61, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec :: ("amdgpu-thread-private" store (s32) into %stack.15, addrspace 5) |
| ; GCN-NEXT: frame-setup CFI_INSTRUCTION llvm_vector_offset $vgpr61, 32, $exec, 64, 0 |
| ; GCN-NEXT: renamable $vgpr44 = COPY $vgpr13, implicit $exec |
| ; GCN-NEXT: renamable $vgpr43 = COPY $vgpr12, implicit $exec |
| ; GCN-NEXT: S_CBRANCH_SCC1 %bb.2, implicit undef $scc |
| ; GCN-NEXT: S_BRANCH %bb.1 |
| ; GCN-NEXT: {{ $}} |
| ; GCN-NEXT: bb.1: |
| ; GCN-NEXT: successors: %bb.2(0x80000000) |
| ; GCN-NEXT: liveins: $exec, $sgpr30, $sgpr31, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr40, $sgpr30_sgpr31, $vgpr10_vgpr11:0x000000000000000F, $vgpr14_vgpr15:0x000000000000000F, $vgpr43_vgpr44:0x000000000000000F |
| ; GCN-NEXT: {{ $}} |
| ; GCN-NEXT: renamable $vgpr57 = COPY $vgpr9, implicit $exec |
| ; GCN-NEXT: renamable $vgpr56 = COPY $vgpr8, implicit $exec |
| ; GCN-NEXT: renamable $vgpr59 = COPY $vgpr7, implicit $exec |
| ; GCN-NEXT: renamable $vgpr58 = COPY $vgpr6, implicit $exec |
| ; GCN-NEXT: renamable $vgpr61 = COPY $vgpr5, implicit $exec |
| ; GCN-NEXT: renamable $vgpr60 = COPY $vgpr4, implicit $exec |
| ; GCN-NEXT: renamable $vgpr42 = COPY $vgpr3, implicit $exec |
| ; GCN-NEXT: renamable $vgpr41 = COPY $vgpr2, implicit $exec |
| ; GCN-NEXT: renamable $vgpr46 = COPY $vgpr1, implicit $exec |
| ; GCN-NEXT: renamable $vgpr45 = COPY $vgpr0, implicit $exec |
| ; GCN-NEXT: renamable $sgpr16_sgpr17 = IMPLICIT_DEF |
| ; GCN-NEXT: $vgpr40 = SI_SPILL_S32_TO_VGPR $sgpr30, 0, $vgpr40, implicit-def $sgpr30_sgpr31, implicit $sgpr30_sgpr31 |
| ; GCN-NEXT: $vgpr40 = SI_SPILL_S32_TO_VGPR $sgpr31, 1, $vgpr40, implicit $sgpr30_sgpr31 |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr14, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 52, 0, 0, implicit $exec, implicit-def $vgpr14_vgpr15, implicit $vgpr14_vgpr15 :: ("amdgpu-thread-private" store (s32) into %stack.1, addrspace 5) |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr15, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 56, 0, 0, implicit $exec, implicit killed $vgpr14_vgpr15 :: ("amdgpu-thread-private" store (s32) into %stack.1 + 4, addrspace 5) |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr10, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 60, 0, 0, implicit $exec, implicit-def $vgpr10_vgpr11, implicit $vgpr10_vgpr11 :: ("amdgpu-thread-private" store (s32) into %stack.2, addrspace 5) |
| ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr11, $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 64, 0, 0, implicit $exec, implicit killed $vgpr10_vgpr11 :: ("amdgpu-thread-private" store (s32) into %stack.2 + 4, addrspace 5) |
| ; GCN-NEXT: dead $sgpr30_sgpr31 = SI_CALL killed renamable $sgpr16_sgpr17, 0, csr_amdgpu, implicit-def dead $vgpr0 |
| ; GCN-NEXT: $vgpr14 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 52, 0, 0, implicit $exec, implicit-def $vgpr14_vgpr15 :: ("amdgpu-thread-private" load (s32) from %stack.1, addrspace 5) |
| ; GCN-NEXT: $vgpr15 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 56, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.1 + 4, addrspace 5) |
| ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_FMA_F64_e64 0, killed $vgpr45_vgpr46, 0, killed $vgpr41_vgpr42, 0, killed $vgpr60_vgpr61, 0, 0, implicit $mode, implicit $exec |
| ; GCN-NEXT: FLAT_STORE_DWORDX2 killed renamable $vgpr58_vgpr59, killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| ; GCN-NEXT: $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 60, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1 :: ("amdgpu-thread-private" load (s32) from %stack.2, addrspace 5) |
| ; GCN-NEXT: $vgpr1 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 64, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.2 + 4, addrspace 5) |
| ; GCN-NEXT: FLAT_STORE_DWORDX2 killed renamable $vgpr0_vgpr1, killed renamable $vgpr56_vgpr57, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| ; GCN-NEXT: {{ $}} |
| ; GCN-NEXT: bb.2: |
| ; GCN-NEXT: liveins: $vgpr40, $vgpr14_vgpr15:0x000000000000000F, $vgpr43_vgpr44:0x000000000000000F |
| ; GCN-NEXT: {{ $}} |
| ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_MOV_B64_PSEUDO 0, implicit $exec |
| ; GCN-NEXT: FLAT_STORE_DWORDX2 undef renamable $vgpr0_vgpr1, killed renamable $vgpr43_vgpr44, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| ; GCN-NEXT: FLAT_STORE_DWORDX2 killed renamable $vgpr0_vgpr1, killed renamable $vgpr14_vgpr15, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| ; GCN-NEXT: $vgpr61 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 0, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.15, addrspace 5) |
| ; GCN-NEXT: $vgpr60 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 4, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.14, addrspace 5) |
| ; GCN-NEXT: $vgpr59 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 8, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.13, addrspace 5) |
| ; GCN-NEXT: $vgpr58 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 12, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.12, addrspace 5) |
| ; GCN-NEXT: $vgpr57 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 16, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.11, addrspace 5) |
| ; GCN-NEXT: $vgpr56 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 20, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.10, addrspace 5) |
| ; GCN-NEXT: $vgpr46 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 24, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.9, addrspace 5) |
| ; GCN-NEXT: $vgpr45 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 28, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.8, addrspace 5) |
| ; GCN-NEXT: $vgpr44 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 32, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.7, addrspace 5) |
| ; GCN-NEXT: $vgpr43 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 36, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.6, addrspace 5) |
| ; GCN-NEXT: $vgpr42 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 40, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.5, addrspace 5) |
| ; GCN-NEXT: $vgpr41 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 44, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.4, addrspace 5) |
| ; GCN-NEXT: $sgpr4_sgpr5 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec |
| ; GCN-NEXT: $vgpr40 = BUFFER_LOAD_DWORD_OFFSET $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr32, 68, 0, 0, implicit $exec :: ("amdgpu-thread-private" load (s32) from %stack.3, addrspace 5) |
| ; GCN-NEXT: $exec = S_MOV_B64 killed $sgpr4_sgpr5 |
| ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31 |
| bb.0: |
| liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr40, $sgpr30, $sgpr31, $sgpr30_sgpr31 |
| |
| undef %0.sub1:vreg_64 = COPY $vgpr15 |
| %0.sub0:vreg_64 = COPY $vgpr14 |
| undef %1.sub1:vreg_64 = COPY $vgpr13 |
| %1.sub0:vreg_64 = COPY $vgpr12 |
| undef %2.sub1:vreg_64 = COPY $vgpr11 |
| %2.sub0:vreg_64 = COPY $vgpr10 |
| undef %3.sub1:vreg_64 = COPY $vgpr9 |
| %3.sub0:vreg_64 = COPY $vgpr8 |
| undef %4.sub1:vreg_64 = COPY $vgpr7 |
| %4.sub0:vreg_64 = COPY $vgpr6 |
| undef %5.sub1:vreg_64 = COPY $vgpr5 |
| %5.sub0:vreg_64 = COPY $vgpr4 |
| undef %6.sub1:vreg_64 = COPY $vgpr3 |
| %6.sub0:vreg_64 = COPY $vgpr2 |
| undef %7.sub1:vreg_64 = COPY $vgpr1 |
| %7.sub0:vreg_64 = COPY $vgpr0 |
| S_CBRANCH_SCC1 %bb.2, implicit undef $scc |
| S_BRANCH %bb.1 |
| |
| bb.1: |
| liveins: $vgpr40, $sgpr30, $sgpr31, $sgpr30_sgpr31 |
| |
| ADJCALLSTACKUP 0, 0, implicit-def dead $scc, implicit-def $sgpr32, implicit $sgpr32 |
| renamable $sgpr16_sgpr17 = IMPLICIT_DEF |
| $vgpr40 = SI_SPILL_S32_TO_VGPR $sgpr30, 0, $vgpr40, implicit-def $sgpr30_sgpr31, implicit $sgpr30_sgpr31 |
| $vgpr40 = SI_SPILL_S32_TO_VGPR killed $sgpr31, 1, $vgpr40, implicit killed $sgpr30_sgpr31 |
| dead $sgpr30_sgpr31 = SI_CALL killed renamable $sgpr16_sgpr17, 0, csr_amdgpu, implicit-def dead $vgpr0 |
| %8:vreg_64 = nofpexcept V_FMA_F64_e64 0, %7, 0, %6, 0, %5, 0, 0, implicit $mode, implicit $exec |
| ADJCALLSTACKDOWN 0, 0, implicit-def dead $scc, implicit-def $sgpr32, implicit $sgpr32 |
| FLAT_STORE_DWORDX2 %4, %8, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| FLAT_STORE_DWORDX2 %2, %3, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| |
| bb.2: |
| liveins: $vgpr40 |
| |
| %9:vreg_64 = V_MOV_B64_PSEUDO 0, implicit $exec |
| FLAT_STORE_DWORDX2 undef %10:vreg_64, %1, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| FLAT_STORE_DWORDX2 %9, %0, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64)) |
| S_SETPC_B64_return undef $sgpr30_sgpr31 |
| ... |