1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass=postmisched %s -o - | FileCheck -check-prefix=SCHED %s 3# RUN: llc -march=amdgcn -mcpu=gfx1100 -verify-machineinstrs -run-pass=postmisched,gcn-create-vopd %s -o - | FileCheck -check-prefix=PAIR %s 4 5--- | 6 @lds = external addrspace(3) global [8 x i8] 7 define void @vopd_schedule() { ret void } 8 define void @vopd_fmamk() { ret void } 9 define void @vopd_fmamk_fail() { ret void } 10 define void @vopd_cndmask() { ret void } 11 define void @vopd_mov() { ret void } 12 define void @vopd_mov_mov() { ret void } 13 define void @vopd_constants_fail() { ret void } 14 define void @vopd_constants_inlinable() { ret void } 15 define void @vopd_constants_same() { ret void } 16 define void @vopd_mov_fmaak_constants_same() { ret void } 17 define void @vopd_debug() { ret void } 18 define void @vopd_schedule_unconstrained() { ret void } 19 define void @vopd_schedule_unconstrained_2() { ret void } 20 define void @vopd_mov_fixup() { ret void } 21 define void @vopd_mov_fixup_fail() { ret void } 22... 23 24--- 25name: vopd_schedule 26tracksRegLiveness: true 27body: | 28 bb.0: 29 30 ; SCHED-LABEL: name: vopd_schedule 31 ; SCHED: $vgpr0 = IMPLICIT_DEF 32 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 33 ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 34 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 35 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec 36 ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 37 ; PAIR-LABEL: name: vopd_schedule 38 ; PAIR: $vgpr0 = IMPLICIT_DEF 39 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 40 ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 41 ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 42 ; PAIR-NEXT: $vgpr4 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 43 $vgpr0 = IMPLICIT_DEF 44 $vgpr1 = IMPLICIT_DEF 45 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 46 ; can fuse vgpr3 and vgpr6 writing insts only due to reg constraints 47 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 48 $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 49 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 50 51... 52 53--- 54name: vopd_fmamk 55tracksRegLiveness: true 56body: | 57 bb.0: 58 59 ; SCHED-LABEL: name: vopd_fmamk 60 ; SCHED: $vgpr2 = IMPLICIT_DEF 61 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 62 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 63 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 64 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr3, implicit $mode, implicit $exec 65 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 66 ; PAIR-LABEL: name: vopd_fmamk 67 ; PAIR: $vgpr2 = IMPLICIT_DEF 68 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 69 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 70 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 71 ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 10, killed $vgpr3, killed $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 72 $vgpr0 = IMPLICIT_DEF 73 $vgpr1 = IMPLICIT_DEF 74 $vgpr2 = IMPLICIT_DEF 75 $vgpr3 = IMPLICIT_DEF 76 ; should pair 77 $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec 78 $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec 79 80... 81 82--- 83name: vopd_fmamk_fail 84tracksRegLiveness: true 85body: | 86 bb.0: 87 88 ; SCHED-LABEL: name: vopd_fmamk_fail 89 ; SCHED: $vgpr1 = IMPLICIT_DEF 90 ; SCHED-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 91 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 92 ; SCHED-NEXT: $vgpr4 = IMPLICIT_DEF 93 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec 94 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 95 ; PAIR-LABEL: name: vopd_fmamk_fail 96 ; PAIR: $vgpr1 = IMPLICIT_DEF 97 ; PAIR-NEXT: $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 98 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 99 ; PAIR-NEXT: $vgpr4 = IMPLICIT_DEF 100 ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 10, killed $vgpr4, implicit $mode, implicit $exec 101 ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 102 $vgpr0 = IMPLICIT_DEF 103 $vgpr1 = IMPLICIT_DEF 104 $vgpr2 = V_XOR_B32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 105 $vgpr4 = IMPLICIT_DEF 106 ; should not pair 107 $vgpr2 = V_FMAC_F32_e32 $vgpr1, $vgpr1, $vgpr2, implicit $mode, implicit $exec 108 $vgpr5 = V_FMAMK_F32 $vgpr0, 10, $vgpr4, implicit $mode, implicit $exec 109 110... 111 112--- 113name: vopd_cndmask 114tracksRegLiveness: true 115body: | 116 bb.0: 117 ; SCHED-LABEL: name: vopd_cndmask 118 ; SCHED: $vgpr2 = IMPLICIT_DEF 119 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 120 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 121 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 122 ; SCHED-NEXT: $sgpr20 = IMPLICIT_DEF 123 ; SCHED-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec 124 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 $sgpr20, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 125 ; SCHED-NEXT: $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 126 ; SCHED-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 127 ; SCHED-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec 128 ; SCHED-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc 129 ; PAIR-LABEL: name: vopd_cndmask 130 ; PAIR: $vgpr2 = IMPLICIT_DEF 131 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 132 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 133 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 134 ; PAIR-NEXT: $sgpr20 = IMPLICIT_DEF 135 ; PAIR-NEXT: $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec 136 ; PAIR-NEXT: $vgpr2, $vgpr5 = V_DUAL_FMAC_F32_e32_X_CNDMASK_B32_e32 $sgpr20, killed $vgpr1, $vgpr0, $vgpr3, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc 137 ; PAIR-NEXT: $vgpr7 = V_CNDMASK_B32_e32 killed $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 138 ; PAIR-NEXT: $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec 139 ; PAIR-NEXT: $vgpr9 = V_CNDMASK_B32_e32 killed $sgpr20, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc 140 $vgpr0 = IMPLICIT_DEF 141 $vgpr1 = IMPLICIT_DEF 142 $vgpr2 = IMPLICIT_DEF 143 $vgpr3 = IMPLICIT_DEF 144 $sgpr20 = IMPLICIT_DEF 145 ; should pair 146 $vgpr2 = V_FMAC_F32_e32 $sgpr20, $vgpr1, $vgpr2, implicit $mode, implicit $exec 147 $vgpr5 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 148 ; should not pair, uses 3 scalars (implicit vcc) 149 $vgpr4 = V_FMAMK_F32 $sgpr20, 12345, $vgpr3, implicit $mode, implicit $exec 150 $vgpr7 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 151 ; should not pair, uses 3 scalars (implicit vcc) 152 $vgpr6 = V_ADD_F32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec 153 $vgpr9 = V_CNDMASK_B32_e32 $sgpr20, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 154 155... 156 157--- 158name: vopd_mov 159tracksRegLiveness: true 160body: | 161 bb.0: 162 163 ; SCHED-LABEL: name: vopd_mov 164 ; SCHED: $vgpr0 = IMPLICIT_DEF 165 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 166 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $vgpr0, implicit $exec 167 ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 168 ; PAIR-LABEL: name: vopd_mov 169 ; PAIR: $vgpr0 = IMPLICIT_DEF 170 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 171 ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32 killed $vgpr0, killed $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec 172 $vgpr0 = IMPLICIT_DEF 173 $vgpr1 = IMPLICIT_DEF 174 $vgpr2 = V_MOV_B32_e32 $vgpr0, implicit $exec 175 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 176 177... 178 179--- 180name: vopd_mov_mov 181tracksRegLiveness: true 182body: | 183 bb.0: 184 185 ; SCHED-LABEL: name: vopd_mov_mov 186 ; SCHED: $sgpr0 = IMPLICIT_DEF 187 ; SCHED-NEXT: $sgpr7 = IMPLICIT_DEF 188 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 killed $sgpr0, implicit $exec 189 ; SCHED-NEXT: $vgpr3 = V_MOV_B32_e32 killed $sgpr7, implicit $exec 190 ; PAIR-LABEL: name: vopd_mov_mov 191 ; PAIR: $sgpr0 = IMPLICIT_DEF 192 ; PAIR-NEXT: $sgpr7 = IMPLICIT_DEF 193 ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32 killed $sgpr0, killed $sgpr7, implicit $exec, implicit $exec, implicit $exec 194 $sgpr0 = IMPLICIT_DEF 195 $sgpr7 = IMPLICIT_DEF 196 $vgpr2 = V_MOV_B32_e32 $sgpr0, implicit $exec 197 $vgpr3 = V_MOV_B32_e32 $sgpr7, implicit $exec 198 199... 200 201 202--- 203name: vopd_constants_fail 204tracksRegLiveness: true 205body: | 206 bb.0: 207 208 ; SCHED-LABEL: name: vopd_constants_fail 209 ; SCHED: $vgpr2 = IMPLICIT_DEF 210 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 211 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 212 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 213 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec 214 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 215 ; PAIR-LABEL: name: vopd_constants_fail 216 ; PAIR: $vgpr2 = IMPLICIT_DEF 217 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 218 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 219 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 220 ; PAIR-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec 221 ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 99, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 222 $vgpr0 = IMPLICIT_DEF 223 $vgpr1 = IMPLICIT_DEF 224 $vgpr2 = IMPLICIT_DEF 225 $vgpr3 = IMPLICIT_DEF 226 ; should not pair with two different literals 227 $vgpr2 = V_FMAC_F32_e32 99, $vgpr1, $vgpr2, implicit $mode, implicit $exec 228 $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec 229 230... 231 232--- 233name: vopd_constants_inlinable 234tracksRegLiveness: true 235body: | 236 bb.0: 237 ; SCHED-LABEL: name: vopd_constants_inlinable 238 ; SCHED: $vgpr2 = IMPLICIT_DEF 239 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 240 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 241 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 242 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec 243 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 4, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 244 ; PAIR-LABEL: name: vopd_constants_inlinable 245 ; PAIR: $vgpr2 = IMPLICIT_DEF 246 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 247 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 248 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 249 ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 100, killed $vgpr3, 4, killed $vgpr1, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 250 $vgpr0 = IMPLICIT_DEF 251 $vgpr1 = IMPLICIT_DEF 252 $vgpr2 = IMPLICIT_DEF 253 $vgpr3 = IMPLICIT_DEF 254 ; can pair since 4 is inlinable 255 $vgpr2 = V_FMAC_F32_e32 4, $vgpr1, $vgpr2, implicit $mode, implicit $exec 256 $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec 257 258... 259 260 261--- 262name: vopd_constants_same 263tracksRegLiveness: true 264body: | 265 bb.0: 266 267 ; SCHED-LABEL: name: vopd_constants_same 268 ; SCHED: $vgpr2 = IMPLICIT_DEF 269 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 270 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 271 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 272 ; SCHED-NEXT: $vgpr5 = V_FMAMK_F32 killed $vgpr0, 100, killed $vgpr3, implicit $mode, implicit $exec 273 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 100, killed $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 274 ; PAIR-LABEL: name: vopd_constants_same 275 ; PAIR: $vgpr2 = IMPLICIT_DEF 276 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 277 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 278 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 279 ; PAIR-NEXT: $vgpr5, $vgpr2 = V_DUAL_FMAMK_F32_X_FMAC_F32_e32 killed $vgpr0, 100, killed $vgpr3, 100, killed $vgpr1, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 280 $vgpr0 = IMPLICIT_DEF 281 $vgpr1 = IMPLICIT_DEF 282 $vgpr2 = IMPLICIT_DEF 283 $vgpr3 = IMPLICIT_DEF 284 ; should be able to pair using 1 deduplicated literal 285 $vgpr2 = V_FMAC_F32_e32 100, $vgpr1, $vgpr2, implicit $mode, implicit $exec 286 $vgpr5 = V_FMAMK_F32 $vgpr0, 100, $vgpr3, implicit $mode, implicit $exec 287 288... 289 290--- 291name: vopd_mov_fmaak_constants_same 292tracksRegLiveness: true 293body: | 294 bb.0: 295 296 ; SCHED-LABEL: name: vopd_mov_fmaak_constants_same 297 ; SCHED: $vgpr0 = IMPLICIT_DEF 298 ; SCHED-NEXT: $sgpr0 = IMPLICIT_DEF 299 ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec 300 ; SCHED-NEXT: $vgpr2 = V_FMAAK_F32 killed $sgpr0, killed $vgpr0, 981467136, implicit $mode, implicit $exec 301 ; PAIR-LABEL: name: vopd_mov_fmaak_constants_same 302 ; PAIR: $vgpr0 = IMPLICIT_DEF 303 ; PAIR-NEXT: $sgpr0 = IMPLICIT_DEF 304 ; PAIR-NEXT: $vgpr1, $vgpr2 = V_DUAL_MOV_B32_e32_X_FMAAK_F32 981467136, killed $sgpr0, killed $vgpr0, 981467136, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec 305 $vgpr0 = IMPLICIT_DEF 306 $sgpr0 = IMPLICIT_DEF 307 ; should be able to pair using 1 deduplicated literal 308 $vgpr1 = V_MOV_B32_e32 981467136, implicit $exec 309 $vgpr2 = V_FMAAK_F32 $sgpr0, $vgpr0, 981467136, implicit $mode, implicit $exec 310 311... 312 313--- 314name: vopd_debug 315tracksRegLiveness: true 316body: | 317 bb.0: 318 319 ; SCHED-LABEL: name: vopd_debug 320 ; SCHED: $vgpr0 = IMPLICIT_DEF 321 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 322 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 323 ; SCHED-NEXT: DBG_VALUE $vgpr0, 0, 0 324 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec 325 ; PAIR-LABEL: name: vopd_debug 326 ; PAIR: $vgpr0 = IMPLICIT_DEF 327 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 328 ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 killed $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 329 ; PAIR-NEXT: DBG_VALUE $vgpr0, 0, 0 330 $vgpr0 = IMPLICIT_DEF 331 $vgpr1 = IMPLICIT_DEF 332 ; TODO Debug values disable VOPD creation 333 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 334 DBG_VALUE $vgpr0, 0, 0 335 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 336 337... 338 339--- 340name: vopd_schedule_unconstrained 341tracksRegLiveness: true 342body: | 343 bb.0: 344 345 ; SCHED-LABEL: name: vopd_schedule_unconstrained 346 ; SCHED: $vgpr2 = IMPLICIT_DEF 347 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 348 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 349 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 350 ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 351 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 352 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 353 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 354 ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 355 ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 356 ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 357 ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc 358 ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec 359 ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 360 ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc 361 ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 362 ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 363 ; PAIR-LABEL: name: vopd_schedule_unconstrained 364 ; PAIR: $vgpr2 = IMPLICIT_DEF 365 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 366 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 367 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 368 ; PAIR-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 369 ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 370 ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 371 ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 372 ; PAIR-NEXT: $vgpr12, $vgpr19 = V_DUAL_ADD_F32_e32_X_CNDMASK_B32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc 373 ; PAIR-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc 374 ; PAIR-NEXT: $vgpr17, $vgpr10 = V_DUAL_MUL_F32_e32_X_CNDMASK_B32_e32 killed $vgpr0, $vgpr0, $vgpr1, $vgpr2, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc 375 ; PAIR-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc 376 ; PAIR-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 377 ; PAIR-NEXT: $vgpr14 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 378 $vgpr0 = IMPLICIT_DEF 379 $vgpr1 = IMPLICIT_DEF 380 $vgpr2 = IMPLICIT_DEF 381 $vgpr3 = IMPLICIT_DEF 382 $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec 383 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 384 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 385 $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 386 $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 387 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 388 ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec 389 $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 390 $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 391 $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 392 $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 393 ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec 394 ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec 395 $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 396 $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 397 $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 398 399... 400 401--- 402name: vopd_schedule_unconstrained_2 403tracksRegLiveness: true 404body: | 405 bb.0: 406 407 ; SCHED-LABEL: name: vopd_schedule_unconstrained_2 408 ; SCHED: $vgpr2 = IMPLICIT_DEF 409 ; SCHED-NEXT: $vgpr3 = IMPLICIT_DEF 410 ; SCHED-NEXT: $vgpr0 = IMPLICIT_DEF 411 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 412 ; SCHED-NEXT: $vgpr20 = IMPLICIT_DEF 413 ; SCHED-NEXT: $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 414 ; SCHED-NEXT: $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 415 ; SCHED-NEXT: $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 416 ; SCHED-NEXT: $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 417 ; SCHED-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 418 ; SCHED-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 419 ; SCHED-NEXT: $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 420 ; SCHED-NEXT: $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 421 ; SCHED-NEXT: $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 422 ; SCHED-NEXT: $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr20, implicit $mode, implicit $exec 423 ; SCHED-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 424 ; SCHED-NEXT: $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 425 ; SCHED-NEXT: $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 426 ; SCHED-NEXT: $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 427 ; SCHED-NEXT: $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 428 ; SCHED-NEXT: $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, killed $vgpr3, implicit $mode, implicit $exec, implicit $vcc 429 ; SCHED-NEXT: $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 430 ; SCHED-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 431 ; SCHED-NEXT: $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 432 ; SCHED-NEXT: $vgpr24 = V_MUL_F32_e32 killed $vgpr0, $vgpr0, implicit $mode, implicit $exec 433 ; SCHED-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 434 ; SCHED-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 435 ; SCHED-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 436 ; SCHED-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc 437 ; SCHED-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 438 ; SCHED-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 439 ; PAIR-LABEL: name: vopd_schedule_unconstrained_2 440 ; PAIR: $vgpr2 = IMPLICIT_DEF 441 ; PAIR-NEXT: $vgpr3 = IMPLICIT_DEF 442 ; PAIR-NEXT: $vgpr0 = IMPLICIT_DEF 443 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 444 ; PAIR-NEXT: $vgpr20 = IMPLICIT_DEF 445 ; PAIR-NEXT: $vgpr16, $vgpr35 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 446 ; PAIR-NEXT: $vgpr3, $vgpr6 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 447 ; PAIR-NEXT: $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, killed $vgpr2, implicit $mode, implicit $exec 448 ; PAIR-NEXT: $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 449 ; PAIR-NEXT: $vgpr4, $vgpr29 = V_DUAL_SUB_F32_e32_X_CNDMASK_B32_e32 $vgpr1, $vgpr1, $vgpr0, $vgpr3, implicit $exec, implicit $vcc, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec, implicit $vcc 450 ; PAIR-NEXT: $vgpr19, $vgpr20 = V_DUAL_CNDMASK_B32_e32_X_FMAC_F32_e32 $vgpr0, $vgpr3, 10, $vgpr1, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec 451 ; PAIR-NEXT: $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 452 ; PAIR-NEXT: $vgpr10, $vgpr17 = V_DUAL_CNDMASK_B32_e32_X_MUL_F32_e32 $vgpr1, $vgpr2, $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec 453 ; PAIR-NEXT: $vgpr11, $vgpr12 = V_DUAL_CNDMASK_B32_e32_X_ADD_F32_e32 $vgpr0, $vgpr3, $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec 454 ; PAIR-NEXT: $vgpr37, $vgpr14 = V_DUAL_CNDMASK_B32_e32_X_SUB_F32_e32 $vgpr0, killed $vgpr3, $vgpr1, $vgpr1, implicit $exec, implicit $mode, implicit $vcc, implicit $mode, implicit $exec, implicit $vcc, implicit $mode, implicit $exec 455 ; PAIR-NEXT: $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 456 ; PAIR-NEXT: $vgpr21, $vgpr24 = V_DUAL_SUB_F32_e32_X_MUL_F32_e32 $vgpr1, $vgpr1, killed $vgpr0, $vgpr0, implicit $exec, implicit $mode, implicit $mode, implicit $exec, implicit $mode, implicit $exec 457 ; PAIR-NEXT: $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 458 ; PAIR-NEXT: $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 459 ; PAIR-NEXT: $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 460 ; PAIR-NEXT: $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, killed $vgpr2, implicit $mode, implicit $exec, implicit $vcc 461 ; PAIR-NEXT: $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 462 ; PAIR-NEXT: $vgpr32 = V_SUB_F32_e32 killed $vgpr1, $vgpr1, implicit $mode, implicit $exec 463 $vgpr0 = IMPLICIT_DEF 464 $vgpr1 = IMPLICIT_DEF 465 $vgpr2 = IMPLICIT_DEF 466 $vgpr3 = IMPLICIT_DEF 467 $vgpr2 = V_FMAC_F32_e32 10, $vgpr1, $vgpr2, implicit $mode, implicit $exec 468 $vgpr2 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 469 $vgpr3 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 470 $vgpr10 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 471 $vgpr4 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 472 $vgpr6 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 473 ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec 474 $vgpr11 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 475 $vgpr19 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 476 $vgpr12 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 477 $vgpr17 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 478 ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec 479 ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec 480 $vgpr15 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 481 $vgpr16 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 482 $vgpr14 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 483 $vgpr20 = IMPLICIT_DEF 484 $vgpr20 = V_FMAC_F32_e32 10, $vgpr1, $vgpr20, implicit $mode, implicit $exec 485 $vgpr20 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 486 $vgpr21 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 487 $vgpr28 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 488 $vgpr22 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 489 $vgpr24 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 490 ; $vgpr9 = V_FMAMK_F32 $vgpr0, 10, $vgpr2, implicit $mode, implicit $exec 491 $vgpr29 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 492 $vgpr37 = V_CNDMASK_B32_e32 $vgpr0, $vgpr3, implicit $mode, implicit $exec, implicit $vcc 493 $vgpr31 = V_ADD_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 494 $vgpr35 = V_MUL_F32_e32 $vgpr0, $vgpr0, implicit $mode, implicit $exec 495 ; $vgpr18 = V_FMAMK_F32 $vgpr0, 10, $vgpr3, implicit $mode, implicit $exec 496 ; $vgpr11 = V_FMAC_F32_e32 10, $vgpr1, $vgpr11, implicit $mode, implicit $exec 497 $vgpr33 = V_CNDMASK_B32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec, implicit $vcc 498 $vgpr34 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 499 $vgpr32 = V_SUB_F32_e32 $vgpr1, $vgpr1, implicit $mode, implicit $exec 500 501... 502 503--- 504name: vopd_mov_fixup 505tracksRegLiveness: true 506body: | 507 bb.0: 508 ; SCHED-LABEL: name: vopd_mov_fixup 509 ; SCHED: $vgpr0 = IMPLICIT_DEF 510 ; SCHED-NEXT: $vgpr1 = IMPLICIT_DEF 511 ; SCHED-NEXT: $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 512 ; SCHED-NEXT: $vgpr3 = V_ADD_F32_e32 killed $vgpr0, killed $vgpr1, implicit $mode, implicit $exec 513 ; SCHED-NEXT: $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 514 ; SCHED-NEXT: $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 515 ; PAIR-LABEL: name: vopd_mov_fixup 516 ; PAIR: $vgpr0 = IMPLICIT_DEF 517 ; PAIR-NEXT: $vgpr1 = IMPLICIT_DEF 518 ; PAIR-NEXT: $vgpr2, $vgpr3 = V_DUAL_MOV_B32_e32_X_ADD_F32_e32 target-flags(amdgpu-abs32-lo) @lds, killed $vgpr0, killed $vgpr1, implicit $exec, implicit $mode, implicit $exec, implicit $mode, implicit $exec 519 ; PAIR-NEXT: $vgpr4, $vgpr5 = V_DUAL_MOV_B32_e32_X_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, target-flags(amdgpu-abs32-lo) @lds, implicit $exec, implicit $exec, implicit $exec 520 $vgpr0 = IMPLICIT_DEF 521 $vgpr1 = IMPLICIT_DEF 522 ; should pair 523 $vgpr2 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 524 $vgpr3 = V_ADD_F32_e32 $vgpr0, $vgpr1, implicit $mode, implicit $exec 525 ; should pair 526 $vgpr4 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 527 $vgpr5 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 528... 529 530--- 531name: vopd_mov_fixup_fail 532tracksRegLiveness: true 533body: | 534 bb.0: 535 ; SCHED-LABEL: name: vopd_mov_fixup_fail 536 ; SCHED: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 537 ; SCHED-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec 538 ; PAIR-LABEL: name: vopd_mov_fixup_fail 539 ; PAIR: $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 540 ; PAIR-NEXT: $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec 541 $vgpr0 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds, implicit $exec 542 $vgpr1 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @lds + 4, implicit $exec 543... 544