1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -verify-regalloc --stress-regalloc=2 -start-before=greedy,0 -stop-after=virtregrewriter,1 -o - %s | FileCheck -check-prefix=GCN %s 3 4--- 5name: test_remat_v_mov_b32_e32 6tracksRegLiveness: true 7body: | 8 bb.0: 9 ; GCN-LABEL: name: test_remat_v_mov_b32_e32 10 ; GCN: renamable $vgpr0 = V_MOV_B32_e32 1, implicit $exec 11 ; GCN-NEXT: renamable $vgpr1 = V_MOV_B32_e32 2, implicit $exec 12 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 13 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 14 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e32 3, implicit $exec 15 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 16 ; GCN-NEXT: S_ENDPGM 0 17 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec 18 %1:vgpr_32 = V_MOV_B32_e32 2, implicit $exec 19 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec 20 S_NOP 0, implicit %0 21 S_NOP 0, implicit %1 22 S_NOP 0, implicit %2 23 S_ENDPGM 0 24... 25--- 26name: test_no_remat_v_mov_b32_e32_impuse 27tracksRegLiveness: true 28machineFunctionInfo: 29 stackPtrOffsetReg: $sgpr32 30body: | 31 bb.0: 32 ; GCN-LABEL: name: test_no_remat_v_mov_b32_e32_impuse 33 ; GCN: $m0 = IMPLICIT_DEF 34 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e32 1, implicit $exec, implicit $m0 35 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 36 ; GCN-NEXT: renamable $vgpr1 = V_MOV_B32_e32 2, implicit $exec, implicit $m0 37 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e32 3, implicit $exec, implicit $m0 38 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 39 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 40 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 41 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 42 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 43 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 44 ; GCN-NEXT: S_ENDPGM 0 45 $m0 = IMPLICIT_DEF 46 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec, implicit $m0 47 %1:vgpr_32 = V_MOV_B32_e32 2, implicit $exec, implicit $m0 48 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec, implicit $m0 49 S_NOP 0, implicit %0 50 S_NOP 0, implicit %1 51 S_NOP 0, implicit %2 52 S_ENDPGM 0 53... 54--- 55name: test_remat_v_mov_b32_e32_exec_def 56tracksRegLiveness: true 57machineFunctionInfo: 58 stackPtrOffsetReg: $sgpr32 59body: | 60 bb.0: 61 ; GCN-LABEL: name: test_remat_v_mov_b32_e32_exec_def 62 ; GCN: renamable $vgpr0 = V_MOV_B32_e32 1, implicit $exec 63 ; GCN-NEXT: renamable $vgpr1 = V_MOV_B32_e32 2, implicit $exec 64 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 65 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 66 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e32 3, implicit $exec 67 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 68 ; GCN-NEXT: $exec = S_ANDN2_B64_term $exec, undef renamable $sgpr0_sgpr1, implicit-def $scc 69 ; GCN-NEXT: S_ENDPGM 0 70 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec 71 %1:vgpr_32 = V_MOV_B32_e32 2, implicit $exec 72 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec 73 S_NOP 0, implicit %0 74 S_NOP 0, implicit %1 75 S_NOP 0, implicit %2 76 $exec = S_ANDN2_B64_term $exec, undef %4:sreg_64, implicit-def $scc 77 S_ENDPGM 0 78... 79--- 80name: test_remat_v_mov_b32_e64 81tracksRegLiveness: true 82body: | 83 bb.0: 84 ; GCN-LABEL: name: test_remat_v_mov_b32_e64 85 ; GCN: renamable $vgpr0 = V_MOV_B32_e64 1, implicit $exec 86 ; GCN-NEXT: renamable $vgpr1 = V_MOV_B32_e64 2, implicit $exec 87 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 88 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 89 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e64 3, implicit $exec 90 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 91 ; GCN-NEXT: S_ENDPGM 0 92 %0:vgpr_32 = V_MOV_B32_e64 1, implicit $exec 93 %1:vgpr_32 = V_MOV_B32_e64 2, implicit $exec 94 %2:vgpr_32 = V_MOV_B32_e64 3, implicit $exec 95 S_NOP 0, implicit %0 96 S_NOP 0, implicit %1 97 S_NOP 0, implicit %2 98 S_ENDPGM 0 99... 100--- 101name: test_no_remat_v_mov_b32_dpp 102tracksRegLiveness: true 103machineFunctionInfo: 104 stackPtrOffsetReg: $sgpr32 105body: | 106 bb.0: 107 ; GCN-LABEL: name: test_no_remat_v_mov_b32_dpp 108 ; GCN: renamable $vgpr0 = V_MOV_B32_dpp undef $vgpr0, undef $vgpr0, 1, 15, 15, 1, implicit $exec 109 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 110 ; GCN-NEXT: renamable $vgpr1 = V_MOV_B32_dpp undef $vgpr1, undef $vgpr0, 1, 15, 15, 1, implicit $exec 111 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_dpp undef $vgpr0, undef $vgpr0, 1, 15, 15, 1, implicit $exec 112 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 113 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 114 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 115 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 116 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 117 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 118 ; GCN-NEXT: S_ENDPGM 0 119 %1:vgpr_32 = V_MOV_B32_dpp undef %1:vgpr_32, undef %0:vgpr_32, 1, 15, 15, 1, implicit $exec 120 %2:vgpr_32 = V_MOV_B32_dpp undef %2:vgpr_32, undef %0:vgpr_32, 1, 15, 15, 1, implicit $exec 121 %3:vgpr_32 = V_MOV_B32_dpp undef %3:vgpr_32, undef %0:vgpr_32, 1, 15, 15, 1, implicit $exec 122 S_NOP 0, implicit %1 123 S_NOP 0, implicit %2 124 S_NOP 0, implicit %3 125 S_ENDPGM 0 126... 127--- 128name: test_remat_v_accvgpr_read_b32 129tracksRegLiveness: true 130body: | 131 bb.0: 132 ; GCN-LABEL: name: test_remat_v_accvgpr_read_b32 133 ; GCN: renamable $vgpr0 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec 134 ; GCN-NEXT: renamable $vgpr1 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec 135 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 136 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 137 ; GCN-NEXT: renamable $vgpr0 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec 138 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 139 ; GCN-NEXT: S_ENDPGM 0 140 %0:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec 141 %1:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec 142 %2:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec 143 S_NOP 0, implicit %0 144 S_NOP 0, implicit %1 145 S_NOP 0, implicit %2 146 S_ENDPGM 0 147... 148--- 149name: test_remat_v_accvgpr_write_b32 150tracksRegLiveness: true 151body: | 152 bb.0: 153 ; GCN-LABEL: name: test_remat_v_accvgpr_write_b32 154 ; GCN: renamable $agpr0 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec 155 ; GCN-NEXT: renamable $agpr1 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec 156 ; GCN-NEXT: S_NOP 0, implicit killed renamable $agpr0 157 ; GCN-NEXT: S_NOP 0, implicit killed renamable $agpr1 158 ; GCN-NEXT: renamable $agpr0 = V_ACCVGPR_WRITE_B32_e64 3, implicit $exec 159 ; GCN-NEXT: S_NOP 0, implicit killed renamable $agpr0 160 ; GCN-NEXT: S_ENDPGM 0 161 %0:agpr_32 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec 162 %1:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec 163 %2:agpr_32 = V_ACCVGPR_WRITE_B32_e64 3, implicit $exec 164 S_NOP 0, implicit %0 165 S_NOP 0, implicit %1 166 S_NOP 0, implicit %2 167 S_ENDPGM 0 168... 169--- 170name: test_remat_v_mov_b64_pseudo 171tracksRegLiveness: true 172body: | 173 bb.0: 174 ; GCN-LABEL: name: test_remat_v_mov_b64_pseudo 175 ; GCN: renamable $vgpr0_vgpr1 = V_MOV_B64_PSEUDO 1, implicit $exec 176 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_MOV_B64_PSEUDO 2, implicit $exec 177 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 178 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 179 ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_MOV_B64_PSEUDO 3, implicit $exec 180 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 181 ; GCN-NEXT: S_ENDPGM 0 182 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 1, implicit $exec 183 %1:vreg_64_align2 = V_MOV_B64_PSEUDO 2, implicit $exec 184 %2:vreg_64_align2 = V_MOV_B64_PSEUDO 3, implicit $exec 185 S_NOP 0, implicit %0 186 S_NOP 0, implicit %1 187 S_NOP 0, implicit %2 188 S_ENDPGM 0 189... 190--- 191name: test_remat_v_cvt_i32_f64_e32 192tracksRegLiveness: true 193body: | 194 bb.0: 195 ; GCN-LABEL: name: test_remat_v_cvt_i32_f64_e32 196 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode 197 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode 198 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 199 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 200 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode 201 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 202 ; GCN-NEXT: S_ENDPGM 0 203 %0:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode 204 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode 205 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode 206 S_NOP 0, implicit %0 207 S_NOP 0, implicit %1 208 S_NOP 0, implicit %2 209 S_ENDPGM 0 210... 211--- 212machineFunctionInfo: 213 stackPtrOffsetReg: $sgpr32 214name: test_no_remat_v_cvt_i32_f64_e32_fp_except 215tracksRegLiveness: true 216body: | 217 bb.0: 218 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_fp_except 219 ; GCN: renamable $vgpr0 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode 220 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 221 ; GCN-NEXT: renamable $vgpr1 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode 222 ; GCN-NEXT: renamable $vgpr0 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode 223 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 224 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 225 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 226 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 227 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 228 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 229 ; GCN-NEXT: S_ENDPGM 0 230 %0:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode 231 %1:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode 232 %2:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode 233 S_NOP 0, implicit %0 234 S_NOP 0, implicit %1 235 S_NOP 0, implicit %2 236 S_ENDPGM 0 237... 238--- 239# Cannot rematerialize if MODE register is modified anywhere 240name: test_no_remat_v_cvt_i32_f64_e32_mode_def 241tracksRegLiveness: true 242machineFunctionInfo: 243 stackPtrOffsetReg: $sgpr32 244body: | 245 bb.0: 246 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_mode_def 247 ; GCN: $mode = IMPLICIT_DEF 248 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode 249 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 250 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode 251 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode 252 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 253 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 254 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 255 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 256 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 257 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 258 ; GCN-NEXT: S_ENDPGM 0 259 $mode = IMPLICIT_DEF 260 %0:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode 261 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode 262 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode 263 S_NOP 0, implicit %0 264 S_NOP 0, implicit %1 265 S_NOP 0, implicit %2 266 S_ENDPGM 0 267... 268--- 269name: test_remat_v_cvt_i32_f64_e64 270tracksRegLiveness: true 271body: | 272 bb.0: 273 ; GCN-LABEL: name: test_remat_v_cvt_i32_f64_e64 274 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e64 0, 1, 0, 0, implicit $exec, implicit $mode 275 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_I32_F64_e64 0, 2, 0, 0, implicit $exec, implicit $mode 276 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 277 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 278 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e64 0, 3, 0, 0, implicit $exec, implicit $mode 279 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 280 ; GCN-NEXT: S_ENDPGM 0 281 %0:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 1, 0, 0, implicit $exec, implicit $mode 282 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 2, 0, 0, implicit $exec, implicit $mode 283 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 3, 0, 0, implicit $exec, implicit $mode 284 S_NOP 0, implicit %0 285 S_NOP 0, implicit %1 286 S_NOP 0, implicit %2 287 S_ENDPGM 0 288... 289--- 290name: test_remat_v_cvt_i32_f64_e64_undef 291tracksRegLiveness: true 292machineFunctionInfo: 293 stackPtrOffsetReg: $sgpr32 294body: | 295 bb.0: 296 ; GCN-LABEL: name: test_remat_v_cvt_i32_f64_e64_undef 297 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e64 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 298 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_I32_F64_e64 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 299 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 300 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 301 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_I32_F64_e64 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 302 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 303 ; GCN-NEXT: S_ENDPGM 0 304 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %0:vreg_64, 0, 0, implicit $exec, implicit $mode 305 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %0:vreg_64, 0, 0, implicit $exec, implicit $mode 306 %3:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %0:vreg_64, 0, 0, implicit $exec, implicit $mode 307 S_NOP 0, implicit %1 308 S_NOP 0, implicit %2 309 S_NOP 0, implicit %3 310 S_ENDPGM 0 311... 312--- 313name: test_no_remat_v_cvt_i32_f64_dpp 314tracksRegLiveness: true 315machineFunctionInfo: 316 stackPtrOffsetReg: $sgpr32 317body: | 318 bb.0: 319 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_dpp 320 ; GCN: renamable $vgpr0 = V_CVT_I32_F64_dpp undef $vgpr0, 0, undef $vgpr0_vgpr1, 336, 0, 0, 0, implicit $exec, implicit $mode 321 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 322 ; GCN-NEXT: renamable $vgpr1 = V_CVT_I32_F64_dpp undef $vgpr1, 0, undef $vgpr0_vgpr1, 336, 0, 0, 0, implicit $exec, implicit $mode 323 ; GCN-NEXT: renamable $vgpr0 = V_CVT_I32_F64_dpp undef $vgpr0, 0, undef $vgpr0_vgpr1, 336, 0, 0, 0, implicit $exec, implicit $mode 324 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 325 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 326 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 327 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 328 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 329 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 330 ; GCN-NEXT: S_ENDPGM 0 331 %1:vgpr_32 = V_CVT_I32_F64_dpp undef %1:vgpr_32, 0, undef %0:vreg_64_align2, 336, 0, 0, 0, implicit $exec, implicit $mode 332 %2:vgpr_32 = V_CVT_I32_F64_dpp undef %2:vgpr_32, 0, undef %0:vreg_64_align2, 336, 0, 0, 0, implicit $exec, implicit $mode 333 %3:vgpr_32 = V_CVT_I32_F64_dpp undef %3:vgpr_32, 0, undef %0:vreg_64_align2, 336, 0, 0, 0, implicit $exec, implicit $mode 334 S_NOP 0, implicit %1 335 S_NOP 0, implicit %2 336 S_NOP 0, implicit %3 337 S_ENDPGM 0 338... 339--- 340name: test_no_remat_v_cvt_i32_f64_e32_imp_def 341tracksRegLiveness: true 342machineFunctionInfo: 343 stackPtrOffsetReg: $sgpr32 344body: | 345 bb.0: 346 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_imp_def 347 ; GCN: renamable $vgpr0 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit-def $m0 348 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 349 ; GCN-NEXT: renamable $vgpr1 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit-def $m0 350 ; GCN-NEXT: renamable $vgpr0 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit-def $m0 351 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 352 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 353 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 354 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 355 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 356 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 357 ; GCN-NEXT: S_ENDPGM 0 358 %0:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit-def $m0 359 %1:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit-def $m0 360 %2:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit-def $m0 361 S_NOP 0, implicit %0 362 S_NOP 0, implicit %1 363 S_NOP 0, implicit %2 364 S_ENDPGM 0 365... 366--- 367name: test_no_remat_v_cvt_i32_f64_e32_imp_use 368tracksRegLiveness: true 369machineFunctionInfo: 370 stackPtrOffsetReg: $sgpr32 371body: | 372 bb.0: 373 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_imp_use 374 ; GCN: renamable $vgpr0 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit $m0 375 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 376 ; GCN-NEXT: renamable $vgpr1 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit $m0 377 ; GCN-NEXT: renamable $vgpr0 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit $m0 378 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 379 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 380 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 381 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 382 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 383 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 384 ; GCN-NEXT: S_ENDPGM 0 385 %0:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit $m0 386 %1:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit $m0 387 %2:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit $m0 388 S_NOP 0, implicit %0 389 S_NOP 0, implicit %1 390 S_NOP 0, implicit %2 391 S_ENDPGM 0 392... 393--- 394name: test_remat_v_cvt_f64_i32_e32 395tracksRegLiveness: true 396body: | 397 bb.0: 398 ; GCN-LABEL: name: test_remat_v_cvt_f64_i32_e32 399 ; GCN: renamable $vgpr0_vgpr1 = V_CVT_F64_I32_e32 1, implicit $exec, implicit $mode 400 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_CVT_F64_I32_e32 2, implicit $exec, implicit $mode 401 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 402 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 403 ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_CVT_F64_I32_e32 3, implicit $exec, implicit $mode 404 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 405 ; GCN-NEXT: S_ENDPGM 0 406 %0:vreg_64_align2 = V_CVT_F64_I32_e32 1, implicit $exec, implicit $mode 407 %1:vreg_64_align2 = V_CVT_F64_I32_e32 2, implicit $exec, implicit $mode 408 %2:vreg_64_align2 = V_CVT_F64_I32_e32 3, implicit $exec, implicit $mode 409 S_NOP 0, implicit %0 410 S_NOP 0, implicit %1 411 S_NOP 0, implicit %2 412 S_ENDPGM 0 413... 414--- 415name: test_remat_v_cvt_f32_f64_e32 416tracksRegLiveness: true 417body: | 418 bb.0: 419 ; GCN-LABEL: name: test_remat_v_cvt_f32_f64_e32 420 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_F32_F64_e32 1, implicit $exec, implicit $mode 421 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_F32_F64_e32 2, implicit $exec, implicit $mode 422 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 423 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 424 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_F32_F64_e32 3, implicit $exec, implicit $mode 425 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 426 ; GCN-NEXT: S_ENDPGM 0 427 %0:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 1, implicit $exec, implicit $mode 428 %1:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 2, implicit $exec, implicit $mode 429 %2:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 3, implicit $exec, implicit $mode 430 S_NOP 0, implicit %0 431 S_NOP 0, implicit %1 432 S_NOP 0, implicit %2 433 S_ENDPGM 0 434... 435--- 436name: test_remat_v_cvt_f64_f32_e32 437tracksRegLiveness: true 438body: | 439 bb.0: 440 ; GCN-LABEL: name: test_remat_v_cvt_f64_f32_e32 441 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_CVT_F64_F32_e32 1, implicit $exec, implicit $mode 442 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_CVT_F64_F32_e32 2, implicit $exec, implicit $mode 443 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 444 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 445 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_CVT_F64_F32_e32 3, implicit $exec, implicit $mode 446 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 447 ; GCN-NEXT: S_ENDPGM 0 448 %0:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 1, implicit $exec, implicit $mode 449 %1:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 2, implicit $exec, implicit $mode 450 %2:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 3, implicit $exec, implicit $mode 451 S_NOP 0, implicit %0 452 S_NOP 0, implicit %1 453 S_NOP 0, implicit %2 454 S_ENDPGM 0 455... 456--- 457name: test_remat_v_cvt_u32_f64_e32 458tracksRegLiveness: true 459body: | 460 bb.0: 461 ; GCN-LABEL: name: test_remat_v_cvt_u32_f64_e32 462 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_U32_F64_e32 1, implicit $exec, implicit $mode 463 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_U32_F64_e32 2, implicit $exec, implicit $mode 464 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 465 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 466 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_U32_F64_e32 3, implicit $exec, implicit $mode 467 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 468 ; GCN-NEXT: S_ENDPGM 0 469 %0:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 1, implicit $exec, implicit $mode 470 %1:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 2, implicit $exec, implicit $mode 471 %2:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 3, implicit $exec, implicit $mode 472 S_NOP 0, implicit %0 473 S_NOP 0, implicit %1 474 S_NOP 0, implicit %2 475 S_ENDPGM 0 476... 477--- 478name: test_remat_v_cvt_f64_u32_e32 479tracksRegLiveness: true 480body: | 481 bb.0: 482 ; GCN-LABEL: name: test_remat_v_cvt_f64_u32_e32 483 ; GCN: renamable $vgpr0_vgpr1 = V_CVT_F64_U32_e32 1, implicit $exec, implicit $mode 484 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_CVT_F64_U32_e32 2, implicit $exec, implicit $mode 485 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 486 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 487 ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_CVT_F64_U32_e32 3, implicit $exec, implicit $mode 488 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 489 ; GCN-NEXT: S_ENDPGM 0 490 %0:vreg_64_align2 = V_CVT_F64_U32_e32 1, implicit $exec, implicit $mode 491 %1:vreg_64_align2 = V_CVT_F64_U32_e32 2, implicit $exec, implicit $mode 492 %2:vreg_64_align2 = V_CVT_F64_U32_e32 3, implicit $exec, implicit $mode 493 S_NOP 0, implicit %0 494 S_NOP 0, implicit %1 495 S_NOP 0, implicit %2 496 S_ENDPGM 0 497... 498--- 499name: test_remat_v_cvt_f32_i32_e32 500tracksRegLiveness: true 501body: | 502 bb.0: 503 ; GCN-LABEL: name: test_remat_v_cvt_f32_i32_e32 504 ; GCN: renamable $vgpr0 = V_CVT_F32_I32_e32 1, implicit $exec, implicit $mode 505 ; GCN-NEXT: renamable $vgpr1 = V_CVT_F32_I32_e32 2, implicit $exec, implicit $mode 506 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 507 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 508 ; GCN-NEXT: renamable $vgpr0 = V_CVT_F32_I32_e32 3, implicit $exec, implicit $mode 509 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 510 ; GCN-NEXT: S_ENDPGM 0 511 %0:vgpr_32 = V_CVT_F32_I32_e32 1, implicit $exec, implicit $mode 512 %1:vgpr_32 = V_CVT_F32_I32_e32 2, implicit $exec, implicit $mode 513 %2:vgpr_32 = V_CVT_F32_I32_e32 3, implicit $exec, implicit $mode 514 S_NOP 0, implicit %0 515 S_NOP 0, implicit %1 516 S_NOP 0, implicit %2 517 S_ENDPGM 0 518... 519--- 520name: test_remat_v_cvt_f32_i32_sdwa 521tracksRegLiveness: true 522body: | 523 bb.0: 524 ; GCN-LABEL: name: test_remat_v_cvt_f32_i32_sdwa 525 ; GCN: renamable $vgpr0 = V_CVT_F32_I32_sdwa 0, undef $vgpr0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 526 ; GCN-NEXT: renamable $vgpr1 = V_CVT_F32_I32_sdwa 0, undef $vgpr0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 527 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 528 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 529 ; GCN-NEXT: renamable $vgpr0 = V_CVT_F32_I32_sdwa 0, undef $vgpr0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 530 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 531 ; GCN-NEXT: S_ENDPGM 0 532 %1:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 533 %2:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 534 %3:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 535 S_NOP 0, implicit %1 536 S_NOP 0, implicit %2 537 S_NOP 0, implicit %3 538 S_ENDPGM 0 539... 540--- 541# SDWA instruction with UNUSED_PRESERVE cannot be rematerialized due to partial 542# dst write. This is handled because it always has a tied-def implicit operand. 543name: test_no_remat_v_cvt_f32_i32_sdwa_dst_unused_preserve 544tracksRegLiveness: true 545machineFunctionInfo: 546 stackPtrOffsetReg: $sgpr32 547body: | 548 bb.0: 549 ; GCN-LABEL: name: test_no_remat_v_cvt_f32_i32_sdwa_dst_unused_preserve 550 ; GCN: renamable $vgpr0 = V_CVT_F32_I32_sdwa 0, undef $vgpr0, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef $vgpr0(tied-def 0) 551 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 552 ; GCN-NEXT: renamable $vgpr1 = V_CVT_F32_I32_sdwa 0, undef $vgpr0, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef $vgpr1(tied-def 0) 553 ; GCN-NEXT: renamable $vgpr0 = V_CVT_F32_I32_sdwa 0, undef $vgpr0, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef $vgpr0(tied-def 0) 554 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 555 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 556 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 557 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 558 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 559 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 560 ; GCN-NEXT: S_ENDPGM 0 561 %1:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef %1:vgpr_32(tied-def 0) 562 %2:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef %2:vgpr_32(tied-def 0) 563 %3:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef %3:vgpr_32(tied-def 0) 564 S_NOP 0, implicit %1 565 S_NOP 0, implicit %2 566 S_NOP 0, implicit %3 567 S_ENDPGM 0 568... 569--- 570name: test_remat_v_cvt_f32_u32_e32 571tracksRegLiveness: true 572body: | 573 bb.0: 574 ; GCN-LABEL: name: test_remat_v_cvt_f32_u32_e32 575 ; GCN: renamable $vgpr0 = V_CVT_F32_U32_e32 1, implicit $exec, implicit $mode 576 ; GCN-NEXT: renamable $vgpr1 = V_CVT_F32_U32_e32 2, implicit $exec, implicit $mode 577 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 578 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 579 ; GCN-NEXT: renamable $vgpr0 = V_CVT_F32_U32_e32 3, implicit $exec, implicit $mode 580 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 581 ; GCN-NEXT: S_ENDPGM 0 582 %0:vgpr_32 = V_CVT_F32_U32_e32 1, implicit $exec, implicit $mode 583 %1:vgpr_32 = V_CVT_F32_U32_e32 2, implicit $exec, implicit $mode 584 %2:vgpr_32 = V_CVT_F32_U32_e32 3, implicit $exec, implicit $mode 585 S_NOP 0, implicit %0 586 S_NOP 0, implicit %1 587 S_NOP 0, implicit %2 588 S_ENDPGM 0 589... 590--- 591name: test_remat_v_cvt_u32_f32_e32 592tracksRegLiveness: true 593body: | 594 bb.0: 595 ; GCN-LABEL: name: test_remat_v_cvt_u32_f32_e32 596 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_U32_F32_e32 1, implicit $exec, implicit $mode 597 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_U32_F32_e32 2, implicit $exec, implicit $mode 598 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 599 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 600 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_U32_F32_e32 3, implicit $exec, implicit $mode 601 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 602 ; GCN-NEXT: S_ENDPGM 0 603 %0:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 1, implicit $exec, implicit $mode 604 %1:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 2, implicit $exec, implicit $mode 605 %2:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 3, implicit $exec, implicit $mode 606 S_NOP 0, implicit %0 607 S_NOP 0, implicit %1 608 S_NOP 0, implicit %2 609 S_ENDPGM 0 610... 611--- 612name: test_remat_v_cvt_i32_f32_e32 613tracksRegLiveness: true 614body: | 615 bb.0: 616 ; GCN-LABEL: name: test_remat_v_cvt_i32_f32_e32 617 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_I32_F32_e32 1, implicit $exec, implicit $mode 618 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_I32_F32_e32 2, implicit $exec, implicit $mode 619 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 620 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 621 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_I32_F32_e32 3, implicit $exec, implicit $mode 622 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 623 ; GCN-NEXT: S_ENDPGM 0 624 %0:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 1, implicit $exec, implicit $mode 625 %1:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 2, implicit $exec, implicit $mode 626 %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 3, implicit $exec, implicit $mode 627 S_NOP 0, implicit %0 628 S_NOP 0, implicit %1 629 S_NOP 0, implicit %2 630 S_ENDPGM 0 631... 632--- 633name: test_remat_v_cvt_f32_f16_e32 634tracksRegLiveness: true 635body: | 636 bb.0: 637 ; GCN-LABEL: name: test_remat_v_cvt_f32_f16_e32 638 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_F32_F16_e32 1, implicit $exec, implicit $mode 639 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_F32_F16_e32 2, implicit $exec, implicit $mode 640 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 641 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 642 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_F32_F16_e32 3, implicit $exec, implicit $mode 643 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 644 ; GCN-NEXT: S_ENDPGM 0 645 %0:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 1, implicit $exec, implicit $mode 646 %1:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 2, implicit $exec, implicit $mode 647 %2:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 3, implicit $exec, implicit $mode 648 S_NOP 0, implicit %0 649 S_NOP 0, implicit %1 650 S_NOP 0, implicit %2 651 S_ENDPGM 0 652... 653--- 654name: test_remat_v_cvt_rpi_i32_f32_e32 655tracksRegLiveness: true 656body: | 657 bb.0: 658 ; GCN-LABEL: name: test_remat_v_cvt_rpi_i32_f32_e32 659 ; GCN: renamable $vgpr0 = V_CVT_RPI_I32_F32_e32 1, implicit $exec, implicit $mode 660 ; GCN-NEXT: renamable $vgpr1 = V_CVT_RPI_I32_F32_e32 2, implicit $exec, implicit $mode 661 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 662 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 663 ; GCN-NEXT: renamable $vgpr0 = V_CVT_RPI_I32_F32_e32 3, implicit $exec, implicit $mode 664 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 665 ; GCN-NEXT: S_ENDPGM 0 666 %0:vgpr_32 = V_CVT_RPI_I32_F32_e32 1, implicit $exec, implicit $mode 667 %1:vgpr_32 = V_CVT_RPI_I32_F32_e32 2, implicit $exec, implicit $mode 668 %2:vgpr_32 = V_CVT_RPI_I32_F32_e32 3, implicit $exec, implicit $mode 669 S_NOP 0, implicit %0 670 S_NOP 0, implicit %1 671 S_NOP 0, implicit %2 672 S_ENDPGM 0 673... 674--- 675name: test_remat_v_cvt_flr_i32_f32_e32 676tracksRegLiveness: true 677body: | 678 bb.0: 679 ; GCN-LABEL: name: test_remat_v_cvt_flr_i32_f32_e32 680 ; GCN: renamable $vgpr0 = V_CVT_FLR_I32_F32_e32 1, implicit $exec, implicit $mode 681 ; GCN-NEXT: renamable $vgpr1 = V_CVT_FLR_I32_F32_e32 2, implicit $exec, implicit $mode 682 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 683 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 684 ; GCN-NEXT: renamable $vgpr0 = V_CVT_FLR_I32_F32_e32 3, implicit $exec, implicit $mode 685 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 686 ; GCN-NEXT: S_ENDPGM 0 687 %0:vgpr_32 = V_CVT_FLR_I32_F32_e32 1, implicit $exec, implicit $mode 688 %1:vgpr_32 = V_CVT_FLR_I32_F32_e32 2, implicit $exec, implicit $mode 689 %2:vgpr_32 = V_CVT_FLR_I32_F32_e32 3, implicit $exec, implicit $mode 690 S_NOP 0, implicit %0 691 S_NOP 0, implicit %1 692 S_NOP 0, implicit %2 693 S_ENDPGM 0 694... 695--- 696name: test_remat_v_cvt_off_f32_i4_e32 697tracksRegLiveness: true 698body: | 699 bb.0: 700 ; GCN-LABEL: name: test_remat_v_cvt_off_f32_i4_e32 701 ; GCN: renamable $vgpr0 = V_CVT_OFF_F32_I4_e32 1, implicit $exec, implicit $mode 702 ; GCN-NEXT: renamable $vgpr1 = V_CVT_OFF_F32_I4_e32 2, implicit $exec, implicit $mode 703 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 704 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 705 ; GCN-NEXT: renamable $vgpr0 = V_CVT_OFF_F32_I4_e32 3, implicit $exec, implicit $mode 706 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 707 ; GCN-NEXT: S_ENDPGM 0 708 %0:vgpr_32 = V_CVT_OFF_F32_I4_e32 1, implicit $exec, implicit $mode 709 %1:vgpr_32 = V_CVT_OFF_F32_I4_e32 2, implicit $exec, implicit $mode 710 %2:vgpr_32 = V_CVT_OFF_F32_I4_e32 3, implicit $exec, implicit $mode 711 S_NOP 0, implicit %0 712 S_NOP 0, implicit %1 713 S_NOP 0, implicit %2 714 S_ENDPGM 0 715... 716--- 717name: test_remat_v_cvt_f32_ubyte0_e32 718tracksRegLiveness: true 719body: | 720 bb.0: 721 ; GCN-LABEL: name: test_remat_v_cvt_f32_ubyte0_e32 722 ; GCN: renamable $vgpr0 = V_CVT_F32_UBYTE0_e32 1, implicit $exec, implicit $mode 723 ; GCN-NEXT: renamable $vgpr1 = V_CVT_F32_UBYTE0_e32 2, implicit $exec, implicit $mode 724 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 725 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 726 ; GCN-NEXT: renamable $vgpr0 = V_CVT_F32_UBYTE0_e32 3, implicit $exec, implicit $mode 727 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 728 ; GCN-NEXT: S_ENDPGM 0 729 %0:vgpr_32 = V_CVT_F32_UBYTE0_e32 1, implicit $exec, implicit $mode 730 %1:vgpr_32 = V_CVT_F32_UBYTE0_e32 2, implicit $exec, implicit $mode 731 %2:vgpr_32 = V_CVT_F32_UBYTE0_e32 3, implicit $exec, implicit $mode 732 S_NOP 0, implicit %0 733 S_NOP 0, implicit %1 734 S_NOP 0, implicit %2 735 S_ENDPGM 0 736... 737--- 738name: test_remat_v_fract_f32_e32 739tracksRegLiveness: true 740body: | 741 bb.0: 742 ; GCN-LABEL: name: test_remat_v_fract_f32_e32 743 ; GCN: renamable $vgpr0 = nofpexcept V_FRACT_F32_e32 1, implicit $exec, implicit $mode 744 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FRACT_F32_e32 2, implicit $exec, implicit $mode 745 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 746 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 747 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FRACT_F32_e32 3, implicit $exec, implicit $mode 748 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 749 ; GCN-NEXT: S_ENDPGM 0 750 %0:vgpr_32 = nofpexcept V_FRACT_F32_e32 1, implicit $exec, implicit $mode 751 %1:vgpr_32 = nofpexcept V_FRACT_F32_e32 2, implicit $exec, implicit $mode 752 %2:vgpr_32 = nofpexcept V_FRACT_F32_e32 3, implicit $exec, implicit $mode 753 S_NOP 0, implicit %0 754 S_NOP 0, implicit %1 755 S_NOP 0, implicit %2 756 S_ENDPGM 0 757... 758--- 759name: test_remat_v_trunc_f32_e32 760tracksRegLiveness: true 761body: | 762 bb.0: 763 ; GCN-LABEL: name: test_remat_v_trunc_f32_e32 764 ; GCN: renamable $vgpr0 = nofpexcept V_TRUNC_F32_e32 1, implicit $exec, implicit $mode 765 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_TRUNC_F32_e32 2, implicit $exec, implicit $mode 766 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 767 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 768 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_TRUNC_F32_e32 3, implicit $exec, implicit $mode 769 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 770 ; GCN-NEXT: S_ENDPGM 0 771 %0:vgpr_32 = nofpexcept V_TRUNC_F32_e32 1, implicit $exec, implicit $mode 772 %1:vgpr_32 = nofpexcept V_TRUNC_F32_e32 2, implicit $exec, implicit $mode 773 %2:vgpr_32 = nofpexcept V_TRUNC_F32_e32 3, implicit $exec, implicit $mode 774 S_NOP 0, implicit %0 775 S_NOP 0, implicit %1 776 S_NOP 0, implicit %2 777 S_ENDPGM 0 778... 779--- 780name: test_remat_v_ceil_f32_e32 781tracksRegLiveness: true 782body: | 783 bb.0: 784 ; GCN-LABEL: name: test_remat_v_ceil_f32_e32 785 ; GCN: renamable $vgpr0 = nofpexcept V_CEIL_F32_e32 1, implicit $exec, implicit $mode 786 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CEIL_F32_e32 2, implicit $exec, implicit $mode 787 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 788 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 789 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CEIL_F32_e32 3, implicit $exec, implicit $mode 790 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 791 ; GCN-NEXT: S_ENDPGM 0 792 %0:vgpr_32 = nofpexcept V_CEIL_F32_e32 1, implicit $exec, implicit $mode 793 %1:vgpr_32 = nofpexcept V_CEIL_F32_e32 2, implicit $exec, implicit $mode 794 %2:vgpr_32 = nofpexcept V_CEIL_F32_e32 3, implicit $exec, implicit $mode 795 S_NOP 0, implicit %0 796 S_NOP 0, implicit %1 797 S_NOP 0, implicit %2 798 S_ENDPGM 0 799... 800--- 801name: test_remat_v_rndne_f32_e32 802tracksRegLiveness: true 803body: | 804 bb.0: 805 ; GCN-LABEL: name: test_remat_v_rndne_f32_e32 806 ; GCN: renamable $vgpr0 = nofpexcept V_RNDNE_F32_e32 1, implicit $exec, implicit $mode 807 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_RNDNE_F32_e32 2, implicit $exec, implicit $mode 808 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 809 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 810 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_RNDNE_F32_e32 3, implicit $exec, implicit $mode 811 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 812 ; GCN-NEXT: S_ENDPGM 0 813 %0:vgpr_32 = nofpexcept V_RNDNE_F32_e32 1, implicit $exec, implicit $mode 814 %1:vgpr_32 = nofpexcept V_RNDNE_F32_e32 2, implicit $exec, implicit $mode 815 %2:vgpr_32 = nofpexcept V_RNDNE_F32_e32 3, implicit $exec, implicit $mode 816 S_NOP 0, implicit %0 817 S_NOP 0, implicit %1 818 S_NOP 0, implicit %2 819 S_ENDPGM 0 820... 821--- 822name: test_remat_v_floor_f32_e32 823tracksRegLiveness: true 824body: | 825 bb.0: 826 ; GCN-LABEL: name: test_remat_v_floor_f32_e32 827 ; GCN: renamable $vgpr0 = nofpexcept V_FLOOR_F32_e32 1, implicit $exec, implicit $mode 828 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FLOOR_F32_e32 2, implicit $exec, implicit $mode 829 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 830 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 831 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FLOOR_F32_e32 3, implicit $exec, implicit $mode 832 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 833 ; GCN-NEXT: S_ENDPGM 0 834 %0:vgpr_32 = nofpexcept V_FLOOR_F32_e32 1, implicit $exec, implicit $mode 835 %1:vgpr_32 = nofpexcept V_FLOOR_F32_e32 2, implicit $exec, implicit $mode 836 %2:vgpr_32 = nofpexcept V_FLOOR_F32_e32 3, implicit $exec, implicit $mode 837 S_NOP 0, implicit %0 838 S_NOP 0, implicit %1 839 S_NOP 0, implicit %2 840 S_ENDPGM 0 841... 842--- 843name: test_remat_v_exp_f32_e32 844tracksRegLiveness: true 845body: | 846 bb.0: 847 ; GCN-LABEL: name: test_remat_v_exp_f32_e32 848 ; GCN: renamable $vgpr0 = nofpexcept V_EXP_F32_e32 1, implicit $exec, implicit $mode 849 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_EXP_F32_e32 2, implicit $exec, implicit $mode 850 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 851 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 852 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_EXP_F32_e32 3, implicit $exec, implicit $mode 853 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 854 ; GCN-NEXT: S_ENDPGM 0 855 %0:vgpr_32 = nofpexcept V_EXP_F32_e32 1, implicit $exec, implicit $mode 856 %1:vgpr_32 = nofpexcept V_EXP_F32_e32 2, implicit $exec, implicit $mode 857 %2:vgpr_32 = nofpexcept V_EXP_F32_e32 3, implicit $exec, implicit $mode 858 S_NOP 0, implicit %0 859 S_NOP 0, implicit %1 860 S_NOP 0, implicit %2 861 S_ENDPGM 0 862... 863--- 864name: test_remat_v_log_f32_e32 865tracksRegLiveness: true 866body: | 867 bb.0: 868 ; GCN-LABEL: name: test_remat_v_log_f32_e32 869 ; GCN: renamable $vgpr0 = nofpexcept V_LOG_F32_e32 1, implicit $exec, implicit $mode 870 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LOG_F32_e32 2, implicit $exec, implicit $mode 871 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 872 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 873 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_LOG_F32_e32 3, implicit $exec, implicit $mode 874 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 875 ; GCN-NEXT: S_ENDPGM 0 876 %0:vgpr_32 = nofpexcept V_LOG_F32_e32 1, implicit $exec, implicit $mode 877 %1:vgpr_32 = nofpexcept V_LOG_F32_e32 2, implicit $exec, implicit $mode 878 %2:vgpr_32 = nofpexcept V_LOG_F32_e32 3, implicit $exec, implicit $mode 879 S_NOP 0, implicit %0 880 S_NOP 0, implicit %1 881 S_NOP 0, implicit %2 882 S_ENDPGM 0 883... 884--- 885name: test_remat_v_rcp_f32_e32 886tracksRegLiveness: true 887body: | 888 bb.0: 889 ; GCN-LABEL: name: test_remat_v_rcp_f32_e32 890 ; GCN: renamable $vgpr0 = nofpexcept V_RCP_F32_e32 1, implicit $exec, implicit $mode 891 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_RCP_F32_e32 2, implicit $exec, implicit $mode 892 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 893 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 894 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_RCP_F32_e32 3, implicit $exec, implicit $mode 895 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 896 ; GCN-NEXT: S_ENDPGM 0 897 %0:vgpr_32 = nofpexcept V_RCP_F32_e32 1, implicit $exec, implicit $mode 898 %1:vgpr_32 = nofpexcept V_RCP_F32_e32 2, implicit $exec, implicit $mode 899 %2:vgpr_32 = nofpexcept V_RCP_F32_e32 3, implicit $exec, implicit $mode 900 S_NOP 0, implicit %0 901 S_NOP 0, implicit %1 902 S_NOP 0, implicit %2 903 S_ENDPGM 0 904... 905--- 906name: test_remat_v_rcp_iflag_f32_e32 907tracksRegLiveness: true 908body: | 909 bb.0: 910 ; GCN-LABEL: name: test_remat_v_rcp_iflag_f32_e32 911 ; GCN: renamable $vgpr0 = nofpexcept V_RCP_IFLAG_F32_e32 1, implicit $exec, implicit $mode 912 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_RCP_IFLAG_F32_e32 2, implicit $exec, implicit $mode 913 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 914 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 915 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_RCP_IFLAG_F32_e32 3, implicit $exec, implicit $mode 916 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 917 ; GCN-NEXT: S_ENDPGM 0 918 %0:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 1, implicit $exec, implicit $mode 919 %1:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 2, implicit $exec, implicit $mode 920 %2:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 3, implicit $exec, implicit $mode 921 S_NOP 0, implicit %0 922 S_NOP 0, implicit %1 923 S_NOP 0, implicit %2 924 S_ENDPGM 0 925... 926--- 927name: test_remat_v_rsq_f32_e32 928tracksRegLiveness: true 929body: | 930 bb.0: 931 ; GCN-LABEL: name: test_remat_v_rsq_f32_e32 932 ; GCN: renamable $vgpr0 = nofpexcept V_RSQ_F32_e32 1, implicit $exec, implicit $mode 933 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_RSQ_F32_e32 2, implicit $exec, implicit $mode 934 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 935 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 936 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_RSQ_F32_e32 3, implicit $exec, implicit $mode 937 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 938 ; GCN-NEXT: S_ENDPGM 0 939 %0:vgpr_32 = nofpexcept V_RSQ_F32_e32 1, implicit $exec, implicit $mode 940 %1:vgpr_32 = nofpexcept V_RSQ_F32_e32 2, implicit $exec, implicit $mode 941 %2:vgpr_32 = nofpexcept V_RSQ_F32_e32 3, implicit $exec, implicit $mode 942 S_NOP 0, implicit %0 943 S_NOP 0, implicit %1 944 S_NOP 0, implicit %2 945 S_ENDPGM 0 946... 947--- 948name: test_remat_v_sqrt_f32_e32 949tracksRegLiveness: true 950body: | 951 bb.0: 952 ; GCN-LABEL: name: test_remat_v_sqrt_f32_e32 953 ; GCN: renamable $vgpr0 = nofpexcept V_SQRT_F32_e32 1, implicit $exec, implicit $mode 954 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SQRT_F32_e32 2, implicit $exec, implicit $mode 955 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 956 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 957 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_SQRT_F32_e32 3, implicit $exec, implicit $mode 958 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 959 ; GCN-NEXT: S_ENDPGM 0 960 %0:vgpr_32 = nofpexcept V_SQRT_F32_e32 1, implicit $exec, implicit $mode 961 %1:vgpr_32 = nofpexcept V_SQRT_F32_e32 2, implicit $exec, implicit $mode 962 %2:vgpr_32 = nofpexcept V_SQRT_F32_e32 3, implicit $exec, implicit $mode 963 S_NOP 0, implicit %0 964 S_NOP 0, implicit %1 965 S_NOP 0, implicit %2 966 S_ENDPGM 0 967... 968--- 969name: test_remat_v_rcp_f64_e32 970tracksRegLiveness: true 971body: | 972 bb.0: 973 ; GCN-LABEL: name: test_remat_v_rcp_f64_e32 974 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_RCP_F64_e32 1, implicit $exec, implicit $mode 975 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_RCP_F64_e32 2, implicit $exec, implicit $mode 976 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 977 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 978 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_RCP_F64_e32 3, implicit $exec, implicit $mode 979 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 980 ; GCN-NEXT: S_ENDPGM 0 981 %0:vreg_64_align2 = nofpexcept V_RCP_F64_e32 1, implicit $exec, implicit $mode 982 %1:vreg_64_align2 = nofpexcept V_RCP_F64_e32 2, implicit $exec, implicit $mode 983 %2:vreg_64_align2 = nofpexcept V_RCP_F64_e32 3, implicit $exec, implicit $mode 984 S_NOP 0, implicit %0 985 S_NOP 0, implicit %1 986 S_NOP 0, implicit %2 987 S_ENDPGM 0 988... 989--- 990name: test_remat_v_rsq_f64_e32 991tracksRegLiveness: true 992body: | 993 bb.0: 994 ; GCN-LABEL: name: test_remat_v_rsq_f64_e32 995 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_RSQ_F64_e32 1, implicit $exec, implicit $mode 996 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_RSQ_F64_e32 2, implicit $exec, implicit $mode 997 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 998 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 999 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_RSQ_F64_e32 3, implicit $exec, implicit $mode 1000 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1001 ; GCN-NEXT: S_ENDPGM 0 1002 %0:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 1, implicit $exec, implicit $mode 1003 %1:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 2, implicit $exec, implicit $mode 1004 %2:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 3, implicit $exec, implicit $mode 1005 S_NOP 0, implicit %0 1006 S_NOP 0, implicit %1 1007 S_NOP 0, implicit %2 1008 S_ENDPGM 0 1009... 1010--- 1011name: test_remat_v_sqrt_f64_e32 1012tracksRegLiveness: true 1013body: | 1014 bb.0: 1015 ; GCN-LABEL: name: test_remat_v_sqrt_f64_e32 1016 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_SQRT_F64_e32 1, implicit $exec, implicit $mode 1017 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_SQRT_F64_e32 2, implicit $exec, implicit $mode 1018 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1019 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 1020 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_SQRT_F64_e32 3, implicit $exec, implicit $mode 1021 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1022 ; GCN-NEXT: S_ENDPGM 0 1023 %0:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 1, implicit $exec, implicit $mode 1024 %1:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 2, implicit $exec, implicit $mode 1025 %2:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 3, implicit $exec, implicit $mode 1026 S_NOP 0, implicit %0 1027 S_NOP 0, implicit %1 1028 S_NOP 0, implicit %2 1029 S_ENDPGM 0 1030... 1031--- 1032name: test_remat_v_sin_f32_e32 1033tracksRegLiveness: true 1034body: | 1035 bb.0: 1036 ; GCN-LABEL: name: test_remat_v_sin_f32_e32 1037 ; GCN: renamable $vgpr0 = nofpexcept V_SIN_F32_e32 1, implicit $exec, implicit $mode 1038 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SIN_F32_e32 2, implicit $exec, implicit $mode 1039 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1040 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1041 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_SIN_F32_e32 3, implicit $exec, implicit $mode 1042 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1043 ; GCN-NEXT: S_ENDPGM 0 1044 %0:vgpr_32 = nofpexcept V_SIN_F32_e32 1, implicit $exec, implicit $mode 1045 %1:vgpr_32 = nofpexcept V_SIN_F32_e32 2, implicit $exec, implicit $mode 1046 %2:vgpr_32 = nofpexcept V_SIN_F32_e32 3, implicit $exec, implicit $mode 1047 S_NOP 0, implicit %0 1048 S_NOP 0, implicit %1 1049 S_NOP 0, implicit %2 1050 S_ENDPGM 0 1051... 1052--- 1053name: test_remat_v_cos_f32_e32 1054tracksRegLiveness: true 1055body: | 1056 bb.0: 1057 ; GCN-LABEL: name: test_remat_v_cos_f32_e32 1058 ; GCN: renamable $vgpr0 = nofpexcept V_COS_F32_e32 1, implicit $exec, implicit $mode 1059 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_COS_F32_e32 2, implicit $exec, implicit $mode 1060 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1061 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1062 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_COS_F32_e32 3, implicit $exec, implicit $mode 1063 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1064 ; GCN-NEXT: S_ENDPGM 0 1065 %0:vgpr_32 = nofpexcept V_COS_F32_e32 1, implicit $exec, implicit $mode 1066 %1:vgpr_32 = nofpexcept V_COS_F32_e32 2, implicit $exec, implicit $mode 1067 %2:vgpr_32 = nofpexcept V_COS_F32_e32 3, implicit $exec, implicit $mode 1068 S_NOP 0, implicit %0 1069 S_NOP 0, implicit %1 1070 S_NOP 0, implicit %2 1071 S_ENDPGM 0 1072... 1073--- 1074name: test_remat_v_not_b32_e32 1075tracksRegLiveness: true 1076body: | 1077 bb.0: 1078 ; GCN-LABEL: name: test_remat_v_not_b32_e32 1079 ; GCN: renamable $vgpr0 = V_NOT_B32_e32 1, implicit $exec, implicit $mode 1080 ; GCN-NEXT: renamable $vgpr1 = V_NOT_B32_e32 2, implicit $exec, implicit $mode 1081 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1082 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1083 ; GCN-NEXT: renamable $vgpr0 = V_NOT_B32_e32 3, implicit $exec, implicit $mode 1084 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1085 ; GCN-NEXT: S_ENDPGM 0 1086 %0:vgpr_32 = V_NOT_B32_e32 1, implicit $exec, implicit $mode 1087 %1:vgpr_32 = V_NOT_B32_e32 2, implicit $exec, implicit $mode 1088 %2:vgpr_32 = V_NOT_B32_e32 3, implicit $exec, implicit $mode 1089 S_NOP 0, implicit %0 1090 S_NOP 0, implicit %1 1091 S_NOP 0, implicit %2 1092 S_ENDPGM 0 1093... 1094--- 1095name: test_remat_v_bfrev_b32_e32 1096tracksRegLiveness: true 1097body: | 1098 bb.0: 1099 ; GCN-LABEL: name: test_remat_v_bfrev_b32_e32 1100 ; GCN: renamable $vgpr0 = V_BFREV_B32_e32 1, implicit $exec, implicit $mode 1101 ; GCN-NEXT: renamable $vgpr1 = V_BFREV_B32_e32 2, implicit $exec, implicit $mode 1102 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1103 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1104 ; GCN-NEXT: renamable $vgpr0 = V_BFREV_B32_e32 3, implicit $exec, implicit $mode 1105 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1106 ; GCN-NEXT: S_ENDPGM 0 1107 %0:vgpr_32 = V_BFREV_B32_e32 1, implicit $exec, implicit $mode 1108 %1:vgpr_32 = V_BFREV_B32_e32 2, implicit $exec, implicit $mode 1109 %2:vgpr_32 = V_BFREV_B32_e32 3, implicit $exec, implicit $mode 1110 S_NOP 0, implicit %0 1111 S_NOP 0, implicit %1 1112 S_NOP 0, implicit %2 1113 S_ENDPGM 0 1114... 1115--- 1116name: test_remat_v_ffbh_u32_e32 1117tracksRegLiveness: true 1118body: | 1119 bb.0: 1120 ; GCN-LABEL: name: test_remat_v_ffbh_u32_e32 1121 ; GCN: renamable $vgpr0 = V_FFBH_U32_e32 1, implicit $exec, implicit $mode 1122 ; GCN-NEXT: renamable $vgpr1 = V_FFBH_U32_e32 2, implicit $exec, implicit $mode 1123 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1124 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1125 ; GCN-NEXT: renamable $vgpr0 = V_FFBH_U32_e32 3, implicit $exec, implicit $mode 1126 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1127 ; GCN-NEXT: S_ENDPGM 0 1128 %0:vgpr_32 = V_FFBH_U32_e32 1, implicit $exec, implicit $mode 1129 %1:vgpr_32 = V_FFBH_U32_e32 2, implicit $exec, implicit $mode 1130 %2:vgpr_32 = V_FFBH_U32_e32 3, implicit $exec, implicit $mode 1131 S_NOP 0, implicit %0 1132 S_NOP 0, implicit %1 1133 S_NOP 0, implicit %2 1134 S_ENDPGM 0 1135... 1136--- 1137name: test_remat_v_ffbl_b32_e32 1138tracksRegLiveness: true 1139body: | 1140 bb.0: 1141 ; GCN-LABEL: name: test_remat_v_ffbl_b32_e32 1142 ; GCN: renamable $vgpr0 = V_FFBL_B32_e32 1, implicit $exec, implicit $mode 1143 ; GCN-NEXT: renamable $vgpr1 = V_FFBL_B32_e32 2, implicit $exec, implicit $mode 1144 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1145 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1146 ; GCN-NEXT: renamable $vgpr0 = V_FFBL_B32_e32 3, implicit $exec, implicit $mode 1147 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1148 ; GCN-NEXT: S_ENDPGM 0 1149 %0:vgpr_32 = V_FFBL_B32_e32 1, implicit $exec, implicit $mode 1150 %1:vgpr_32 = V_FFBL_B32_e32 2, implicit $exec, implicit $mode 1151 %2:vgpr_32 = V_FFBL_B32_e32 3, implicit $exec, implicit $mode 1152 S_NOP 0, implicit %0 1153 S_NOP 0, implicit %1 1154 S_NOP 0, implicit %2 1155 S_ENDPGM 0 1156... 1157--- 1158name: test_remat_v_ffbh_i32_e32 1159tracksRegLiveness: true 1160body: | 1161 bb.0: 1162 ; GCN-LABEL: name: test_remat_v_ffbh_i32_e32 1163 ; GCN: renamable $vgpr0 = V_FFBH_I32_e32 1, implicit $exec, implicit $mode 1164 ; GCN-NEXT: renamable $vgpr1 = V_FFBH_I32_e32 2, implicit $exec, implicit $mode 1165 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1166 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1167 ; GCN-NEXT: renamable $vgpr0 = V_FFBH_I32_e32 3, implicit $exec, implicit $mode 1168 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1169 ; GCN-NEXT: S_ENDPGM 0 1170 %0:vgpr_32 = V_FFBH_I32_e32 1, implicit $exec, implicit $mode 1171 %1:vgpr_32 = V_FFBH_I32_e32 2, implicit $exec, implicit $mode 1172 %2:vgpr_32 = V_FFBH_I32_e32 3, implicit $exec, implicit $mode 1173 S_NOP 0, implicit %0 1174 S_NOP 0, implicit %1 1175 S_NOP 0, implicit %2 1176 S_ENDPGM 0 1177... 1178--- 1179name: test_remat_v_frexp_exp_i32_f64_e32 1180tracksRegLiveness: true 1181body: | 1182 bb.0: 1183 ; GCN-LABEL: name: test_remat_v_frexp_exp_i32_f64_e32 1184 ; GCN: renamable $vgpr0 = nofpexcept V_FREXP_EXP_I32_F64_e32 1, implicit $exec, implicit $mode 1185 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FREXP_EXP_I32_F64_e32 2, implicit $exec, implicit $mode 1186 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1187 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1188 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FREXP_EXP_I32_F64_e32 3, implicit $exec, implicit $mode 1189 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1190 ; GCN-NEXT: S_ENDPGM 0 1191 %0:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 1, implicit $exec, implicit $mode 1192 %1:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 2, implicit $exec, implicit $mode 1193 %2:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 3, implicit $exec, implicit $mode 1194 S_NOP 0, implicit %0 1195 S_NOP 0, implicit %1 1196 S_NOP 0, implicit %2 1197 S_ENDPGM 0 1198... 1199--- 1200name: test_remat_v_frexp_mant_f64_e32 1201tracksRegLiveness: true 1202body: | 1203 bb.0: 1204 ; GCN-LABEL: name: test_remat_v_frexp_mant_f64_e32 1205 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_FREXP_MANT_F64_e32 1, implicit $exec, implicit $mode 1206 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_FREXP_MANT_F64_e32 2, implicit $exec, implicit $mode 1207 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1208 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 1209 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_FREXP_MANT_F64_e32 3, implicit $exec, implicit $mode 1210 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1211 ; GCN-NEXT: S_ENDPGM 0 1212 %0:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 1, implicit $exec, implicit $mode 1213 %1:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 2, implicit $exec, implicit $mode 1214 %2:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 3, implicit $exec, implicit $mode 1215 S_NOP 0, implicit %0 1216 S_NOP 0, implicit %1 1217 S_NOP 0, implicit %2 1218 S_ENDPGM 0 1219... 1220--- 1221name: test_remat_v_fract_f64_e32 1222tracksRegLiveness: true 1223body: | 1224 bb.0: 1225 ; GCN-LABEL: name: test_remat_v_fract_f64_e32 1226 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_FRACT_F64_e32 1, implicit $exec, implicit $mode 1227 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_FRACT_F64_e32 2, implicit $exec, implicit $mode 1228 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1229 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 1230 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_FRACT_F64_e32 3, implicit $exec, implicit $mode 1231 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 1232 ; GCN-NEXT: S_ENDPGM 0 1233 %0:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 1, implicit $exec, implicit $mode 1234 %1:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 2, implicit $exec, implicit $mode 1235 %2:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 3, implicit $exec, implicit $mode 1236 S_NOP 0, implicit %0 1237 S_NOP 0, implicit %1 1238 S_NOP 0, implicit %2 1239 S_ENDPGM 0 1240... 1241--- 1242name: test_remat_v_frexp_exp_i32_f32_e32 1243tracksRegLiveness: true 1244body: | 1245 bb.0: 1246 ; GCN-LABEL: name: test_remat_v_frexp_exp_i32_f32_e32 1247 ; GCN: renamable $vgpr0 = nofpexcept V_FREXP_EXP_I32_F32_e32 1, implicit $exec, implicit $mode 1248 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FREXP_EXP_I32_F32_e32 2, implicit $exec, implicit $mode 1249 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1250 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1251 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FREXP_EXP_I32_F32_e32 3, implicit $exec, implicit $mode 1252 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1253 ; GCN-NEXT: S_ENDPGM 0 1254 %0:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 1, implicit $exec, implicit $mode 1255 %1:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 2, implicit $exec, implicit $mode 1256 %2:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 3, implicit $exec, implicit $mode 1257 S_NOP 0, implicit %0 1258 S_NOP 0, implicit %1 1259 S_NOP 0, implicit %2 1260 S_ENDPGM 0 1261... 1262--- 1263name: test_remat_v_frexp_mant_f32_e32 1264tracksRegLiveness: true 1265body: | 1266 bb.0: 1267 ; GCN-LABEL: name: test_remat_v_frexp_mant_f32_e32 1268 ; GCN: renamable $vgpr0 = nofpexcept V_FREXP_MANT_F32_e32 1, implicit $exec, implicit $mode 1269 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FREXP_MANT_F32_e32 2, implicit $exec, implicit $mode 1270 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1271 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1272 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FREXP_MANT_F32_e32 3, implicit $exec, implicit $mode 1273 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1274 ; GCN-NEXT: S_ENDPGM 0 1275 %0:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 1, implicit $exec, implicit $mode 1276 %1:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 2, implicit $exec, implicit $mode 1277 %2:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 3, implicit $exec, implicit $mode 1278 S_NOP 0, implicit %0 1279 S_NOP 0, implicit %1 1280 S_NOP 0, implicit %2 1281 S_ENDPGM 0 1282... 1283--- 1284name: test_remat_v_exp_legacy_f32_e32 1285tracksRegLiveness: true 1286body: | 1287 bb.0: 1288 ; GCN-LABEL: name: test_remat_v_exp_legacy_f32_e32 1289 ; GCN: renamable $vgpr0 = nofpexcept V_EXP_LEGACY_F32_e32 1, implicit $exec, implicit $mode 1290 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_EXP_LEGACY_F32_e32 2, implicit $exec, implicit $mode 1291 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1292 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1293 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_EXP_LEGACY_F32_e32 3, implicit $exec, implicit $mode 1294 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1295 ; GCN-NEXT: S_ENDPGM 0 1296 %0:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 1, implicit $exec, implicit $mode 1297 %1:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 2, implicit $exec, implicit $mode 1298 %2:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 3, implicit $exec, implicit $mode 1299 S_NOP 0, implicit %0 1300 S_NOP 0, implicit %1 1301 S_NOP 0, implicit %2 1302 S_ENDPGM 0 1303... 1304--- 1305name: test_remat_v_log_legacy_f32_e32 1306tracksRegLiveness: true 1307body: | 1308 bb.0: 1309 ; GCN-LABEL: name: test_remat_v_log_legacy_f32_e32 1310 ; GCN: renamable $vgpr0 = nofpexcept V_LOG_LEGACY_F32_e32 1, implicit $exec, implicit $mode 1311 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LOG_LEGACY_F32_e32 2, implicit $exec, implicit $mode 1312 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1313 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1314 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_LOG_LEGACY_F32_e32 3, implicit $exec, implicit $mode 1315 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1316 ; GCN-NEXT: S_ENDPGM 0 1317 %0:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 1, implicit $exec, implicit $mode 1318 %1:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 2, implicit $exec, implicit $mode 1319 %2:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 3, implicit $exec, implicit $mode 1320 S_NOP 0, implicit %0 1321 S_NOP 0, implicit %1 1322 S_NOP 0, implicit %2 1323 S_ENDPGM 0 1324... 1325--- 1326name: test_remat_v_sat_pk_u8_i16_e32 1327tracksRegLiveness: true 1328body: | 1329 bb.0: 1330 ; GCN-LABEL: name: test_remat_v_sat_pk_u8_i16_e32 1331 ; GCN: renamable $vgpr0 = V_SAT_PK_U8_I16_e32 1, implicit $exec, implicit $mode 1332 ; GCN-NEXT: renamable $vgpr1 = V_SAT_PK_U8_I16_e32 2, implicit $exec, implicit $mode 1333 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1334 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1335 ; GCN-NEXT: renamable $vgpr0 = V_SAT_PK_U8_I16_e32 3, implicit $exec, implicit $mode 1336 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1337 ; GCN-NEXT: S_ENDPGM 0 1338 %0:vgpr_32 = V_SAT_PK_U8_I16_e32 1, implicit $exec, implicit $mode 1339 %1:vgpr_32 = V_SAT_PK_U8_I16_e32 2, implicit $exec, implicit $mode 1340 %2:vgpr_32 = V_SAT_PK_U8_I16_e32 3, implicit $exec, implicit $mode 1341 S_NOP 0, implicit %0 1342 S_NOP 0, implicit %1 1343 S_NOP 0, implicit %2 1344 S_ENDPGM 0 1345... 1346--- 1347name: test_remat_v_accvgpr_mov_b32 1348tracksRegLiveness: true 1349body: | 1350 bb.0: 1351 ; GCN-LABEL: name: test_remat_v_accvgpr_mov_b32 1352 ; GCN: renamable $agpr0 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec 1353 ; GCN-NEXT: renamable $agpr1 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec 1354 ; GCN-NEXT: S_NOP 0, implicit killed renamable $agpr0 1355 ; GCN-NEXT: S_NOP 0, implicit killed renamable $agpr1 1356 ; GCN-NEXT: renamable $agpr0 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec 1357 ; GCN-NEXT: S_NOP 0, implicit killed renamable $agpr0 1358 ; GCN-NEXT: S_ENDPGM 0 1359 %0:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec 1360 %1:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec 1361 %2:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec 1362 S_NOP 0, implicit %0 1363 S_NOP 0, implicit %1 1364 S_NOP 0, implicit %2 1365 S_ENDPGM 0 1366... 1367--- 1368name: test_no_remat_v_cndmask_b32_e32 1369tracksRegLiveness: true 1370machineFunctionInfo: 1371 stackPtrOffsetReg: $sgpr32 1372body: | 1373 bb.0: 1374 ; GCN-LABEL: name: test_no_remat_v_cndmask_b32_e32 1375 ; GCN: renamable $vgpr0 = V_CNDMASK_B32_e32 1, undef $vgpr0, implicit $exec, implicit undef $vcc 1376 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 1377 ; GCN-NEXT: renamable $vgpr1 = V_CNDMASK_B32_e32 1, undef $vgpr0, implicit $exec, implicit undef $vcc 1378 ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_e32 1, undef $vgpr0, implicit $exec, implicit undef $vcc 1379 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 1380 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 1381 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1382 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1383 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 1384 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1385 ; GCN-NEXT: S_ENDPGM 0 1386 %1:vgpr_32 = V_CNDMASK_B32_e32 1, undef %0:vgpr_32, implicit $exec, implicit undef $vcc 1387 %2:vgpr_32 = V_CNDMASK_B32_e32 1, undef %0:vgpr_32, implicit $exec, implicit undef $vcc 1388 %3:vgpr_32 = V_CNDMASK_B32_e32 1, undef %0:vgpr_32, implicit $exec, implicit undef $vcc 1389 S_NOP 0, implicit %1 1390 S_NOP 0, implicit %2 1391 S_NOP 0, implicit %3 1392 S_ENDPGM 0 1393... 1394--- 1395name: test_no_remat_v_cndmask_b32_sdwa 1396tracksRegLiveness: true 1397machineFunctionInfo: 1398 stackPtrOffsetReg: $sgpr32 1399body: | 1400 bb.0: 1401 ; GCN-LABEL: name: test_no_remat_v_cndmask_b32_sdwa 1402 ; GCN: renamable $vgpr0 = V_CNDMASK_B32_sdwa 0, undef $vgpr0, 0, undef $vgpr0, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc 1403 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 1404 ; GCN-NEXT: renamable $vgpr1 = V_CNDMASK_B32_sdwa 0, undef $vgpr0, 0, undef $vgpr0, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc 1405 ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_sdwa 0, undef $vgpr0, 0, undef $vgpr0, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc 1406 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 1407 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 1408 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1409 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1410 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 1411 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1412 ; GCN-NEXT: S_ENDPGM 0 1413 %1:vgpr_32 = V_CNDMASK_B32_sdwa 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc 1414 %2:vgpr_32 = V_CNDMASK_B32_sdwa 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc 1415 %3:vgpr_32 = V_CNDMASK_B32_sdwa 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc 1416 S_NOP 0, implicit %1 1417 S_NOP 0, implicit %2 1418 S_NOP 0, implicit %3 1419 S_ENDPGM 0 1420... 1421--- 1422name: test_no_remat_v_cndmask_b32_dpp 1423tracksRegLiveness: true 1424machineFunctionInfo: 1425 stackPtrOffsetReg: $sgpr32 1426body: | 1427 bb.0: 1428 ; GCN-LABEL: name: test_no_remat_v_cndmask_b32_dpp 1429 ; GCN: renamable $vgpr0 = V_CNDMASK_B32_dpp undef $vgpr0, 0, undef $vgpr0, 0, undef $vgpr0, 1, 15, 15, 10, implicit $exec, implicit undef $vcc 1430 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 1431 ; GCN-NEXT: renamable $vgpr1 = V_CNDMASK_B32_dpp undef $vgpr1, 0, undef $vgpr0, 0, undef $vgpr0, 1, 15, 15, 10, implicit $exec, implicit undef $vcc 1432 ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_dpp undef $vgpr0, 0, undef $vgpr0, 0, undef $vgpr0, 1, 15, 15, 10, implicit $exec, implicit undef $vcc 1433 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 1434 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 1435 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1436 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1437 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 1438 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1439 ; GCN-NEXT: S_ENDPGM 0 1440 %1:vgpr_32 = V_CNDMASK_B32_dpp undef %1:vgpr_32, 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit undef $vcc 1441 %2:vgpr_32 = V_CNDMASK_B32_dpp undef %2:vgpr_32, 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit undef $vcc 1442 %3:vgpr_32 = V_CNDMASK_B32_dpp undef %3:vgpr_32, 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit undef $vcc 1443 S_NOP 0, implicit %1 1444 S_NOP 0, implicit %2 1445 S_NOP 0, implicit %3 1446 S_ENDPGM 0 1447... 1448--- 1449name: test_remat_v_cndmask_b32_e64 1450tracksRegLiveness: true 1451body: | 1452 bb.0: 1453 ; GCN-LABEL: name: test_remat_v_cndmask_b32_e64 1454 ; GCN: renamable $vgpr0 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef $sgpr0_sgpr1, implicit $exec 1455 ; GCN-NEXT: renamable $vgpr1 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef $sgpr0_sgpr1, implicit $exec 1456 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1457 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1458 ; GCN-NEXT: renamable $vgpr0 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef $sgpr0_sgpr1, implicit $exec 1459 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1460 ; GCN-NEXT: S_ENDPGM 0 1461 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef %0:sreg_64_xexec, implicit $exec 1462 %2:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef %0:sreg_64_xexec, implicit $exec 1463 %3:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef %0:sreg_64_xexec, implicit $exec 1464 S_NOP 0, implicit %1 1465 S_NOP 0, implicit %2 1466 S_NOP 0, implicit %3 1467 S_ENDPGM 0 1468... 1469--- 1470name: test_remat_v_madmk_f32 1471tracksRegLiveness: true 1472body: | 1473 bb.0: 1474 ; GCN-LABEL: name: test_remat_v_madmk_f32 1475 ; GCN: renamable $vgpr0 = nofpexcept V_MADMK_F32 1, 1, undef $vgpr0, implicit $exec, implicit $mode 1476 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F32 2, 2, undef $vgpr0, implicit $exec, implicit $mode 1477 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1478 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1479 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MADMK_F32 3, 3, undef $vgpr0, implicit $exec, implicit $mode 1480 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1481 ; GCN-NEXT: S_ENDPGM 0 1482 %1:vgpr_32 = nofpexcept V_MADMK_F32 1, 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1483 %2:vgpr_32 = nofpexcept V_MADMK_F32 2, 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1484 %3:vgpr_32 = nofpexcept V_MADMK_F32 3, 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1485 S_NOP 0, implicit %1 1486 S_NOP 0, implicit %2 1487 S_NOP 0, implicit %3 1488 S_ENDPGM 0 1489... 1490--- 1491name: test_remat_v_add_f32_e32 1492tracksRegLiveness: true 1493body: | 1494 bb.0: 1495 ; GCN-LABEL: name: test_remat_v_add_f32_e32 1496 ; GCN: renamable $vgpr0 = nofpexcept V_ADD_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1497 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1498 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1499 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1500 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_ADD_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1501 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1502 ; GCN-NEXT: S_ENDPGM 0 1503 %1:vgpr_32 = nofpexcept V_ADD_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1504 %2:vgpr_32 = nofpexcept V_ADD_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1505 %3:vgpr_32 = nofpexcept V_ADD_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1506 S_NOP 0, implicit %1 1507 S_NOP 0, implicit %2 1508 S_NOP 0, implicit %3 1509 S_ENDPGM 0 1510... 1511--- 1512name: test_remat_v_add_f32_e64 1513tracksRegLiveness: true 1514body: | 1515 bb.0: 1516 ; GCN-LABEL: name: test_remat_v_add_f32_e64 1517 ; GCN: renamable $vgpr0 = nofpexcept V_ADD_F32_e64 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 1518 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F32_e64 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 1519 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1520 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1521 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_ADD_F32_e64 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 1522 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1523 ; GCN-NEXT: S_ENDPGM 0 1524 %1:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 1525 %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 1526 %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 1527 S_NOP 0, implicit %1 1528 S_NOP 0, implicit %2 1529 S_NOP 0, implicit %3 1530 S_ENDPGM 0 1531... 1532--- 1533name: test_remat_v_add_f32_sdwa 1534tracksRegLiveness: true 1535body: | 1536 bb.0: 1537 ; GCN-LABEL: name: test_remat_v_add_f32_sdwa 1538 ; GCN: renamable $vgpr0 = nofpexcept V_ADD_F32_sdwa 0, undef $vgpr0, 0, undef $vgpr0, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 1539 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F32_sdwa 0, undef $vgpr0, 0, undef $vgpr0, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 1540 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1541 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1542 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_ADD_F32_sdwa 0, undef $vgpr0, 0, undef $vgpr0, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 1543 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1544 ; GCN-NEXT: S_ENDPGM 0 1545 %1:vgpr_32 = nofpexcept V_ADD_F32_sdwa 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 1546 %2:vgpr_32 = nofpexcept V_ADD_F32_sdwa 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 1547 %3:vgpr_32 = nofpexcept V_ADD_F32_sdwa 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode 1548 S_NOP 0, implicit %1 1549 S_NOP 0, implicit %2 1550 S_NOP 0, implicit %3 1551 S_ENDPGM 0 1552... 1553--- 1554name: test_no_remat_v_add_f32_dpp 1555tracksRegLiveness: true 1556machineFunctionInfo: 1557 stackPtrOffsetReg: $sgpr32 1558body: | 1559 bb.0: 1560 ; GCN-LABEL: name: test_no_remat_v_add_f32_dpp 1561 ; GCN: renamable $vgpr0 = nofpexcept V_ADD_F32_dpp undef $vgpr0, 0, undef $vgpr0, 0, undef $vgpr0, 1, 15, 15, 10, implicit $exec, implicit $mode 1562 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 1563 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F32_dpp undef $vgpr1, 0, undef $vgpr0, 0, undef $vgpr0, 1, 15, 15, 10, implicit $exec, implicit $mode 1564 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_ADD_F32_dpp undef $vgpr0, 0, undef $vgpr0, 0, undef $vgpr0, 1, 15, 15, 10, implicit $exec, implicit $mode 1565 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 1566 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 1567 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1568 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1569 ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 1570 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1571 ; GCN-NEXT: S_ENDPGM 0 1572 %1:vgpr_32 = nofpexcept V_ADD_F32_dpp undef %1:vgpr_32, 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit $mode 1573 %2:vgpr_32 = nofpexcept V_ADD_F32_dpp undef %2:vgpr_32, 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit $mode 1574 %3:vgpr_32 = nofpexcept V_ADD_F32_dpp undef %3:vgpr_32, 0, undef %0:vgpr_32, 0, undef %0:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit $mode 1575 S_NOP 0, implicit %1 1576 S_NOP 0, implicit %2 1577 S_NOP 0, implicit %3 1578 S_ENDPGM 0 1579... 1580--- 1581name: test_remat_v_sub_f32_e32 1582tracksRegLiveness: true 1583body: | 1584 bb.0: 1585 ; GCN-LABEL: name: test_remat_v_sub_f32_e32 1586 ; GCN: renamable $vgpr0 = nofpexcept V_SUB_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1587 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1588 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1589 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1590 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_SUB_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1591 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1592 ; GCN-NEXT: S_ENDPGM 0 1593 %1:vgpr_32 = nofpexcept V_SUB_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1594 %2:vgpr_32 = nofpexcept V_SUB_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1595 %3:vgpr_32 = nofpexcept V_SUB_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1596 S_NOP 0, implicit %1 1597 S_NOP 0, implicit %2 1598 S_NOP 0, implicit %3 1599 S_ENDPGM 0 1600... 1601--- 1602name: test_remat_v_subrev_f32_e32 1603tracksRegLiveness: true 1604body: | 1605 bb.0: 1606 ; GCN-LABEL: name: test_remat_v_subrev_f32_e32 1607 ; GCN: renamable $vgpr0 = nofpexcept V_SUBREV_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1608 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1609 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1610 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1611 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_SUBREV_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1612 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1613 ; GCN-NEXT: S_ENDPGM 0 1614 %1:vgpr_32 = nofpexcept V_SUBREV_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1615 %2:vgpr_32 = nofpexcept V_SUBREV_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1616 %3:vgpr_32 = nofpexcept V_SUBREV_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1617 S_NOP 0, implicit %1 1618 S_NOP 0, implicit %2 1619 S_NOP 0, implicit %3 1620 S_ENDPGM 0 1621... 1622--- 1623name: test_remat_v_mul_legacy_f32_e32 1624tracksRegLiveness: true 1625body: | 1626 bb.0: 1627 ; GCN-LABEL: name: test_remat_v_mul_legacy_f32_e32 1628 ; GCN: renamable $vgpr0 = nofpexcept V_MUL_LEGACY_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1629 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_LEGACY_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1630 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1631 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1632 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MUL_LEGACY_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1633 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1634 ; GCN-NEXT: S_ENDPGM 0 1635 %1:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1636 %2:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1637 %3:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1638 S_NOP 0, implicit %1 1639 S_NOP 0, implicit %2 1640 S_NOP 0, implicit %3 1641 S_ENDPGM 0 1642... 1643--- 1644name: test_remat_v_mul_f32_e32 1645tracksRegLiveness: true 1646body: | 1647 bb.0: 1648 ; GCN-LABEL: name: test_remat_v_mul_f32_e32 1649 ; GCN: renamable $vgpr0 = nofpexcept V_MUL_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1650 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1651 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1652 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1653 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MUL_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1654 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1655 ; GCN-NEXT: S_ENDPGM 0 1656 %1:vgpr_32 = nofpexcept V_MUL_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1657 %2:vgpr_32 = nofpexcept V_MUL_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1658 %3:vgpr_32 = nofpexcept V_MUL_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1659 S_NOP 0, implicit %1 1660 S_NOP 0, implicit %2 1661 S_NOP 0, implicit %3 1662 S_ENDPGM 0 1663... 1664--- 1665name: test_remat_v_mul_i32_i24_e32 1666tracksRegLiveness: true 1667body: | 1668 bb.0: 1669 ; GCN-LABEL: name: test_remat_v_mul_i32_i24_e32 1670 ; GCN: renamable $vgpr0 = V_MUL_I32_I24_e32 1, undef $vgpr0, implicit $exec 1671 ; GCN-NEXT: renamable $vgpr1 = V_MUL_I32_I24_e32 2, undef $vgpr0, implicit $exec 1672 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1673 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1674 ; GCN-NEXT: renamable $vgpr0 = V_MUL_I32_I24_e32 3, undef $vgpr0, implicit $exec 1675 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1676 ; GCN-NEXT: S_ENDPGM 0 1677 %1:vgpr_32 = V_MUL_I32_I24_e32 1, undef %0:vgpr_32, implicit $exec 1678 %2:vgpr_32 = V_MUL_I32_I24_e32 2, undef %0:vgpr_32, implicit $exec 1679 %3:vgpr_32 = V_MUL_I32_I24_e32 3, undef %0:vgpr_32, implicit $exec 1680 S_NOP 0, implicit %1 1681 S_NOP 0, implicit %2 1682 S_NOP 0, implicit %3 1683 S_ENDPGM 0 1684... 1685--- 1686name: test_remat_v_mul_hi_i32_i24_e32 1687tracksRegLiveness: true 1688body: | 1689 bb.0: 1690 ; GCN-LABEL: name: test_remat_v_mul_hi_i32_i24_e32 1691 ; GCN: renamable $vgpr0 = V_MUL_HI_I32_I24_e32 1, undef $vgpr0, implicit $exec 1692 ; GCN-NEXT: renamable $vgpr1 = V_MUL_HI_I32_I24_e32 2, undef $vgpr0, implicit $exec 1693 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1694 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1695 ; GCN-NEXT: renamable $vgpr0 = V_MUL_HI_I32_I24_e32 3, undef $vgpr0, implicit $exec 1696 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1697 ; GCN-NEXT: S_ENDPGM 0 1698 %1:vgpr_32 = V_MUL_HI_I32_I24_e32 1, undef %0:vgpr_32, implicit $exec 1699 %2:vgpr_32 = V_MUL_HI_I32_I24_e32 2, undef %0:vgpr_32, implicit $exec 1700 %3:vgpr_32 = V_MUL_HI_I32_I24_e32 3, undef %0:vgpr_32, implicit $exec 1701 S_NOP 0, implicit %1 1702 S_NOP 0, implicit %2 1703 S_NOP 0, implicit %3 1704 S_ENDPGM 0 1705... 1706--- 1707name: test_remat_v_mul_u32_u24_e32 1708tracksRegLiveness: true 1709body: | 1710 bb.0: 1711 ; GCN-LABEL: name: test_remat_v_mul_u32_u24_e32 1712 ; GCN: renamable $vgpr0 = V_MUL_U32_U24_e32 1, undef $vgpr0, implicit $exec 1713 ; GCN-NEXT: renamable $vgpr1 = V_MUL_U32_U24_e32 2, undef $vgpr0, implicit $exec 1714 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1715 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1716 ; GCN-NEXT: renamable $vgpr0 = V_MUL_U32_U24_e32 3, undef $vgpr0, implicit $exec 1717 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1718 ; GCN-NEXT: S_ENDPGM 0 1719 %1:vgpr_32 = V_MUL_U32_U24_e32 1, undef %0:vgpr_32, implicit $exec 1720 %2:vgpr_32 = V_MUL_U32_U24_e32 2, undef %0:vgpr_32, implicit $exec 1721 %3:vgpr_32 = V_MUL_U32_U24_e32 3, undef %0:vgpr_32, implicit $exec 1722 S_NOP 0, implicit %1 1723 S_NOP 0, implicit %2 1724 S_NOP 0, implicit %3 1725 S_ENDPGM 0 1726... 1727--- 1728name: test_remat_v_mul_hi_u32_u24_e32 1729tracksRegLiveness: true 1730body: | 1731 bb.0: 1732 ; GCN-LABEL: name: test_remat_v_mul_hi_u32_u24_e32 1733 ; GCN: renamable $vgpr0 = V_MUL_HI_U32_U24_e32 1, undef $vgpr0, implicit $exec 1734 ; GCN-NEXT: renamable $vgpr1 = V_MUL_HI_U32_U24_e32 2, undef $vgpr0, implicit $exec 1735 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1736 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1737 ; GCN-NEXT: renamable $vgpr0 = V_MUL_HI_U32_U24_e32 3, undef $vgpr0, implicit $exec 1738 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1739 ; GCN-NEXT: S_ENDPGM 0 1740 %1:vgpr_32 = V_MUL_HI_U32_U24_e32 1, undef %0:vgpr_32, implicit $exec 1741 %2:vgpr_32 = V_MUL_HI_U32_U24_e32 2, undef %0:vgpr_32, implicit $exec 1742 %3:vgpr_32 = V_MUL_HI_U32_U24_e32 3, undef %0:vgpr_32, implicit $exec 1743 S_NOP 0, implicit %1 1744 S_NOP 0, implicit %2 1745 S_NOP 0, implicit %3 1746 S_ENDPGM 0 1747... 1748--- 1749name: test_remat_v_min_f32_e32 1750tracksRegLiveness: true 1751body: | 1752 bb.0: 1753 ; GCN-LABEL: name: test_remat_v_min_f32_e32 1754 ; GCN: renamable $vgpr0 = nofpexcept V_MIN_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1755 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1756 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1757 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1758 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MIN_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1759 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1760 ; GCN-NEXT: S_ENDPGM 0 1761 %1:vgpr_32 = nofpexcept V_MIN_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1762 %2:vgpr_32 = nofpexcept V_MIN_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1763 %3:vgpr_32 = nofpexcept V_MIN_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1764 S_NOP 0, implicit %1 1765 S_NOP 0, implicit %2 1766 S_NOP 0, implicit %3 1767 S_ENDPGM 0 1768... 1769--- 1770name: test_remat_v_max_f32_e32 1771tracksRegLiveness: true 1772body: | 1773 bb.0: 1774 ; GCN-LABEL: name: test_remat_v_max_f32_e32 1775 ; GCN: renamable $vgpr0 = nofpexcept V_MAX_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 1776 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 1777 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1778 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1779 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MAX_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 1780 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1781 ; GCN-NEXT: S_ENDPGM 0 1782 %1:vgpr_32 = nofpexcept V_MAX_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 1783 %2:vgpr_32 = nofpexcept V_MAX_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 1784 %3:vgpr_32 = nofpexcept V_MAX_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 1785 S_NOP 0, implicit %1 1786 S_NOP 0, implicit %2 1787 S_NOP 0, implicit %3 1788 S_ENDPGM 0 1789... 1790--- 1791name: test_remat_v_min_i32_e32 1792tracksRegLiveness: true 1793body: | 1794 bb.0: 1795 ; GCN-LABEL: name: test_remat_v_min_i32_e32 1796 ; GCN: renamable $vgpr0 = V_MIN_I32_e32 1, undef $vgpr0, implicit $exec 1797 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I32_e32 2, undef $vgpr0, implicit $exec 1798 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1799 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1800 ; GCN-NEXT: renamable $vgpr0 = V_MIN_I32_e32 3, undef $vgpr0, implicit $exec 1801 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1802 ; GCN-NEXT: S_ENDPGM 0 1803 %1:vgpr_32 = V_MIN_I32_e32 1, undef %0:vgpr_32, implicit $exec 1804 %2:vgpr_32 = V_MIN_I32_e32 2, undef %0:vgpr_32, implicit $exec 1805 %3:vgpr_32 = V_MIN_I32_e32 3, undef %0:vgpr_32, implicit $exec 1806 S_NOP 0, implicit %1 1807 S_NOP 0, implicit %2 1808 S_NOP 0, implicit %3 1809 S_ENDPGM 0 1810... 1811--- 1812name: test_remat_v_max_i32_e32 1813tracksRegLiveness: true 1814body: | 1815 bb.0: 1816 ; GCN-LABEL: name: test_remat_v_max_i32_e32 1817 ; GCN: renamable $vgpr0 = V_MAX_I32_e32 1, undef $vgpr0, implicit $exec 1818 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I32_e32 2, undef $vgpr0, implicit $exec 1819 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1820 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1821 ; GCN-NEXT: renamable $vgpr0 = V_MAX_I32_e32 3, undef $vgpr0, implicit $exec 1822 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1823 ; GCN-NEXT: S_ENDPGM 0 1824 %1:vgpr_32 = V_MAX_I32_e32 1, undef %0:vgpr_32, implicit $exec 1825 %2:vgpr_32 = V_MAX_I32_e32 2, undef %0:vgpr_32, implicit $exec 1826 %3:vgpr_32 = V_MAX_I32_e32 3, undef %0:vgpr_32, implicit $exec 1827 S_NOP 0, implicit %1 1828 S_NOP 0, implicit %2 1829 S_NOP 0, implicit %3 1830 S_ENDPGM 0 1831... 1832--- 1833name: test_remat_v_min_u32_e32 1834tracksRegLiveness: true 1835body: | 1836 bb.0: 1837 ; GCN-LABEL: name: test_remat_v_min_u32_e32 1838 ; GCN: renamable $vgpr0 = V_MIN_U32_e32 1, undef $vgpr0, implicit $exec 1839 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U32_e32 2, undef $vgpr0, implicit $exec 1840 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1841 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1842 ; GCN-NEXT: renamable $vgpr0 = V_MIN_U32_e32 3, undef $vgpr0, implicit $exec 1843 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1844 ; GCN-NEXT: S_ENDPGM 0 1845 %1:vgpr_32 = V_MIN_U32_e32 1, undef %0:vgpr_32, implicit $exec 1846 %2:vgpr_32 = V_MIN_U32_e32 2, undef %0:vgpr_32, implicit $exec 1847 %3:vgpr_32 = V_MIN_U32_e32 3, undef %0:vgpr_32, implicit $exec 1848 S_NOP 0, implicit %1 1849 S_NOP 0, implicit %2 1850 S_NOP 0, implicit %3 1851 S_ENDPGM 0 1852... 1853--- 1854name: test_remat_v_max_u32_e32 1855tracksRegLiveness: true 1856body: | 1857 bb.0: 1858 ; GCN-LABEL: name: test_remat_v_max_u32_e32 1859 ; GCN: renamable $vgpr0 = V_MAX_U32_e32 1, undef $vgpr0, implicit $exec 1860 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U32_e32 2, undef $vgpr0, implicit $exec 1861 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1862 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1863 ; GCN-NEXT: renamable $vgpr0 = V_MAX_U32_e32 3, undef $vgpr0, implicit $exec 1864 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1865 ; GCN-NEXT: S_ENDPGM 0 1866 %1:vgpr_32 = V_MAX_U32_e32 1, undef %0:vgpr_32, implicit $exec 1867 %2:vgpr_32 = V_MAX_U32_e32 2, undef %0:vgpr_32, implicit $exec 1868 %3:vgpr_32 = V_MAX_U32_e32 3, undef %0:vgpr_32, implicit $exec 1869 S_NOP 0, implicit %1 1870 S_NOP 0, implicit %2 1871 S_NOP 0, implicit %3 1872 S_ENDPGM 0 1873... 1874--- 1875name: test_remat_v_lshrrev_b32_e32 1876tracksRegLiveness: true 1877body: | 1878 bb.0: 1879 ; GCN-LABEL: name: test_remat_v_lshrrev_b32_e32 1880 ; GCN: renamable $vgpr0 = V_LSHRREV_B32_e32 1, undef $vgpr0, implicit $exec 1881 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B32_e32 2, undef $vgpr0, implicit $exec 1882 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1883 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1884 ; GCN-NEXT: renamable $vgpr0 = V_LSHRREV_B32_e32 3, undef $vgpr0, implicit $exec 1885 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1886 ; GCN-NEXT: S_ENDPGM 0 1887 %1:vgpr_32 = V_LSHRREV_B32_e32 1, undef %0:vgpr_32, implicit $exec 1888 %2:vgpr_32 = V_LSHRREV_B32_e32 2, undef %0:vgpr_32, implicit $exec 1889 %3:vgpr_32 = V_LSHRREV_B32_e32 3, undef %0:vgpr_32, implicit $exec 1890 S_NOP 0, implicit %1 1891 S_NOP 0, implicit %2 1892 S_NOP 0, implicit %3 1893 S_ENDPGM 0 1894... 1895--- 1896name: test_remat_v_lshlrev_b32_e32 1897tracksRegLiveness: true 1898body: | 1899 bb.0: 1900 ; GCN-LABEL: name: test_remat_v_lshlrev_b32_e32 1901 ; GCN: renamable $vgpr0 = V_LSHLREV_B32_e32 1, undef $vgpr0, implicit $exec 1902 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B32_e32 2, undef $vgpr0, implicit $exec 1903 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1904 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1905 ; GCN-NEXT: renamable $vgpr0 = V_LSHLREV_B32_e32 3, undef $vgpr0, implicit $exec 1906 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1907 ; GCN-NEXT: S_ENDPGM 0 1908 %1:vgpr_32 = V_LSHLREV_B32_e32 1, undef %0:vgpr_32, implicit $exec 1909 %2:vgpr_32 = V_LSHLREV_B32_e32 2, undef %0:vgpr_32, implicit $exec 1910 %3:vgpr_32 = V_LSHLREV_B32_e32 3, undef %0:vgpr_32, implicit $exec 1911 S_NOP 0, implicit %1 1912 S_NOP 0, implicit %2 1913 S_NOP 0, implicit %3 1914 S_ENDPGM 0 1915... 1916--- 1917name: test_remat_v_ashrrev_i32_e32 1918tracksRegLiveness: true 1919body: | 1920 bb.0: 1921 ; GCN-LABEL: name: test_remat_v_ashrrev_i32_e32 1922 ; GCN: renamable $vgpr0 = V_ASHRREV_I32_e32 1, undef $vgpr0, implicit $exec 1923 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I32_e32 2, undef $vgpr0, implicit $exec 1924 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1925 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1926 ; GCN-NEXT: renamable $vgpr0 = V_ASHRREV_I32_e32 3, undef $vgpr0, implicit $exec 1927 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1928 ; GCN-NEXT: S_ENDPGM 0 1929 %1:vgpr_32 = V_ASHRREV_I32_e32 1, undef %0:vgpr_32, implicit $exec 1930 %2:vgpr_32 = V_ASHRREV_I32_e32 2, undef %0:vgpr_32, implicit $exec 1931 %3:vgpr_32 = V_ASHRREV_I32_e32 3, undef %0:vgpr_32, implicit $exec 1932 S_NOP 0, implicit %1 1933 S_NOP 0, implicit %2 1934 S_NOP 0, implicit %3 1935 S_ENDPGM 0 1936... 1937--- 1938name: test_remat_v_and_b32_e32 1939tracksRegLiveness: true 1940body: | 1941 bb.0: 1942 ; GCN-LABEL: name: test_remat_v_and_b32_e32 1943 ; GCN: renamable $vgpr0 = V_AND_B32_e32 1, undef $vgpr0, implicit $exec 1944 ; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2, undef $vgpr0, implicit $exec 1945 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1946 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1947 ; GCN-NEXT: renamable $vgpr0 = V_AND_B32_e32 3, undef $vgpr0, implicit $exec 1948 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1949 ; GCN-NEXT: S_ENDPGM 0 1950 %1:vgpr_32 = V_AND_B32_e32 1, undef %0:vgpr_32, implicit $exec 1951 %2:vgpr_32 = V_AND_B32_e32 2, undef %0:vgpr_32, implicit $exec 1952 %3:vgpr_32 = V_AND_B32_e32 3, undef %0:vgpr_32, implicit $exec 1953 S_NOP 0, implicit %1 1954 S_NOP 0, implicit %2 1955 S_NOP 0, implicit %3 1956 S_ENDPGM 0 1957... 1958--- 1959name: test_remat_v_or_b32_e32 1960tracksRegLiveness: true 1961body: | 1962 bb.0: 1963 ; GCN-LABEL: name: test_remat_v_or_b32_e32 1964 ; GCN: renamable $vgpr0 = V_OR_B32_e32 1, undef $vgpr0, implicit $exec 1965 ; GCN-NEXT: renamable $vgpr1 = V_OR_B32_e32 2, undef $vgpr0, implicit $exec 1966 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1967 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1968 ; GCN-NEXT: renamable $vgpr0 = V_OR_B32_e32 3, undef $vgpr0, implicit $exec 1969 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1970 ; GCN-NEXT: S_ENDPGM 0 1971 %1:vgpr_32 = V_OR_B32_e32 1, undef %0:vgpr_32, implicit $exec 1972 %2:vgpr_32 = V_OR_B32_e32 2, undef %0:vgpr_32, implicit $exec 1973 %3:vgpr_32 = V_OR_B32_e32 3, undef %0:vgpr_32, implicit $exec 1974 S_NOP 0, implicit %1 1975 S_NOP 0, implicit %2 1976 S_NOP 0, implicit %3 1977 S_ENDPGM 0 1978... 1979--- 1980name: test_remat_v_xor_b32_e32 1981tracksRegLiveness: true 1982body: | 1983 bb.0: 1984 ; GCN-LABEL: name: test_remat_v_xor_b32_e32 1985 ; GCN: renamable $vgpr0 = V_XOR_B32_e32 1, undef $vgpr0, implicit $exec 1986 ; GCN-NEXT: renamable $vgpr1 = V_XOR_B32_e32 2, undef $vgpr0, implicit $exec 1987 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1988 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 1989 ; GCN-NEXT: renamable $vgpr0 = V_XOR_B32_e32 3, undef $vgpr0, implicit $exec 1990 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 1991 ; GCN-NEXT: S_ENDPGM 0 1992 %1:vgpr_32 = V_XOR_B32_e32 1, undef %0:vgpr_32, implicit $exec 1993 %2:vgpr_32 = V_XOR_B32_e32 2, undef %0:vgpr_32, implicit $exec 1994 %3:vgpr_32 = V_XOR_B32_e32 3, undef %0:vgpr_32, implicit $exec 1995 S_NOP 0, implicit %1 1996 S_NOP 0, implicit %2 1997 S_NOP 0, implicit %3 1998 S_ENDPGM 0 1999... 2000--- 2001name: test_remat_v_madak_f32 2002tracksRegLiveness: true 2003body: | 2004 bb.0: 2005 ; GCN-LABEL: name: test_remat_v_madak_f32 2006 ; GCN: renamable $vgpr0 = nofpexcept V_MADAK_F32 1, undef $vgpr0, 1, implicit $exec, implicit $mode 2007 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F32 2, undef $vgpr0, 2, implicit $exec, implicit $mode 2008 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2009 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2010 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MADAK_F32 3, undef $vgpr0, 3, implicit $exec, implicit $mode 2011 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2012 ; GCN-NEXT: S_ENDPGM 0 2013 %1:vgpr_32 = nofpexcept V_MADAK_F32 1, undef %0:vgpr_32, 1, implicit $exec, implicit $mode 2014 %2:vgpr_32 = nofpexcept V_MADAK_F32 2, undef %0:vgpr_32, 2, implicit $exec, implicit $mode 2015 %3:vgpr_32 = nofpexcept V_MADAK_F32 3, undef %0:vgpr_32, 3, implicit $exec, implicit $mode 2016 S_NOP 0, implicit %1 2017 S_NOP 0, implicit %2 2018 S_NOP 0, implicit %3 2019 S_ENDPGM 0 2020... 2021--- 2022name: test_remat_v_add_u32_e32 2023tracksRegLiveness: true 2024body: | 2025 bb.0: 2026 ; GCN-LABEL: name: test_remat_v_add_u32_e32 2027 ; GCN: renamable $vgpr0 = V_ADD_U32_e32 1, undef $vgpr0, implicit $exec 2028 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U32_e32 2, undef $vgpr0, implicit $exec 2029 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2030 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2031 ; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 3, undef $vgpr0, implicit $exec 2032 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2033 ; GCN-NEXT: S_ENDPGM 0 2034 %1:vgpr_32 = V_ADD_U32_e32 1, undef %0:vgpr_32, implicit $exec 2035 %2:vgpr_32 = V_ADD_U32_e32 2, undef %0:vgpr_32, implicit $exec 2036 %3:vgpr_32 = V_ADD_U32_e32 3, undef %0:vgpr_32, implicit $exec 2037 S_NOP 0, implicit %1 2038 S_NOP 0, implicit %2 2039 S_NOP 0, implicit %3 2040 S_ENDPGM 0 2041... 2042--- 2043name: test_remat_v_sub_u32_e32 2044tracksRegLiveness: true 2045body: | 2046 bb.0: 2047 ; GCN-LABEL: name: test_remat_v_sub_u32_e32 2048 ; GCN: renamable $vgpr0 = V_SUB_U32_e32 1, undef $vgpr0, implicit $exec 2049 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U32_e32 2, undef $vgpr0, implicit $exec 2050 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2051 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2052 ; GCN-NEXT: renamable $vgpr0 = V_SUB_U32_e32 3, undef $vgpr0, implicit $exec 2053 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2054 ; GCN-NEXT: S_ENDPGM 0 2055 %1:vgpr_32 = V_SUB_U32_e32 1, undef %0:vgpr_32, implicit $exec 2056 %2:vgpr_32 = V_SUB_U32_e32 2, undef %0:vgpr_32, implicit $exec 2057 %3:vgpr_32 = V_SUB_U32_e32 3, undef %0:vgpr_32, implicit $exec 2058 S_NOP 0, implicit %1 2059 S_NOP 0, implicit %2 2060 S_NOP 0, implicit %3 2061 S_ENDPGM 0 2062... 2063--- 2064name: test_remat_v_subrev_u32_e32 2065tracksRegLiveness: true 2066body: | 2067 bb.0: 2068 ; GCN-LABEL: name: test_remat_v_subrev_u32_e32 2069 ; GCN: renamable $vgpr0 = V_SUBREV_U32_e32 1, undef $vgpr0, implicit $exec 2070 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U32_e32 2, undef $vgpr0, implicit $exec 2071 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2072 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2073 ; GCN-NEXT: renamable $vgpr0 = V_SUBREV_U32_e32 3, undef $vgpr0, implicit $exec 2074 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2075 ; GCN-NEXT: S_ENDPGM 0 2076 %1:vgpr_32 = V_SUBREV_U32_e32 1, undef %0:vgpr_32, implicit $exec 2077 %2:vgpr_32 = V_SUBREV_U32_e32 2, undef %0:vgpr_32, implicit $exec 2078 %3:vgpr_32 = V_SUBREV_U32_e32 3, undef %0:vgpr_32, implicit $exec 2079 S_NOP 0, implicit %1 2080 S_NOP 0, implicit %2 2081 S_NOP 0, implicit %3 2082 S_ENDPGM 0 2083... 2084--- 2085name: test_remat_v_bfm_b32_e32 2086tracksRegLiveness: true 2087body: | 2088 bb.0: 2089 ; GCN-LABEL: name: test_remat_v_bfm_b32_e32 2090 ; GCN: renamable $vgpr0 = V_BFM_B32_e32 1, undef $vgpr0, implicit $exec 2091 ; GCN-NEXT: renamable $vgpr1 = V_BFM_B32_e32 2, undef $vgpr0, implicit $exec 2092 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2093 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2094 ; GCN-NEXT: renamable $vgpr0 = V_BFM_B32_e32 3, undef $vgpr0, implicit $exec 2095 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2096 ; GCN-NEXT: S_ENDPGM 0 2097 %1:vgpr_32 = V_BFM_B32_e32 1, undef %0:vgpr_32, implicit $exec 2098 %2:vgpr_32 = V_BFM_B32_e32 2, undef %0:vgpr_32, implicit $exec 2099 %3:vgpr_32 = V_BFM_B32_e32 3, undef %0:vgpr_32, implicit $exec 2100 S_NOP 0, implicit %1 2101 S_NOP 0, implicit %2 2102 S_NOP 0, implicit %3 2103 S_ENDPGM 0 2104... 2105--- 2106name: test_remat_v_bcnt_u32_b32_e32 2107tracksRegLiveness: true 2108body: | 2109 bb.0: 2110 ; GCN-LABEL: name: test_remat_v_bcnt_u32_b32_e32 2111 ; GCN: renamable $vgpr0 = V_BCNT_U32_B32_e32 1, undef $vgpr0, implicit $exec 2112 ; GCN-NEXT: renamable $vgpr1 = V_BCNT_U32_B32_e32 2, undef $vgpr0, implicit $exec 2113 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2114 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2115 ; GCN-NEXT: renamable $vgpr0 = V_BCNT_U32_B32_e32 3, undef $vgpr0, implicit $exec 2116 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2117 ; GCN-NEXT: S_ENDPGM 0 2118 %1:vgpr_32 = V_BCNT_U32_B32_e32 1, undef %0:vgpr_32, implicit $exec 2119 %2:vgpr_32 = V_BCNT_U32_B32_e32 2, undef %0:vgpr_32, implicit $exec 2120 %3:vgpr_32 = V_BCNT_U32_B32_e32 3, undef %0:vgpr_32, implicit $exec 2121 S_NOP 0, implicit %1 2122 S_NOP 0, implicit %2 2123 S_NOP 0, implicit %3 2124 S_ENDPGM 0 2125... 2126--- 2127name: test_remat_v_mbcnt_lo_u32_b32_e32 2128tracksRegLiveness: true 2129body: | 2130 bb.0: 2131 ; GCN-LABEL: name: test_remat_v_mbcnt_lo_u32_b32_e32 2132 ; GCN: renamable $vgpr0 = V_MBCNT_LO_U32_B32_e32 1, undef $vgpr0, implicit $exec 2133 ; GCN-NEXT: renamable $vgpr1 = V_MBCNT_LO_U32_B32_e32 2, undef $vgpr0, implicit $exec 2134 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2135 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2136 ; GCN-NEXT: renamable $vgpr0 = V_MBCNT_LO_U32_B32_e32 3, undef $vgpr0, implicit $exec 2137 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2138 ; GCN-NEXT: S_ENDPGM 0 2139 %1:vgpr_32 = V_MBCNT_LO_U32_B32_e32 1, undef %0:vgpr_32, implicit $exec 2140 %2:vgpr_32 = V_MBCNT_LO_U32_B32_e32 2, undef %0:vgpr_32, implicit $exec 2141 %3:vgpr_32 = V_MBCNT_LO_U32_B32_e32 3, undef %0:vgpr_32, implicit $exec 2142 S_NOP 0, implicit %1 2143 S_NOP 0, implicit %2 2144 S_NOP 0, implicit %3 2145 S_ENDPGM 0 2146... 2147--- 2148name: test_remat_v_mbcnt_hi_u32_b32_e32 2149tracksRegLiveness: true 2150body: | 2151 bb.0: 2152 ; GCN-LABEL: name: test_remat_v_mbcnt_hi_u32_b32_e32 2153 ; GCN: renamable $vgpr0 = V_MBCNT_HI_U32_B32_e32 1, undef $vgpr0, implicit $exec 2154 ; GCN-NEXT: renamable $vgpr1 = V_MBCNT_HI_U32_B32_e32 2, undef $vgpr0, implicit $exec 2155 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2156 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2157 ; GCN-NEXT: renamable $vgpr0 = V_MBCNT_HI_U32_B32_e32 3, undef $vgpr0, implicit $exec 2158 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2159 ; GCN-NEXT: S_ENDPGM 0 2160 %1:vgpr_32 = V_MBCNT_HI_U32_B32_e32 1, undef %0:vgpr_32, implicit $exec 2161 %2:vgpr_32 = V_MBCNT_HI_U32_B32_e32 2, undef %0:vgpr_32, implicit $exec 2162 %3:vgpr_32 = V_MBCNT_HI_U32_B32_e32 3, undef %0:vgpr_32, implicit $exec 2163 S_NOP 0, implicit %1 2164 S_NOP 0, implicit %2 2165 S_NOP 0, implicit %3 2166 S_ENDPGM 0 2167... 2168--- 2169name: test_remat_v_ldexp_f32_e32 2170tracksRegLiveness: true 2171body: | 2172 bb.0: 2173 ; GCN-LABEL: name: test_remat_v_ldexp_f32_e32 2174 ; GCN: renamable $vgpr0 = nofpexcept V_LDEXP_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 2175 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 2176 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2177 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2178 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_LDEXP_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 2179 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2180 ; GCN-NEXT: S_ENDPGM 0 2181 %1:vgpr_32 = nofpexcept V_LDEXP_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 2182 %2:vgpr_32 = nofpexcept V_LDEXP_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 2183 %3:vgpr_32 = nofpexcept V_LDEXP_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 2184 S_NOP 0, implicit %1 2185 S_NOP 0, implicit %2 2186 S_NOP 0, implicit %3 2187 S_ENDPGM 0 2188... 2189--- 2190name: test_remat_v_cvt_pknorm_i16_f32_e32 2191tracksRegLiveness: true 2192body: | 2193 bb.0: 2194 ; GCN-LABEL: name: test_remat_v_cvt_pknorm_i16_f32_e32 2195 ; GCN: renamable $vgpr0 = V_CVT_PKNORM_I16_F32_e32 1, undef $vgpr0, implicit $exec 2196 ; GCN-NEXT: renamable $vgpr1 = V_CVT_PKNORM_I16_F32_e32 2, undef $vgpr0, implicit $exec 2197 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2198 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2199 ; GCN-NEXT: renamable $vgpr0 = V_CVT_PKNORM_I16_F32_e32 3, undef $vgpr0, implicit $exec 2200 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2201 ; GCN-NEXT: S_ENDPGM 0 2202 %1:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 1, undef %0:vgpr_32, implicit $exec 2203 %2:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 2, undef %0:vgpr_32, implicit $exec 2204 %3:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 3, undef %0:vgpr_32, implicit $exec 2205 S_NOP 0, implicit %1 2206 S_NOP 0, implicit %2 2207 S_NOP 0, implicit %3 2208 S_ENDPGM 0 2209... 2210--- 2211name: test_remat_v_cvt_pknorm_u16_f32_e32 2212tracksRegLiveness: true 2213body: | 2214 bb.0: 2215 ; GCN-LABEL: name: test_remat_v_cvt_pknorm_u16_f32_e32 2216 ; GCN: renamable $vgpr0 = V_CVT_PKNORM_U16_F32_e32 1, undef $vgpr0, implicit $exec 2217 ; GCN-NEXT: renamable $vgpr1 = V_CVT_PKNORM_U16_F32_e32 2, undef $vgpr0, implicit $exec 2218 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2219 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2220 ; GCN-NEXT: renamable $vgpr0 = V_CVT_PKNORM_U16_F32_e32 3, undef $vgpr0, implicit $exec 2221 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2222 ; GCN-NEXT: S_ENDPGM 0 2223 %1:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 1, undef %0:vgpr_32, implicit $exec 2224 %2:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 2, undef %0:vgpr_32, implicit $exec 2225 %3:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 3, undef %0:vgpr_32, implicit $exec 2226 S_NOP 0, implicit %1 2227 S_NOP 0, implicit %2 2228 S_NOP 0, implicit %3 2229 S_ENDPGM 0 2230... 2231--- 2232name: test_remat_v_cvt_pkrtz_f16_f32_e32 2233tracksRegLiveness: true 2234body: | 2235 bb.0: 2236 ; GCN-LABEL: name: test_remat_v_cvt_pkrtz_f16_f32_e32 2237 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 2238 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 2239 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2240 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2241 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 2242 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2243 ; GCN-NEXT: S_ENDPGM 0 2244 %1:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 2245 %2:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 2246 %3:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 2247 S_NOP 0, implicit %1 2248 S_NOP 0, implicit %2 2249 S_NOP 0, implicit %3 2250 S_ENDPGM 0 2251... 2252--- 2253name: test_remat_v_cvt_pk_u16_u32_e32 2254tracksRegLiveness: true 2255body: | 2256 bb.0: 2257 ; GCN-LABEL: name: test_remat_v_cvt_pk_u16_u32_e32 2258 ; GCN: renamable $vgpr0 = V_CVT_PK_U16_U32_e32 1, undef $vgpr0, implicit $exec 2259 ; GCN-NEXT: renamable $vgpr1 = V_CVT_PK_U16_U32_e32 2, undef $vgpr0, implicit $exec 2260 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2261 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2262 ; GCN-NEXT: renamable $vgpr0 = V_CVT_PK_U16_U32_e32 3, undef $vgpr0, implicit $exec 2263 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2264 ; GCN-NEXT: S_ENDPGM 0 2265 %1:vgpr_32 = V_CVT_PK_U16_U32_e32 1, undef %0:vgpr_32, implicit $exec 2266 %2:vgpr_32 = V_CVT_PK_U16_U32_e32 2, undef %0:vgpr_32, implicit $exec 2267 %3:vgpr_32 = V_CVT_PK_U16_U32_e32 3, undef %0:vgpr_32, implicit $exec 2268 S_NOP 0, implicit %1 2269 S_NOP 0, implicit %2 2270 S_NOP 0, implicit %3 2271 S_ENDPGM 0 2272... 2273--- 2274name: test_remat_v_cvt_pk_i16_i32_e32 2275tracksRegLiveness: true 2276body: | 2277 bb.0: 2278 ; GCN-LABEL: name: test_remat_v_cvt_pk_i16_i32_e32 2279 ; GCN: renamable $vgpr0 = V_CVT_PK_I16_I32_e32 1, undef $vgpr0, implicit $exec 2280 ; GCN-NEXT: renamable $vgpr1 = V_CVT_PK_I16_I32_e32 2, undef $vgpr0, implicit $exec 2281 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2282 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2283 ; GCN-NEXT: renamable $vgpr0 = V_CVT_PK_I16_I32_e32 3, undef $vgpr0, implicit $exec 2284 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2285 ; GCN-NEXT: S_ENDPGM 0 2286 %1:vgpr_32 = V_CVT_PK_I16_I32_e32 1, undef %0:vgpr_32, implicit $exec 2287 %2:vgpr_32 = V_CVT_PK_I16_I32_e32 2, undef %0:vgpr_32, implicit $exec 2288 %3:vgpr_32 = V_CVT_PK_I16_I32_e32 3, undef %0:vgpr_32, implicit $exec 2289 S_NOP 0, implicit %1 2290 S_NOP 0, implicit %2 2291 S_NOP 0, implicit %3 2292 S_ENDPGM 0 2293... 2294--- 2295name: test_remat_v_min_legacy_f32_e32 2296tracksRegLiveness: true 2297body: | 2298 bb.0: 2299 ; GCN-LABEL: name: test_remat_v_min_legacy_f32_e32 2300 ; GCN: renamable $vgpr0 = nofpexcept V_MIN_LEGACY_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 2301 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_LEGACY_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 2302 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2303 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2304 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MIN_LEGACY_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 2305 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2306 ; GCN-NEXT: S_ENDPGM 0 2307 %1:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 2308 %2:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 2309 %3:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 2310 S_NOP 0, implicit %1 2311 S_NOP 0, implicit %2 2312 S_NOP 0, implicit %3 2313 S_ENDPGM 0 2314... 2315--- 2316name: test_remat_v_max_legacy_f32_e32 2317tracksRegLiveness: true 2318body: | 2319 bb.0: 2320 ; GCN-LABEL: name: test_remat_v_max_legacy_f32_e32 2321 ; GCN: renamable $vgpr0 = nofpexcept V_MAX_LEGACY_F32_e32 1, undef $vgpr0, implicit $exec, implicit $mode 2322 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_LEGACY_F32_e32 2, undef $vgpr0, implicit $exec, implicit $mode 2323 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2324 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2325 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MAX_LEGACY_F32_e32 3, undef $vgpr0, implicit $exec, implicit $mode 2326 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2327 ; GCN-NEXT: S_ENDPGM 0 2328 %1:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode 2329 %2:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode 2330 %3:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode 2331 S_NOP 0, implicit %1 2332 S_NOP 0, implicit %2 2333 S_NOP 0, implicit %3 2334 S_ENDPGM 0 2335... 2336--- 2337name: test_remat_v_lshr_b32_e32 2338tracksRegLiveness: true 2339body: | 2340 bb.0: 2341 ; GCN-LABEL: name: test_remat_v_lshr_b32_e32 2342 ; GCN: renamable $vgpr0 = V_LSHR_B32_e32 1, undef $vgpr0, implicit $exec 2343 ; GCN-NEXT: renamable $vgpr1 = V_LSHR_B32_e32 2, undef $vgpr0, implicit $exec 2344 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2345 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2346 ; GCN-NEXT: renamable $vgpr0 = V_LSHR_B32_e32 3, undef $vgpr0, implicit $exec 2347 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2348 ; GCN-NEXT: S_ENDPGM 0 2349 %1:vgpr_32 = V_LSHR_B32_e32 1, undef %0:vgpr_32, implicit $exec 2350 %2:vgpr_32 = V_LSHR_B32_e32 2, undef %0:vgpr_32, implicit $exec 2351 %3:vgpr_32 = V_LSHR_B32_e32 3, undef %0:vgpr_32, implicit $exec 2352 S_NOP 0, implicit %1 2353 S_NOP 0, implicit %2 2354 S_NOP 0, implicit %3 2355 S_ENDPGM 0 2356... 2357--- 2358name: test_remat_v_lshl_b32_e32 2359tracksRegLiveness: true 2360body: | 2361 bb.0: 2362 ; GCN-LABEL: name: test_remat_v_lshl_b32_e32 2363 ; GCN: renamable $vgpr0 = V_LSHL_B32_e32 1, undef $vgpr0, implicit $exec 2364 ; GCN-NEXT: renamable $vgpr1 = V_LSHL_B32_e32 2, undef $vgpr0, implicit $exec 2365 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2366 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2367 ; GCN-NEXT: renamable $vgpr0 = V_LSHL_B32_e32 3, undef $vgpr0, implicit $exec 2368 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2369 ; GCN-NEXT: S_ENDPGM 0 2370 %1:vgpr_32 = V_LSHL_B32_e32 1, undef %0:vgpr_32, implicit $exec 2371 %2:vgpr_32 = V_LSHL_B32_e32 2, undef %0:vgpr_32, implicit $exec 2372 %3:vgpr_32 = V_LSHL_B32_e32 3, undef %0:vgpr_32, implicit $exec 2373 S_NOP 0, implicit %1 2374 S_NOP 0, implicit %2 2375 S_NOP 0, implicit %3 2376 S_ENDPGM 0 2377... 2378--- 2379name: test_remat_v_ashr_i32_e32 2380tracksRegLiveness: true 2381body: | 2382 bb.0: 2383 ; GCN-LABEL: name: test_remat_v_ashr_i32_e32 2384 ; GCN: renamable $vgpr0 = V_ASHR_I32_e32 1, undef $vgpr0, implicit $exec 2385 ; GCN-NEXT: renamable $vgpr1 = V_ASHR_I32_e32 2, undef $vgpr0, implicit $exec 2386 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2387 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2388 ; GCN-NEXT: renamable $vgpr0 = V_ASHR_I32_e32 3, undef $vgpr0, implicit $exec 2389 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2390 ; GCN-NEXT: S_ENDPGM 0 2391 %1:vgpr_32 = V_ASHR_I32_e32 1, undef %0:vgpr_32, implicit $exec 2392 %2:vgpr_32 = V_ASHR_I32_e32 2, undef %0:vgpr_32, implicit $exec 2393 %3:vgpr_32 = V_ASHR_I32_e32 3, undef %0:vgpr_32, implicit $exec 2394 S_NOP 0, implicit %1 2395 S_NOP 0, implicit %2 2396 S_NOP 0, implicit %3 2397 S_ENDPGM 0 2398... 2399--- 2400name: test_remat_v_xnor_b32_e32 2401tracksRegLiveness: true 2402body: | 2403 bb.0: 2404 ; GCN-LABEL: name: test_remat_v_xnor_b32_e32 2405 ; GCN: renamable $vgpr0 = V_XNOR_B32_e32 1, undef $vgpr0, implicit $exec 2406 ; GCN-NEXT: renamable $vgpr1 = V_XNOR_B32_e32 2, undef $vgpr0, implicit $exec 2407 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2408 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2409 ; GCN-NEXT: renamable $vgpr0 = V_XNOR_B32_e32 3, undef $vgpr0, implicit $exec 2410 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2411 ; GCN-NEXT: S_ENDPGM 0 2412 %1:vgpr_32 = V_XNOR_B32_e32 1, undef %0:vgpr_32, implicit $exec 2413 %2:vgpr_32 = V_XNOR_B32_e32 2, undef %0:vgpr_32, implicit $exec 2414 %3:vgpr_32 = V_XNOR_B32_e32 3, undef %0:vgpr_32, implicit $exec 2415 S_NOP 0, implicit %1 2416 S_NOP 0, implicit %2 2417 S_NOP 0, implicit %3 2418 S_ENDPGM 0 2419... 2420--- 2421name: test_remat_v_fmamk_f32 2422tracksRegLiveness: true 2423body: | 2424 bb.0: 2425 ; GCN-LABEL: name: test_remat_v_fmamk_f32 2426 ; GCN: renamable $vgpr0 = nofpexcept V_FMAMK_F32 1, 1, undef $vgpr0, implicit $exec, implicit $mode 2427 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F32 2, 2, undef $vgpr0, implicit $exec, implicit $mode 2428 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2429 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2430 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FMAMK_F32 3, 3, undef $vgpr0, implicit $exec, implicit $mode 2431 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2432 ; GCN-NEXT: S_ENDPGM 0 2433 %1:vgpr_32 = nofpexcept V_FMAMK_F32 1, 1, undef %0:vgpr_32, implicit $exec, implicit $mode 2434 %2:vgpr_32 = nofpexcept V_FMAMK_F32 2, 2, undef %0:vgpr_32, implicit $exec, implicit $mode 2435 %3:vgpr_32 = nofpexcept V_FMAMK_F32 3, 3, undef %0:vgpr_32, implicit $exec, implicit $mode 2436 S_NOP 0, implicit %1 2437 S_NOP 0, implicit %2 2438 S_NOP 0, implicit %3 2439 S_ENDPGM 0 2440... 2441--- 2442name: test_remat_v_fmaak_f32 2443tracksRegLiveness: true 2444body: | 2445 bb.0: 2446 ; GCN-LABEL: name: test_remat_v_fmaak_f32 2447 ; GCN: renamable $vgpr0 = nofpexcept V_FMAAK_F32 1, undef $vgpr0, 1, implicit $exec, implicit $mode 2448 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAAK_F32 2, undef $vgpr0, 2, implicit $exec, implicit $mode 2449 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2450 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2451 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FMAAK_F32 3, undef $vgpr0, 3, implicit $exec, implicit $mode 2452 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2453 ; GCN-NEXT: S_ENDPGM 0 2454 %1:vgpr_32 = nofpexcept V_FMAAK_F32 1, undef %0:vgpr_32, 1, implicit $exec, implicit $mode 2455 %2:vgpr_32 = nofpexcept V_FMAAK_F32 2, undef %0:vgpr_32, 2, implicit $exec, implicit $mode 2456 %3:vgpr_32 = nofpexcept V_FMAAK_F32 3, undef %0:vgpr_32, 3, implicit $exec, implicit $mode 2457 S_NOP 0, implicit %1 2458 S_NOP 0, implicit %2 2459 S_NOP 0, implicit %3 2460 S_ENDPGM 0 2461... 2462--- 2463name: test_remat_v_mad_legacy_f32_e64 2464tracksRegLiveness: true 2465body: | 2466 bb.0: 2467 ; GCN-LABEL: name: test_remat_v_mad_legacy_f32_e64 2468 ; GCN: renamable $vgpr0 = nofpexcept V_MAD_LEGACY_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2469 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAD_LEGACY_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2470 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2471 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2472 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MAD_LEGACY_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2473 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2474 ; GCN-NEXT: S_ENDPGM 0 2475 %1:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2476 %2:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2477 %3:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2478 S_NOP 0, implicit %1 2479 S_NOP 0, implicit %2 2480 S_NOP 0, implicit %3 2481 S_ENDPGM 0 2482... 2483--- 2484name: test_remat_v_mad_f32_e64 2485tracksRegLiveness: true 2486body: | 2487 bb.0: 2488 ; GCN-LABEL: name: test_remat_v_mad_f32_e64 2489 ; GCN: renamable $vgpr0 = nofpexcept V_MAD_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2490 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAD_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2491 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2492 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2493 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_MAD_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2494 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2495 ; GCN-NEXT: S_ENDPGM 0 2496 %1:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2497 %2:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2498 %3:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2499 S_NOP 0, implicit %1 2500 S_NOP 0, implicit %2 2501 S_NOP 0, implicit %3 2502 S_ENDPGM 0 2503... 2504--- 2505name: test_remat_v_fma_legacy_f32_e64 2506tracksRegLiveness: true 2507body: | 2508 bb.0: 2509 ; GCN-LABEL: name: test_remat_v_fma_legacy_f32_e64 2510 ; GCN: renamable $vgpr0 = nofpexcept V_FMA_LEGACY_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2511 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMA_LEGACY_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2512 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2513 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2514 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FMA_LEGACY_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2515 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2516 ; GCN-NEXT: S_ENDPGM 0 2517 %1:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2518 %2:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2519 %3:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2520 S_NOP 0, implicit %1 2521 S_NOP 0, implicit %2 2522 S_NOP 0, implicit %3 2523 S_ENDPGM 0 2524... 2525--- 2526name: test_remat_v_fma_f32_e64 2527tracksRegLiveness: true 2528body: | 2529 bb.0: 2530 ; GCN-LABEL: name: test_remat_v_fma_f32_e64 2531 ; GCN: renamable $vgpr0 = nofpexcept V_FMA_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2532 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMA_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2533 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2534 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2535 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_FMA_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2536 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2537 ; GCN-NEXT: S_ENDPGM 0 2538 %1:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2539 %2:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2540 %3:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2541 S_NOP 0, implicit %1 2542 S_NOP 0, implicit %2 2543 S_NOP 0, implicit %3 2544 S_ENDPGM 0 2545... 2546--- 2547name: test_remat_v_mad_i32_i24_e64 2548tracksRegLiveness: true 2549body: | 2550 bb.0: 2551 ; GCN-LABEL: name: test_remat_v_mad_i32_i24_e64 2552 ; GCN: renamable $vgpr0 = V_MAD_I32_I24_e64 1, 1, undef $vgpr0, 0, implicit $exec 2553 ; GCN-NEXT: renamable $vgpr1 = V_MAD_I32_I24_e64 2, 2, undef $vgpr0, 0, implicit $exec 2554 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2555 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2556 ; GCN-NEXT: renamable $vgpr0 = V_MAD_I32_I24_e64 3, 3, undef $vgpr0, 0, implicit $exec 2557 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2558 ; GCN-NEXT: S_ENDPGM 0 2559 %1:vgpr_32 = V_MAD_I32_I24_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 2560 %2:vgpr_32 = V_MAD_I32_I24_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 2561 %3:vgpr_32 = V_MAD_I32_I24_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 2562 S_NOP 0, implicit %1 2563 S_NOP 0, implicit %2 2564 S_NOP 0, implicit %3 2565 S_ENDPGM 0 2566... 2567--- 2568name: test_remat_v_mad_u32_u24_e64 2569tracksRegLiveness: true 2570body: | 2571 bb.0: 2572 ; GCN-LABEL: name: test_remat_v_mad_u32_u24_e64 2573 ; GCN: renamable $vgpr0 = V_MAD_U32_U24_e64 1, 1, undef $vgpr0, 0, implicit $exec 2574 ; GCN-NEXT: renamable $vgpr1 = V_MAD_U32_U24_e64 2, 2, undef $vgpr0, 0, implicit $exec 2575 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2576 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2577 ; GCN-NEXT: renamable $vgpr0 = V_MAD_U32_U24_e64 3, 3, undef $vgpr0, 0, implicit $exec 2578 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2579 ; GCN-NEXT: S_ENDPGM 0 2580 %1:vgpr_32 = V_MAD_U32_U24_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 2581 %2:vgpr_32 = V_MAD_U32_U24_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 2582 %3:vgpr_32 = V_MAD_U32_U24_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 2583 S_NOP 0, implicit %1 2584 S_NOP 0, implicit %2 2585 S_NOP 0, implicit %3 2586 S_ENDPGM 0 2587... 2588--- 2589name: test_remat_v_lerp_u8_e64 2590tracksRegLiveness: true 2591body: | 2592 bb.0: 2593 ; GCN-LABEL: name: test_remat_v_lerp_u8_e64 2594 ; GCN: renamable $vgpr0 = V_LERP_U8_e64 1, 1, undef $vgpr0, implicit $exec 2595 ; GCN-NEXT: renamable $vgpr1 = V_LERP_U8_e64 2, 2, undef $vgpr0, implicit $exec 2596 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2597 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2598 ; GCN-NEXT: renamable $vgpr0 = V_LERP_U8_e64 3, 3, undef $vgpr0, implicit $exec 2599 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2600 ; GCN-NEXT: S_ENDPGM 0 2601 %1:vgpr_32 = V_LERP_U8_e64 1, 1, undef %0:vgpr_32, implicit $exec 2602 %2:vgpr_32 = V_LERP_U8_e64 2, 2, undef %0:vgpr_32, implicit $exec 2603 %3:vgpr_32 = V_LERP_U8_e64 3, 3, undef %0:vgpr_32, implicit $exec 2604 S_NOP 0, implicit %1 2605 S_NOP 0, implicit %2 2606 S_NOP 0, implicit %3 2607 S_ENDPGM 0 2608... 2609--- 2610name: test_remat_v_fma_f64_e64 2611tracksRegLiveness: true 2612body: | 2613 bb.0: 2614 ; GCN-LABEL: name: test_remat_v_fma_f64_e64 2615 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_FMA_F64_e64 0, 1, 0, 1, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2616 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_FMA_F64_e64 0, 2, 0, 2, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2617 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2618 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 2619 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_FMA_F64_e64 0, 3, 0, 3, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2620 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2621 ; GCN-NEXT: S_ENDPGM 0 2622 %1:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 1, 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2623 %2:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 2, 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2624 %3:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 3, 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2625 S_NOP 0, implicit %1 2626 S_NOP 0, implicit %2 2627 S_NOP 0, implicit %3 2628 S_ENDPGM 0 2629... 2630--- 2631name: test_remat_v_add_f64_e64 2632tracksRegLiveness: true 2633body: | 2634 bb.0: 2635 ; GCN-LABEL: name: test_remat_v_add_f64_e64 2636 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_ADD_F64_e64 0, 1, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2637 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_ADD_F64_e64 0, 2, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2638 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2639 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 2640 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_ADD_F64_e64 0, 3, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2641 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2642 ; GCN-NEXT: S_ENDPGM 0 2643 %1:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2644 %2:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2645 %3:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2646 S_NOP 0, implicit %1 2647 S_NOP 0, implicit %2 2648 S_NOP 0, implicit %3 2649 S_ENDPGM 0 2650... 2651--- 2652name: test_remat_v_mul_f64_e64 2653tracksRegLiveness: true 2654body: | 2655 bb.0: 2656 ; GCN-LABEL: name: test_remat_v_mul_f64_e64 2657 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_MUL_F64_e64 0, 1, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2658 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_MUL_F64_e64 0, 2, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2659 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2660 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 2661 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_MUL_F64_e64 0, 3, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2662 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2663 ; GCN-NEXT: S_ENDPGM 0 2664 %1:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2665 %2:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2666 %3:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2667 S_NOP 0, implicit %1 2668 S_NOP 0, implicit %2 2669 S_NOP 0, implicit %3 2670 S_ENDPGM 0 2671... 2672--- 2673name: test_remat_v_min_f64_e64 2674tracksRegLiveness: true 2675body: | 2676 bb.0: 2677 ; GCN-LABEL: name: test_remat_v_min_f64_e64 2678 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_MIN_F64_e64 0, 1, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2679 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_MIN_F64_e64 0, 2, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2680 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2681 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 2682 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_MIN_F64_e64 0, 3, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2683 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2684 ; GCN-NEXT: S_ENDPGM 0 2685 %1:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2686 %2:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2687 %3:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2688 S_NOP 0, implicit %1 2689 S_NOP 0, implicit %2 2690 S_NOP 0, implicit %3 2691 S_ENDPGM 0 2692... 2693--- 2694name: test_remat_v_max_f64_e64 2695tracksRegLiveness: true 2696body: | 2697 bb.0: 2698 ; GCN-LABEL: name: test_remat_v_max_f64_e64 2699 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_MAX_F64_e64 0, 1, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2700 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_MAX_F64_e64 0, 2, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2701 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2702 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 2703 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_MAX_F64_e64 0, 3, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 2704 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 2705 ; GCN-NEXT: S_ENDPGM 0 2706 %1:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2707 %2:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2708 %3:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 2709 S_NOP 0, implicit %1 2710 S_NOP 0, implicit %2 2711 S_NOP 0, implicit %3 2712 S_ENDPGM 0 2713... 2714--- 2715name: test_remat_v_mul_lo_u32_e64 2716tracksRegLiveness: true 2717body: | 2718 bb.0: 2719 ; GCN-LABEL: name: test_remat_v_mul_lo_u32_e64 2720 ; GCN: renamable $vgpr0 = V_MUL_LO_U32_e64 1, undef $vgpr0, implicit $exec 2721 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U32_e64 2, undef $vgpr0, implicit $exec 2722 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2723 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2724 ; GCN-NEXT: renamable $vgpr0 = V_MUL_LO_U32_e64 3, undef $vgpr0, implicit $exec 2725 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2726 ; GCN-NEXT: S_ENDPGM 0 2727 %1:vgpr_32 = V_MUL_LO_U32_e64 1, undef %0:vgpr_32, implicit $exec 2728 %2:vgpr_32 = V_MUL_LO_U32_e64 2, undef %0:vgpr_32, implicit $exec 2729 %3:vgpr_32 = V_MUL_LO_U32_e64 3, undef %0:vgpr_32, implicit $exec 2730 S_NOP 0, implicit %1 2731 S_NOP 0, implicit %2 2732 S_NOP 0, implicit %3 2733 S_ENDPGM 0 2734... 2735--- 2736name: test_remat_v_mul_hi_u32_e64 2737tracksRegLiveness: true 2738body: | 2739 bb.0: 2740 ; GCN-LABEL: name: test_remat_v_mul_hi_u32_e64 2741 ; GCN: renamable $vgpr0 = V_MUL_HI_U32_e64 1, undef $vgpr0, implicit $exec 2742 ; GCN-NEXT: renamable $vgpr1 = V_MUL_HI_U32_e64 2, undef $vgpr0, implicit $exec 2743 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2744 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2745 ; GCN-NEXT: renamable $vgpr0 = V_MUL_HI_U32_e64 3, undef $vgpr0, implicit $exec 2746 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2747 ; GCN-NEXT: S_ENDPGM 0 2748 %1:vgpr_32 = V_MUL_HI_U32_e64 1, undef %0:vgpr_32, implicit $exec 2749 %2:vgpr_32 = V_MUL_HI_U32_e64 2, undef %0:vgpr_32, implicit $exec 2750 %3:vgpr_32 = V_MUL_HI_U32_e64 3, undef %0:vgpr_32, implicit $exec 2751 S_NOP 0, implicit %1 2752 S_NOP 0, implicit %2 2753 S_NOP 0, implicit %3 2754 S_ENDPGM 0 2755... 2756--- 2757name: test_remat_v_mul_lo_i32_e64 2758tracksRegLiveness: true 2759body: | 2760 bb.0: 2761 ; GCN-LABEL: name: test_remat_v_mul_lo_i32_e64 2762 ; GCN: renamable $vgpr0 = V_MUL_LO_I32_e64 1, undef $vgpr0, implicit $exec 2763 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_I32_e64 2, undef $vgpr0, implicit $exec 2764 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2765 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2766 ; GCN-NEXT: renamable $vgpr0 = V_MUL_LO_I32_e64 3, undef $vgpr0, implicit $exec 2767 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2768 ; GCN-NEXT: S_ENDPGM 0 2769 %1:vgpr_32 = V_MUL_LO_I32_e64 1, undef %0:vgpr_32, implicit $exec 2770 %2:vgpr_32 = V_MUL_LO_I32_e64 2, undef %0:vgpr_32, implicit $exec 2771 %3:vgpr_32 = V_MUL_LO_I32_e64 3, undef %0:vgpr_32, implicit $exec 2772 S_NOP 0, implicit %1 2773 S_NOP 0, implicit %2 2774 S_NOP 0, implicit %3 2775 S_ENDPGM 0 2776... 2777--- 2778name: test_remat_v_mul_hi_i32_e64 2779tracksRegLiveness: true 2780body: | 2781 bb.0: 2782 ; GCN-LABEL: name: test_remat_v_mul_hi_i32_e64 2783 ; GCN: renamable $vgpr0 = V_MUL_HI_I32_e64 1, undef $vgpr0, implicit $exec 2784 ; GCN-NEXT: renamable $vgpr1 = V_MUL_HI_I32_e64 2, undef $vgpr0, implicit $exec 2785 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2786 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2787 ; GCN-NEXT: renamable $vgpr0 = V_MUL_HI_I32_e64 3, undef $vgpr0, implicit $exec 2788 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2789 ; GCN-NEXT: S_ENDPGM 0 2790 %1:vgpr_32 = V_MUL_HI_I32_e64 1, undef %0:vgpr_32, implicit $exec 2791 %2:vgpr_32 = V_MUL_HI_I32_e64 2, undef %0:vgpr_32, implicit $exec 2792 %3:vgpr_32 = V_MUL_HI_I32_e64 3, undef %0:vgpr_32, implicit $exec 2793 S_NOP 0, implicit %1 2794 S_NOP 0, implicit %2 2795 S_NOP 0, implicit %3 2796 S_ENDPGM 0 2797... 2798--- 2799name: test_remat_v_cubeid_f32_e64 2800tracksRegLiveness: true 2801body: | 2802 bb.0: 2803 ; GCN-LABEL: name: test_remat_v_cubeid_f32_e64 2804 ; GCN: renamable $vgpr0 = V_CUBEID_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2805 ; GCN-NEXT: renamable $vgpr1 = V_CUBEID_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2806 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2807 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2808 ; GCN-NEXT: renamable $vgpr0 = V_CUBEID_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2809 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2810 ; GCN-NEXT: S_ENDPGM 0 2811 %1:vgpr_32 = V_CUBEID_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2812 %2:vgpr_32 = V_CUBEID_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2813 %3:vgpr_32 = V_CUBEID_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2814 S_NOP 0, implicit %1 2815 S_NOP 0, implicit %2 2816 S_NOP 0, implicit %3 2817 S_ENDPGM 0 2818... 2819--- 2820name: test_remat_v_cubesc_f32_e64 2821tracksRegLiveness: true 2822body: | 2823 bb.0: 2824 ; GCN-LABEL: name: test_remat_v_cubesc_f32_e64 2825 ; GCN: renamable $vgpr0 = V_CUBESC_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2826 ; GCN-NEXT: renamable $vgpr1 = V_CUBESC_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2827 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2828 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2829 ; GCN-NEXT: renamable $vgpr0 = V_CUBESC_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2830 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2831 ; GCN-NEXT: S_ENDPGM 0 2832 %1:vgpr_32 = V_CUBESC_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2833 %2:vgpr_32 = V_CUBESC_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2834 %3:vgpr_32 = V_CUBESC_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2835 S_NOP 0, implicit %1 2836 S_NOP 0, implicit %2 2837 S_NOP 0, implicit %3 2838 S_ENDPGM 0 2839... 2840--- 2841name: test_remat_v_cubetc_f32_e64 2842tracksRegLiveness: true 2843body: | 2844 bb.0: 2845 ; GCN-LABEL: name: test_remat_v_cubetc_f32_e64 2846 ; GCN: renamable $vgpr0 = V_CUBETC_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2847 ; GCN-NEXT: renamable $vgpr1 = V_CUBETC_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2848 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2849 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2850 ; GCN-NEXT: renamable $vgpr0 = V_CUBETC_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2851 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2852 ; GCN-NEXT: S_ENDPGM 0 2853 %1:vgpr_32 = V_CUBETC_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2854 %2:vgpr_32 = V_CUBETC_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2855 %3:vgpr_32 = V_CUBETC_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2856 S_NOP 0, implicit %1 2857 S_NOP 0, implicit %2 2858 S_NOP 0, implicit %3 2859 S_ENDPGM 0 2860... 2861--- 2862name: test_remat_v_cubema_f32_e64 2863tracksRegLiveness: true 2864body: | 2865 bb.0: 2866 ; GCN-LABEL: name: test_remat_v_cubema_f32_e64 2867 ; GCN: renamable $vgpr0 = V_CUBEMA_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2868 ; GCN-NEXT: renamable $vgpr1 = V_CUBEMA_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2869 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2870 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2871 ; GCN-NEXT: renamable $vgpr0 = V_CUBEMA_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 2872 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2873 ; GCN-NEXT: S_ENDPGM 0 2874 %1:vgpr_32 = V_CUBEMA_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2875 %2:vgpr_32 = V_CUBEMA_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2876 %3:vgpr_32 = V_CUBEMA_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 2877 S_NOP 0, implicit %1 2878 S_NOP 0, implicit %2 2879 S_NOP 0, implicit %3 2880 S_ENDPGM 0 2881... 2882--- 2883name: test_remat_v_bfe_u32_e64 2884tracksRegLiveness: true 2885body: | 2886 bb.0: 2887 ; GCN-LABEL: name: test_remat_v_bfe_u32_e64 2888 ; GCN: renamable $vgpr0 = V_BFE_U32_e64 1, 1, undef $vgpr0, implicit $exec 2889 ; GCN-NEXT: renamable $vgpr1 = V_BFE_U32_e64 2, 2, undef $vgpr0, implicit $exec 2890 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2891 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2892 ; GCN-NEXT: renamable $vgpr0 = V_BFE_U32_e64 3, 3, undef $vgpr0, implicit $exec 2893 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2894 ; GCN-NEXT: S_ENDPGM 0 2895 %1:vgpr_32 = V_BFE_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 2896 %2:vgpr_32 = V_BFE_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 2897 %3:vgpr_32 = V_BFE_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 2898 S_NOP 0, implicit %1 2899 S_NOP 0, implicit %2 2900 S_NOP 0, implicit %3 2901 S_ENDPGM 0 2902... 2903--- 2904name: test_remat_v_bfe_i32_e64 2905tracksRegLiveness: true 2906body: | 2907 bb.0: 2908 ; GCN-LABEL: name: test_remat_v_bfe_i32_e64 2909 ; GCN: renamable $vgpr0 = V_BFE_I32_e64 1, 1, undef $vgpr0, implicit $exec 2910 ; GCN-NEXT: renamable $vgpr1 = V_BFE_I32_e64 2, 2, undef $vgpr0, implicit $exec 2911 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2912 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2913 ; GCN-NEXT: renamable $vgpr0 = V_BFE_I32_e64 3, 3, undef $vgpr0, implicit $exec 2914 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2915 ; GCN-NEXT: S_ENDPGM 0 2916 %1:vgpr_32 = V_BFE_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec 2917 %2:vgpr_32 = V_BFE_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec 2918 %3:vgpr_32 = V_BFE_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec 2919 S_NOP 0, implicit %1 2920 S_NOP 0, implicit %2 2921 S_NOP 0, implicit %3 2922 S_ENDPGM 0 2923... 2924--- 2925name: test_remat_v_bfi_b32_e64 2926tracksRegLiveness: true 2927body: | 2928 bb.0: 2929 ; GCN-LABEL: name: test_remat_v_bfi_b32_e64 2930 ; GCN: renamable $vgpr0 = V_BFI_B32_e64 1, 1, undef $vgpr0, implicit $exec 2931 ; GCN-NEXT: renamable $vgpr1 = V_BFI_B32_e64 2, 2, undef $vgpr0, implicit $exec 2932 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2933 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2934 ; GCN-NEXT: renamable $vgpr0 = V_BFI_B32_e64 3, 3, undef $vgpr0, implicit $exec 2935 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2936 ; GCN-NEXT: S_ENDPGM 0 2937 %1:vgpr_32 = V_BFI_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 2938 %2:vgpr_32 = V_BFI_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 2939 %3:vgpr_32 = V_BFI_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 2940 S_NOP 0, implicit %1 2941 S_NOP 0, implicit %2 2942 S_NOP 0, implicit %3 2943 S_ENDPGM 0 2944... 2945--- 2946name: test_remat_v_alignbit_b32_e64 2947tracksRegLiveness: true 2948body: | 2949 bb.0: 2950 ; GCN-LABEL: name: test_remat_v_alignbit_b32_e64 2951 ; GCN: renamable $vgpr0 = V_ALIGNBIT_B32_e64 1, 1, undef $vgpr0, implicit $exec 2952 ; GCN-NEXT: renamable $vgpr1 = V_ALIGNBIT_B32_e64 2, 2, undef $vgpr0, implicit $exec 2953 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2954 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2955 ; GCN-NEXT: renamable $vgpr0 = V_ALIGNBIT_B32_e64 3, 3, undef $vgpr0, implicit $exec 2956 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2957 ; GCN-NEXT: S_ENDPGM 0 2958 %1:vgpr_32 = V_ALIGNBIT_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 2959 %2:vgpr_32 = V_ALIGNBIT_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 2960 %3:vgpr_32 = V_ALIGNBIT_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 2961 S_NOP 0, implicit %1 2962 S_NOP 0, implicit %2 2963 S_NOP 0, implicit %3 2964 S_ENDPGM 0 2965... 2966--- 2967name: test_remat_v_alignbyte_b32_e64 2968tracksRegLiveness: true 2969body: | 2970 bb.0: 2971 ; GCN-LABEL: name: test_remat_v_alignbyte_b32_e64 2972 ; GCN: renamable $vgpr0 = V_ALIGNBYTE_B32_e64 1, 1, undef $vgpr0, implicit $exec 2973 ; GCN-NEXT: renamable $vgpr1 = V_ALIGNBYTE_B32_e64 2, 2, undef $vgpr0, implicit $exec 2974 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2975 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2976 ; GCN-NEXT: renamable $vgpr0 = V_ALIGNBYTE_B32_e64 3, 3, undef $vgpr0, implicit $exec 2977 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2978 ; GCN-NEXT: S_ENDPGM 0 2979 %1:vgpr_32 = V_ALIGNBYTE_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 2980 %2:vgpr_32 = V_ALIGNBYTE_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 2981 %3:vgpr_32 = V_ALIGNBYTE_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 2982 S_NOP 0, implicit %1 2983 S_NOP 0, implicit %2 2984 S_NOP 0, implicit %3 2985 S_ENDPGM 0 2986... 2987--- 2988name: test_remat_v_min3_i32_e64 2989tracksRegLiveness: true 2990body: | 2991 bb.0: 2992 ; GCN-LABEL: name: test_remat_v_min3_i32_e64 2993 ; GCN: renamable $vgpr0 = V_MIN3_I32_e64 1, 1, undef $vgpr0, implicit $exec 2994 ; GCN-NEXT: renamable $vgpr1 = V_MIN3_I32_e64 2, 2, undef $vgpr0, implicit $exec 2995 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2996 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 2997 ; GCN-NEXT: renamable $vgpr0 = V_MIN3_I32_e64 3, 3, undef $vgpr0, implicit $exec 2998 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 2999 ; GCN-NEXT: S_ENDPGM 0 3000 %1:vgpr_32 = V_MIN3_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3001 %2:vgpr_32 = V_MIN3_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3002 %3:vgpr_32 = V_MIN3_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3003 S_NOP 0, implicit %1 3004 S_NOP 0, implicit %2 3005 S_NOP 0, implicit %3 3006 S_ENDPGM 0 3007... 3008--- 3009name: test_remat_v_min3_u32_e64 3010tracksRegLiveness: true 3011body: | 3012 bb.0: 3013 ; GCN-LABEL: name: test_remat_v_min3_u32_e64 3014 ; GCN: renamable $vgpr0 = V_MIN3_U32_e64 1, 1, undef $vgpr0, implicit $exec 3015 ; GCN-NEXT: renamable $vgpr1 = V_MIN3_U32_e64 2, 2, undef $vgpr0, implicit $exec 3016 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3017 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3018 ; GCN-NEXT: renamable $vgpr0 = V_MIN3_U32_e64 3, 3, undef $vgpr0, implicit $exec 3019 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3020 ; GCN-NEXT: S_ENDPGM 0 3021 %1:vgpr_32 = V_MIN3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3022 %2:vgpr_32 = V_MIN3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3023 %3:vgpr_32 = V_MIN3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3024 S_NOP 0, implicit %1 3025 S_NOP 0, implicit %2 3026 S_NOP 0, implicit %3 3027 S_ENDPGM 0 3028... 3029--- 3030name: test_remat_v_max3_i32_e64 3031tracksRegLiveness: true 3032body: | 3033 bb.0: 3034 ; GCN-LABEL: name: test_remat_v_max3_i32_e64 3035 ; GCN: renamable $vgpr0 = V_MAX3_I32_e64 1, 1, undef $vgpr0, implicit $exec 3036 ; GCN-NEXT: renamable $vgpr1 = V_MAX3_I32_e64 2, 2, undef $vgpr0, implicit $exec 3037 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3038 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3039 ; GCN-NEXT: renamable $vgpr0 = V_MAX3_I32_e64 3, 3, undef $vgpr0, implicit $exec 3040 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3041 ; GCN-NEXT: S_ENDPGM 0 3042 %1:vgpr_32 = V_MAX3_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3043 %2:vgpr_32 = V_MAX3_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3044 %3:vgpr_32 = V_MAX3_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3045 S_NOP 0, implicit %1 3046 S_NOP 0, implicit %2 3047 S_NOP 0, implicit %3 3048 S_ENDPGM 0 3049... 3050--- 3051name: test_remat_v_max3_u32_e64 3052tracksRegLiveness: true 3053body: | 3054 bb.0: 3055 ; GCN-LABEL: name: test_remat_v_max3_u32_e64 3056 ; GCN: renamable $vgpr0 = V_MAX3_U32_e64 1, 1, undef $vgpr0, implicit $exec 3057 ; GCN-NEXT: renamable $vgpr1 = V_MAX3_U32_e64 2, 2, undef $vgpr0, implicit $exec 3058 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3059 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3060 ; GCN-NEXT: renamable $vgpr0 = V_MAX3_U32_e64 3, 3, undef $vgpr0, implicit $exec 3061 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3062 ; GCN-NEXT: S_ENDPGM 0 3063 %1:vgpr_32 = V_MAX3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3064 %2:vgpr_32 = V_MAX3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3065 %3:vgpr_32 = V_MAX3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3066 S_NOP 0, implicit %1 3067 S_NOP 0, implicit %2 3068 S_NOP 0, implicit %3 3069 S_ENDPGM 0 3070... 3071--- 3072name: test_remat_v_med3_i32_e64 3073tracksRegLiveness: true 3074body: | 3075 bb.0: 3076 ; GCN-LABEL: name: test_remat_v_med3_i32_e64 3077 ; GCN: renamable $vgpr0 = V_MED3_I32_e64 1, 1, undef $vgpr0, implicit $exec 3078 ; GCN-NEXT: renamable $vgpr1 = V_MED3_I32_e64 2, 2, undef $vgpr0, implicit $exec 3079 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3080 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3081 ; GCN-NEXT: renamable $vgpr0 = V_MED3_I32_e64 3, 3, undef $vgpr0, implicit $exec 3082 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3083 ; GCN-NEXT: S_ENDPGM 0 3084 %1:vgpr_32 = V_MED3_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3085 %2:vgpr_32 = V_MED3_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3086 %3:vgpr_32 = V_MED3_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3087 S_NOP 0, implicit %1 3088 S_NOP 0, implicit %2 3089 S_NOP 0, implicit %3 3090 S_ENDPGM 0 3091... 3092--- 3093name: test_remat_v_med3_u32_e64 3094tracksRegLiveness: true 3095body: | 3096 bb.0: 3097 ; GCN-LABEL: name: test_remat_v_med3_u32_e64 3098 ; GCN: renamable $vgpr0 = V_MED3_U32_e64 1, 1, undef $vgpr0, implicit $exec 3099 ; GCN-NEXT: renamable $vgpr1 = V_MED3_U32_e64 2, 2, undef $vgpr0, implicit $exec 3100 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3101 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3102 ; GCN-NEXT: renamable $vgpr0 = V_MED3_U32_e64 3, 3, undef $vgpr0, implicit $exec 3103 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3104 ; GCN-NEXT: S_ENDPGM 0 3105 %1:vgpr_32 = V_MED3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3106 %2:vgpr_32 = V_MED3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3107 %3:vgpr_32 = V_MED3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3108 S_NOP 0, implicit %1 3109 S_NOP 0, implicit %2 3110 S_NOP 0, implicit %3 3111 S_ENDPGM 0 3112... 3113--- 3114name: test_remat_v_min3_f32_e64 3115tracksRegLiveness: true 3116body: | 3117 bb.0: 3118 ; GCN-LABEL: name: test_remat_v_min3_f32_e64 3119 ; GCN: renamable $vgpr0 = V_MIN3_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3120 ; GCN-NEXT: renamable $vgpr1 = V_MIN3_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3121 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3122 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3123 ; GCN-NEXT: renamable $vgpr0 = V_MIN3_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3124 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3125 ; GCN-NEXT: S_ENDPGM 0 3126 %1:vgpr_32 = V_MIN3_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3127 %2:vgpr_32 = V_MIN3_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3128 %3:vgpr_32 = V_MIN3_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3129 S_NOP 0, implicit %1 3130 S_NOP 0, implicit %2 3131 S_NOP 0, implicit %3 3132 S_ENDPGM 0 3133... 3134--- 3135name: test_remat_v_max3_f32_e64 3136tracksRegLiveness: true 3137body: | 3138 bb.0: 3139 ; GCN-LABEL: name: test_remat_v_max3_f32_e64 3140 ; GCN: renamable $vgpr0 = V_MAX3_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3141 ; GCN-NEXT: renamable $vgpr1 = V_MAX3_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3142 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3143 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3144 ; GCN-NEXT: renamable $vgpr0 = V_MAX3_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3145 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3146 ; GCN-NEXT: S_ENDPGM 0 3147 %1:vgpr_32 = V_MAX3_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3148 %2:vgpr_32 = V_MAX3_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3149 %3:vgpr_32 = V_MAX3_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3150 S_NOP 0, implicit %1 3151 S_NOP 0, implicit %2 3152 S_NOP 0, implicit %3 3153 S_ENDPGM 0 3154... 3155--- 3156name: test_remat_v_med3_f32_e64 3157tracksRegLiveness: true 3158body: | 3159 bb.0: 3160 ; GCN-LABEL: name: test_remat_v_med3_f32_e64 3161 ; GCN: renamable $vgpr0 = V_MED3_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3162 ; GCN-NEXT: renamable $vgpr1 = V_MED3_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3163 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3164 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3165 ; GCN-NEXT: renamable $vgpr0 = V_MED3_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3166 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3167 ; GCN-NEXT: S_ENDPGM 0 3168 %1:vgpr_32 = V_MED3_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3169 %2:vgpr_32 = V_MED3_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3170 %3:vgpr_32 = V_MED3_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3171 S_NOP 0, implicit %1 3172 S_NOP 0, implicit %2 3173 S_NOP 0, implicit %3 3174 S_ENDPGM 0 3175... 3176--- 3177name: test_remat_v_sad_u8_e64 3178tracksRegLiveness: true 3179body: | 3180 bb.0: 3181 ; GCN-LABEL: name: test_remat_v_sad_u8_e64 3182 ; GCN: renamable $vgpr0 = V_SAD_U8_e64 1, 1, undef $vgpr0, 0, implicit $exec 3183 ; GCN-NEXT: renamable $vgpr1 = V_SAD_U8_e64 2, 2, undef $vgpr0, 0, implicit $exec 3184 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3185 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3186 ; GCN-NEXT: renamable $vgpr0 = V_SAD_U8_e64 3, 3, undef $vgpr0, 0, implicit $exec 3187 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3188 ; GCN-NEXT: S_ENDPGM 0 3189 %1:vgpr_32 = V_SAD_U8_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 3190 %2:vgpr_32 = V_SAD_U8_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 3191 %3:vgpr_32 = V_SAD_U8_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 3192 S_NOP 0, implicit %1 3193 S_NOP 0, implicit %2 3194 S_NOP 0, implicit %3 3195 S_ENDPGM 0 3196... 3197--- 3198name: test_remat_v_sad_hi_u8_e64 3199tracksRegLiveness: true 3200body: | 3201 bb.0: 3202 ; GCN-LABEL: name: test_remat_v_sad_hi_u8_e64 3203 ; GCN: renamable $vgpr0 = V_SAD_HI_U8_e64 1, 1, undef $vgpr0, 0, implicit $exec 3204 ; GCN-NEXT: renamable $vgpr1 = V_SAD_HI_U8_e64 2, 2, undef $vgpr0, 0, implicit $exec 3205 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3206 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3207 ; GCN-NEXT: renamable $vgpr0 = V_SAD_HI_U8_e64 3, 3, undef $vgpr0, 0, implicit $exec 3208 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3209 ; GCN-NEXT: S_ENDPGM 0 3210 %1:vgpr_32 = V_SAD_HI_U8_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 3211 %2:vgpr_32 = V_SAD_HI_U8_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 3212 %3:vgpr_32 = V_SAD_HI_U8_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 3213 S_NOP 0, implicit %1 3214 S_NOP 0, implicit %2 3215 S_NOP 0, implicit %3 3216 S_ENDPGM 0 3217... 3218--- 3219name: test_remat_v_sad_u16_e64 3220tracksRegLiveness: true 3221body: | 3222 bb.0: 3223 ; GCN-LABEL: name: test_remat_v_sad_u16_e64 3224 ; GCN: renamable $vgpr0 = V_SAD_U16_e64 1, 1, undef $vgpr0, 0, implicit $exec 3225 ; GCN-NEXT: renamable $vgpr1 = V_SAD_U16_e64 2, 2, undef $vgpr0, 0, implicit $exec 3226 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3227 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3228 ; GCN-NEXT: renamable $vgpr0 = V_SAD_U16_e64 3, 3, undef $vgpr0, 0, implicit $exec 3229 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3230 ; GCN-NEXT: S_ENDPGM 0 3231 %1:vgpr_32 = V_SAD_U16_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 3232 %2:vgpr_32 = V_SAD_U16_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 3233 %3:vgpr_32 = V_SAD_U16_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 3234 S_NOP 0, implicit %1 3235 S_NOP 0, implicit %2 3236 S_NOP 0, implicit %3 3237 S_ENDPGM 0 3238... 3239--- 3240name: test_remat_v_sad_u32_e64 3241tracksRegLiveness: true 3242body: | 3243 bb.0: 3244 ; GCN-LABEL: name: test_remat_v_sad_u32_e64 3245 ; GCN: renamable $vgpr0 = V_SAD_U32_e64 1, 1, undef $vgpr0, 0, implicit $exec 3246 ; GCN-NEXT: renamable $vgpr1 = V_SAD_U32_e64 2, 2, undef $vgpr0, 0, implicit $exec 3247 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3248 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3249 ; GCN-NEXT: renamable $vgpr0 = V_SAD_U32_e64 3, 3, undef $vgpr0, 0, implicit $exec 3250 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3251 ; GCN-NEXT: S_ENDPGM 0 3252 %1:vgpr_32 = V_SAD_U32_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 3253 %2:vgpr_32 = V_SAD_U32_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 3254 %3:vgpr_32 = V_SAD_U32_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 3255 S_NOP 0, implicit %1 3256 S_NOP 0, implicit %2 3257 S_NOP 0, implicit %3 3258 S_ENDPGM 0 3259... 3260--- 3261name: test_remat_v_cvt_pk_u8_f32_e64 3262tracksRegLiveness: true 3263body: | 3264 bb.0: 3265 ; GCN-LABEL: name: test_remat_v_cvt_pk_u8_f32_e64 3266 ; GCN: renamable $vgpr0 = nofpexcept V_CVT_PK_U8_F32_e64 0, 1, 0, 1, 0, undef $vgpr0, 0, implicit $exec, implicit $mode 3267 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_CVT_PK_U8_F32_e64 0, 2, 0, 2, 0, undef $vgpr0, 0, implicit $exec, implicit $mode 3268 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3269 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3270 ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_CVT_PK_U8_F32_e64 0, 3, 0, 3, 0, undef $vgpr0, 0, implicit $exec, implicit $mode 3271 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3272 ; GCN-NEXT: S_ENDPGM 0 3273 %1:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, implicit $exec, implicit $mode 3274 %2:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, implicit $exec, implicit $mode 3275 %3:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, implicit $exec, implicit $mode 3276 S_NOP 0, implicit %1 3277 S_NOP 0, implicit %2 3278 S_NOP 0, implicit %3 3279 S_ENDPGM 0 3280... 3281--- 3282name: test_remat_v_div_fixup_f64_e64 3283tracksRegLiveness: true 3284body: | 3285 bb.0: 3286 ; GCN-LABEL: name: test_remat_v_div_fixup_f64_e64 3287 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_DIV_FIXUP_F64_e64 0, 1, 0, 1, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 3288 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_DIV_FIXUP_F64_e64 0, 2, 0, 2, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 3289 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3290 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 3291 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_DIV_FIXUP_F64_e64 0, 3, 0, 3, 0, undef $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $mode 3292 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3293 ; GCN-NEXT: S_ENDPGM 0 3294 %1:vreg_64_align2 = nofpexcept V_DIV_FIXUP_F64_e64 0, 1, 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 3295 %2:vreg_64_align2 = nofpexcept V_DIV_FIXUP_F64_e64 0, 2, 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 3296 %3:vreg_64_align2 = nofpexcept V_DIV_FIXUP_F64_e64 0, 3, 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode 3297 S_NOP 0, implicit %1 3298 S_NOP 0, implicit %2 3299 S_NOP 0, implicit %3 3300 S_ENDPGM 0 3301... 3302--- 3303name: test_remat_v_ldexp_f64_e64 3304tracksRegLiveness: true 3305body: | 3306 bb.0: 3307 ; GCN-LABEL: name: test_remat_v_ldexp_f64_e64 3308 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_LDEXP_F64_e64 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3309 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_LDEXP_F64_e64 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3310 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3311 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 3312 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_LDEXP_F64_e64 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3313 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3314 ; GCN-NEXT: S_ENDPGM 0 3315 %1:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3316 %2:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3317 %3:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3318 S_NOP 0, implicit %1 3319 S_NOP 0, implicit %2 3320 S_NOP 0, implicit %3 3321 S_ENDPGM 0 3322... 3323--- 3324name: test_remat_v_msad_u8_e64 3325tracksRegLiveness: true 3326body: | 3327 bb.0: 3328 ; GCN-LABEL: name: test_remat_v_msad_u8_e64 3329 ; GCN: renamable $vgpr0 = V_MSAD_U8_e64 1, 1, undef $vgpr0, 0, implicit $exec 3330 ; GCN-NEXT: renamable $vgpr1 = V_MSAD_U8_e64 2, 2, undef $vgpr0, 0, implicit $exec 3331 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3332 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3333 ; GCN-NEXT: renamable $vgpr0 = V_MSAD_U8_e64 3, 3, undef $vgpr0, 0, implicit $exec 3334 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3335 ; GCN-NEXT: S_ENDPGM 0 3336 %1:vgpr_32 = V_MSAD_U8_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec 3337 %2:vgpr_32 = V_MSAD_U8_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec 3338 %3:vgpr_32 = V_MSAD_U8_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec 3339 S_NOP 0, implicit %1 3340 S_NOP 0, implicit %2 3341 S_NOP 0, implicit %3 3342 S_ENDPGM 0 3343... 3344--- 3345name: test_remat_v_trig_preop_f64_e64 3346tracksRegLiveness: true 3347body: | 3348 bb.0: 3349 ; GCN-LABEL: name: test_remat_v_trig_preop_f64_e64 3350 ; GCN: renamable $vgpr0_vgpr1 = nofpexcept V_TRIG_PREOP_F64_e64 0, 1, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3351 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_TRIG_PREOP_F64_e64 0, 2, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3352 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3353 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 3354 ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_TRIG_PREOP_F64_e64 0, 3, 0, undef $vgpr0, 0, 0, implicit $exec, implicit $mode 3355 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3356 ; GCN-NEXT: S_ENDPGM 0 3357 %1:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3358 %2:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3359 %3:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode 3360 S_NOP 0, implicit %1 3361 S_NOP 0, implicit %2 3362 S_NOP 0, implicit %3 3363 S_ENDPGM 0 3364... 3365--- 3366name: test_remat_v_lshlrev_b64_e64 3367tracksRegLiveness: true 3368body: | 3369 bb.0: 3370 ; GCN-LABEL: name: test_remat_v_lshlrev_b64_e64 3371 ; GCN: renamable $vgpr0_vgpr1 = V_LSHLREV_B64_e64 1, undef $vgpr0_vgpr1, implicit $exec 3372 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_LSHLREV_B64_e64 2, undef $vgpr0_vgpr1, implicit $exec 3373 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3374 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 3375 ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_LSHLREV_B64_e64 3, undef $vgpr0_vgpr1, implicit $exec 3376 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3377 ; GCN-NEXT: S_ENDPGM 0 3378 %1:vreg_64_align2 = V_LSHLREV_B64_e64 1, undef %0:vreg_64_align2, implicit $exec 3379 %2:vreg_64_align2 = V_LSHLREV_B64_e64 2, undef %0:vreg_64_align2, implicit $exec 3380 %3:vreg_64_align2 = V_LSHLREV_B64_e64 3, undef %0:vreg_64_align2, implicit $exec 3381 S_NOP 0, implicit %1 3382 S_NOP 0, implicit %2 3383 S_NOP 0, implicit %3 3384 S_ENDPGM 0 3385... 3386--- 3387name: test_remat_v_lshrrev_b64_e64 3388tracksRegLiveness: true 3389body: | 3390 bb.0: 3391 ; GCN-LABEL: name: test_remat_v_lshrrev_b64_e64 3392 ; GCN: renamable $vgpr0_vgpr1 = V_LSHRREV_B64_e64 1, undef $vgpr0_vgpr1, implicit $exec 3393 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_LSHRREV_B64_e64 2, undef $vgpr0_vgpr1, implicit $exec 3394 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3395 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 3396 ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_LSHRREV_B64_e64 3, undef $vgpr0_vgpr1, implicit $exec 3397 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3398 ; GCN-NEXT: S_ENDPGM 0 3399 %1:vreg_64_align2 = V_LSHRREV_B64_e64 1, undef %0:vreg_64_align2, implicit $exec 3400 %2:vreg_64_align2 = V_LSHRREV_B64_e64 2, undef %0:vreg_64_align2, implicit $exec 3401 %3:vreg_64_align2 = V_LSHRREV_B64_e64 3, undef %0:vreg_64_align2, implicit $exec 3402 S_NOP 0, implicit %1 3403 S_NOP 0, implicit %2 3404 S_NOP 0, implicit %3 3405 S_ENDPGM 0 3406... 3407--- 3408name: test_remat_v_ashrrev_i64_e64 3409tracksRegLiveness: true 3410body: | 3411 bb.0: 3412 ; GCN-LABEL: name: test_remat_v_ashrrev_i64_e64 3413 ; GCN: renamable $vgpr0_vgpr1 = V_ASHRREV_I64_e64 1, undef $vgpr0_vgpr1, implicit $exec 3414 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_ASHRREV_I64_e64 2, undef $vgpr0_vgpr1, implicit $exec 3415 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3416 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 3417 ; GCN-NEXT: renamable $vgpr0_vgpr1 = V_ASHRREV_I64_e64 3, undef $vgpr0_vgpr1, implicit $exec 3418 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1 3419 ; GCN-NEXT: S_ENDPGM 0 3420 %1:vreg_64_align2 = V_ASHRREV_I64_e64 1, undef %0:vreg_64_align2, implicit $exec 3421 %2:vreg_64_align2 = V_ASHRREV_I64_e64 2, undef %0:vreg_64_align2, implicit $exec 3422 %3:vreg_64_align2 = V_ASHRREV_I64_e64 3, undef %0:vreg_64_align2, implicit $exec 3423 S_NOP 0, implicit %1 3424 S_NOP 0, implicit %2 3425 S_NOP 0, implicit %3 3426 S_ENDPGM 0 3427... 3428--- 3429name: test_remat_v_perm_b32_e64 3430tracksRegLiveness: true 3431body: | 3432 bb.0: 3433 ; GCN-LABEL: name: test_remat_v_perm_b32_e64 3434 ; GCN: renamable $vgpr0 = V_PERM_B32_e64 1, 1, undef $vgpr0, implicit $exec 3435 ; GCN-NEXT: renamable $vgpr1 = V_PERM_B32_e64 2, 2, undef $vgpr0, implicit $exec 3436 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3437 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3438 ; GCN-NEXT: renamable $vgpr0 = V_PERM_B32_e64 3, 3, undef $vgpr0, implicit $exec 3439 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3440 ; GCN-NEXT: S_ENDPGM 0 3441 %1:vgpr_32 = V_PERM_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3442 %2:vgpr_32 = V_PERM_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3443 %3:vgpr_32 = V_PERM_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3444 S_NOP 0, implicit %1 3445 S_NOP 0, implicit %2 3446 S_NOP 0, implicit %3 3447 S_ENDPGM 0 3448... 3449--- 3450name: test_remat_v_add3_u32_e64 3451tracksRegLiveness: true 3452body: | 3453 bb.0: 3454 ; GCN-LABEL: name: test_remat_v_add3_u32_e64 3455 ; GCN: renamable $vgpr0 = V_ADD3_U32_e64 1, 1, undef $vgpr0, implicit $exec 3456 ; GCN-NEXT: renamable $vgpr1 = V_ADD3_U32_e64 2, 2, undef $vgpr0, implicit $exec 3457 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3458 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3459 ; GCN-NEXT: renamable $vgpr0 = V_ADD3_U32_e64 3, 3, undef $vgpr0, implicit $exec 3460 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3461 ; GCN-NEXT: S_ENDPGM 0 3462 %1:vgpr_32 = V_ADD3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3463 %2:vgpr_32 = V_ADD3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3464 %3:vgpr_32 = V_ADD3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3465 S_NOP 0, implicit %1 3466 S_NOP 0, implicit %2 3467 S_NOP 0, implicit %3 3468 S_ENDPGM 0 3469... 3470--- 3471name: test_remat_v_and_or_b32_e64 3472tracksRegLiveness: true 3473body: | 3474 bb.0: 3475 ; GCN-LABEL: name: test_remat_v_and_or_b32_e64 3476 ; GCN: renamable $vgpr0 = V_AND_OR_B32_e64 1, 1, undef $vgpr0, implicit $exec 3477 ; GCN-NEXT: renamable $vgpr1 = V_AND_OR_B32_e64 2, 2, undef $vgpr0, implicit $exec 3478 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3479 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3480 ; GCN-NEXT: renamable $vgpr0 = V_AND_OR_B32_e64 3, 3, undef $vgpr0, implicit $exec 3481 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3482 ; GCN-NEXT: S_ENDPGM 0 3483 %1:vgpr_32 = V_AND_OR_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3484 %2:vgpr_32 = V_AND_OR_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3485 %3:vgpr_32 = V_AND_OR_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3486 S_NOP 0, implicit %1 3487 S_NOP 0, implicit %2 3488 S_NOP 0, implicit %3 3489 S_ENDPGM 0 3490... 3491--- 3492name: test_remat_v_or3_b32_e64 3493tracksRegLiveness: true 3494body: | 3495 bb.0: 3496 ; GCN-LABEL: name: test_remat_v_or3_b32_e64 3497 ; GCN: renamable $vgpr0 = V_OR3_B32_e64 1, 1, undef $vgpr0, implicit $exec 3498 ; GCN-NEXT: renamable $vgpr1 = V_OR3_B32_e64 2, 2, undef $vgpr0, implicit $exec 3499 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3500 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3501 ; GCN-NEXT: renamable $vgpr0 = V_OR3_B32_e64 3, 3, undef $vgpr0, implicit $exec 3502 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3503 ; GCN-NEXT: S_ENDPGM 0 3504 %1:vgpr_32 = V_OR3_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3505 %2:vgpr_32 = V_OR3_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3506 %3:vgpr_32 = V_OR3_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3507 S_NOP 0, implicit %1 3508 S_NOP 0, implicit %2 3509 S_NOP 0, implicit %3 3510 S_ENDPGM 0 3511... 3512--- 3513name: test_remat_v_xad_u32_e64 3514tracksRegLiveness: true 3515body: | 3516 bb.0: 3517 ; GCN-LABEL: name: test_remat_v_xad_u32_e64 3518 ; GCN: renamable $vgpr0 = V_XAD_U32_e64 1, 1, undef $vgpr0, implicit $exec 3519 ; GCN-NEXT: renamable $vgpr1 = V_XAD_U32_e64 2, 2, undef $vgpr0, implicit $exec 3520 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3521 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3522 ; GCN-NEXT: renamable $vgpr0 = V_XAD_U32_e64 3, 3, undef $vgpr0, implicit $exec 3523 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3524 ; GCN-NEXT: S_ENDPGM 0 3525 %1:vgpr_32 = V_XAD_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3526 %2:vgpr_32 = V_XAD_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3527 %3:vgpr_32 = V_XAD_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3528 S_NOP 0, implicit %1 3529 S_NOP 0, implicit %2 3530 S_NOP 0, implicit %3 3531 S_ENDPGM 0 3532... 3533--- 3534name: test_remat_v_add_i32_e64 3535tracksRegLiveness: true 3536body: | 3537 bb.0: 3538 ; GCN-LABEL: name: test_remat_v_add_i32_e64 3539 ; GCN: renamable $vgpr0 = V_ADD_I32_e64 1, undef $vgpr0, 0, implicit $exec 3540 ; GCN-NEXT: renamable $vgpr1 = V_ADD_I32_e64 2, undef $vgpr0, 0, implicit $exec 3541 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3542 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3543 ; GCN-NEXT: renamable $vgpr0 = V_ADD_I32_e64 3, undef $vgpr0, 0, implicit $exec 3544 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3545 ; GCN-NEXT: S_ENDPGM 0 3546 %1:vgpr_32 = V_ADD_I32_e64 1, undef %0:vgpr_32, 0, implicit $exec 3547 %2:vgpr_32 = V_ADD_I32_e64 2, undef %0:vgpr_32, 0, implicit $exec 3548 %3:vgpr_32 = V_ADD_I32_e64 3, undef %0:vgpr_32, 0, implicit $exec 3549 S_NOP 0, implicit %1 3550 S_NOP 0, implicit %2 3551 S_NOP 0, implicit %3 3552 S_ENDPGM 0 3553... 3554--- 3555name: test_remat_v_add_lshl_u32_e64 3556tracksRegLiveness: true 3557body: | 3558 bb.0: 3559 ; GCN-LABEL: name: test_remat_v_add_lshl_u32_e64 3560 ; GCN: renamable $vgpr0 = V_ADD_LSHL_U32_e64 1, 1, undef $vgpr0, implicit $exec 3561 ; GCN-NEXT: renamable $vgpr1 = V_ADD_LSHL_U32_e64 2, 2, undef $vgpr0, implicit $exec 3562 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3563 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3564 ; GCN-NEXT: renamable $vgpr0 = V_ADD_LSHL_U32_e64 3, 3, undef $vgpr0, implicit $exec 3565 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3566 ; GCN-NEXT: S_ENDPGM 0 3567 %1:vgpr_32 = V_ADD_LSHL_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3568 %2:vgpr_32 = V_ADD_LSHL_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3569 %3:vgpr_32 = V_ADD_LSHL_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3570 S_NOP 0, implicit %1 3571 S_NOP 0, implicit %2 3572 S_NOP 0, implicit %3 3573 S_ENDPGM 0 3574... 3575--- 3576name: test_remat_v_sub_i32_e64 3577tracksRegLiveness: true 3578body: | 3579 bb.0: 3580 ; GCN-LABEL: name: test_remat_v_sub_i32_e64 3581 ; GCN: renamable $vgpr0 = V_SUB_I32_e64 1, undef $vgpr0, 0, implicit $exec 3582 ; GCN-NEXT: renamable $vgpr1 = V_SUB_I32_e64 2, undef $vgpr0, 0, implicit $exec 3583 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3584 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3585 ; GCN-NEXT: renamable $vgpr0 = V_SUB_I32_e64 3, undef $vgpr0, 0, implicit $exec 3586 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3587 ; GCN-NEXT: S_ENDPGM 0 3588 %1:vgpr_32 = V_SUB_I32_e64 1, undef %0:vgpr_32, 0, implicit $exec 3589 %2:vgpr_32 = V_SUB_I32_e64 2, undef %0:vgpr_32, 0, implicit $exec 3590 %3:vgpr_32 = V_SUB_I32_e64 3, undef %0:vgpr_32, 0, implicit $exec 3591 S_NOP 0, implicit %1 3592 S_NOP 0, implicit %2 3593 S_NOP 0, implicit %3 3594 S_ENDPGM 0 3595... 3596--- 3597name: test_remat_v_lshl_add_u32_e64 3598tracksRegLiveness: true 3599body: | 3600 bb.0: 3601 ; GCN-LABEL: name: test_remat_v_lshl_add_u32_e64 3602 ; GCN: renamable $vgpr0 = V_LSHL_ADD_U32_e64 1, 1, undef $vgpr0, implicit $exec 3603 ; GCN-NEXT: renamable $vgpr1 = V_LSHL_ADD_U32_e64 2, 2, undef $vgpr0, implicit $exec 3604 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3605 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3606 ; GCN-NEXT: renamable $vgpr0 = V_LSHL_ADD_U32_e64 3, 3, undef $vgpr0, implicit $exec 3607 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3608 ; GCN-NEXT: S_ENDPGM 0 3609 %1:vgpr_32 = V_LSHL_ADD_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3610 %2:vgpr_32 = V_LSHL_ADD_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3611 %3:vgpr_32 = V_LSHL_ADD_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3612 S_NOP 0, implicit %1 3613 S_NOP 0, implicit %2 3614 S_NOP 0, implicit %3 3615 S_ENDPGM 0 3616... 3617--- 3618name: test_remat_v_lshl_or_b32_e64 3619tracksRegLiveness: true 3620body: | 3621 bb.0: 3622 ; GCN-LABEL: name: test_remat_v_lshl_or_b32_e64 3623 ; GCN: renamable $vgpr0 = V_LSHL_OR_B32_e64 1, 1, undef $vgpr0, implicit $exec 3624 ; GCN-NEXT: renamable $vgpr1 = V_LSHL_OR_B32_e64 2, 2, undef $vgpr0, implicit $exec 3625 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3626 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3627 ; GCN-NEXT: renamable $vgpr0 = V_LSHL_OR_B32_e64 3, 3, undef $vgpr0, implicit $exec 3628 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 3629 ; GCN-NEXT: S_ENDPGM 0 3630 %1:vgpr_32 = V_LSHL_OR_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec 3631 %2:vgpr_32 = V_LSHL_OR_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec 3632 %3:vgpr_32 = V_LSHL_OR_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec 3633 S_NOP 0, implicit %1 3634 S_NOP 0, implicit %2 3635 S_NOP 0, implicit %3 3636 S_ENDPGM 0 3637... 3638 3639--- 3640name: test_remat_v_lshlrev_b16_e32 3641tracksRegLiveness: true 3642body: | 3643 bb.0: 3644 liveins: $vgpr0 3645 ; GCN-LABEL: name: test_remat_v_lshlrev_b16_e32 3646 ; GCN: liveins: $vgpr0 3647 ; GCN-NEXT: {{ $}} 3648 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 1, $vgpr0, implicit $exec 3649 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3650 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 2, $vgpr0, implicit $exec 3651 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3652 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 3, $vgpr0, implicit $exec 3653 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3654 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3655 %0:vgpr_32 = COPY $vgpr0 3656 %1:vgpr_32 = V_LSHLREV_B16_e32 1, %0:vgpr_32, implicit $exec 3657 %2:vgpr_32 = V_LSHLREV_B16_e32 2, %0:vgpr_32, implicit $exec 3658 %3:vgpr_32 = V_LSHLREV_B16_e32 3, %0:vgpr_32, implicit $exec 3659 S_NOP 0, implicit %1 3660 S_NOP 0, implicit %2 3661 S_NOP 0, implicit %3 3662 S_ENDPGM 0, implicit %0 3663... 3664--- 3665name: test_remat_v_lshlrev_b16_e64 3666tracksRegLiveness: true 3667body: | 3668 bb.0: 3669 liveins: $vgpr0 3670 ; GCN-LABEL: name: test_remat_v_lshlrev_b16_e64 3671 ; GCN: liveins: $vgpr0 3672 ; GCN-NEXT: {{ $}} 3673 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 1, $vgpr0, implicit $exec 3674 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3675 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 2, $vgpr0, implicit $exec 3676 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3677 ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 3, $vgpr0, implicit $exec 3678 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3679 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3680 %0:vgpr_32 = COPY $vgpr0 3681 %1:vgpr_32 = V_LSHLREV_B16_e64 1, %0:vgpr_32, implicit $exec 3682 %2:vgpr_32 = V_LSHLREV_B16_e64 2, %0:vgpr_32, implicit $exec 3683 %3:vgpr_32 = V_LSHLREV_B16_e64 3, %0:vgpr_32, implicit $exec 3684 S_NOP 0, implicit %1 3685 S_NOP 0, implicit %2 3686 S_NOP 0, implicit %3 3687 S_ENDPGM 0, implicit %0 3688... 3689 3690--- 3691name: test_remat_v_lshrrev_b16_e32 3692tracksRegLiveness: true 3693body: | 3694 bb.0: 3695 liveins: $vgpr0 3696 ; GCN-LABEL: name: test_remat_v_lshrrev_b16_e32 3697 ; GCN: liveins: $vgpr0 3698 ; GCN-NEXT: {{ $}} 3699 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 1, $vgpr0, implicit $exec 3700 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3701 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 2, $vgpr0, implicit $exec 3702 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3703 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 3, $vgpr0, implicit $exec 3704 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3705 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3706 %0:vgpr_32 = COPY $vgpr0 3707 %1:vgpr_32 = V_LSHRREV_B16_e32 1, %0:vgpr_32, implicit $exec 3708 %2:vgpr_32 = V_LSHRREV_B16_e32 2, %0:vgpr_32, implicit $exec 3709 %3:vgpr_32 = V_LSHRREV_B16_e32 3, %0:vgpr_32, implicit $exec 3710 S_NOP 0, implicit %1 3711 S_NOP 0, implicit %2 3712 S_NOP 0, implicit %3 3713 S_ENDPGM 0, implicit %0 3714... 3715--- 3716name: test_remat_v_lshrrev_b16_e64 3717tracksRegLiveness: true 3718body: | 3719 bb.0: 3720 liveins: $vgpr0 3721 ; GCN-LABEL: name: test_remat_v_lshrrev_b16_e64 3722 ; GCN: liveins: $vgpr0 3723 ; GCN-NEXT: {{ $}} 3724 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 1, $vgpr0, implicit $exec 3725 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3726 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 2, $vgpr0, implicit $exec 3727 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3728 ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 3, $vgpr0, implicit $exec 3729 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3730 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3731 %0:vgpr_32 = COPY $vgpr0 3732 %1:vgpr_32 = V_LSHRREV_B16_e64 1, %0:vgpr_32, implicit $exec 3733 %2:vgpr_32 = V_LSHRREV_B16_e64 2, %0:vgpr_32, implicit $exec 3734 %3:vgpr_32 = V_LSHRREV_B16_e64 3, %0:vgpr_32, implicit $exec 3735 S_NOP 0, implicit %1 3736 S_NOP 0, implicit %2 3737 S_NOP 0, implicit %3 3738 S_ENDPGM 0, implicit %0 3739... 3740 3741--- 3742name: test_remat_v_ashrrev_i16_e32 3743tracksRegLiveness: true 3744body: | 3745 bb.0: 3746 liveins: $vgpr0 3747 ; GCN-LABEL: name: test_remat_v_ashrrev_i16_e32 3748 ; GCN: liveins: $vgpr0 3749 ; GCN-NEXT: {{ $}} 3750 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 1, $vgpr0, implicit $exec 3751 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3752 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 2, $vgpr0, implicit $exec 3753 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3754 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 3, $vgpr0, implicit $exec 3755 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3756 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3757 %0:vgpr_32 = COPY $vgpr0 3758 %1:vgpr_32 = V_ASHRREV_I16_e32 1, %0:vgpr_32, implicit $exec 3759 %2:vgpr_32 = V_ASHRREV_I16_e32 2, %0:vgpr_32, implicit $exec 3760 %3:vgpr_32 = V_ASHRREV_I16_e32 3, %0:vgpr_32, implicit $exec 3761 S_NOP 0, implicit %1 3762 S_NOP 0, implicit %2 3763 S_NOP 0, implicit %3 3764 S_ENDPGM 0, implicit %0 3765... 3766--- 3767name: test_remat_v_ashrrev_i16_e64 3768tracksRegLiveness: true 3769body: | 3770 bb.0: 3771 liveins: $vgpr0 3772 ; GCN-LABEL: name: test_remat_v_ashrrev_i16_e64 3773 ; GCN: liveins: $vgpr0 3774 ; GCN-NEXT: {{ $}} 3775 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 1, $vgpr0, implicit $exec 3776 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3777 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 2, $vgpr0, implicit $exec 3778 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3779 ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 3, $vgpr0, implicit $exec 3780 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3781 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3782 %0:vgpr_32 = COPY $vgpr0 3783 %1:vgpr_32 = V_ASHRREV_I16_e64 1, %0:vgpr_32, implicit $exec 3784 %2:vgpr_32 = V_ASHRREV_I16_e64 2, %0:vgpr_32, implicit $exec 3785 %3:vgpr_32 = V_ASHRREV_I16_e64 3, %0:vgpr_32, implicit $exec 3786 S_NOP 0, implicit %1 3787 S_NOP 0, implicit %2 3788 S_NOP 0, implicit %3 3789 S_ENDPGM 0, implicit %0 3790... 3791 3792--- 3793name: test_remat_v_add_u16_e32 3794tracksRegLiveness: true 3795body: | 3796 bb.0: 3797 liveins: $vgpr0 3798 ; GCN-LABEL: name: test_remat_v_add_u16_e32 3799 ; GCN: liveins: $vgpr0 3800 ; GCN-NEXT: {{ $}} 3801 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 1, $vgpr0, implicit $exec 3802 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3803 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 2, $vgpr0, implicit $exec 3804 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3805 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 3, $vgpr0, implicit $exec 3806 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3807 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3808 %0:vgpr_32 = COPY $vgpr0 3809 %1:vgpr_32 = V_ADD_U16_e32 1, %0:vgpr_32, implicit $exec 3810 %2:vgpr_32 = V_ADD_U16_e32 2, %0:vgpr_32, implicit $exec 3811 %3:vgpr_32 = V_ADD_U16_e32 3, %0:vgpr_32, implicit $exec 3812 S_NOP 0, implicit %1 3813 S_NOP 0, implicit %2 3814 S_NOP 0, implicit %3 3815 S_ENDPGM 0, implicit %0 3816... 3817 3818--- 3819name: test_remat_v_add_u16_e64 3820tracksRegLiveness: true 3821body: | 3822 bb.0: 3823 liveins: $vgpr0 3824 ; GCN-LABEL: name: test_remat_v_add_u16_e64 3825 ; GCN: liveins: $vgpr0 3826 ; GCN-NEXT: {{ $}} 3827 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 1, $vgpr0, 0, implicit $exec 3828 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3829 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 2, $vgpr0, 0, implicit $exec 3830 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3831 ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 3, $vgpr0, 0, implicit $exec 3832 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3833 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3834 %0:vgpr_32 = COPY $vgpr0 3835 %1:vgpr_32 = V_ADD_U16_e64 1, %0:vgpr_32, 0, implicit $exec 3836 %2:vgpr_32 = V_ADD_U16_e64 2, %0:vgpr_32, 0, implicit $exec 3837 %3:vgpr_32 = V_ADD_U16_e64 3, %0:vgpr_32, 0, implicit $exec 3838 S_NOP 0, implicit %1 3839 S_NOP 0, implicit %2 3840 S_NOP 0, implicit %3 3841 S_ENDPGM 0, implicit %0 3842... 3843 3844--- 3845name: test_remat_v_sub_u16_e32 3846tracksRegLiveness: true 3847body: | 3848 bb.0: 3849 liveins: $vgpr0 3850 ; GCN-LABEL: name: test_remat_v_sub_u16_e32 3851 ; GCN: liveins: $vgpr0 3852 ; GCN-NEXT: {{ $}} 3853 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 1, $vgpr0, implicit $exec 3854 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3855 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 2, $vgpr0, implicit $exec 3856 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3857 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 3, $vgpr0, implicit $exec 3858 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3859 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3860 %0:vgpr_32 = COPY $vgpr0 3861 %1:vgpr_32 = V_SUB_U16_e32 1, %0:vgpr_32, implicit $exec 3862 %2:vgpr_32 = V_SUB_U16_e32 2, %0:vgpr_32, implicit $exec 3863 %3:vgpr_32 = V_SUB_U16_e32 3, %0:vgpr_32, implicit $exec 3864 S_NOP 0, implicit %1 3865 S_NOP 0, implicit %2 3866 S_NOP 0, implicit %3 3867 S_ENDPGM 0, implicit %0 3868... 3869 3870--- 3871name: test_remat_v_sub_u16_e64 3872tracksRegLiveness: true 3873body: | 3874 bb.0: 3875 liveins: $vgpr0 3876 ; GCN-LABEL: name: test_remat_v_sub_u16_e64 3877 ; GCN: liveins: $vgpr0 3878 ; GCN-NEXT: {{ $}} 3879 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 1, $vgpr0, 0, implicit $exec 3880 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3881 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 2, $vgpr0, 0, implicit $exec 3882 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3883 ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 3, $vgpr0, 0, implicit $exec 3884 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3885 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3886 %0:vgpr_32 = COPY $vgpr0 3887 %1:vgpr_32 = V_SUB_U16_e64 1, %0:vgpr_32, 0, implicit $exec 3888 %2:vgpr_32 = V_SUB_U16_e64 2, %0:vgpr_32, 0, implicit $exec 3889 %3:vgpr_32 = V_SUB_U16_e64 3, %0:vgpr_32, 0, implicit $exec 3890 S_NOP 0, implicit %1 3891 S_NOP 0, implicit %2 3892 S_NOP 0, implicit %3 3893 S_ENDPGM 0, implicit %0 3894... 3895 3896--- 3897name: test_remat_v_subrev_u16_e32 3898tracksRegLiveness: true 3899body: | 3900 bb.0: 3901 liveins: $vgpr0 3902 ; GCN-LABEL: name: test_remat_v_subrev_u16_e32 3903 ; GCN: liveins: $vgpr0 3904 ; GCN-NEXT: {{ $}} 3905 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 1, $vgpr0, implicit $exec 3906 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3907 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 2, $vgpr0, implicit $exec 3908 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3909 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 3, $vgpr0, implicit $exec 3910 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3911 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3912 %0:vgpr_32 = COPY $vgpr0 3913 %1:vgpr_32 = V_SUBREV_U16_e32 1, %0:vgpr_32, implicit $exec 3914 %2:vgpr_32 = V_SUBREV_U16_e32 2, %0:vgpr_32, implicit $exec 3915 %3:vgpr_32 = V_SUBREV_U16_e32 3, %0:vgpr_32, implicit $exec 3916 S_NOP 0, implicit %1 3917 S_NOP 0, implicit %2 3918 S_NOP 0, implicit %3 3919 S_ENDPGM 0, implicit %0 3920... 3921 3922--- 3923name: test_remat_v_subrev_u16_e64 3924tracksRegLiveness: true 3925body: | 3926 bb.0: 3927 liveins: $vgpr0 3928 ; GCN-LABEL: name: test_remat_v_subrev_u16_e64 3929 ; GCN: liveins: $vgpr0 3930 ; GCN-NEXT: {{ $}} 3931 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 1, $vgpr0, 0, implicit $exec 3932 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3933 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 2, $vgpr0, 0, implicit $exec 3934 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3935 ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 3, $vgpr0, 0, implicit $exec 3936 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3937 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3938 %0:vgpr_32 = COPY $vgpr0 3939 %1:vgpr_32 = V_SUBREV_U16_e64 1, %0:vgpr_32, 0, implicit $exec 3940 %2:vgpr_32 = V_SUBREV_U16_e64 2, %0:vgpr_32, 0, implicit $exec 3941 %3:vgpr_32 = V_SUBREV_U16_e64 3, %0:vgpr_32, 0, implicit $exec 3942 S_NOP 0, implicit %1 3943 S_NOP 0, implicit %2 3944 S_NOP 0, implicit %3 3945 S_ENDPGM 0, implicit %0 3946... 3947 3948--- 3949name: test_remat_v_min_u16_e32 3950tracksRegLiveness: true 3951body: | 3952 bb.0: 3953 liveins: $vgpr0 3954 ; GCN-LABEL: name: test_remat_v_min_u16_e32 3955 ; GCN: liveins: $vgpr0 3956 ; GCN-NEXT: {{ $}} 3957 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 1, $vgpr0, implicit $exec 3958 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3959 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 2, $vgpr0, implicit $exec 3960 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3961 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 3, $vgpr0, implicit $exec 3962 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3963 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3964 %0:vgpr_32 = COPY $vgpr0 3965 %1:vgpr_32 = V_MIN_U16_e32 1, %0:vgpr_32, implicit $exec 3966 %2:vgpr_32 = V_MIN_U16_e32 2, %0:vgpr_32, implicit $exec 3967 %3:vgpr_32 = V_MIN_U16_e32 3, %0:vgpr_32, implicit $exec 3968 S_NOP 0, implicit %1 3969 S_NOP 0, implicit %2 3970 S_NOP 0, implicit %3 3971 S_ENDPGM 0, implicit %0 3972... 3973 3974--- 3975name: test_remat_v_min_u16_e64 3976tracksRegLiveness: true 3977body: | 3978 bb.0: 3979 liveins: $vgpr0 3980 ; GCN-LABEL: name: test_remat_v_min_u16_e64 3981 ; GCN: liveins: $vgpr0 3982 ; GCN-NEXT: {{ $}} 3983 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 1, $vgpr0, implicit $exec 3984 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3985 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 2, $vgpr0, implicit $exec 3986 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3987 ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 3, $vgpr0, implicit $exec 3988 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 3989 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 3990 %0:vgpr_32 = COPY $vgpr0 3991 %1:vgpr_32 = V_MIN_U16_e64 1, %0:vgpr_32, implicit $exec 3992 %2:vgpr_32 = V_MIN_U16_e64 2, %0:vgpr_32, implicit $exec 3993 %3:vgpr_32 = V_MIN_U16_e64 3, %0:vgpr_32, implicit $exec 3994 S_NOP 0, implicit %1 3995 S_NOP 0, implicit %2 3996 S_NOP 0, implicit %3 3997 S_ENDPGM 0, implicit %0 3998... 3999 4000--- 4001name: test_remat_v_max_u16_e32 4002tracksRegLiveness: true 4003body: | 4004 bb.0: 4005 liveins: $vgpr0 4006 ; GCN-LABEL: name: test_remat_v_max_u16_e32 4007 ; GCN: liveins: $vgpr0 4008 ; GCN-NEXT: {{ $}} 4009 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 1, $vgpr0, implicit $exec 4010 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4011 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 2, $vgpr0, implicit $exec 4012 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4013 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 3, $vgpr0, implicit $exec 4014 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4015 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4016 %0:vgpr_32 = COPY $vgpr0 4017 %1:vgpr_32 = V_MAX_U16_e32 1, %0:vgpr_32, implicit $exec 4018 %2:vgpr_32 = V_MAX_U16_e32 2, %0:vgpr_32, implicit $exec 4019 %3:vgpr_32 = V_MAX_U16_e32 3, %0:vgpr_32, implicit $exec 4020 S_NOP 0, implicit %1 4021 S_NOP 0, implicit %2 4022 S_NOP 0, implicit %3 4023 S_ENDPGM 0, implicit %0 4024... 4025 4026--- 4027name: test_remat_v_max_u16_e64 4028tracksRegLiveness: true 4029body: | 4030 bb.0: 4031 liveins: $vgpr0 4032 ; GCN-LABEL: name: test_remat_v_max_u16_e64 4033 ; GCN: liveins: $vgpr0 4034 ; GCN-NEXT: {{ $}} 4035 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 1, $vgpr0, implicit $exec 4036 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4037 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 2, $vgpr0, implicit $exec 4038 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4039 ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 3, $vgpr0, implicit $exec 4040 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4041 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4042 %0:vgpr_32 = COPY $vgpr0 4043 %1:vgpr_32 = V_MAX_U16_e64 1, %0:vgpr_32, implicit $exec 4044 %2:vgpr_32 = V_MAX_U16_e64 2, %0:vgpr_32, implicit $exec 4045 %3:vgpr_32 = V_MAX_U16_e64 3, %0:vgpr_32, implicit $exec 4046 S_NOP 0, implicit %1 4047 S_NOP 0, implicit %2 4048 S_NOP 0, implicit %3 4049 S_ENDPGM 0, implicit %0 4050... 4051 4052--- 4053name: test_remat_v_min_i16_e32 4054tracksRegLiveness: true 4055body: | 4056 bb.0: 4057 liveins: $vgpr0 4058 ; GCN-LABEL: name: test_remat_v_min_i16_e32 4059 ; GCN: liveins: $vgpr0 4060 ; GCN-NEXT: {{ $}} 4061 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 1, $vgpr0, implicit $exec 4062 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4063 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 2, $vgpr0, implicit $exec 4064 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4065 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 3, $vgpr0, implicit $exec 4066 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4067 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4068 %0:vgpr_32 = COPY $vgpr0 4069 %1:vgpr_32 = V_MIN_I16_e32 1, %0:vgpr_32, implicit $exec 4070 %2:vgpr_32 = V_MIN_I16_e32 2, %0:vgpr_32, implicit $exec 4071 %3:vgpr_32 = V_MIN_I16_e32 3, %0:vgpr_32, implicit $exec 4072 S_NOP 0, implicit %1 4073 S_NOP 0, implicit %2 4074 S_NOP 0, implicit %3 4075 S_ENDPGM 0, implicit %0 4076... 4077 4078--- 4079name: test_remat_v_min_i16_e64 4080tracksRegLiveness: true 4081body: | 4082 bb.0: 4083 liveins: $vgpr0 4084 ; GCN-LABEL: name: test_remat_v_min_i16_e64 4085 ; GCN: liveins: $vgpr0 4086 ; GCN-NEXT: {{ $}} 4087 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 1, $vgpr0, implicit $exec 4088 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4089 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 2, $vgpr0, implicit $exec 4090 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4091 ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 3, $vgpr0, implicit $exec 4092 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4093 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4094 %0:vgpr_32 = COPY $vgpr0 4095 %1:vgpr_32 = V_MIN_I16_e64 1, %0:vgpr_32, implicit $exec 4096 %2:vgpr_32 = V_MIN_I16_e64 2, %0:vgpr_32, implicit $exec 4097 %3:vgpr_32 = V_MIN_I16_e64 3, %0:vgpr_32, implicit $exec 4098 S_NOP 0, implicit %1 4099 S_NOP 0, implicit %2 4100 S_NOP 0, implicit %3 4101 S_ENDPGM 0, implicit %0 4102... 4103 4104--- 4105name: test_remat_v_max_i16_e32 4106tracksRegLiveness: true 4107body: | 4108 bb.0: 4109 liveins: $vgpr0 4110 ; GCN-LABEL: name: test_remat_v_max_i16_e32 4111 ; GCN: liveins: $vgpr0 4112 ; GCN-NEXT: {{ $}} 4113 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 1, $vgpr0, implicit $exec 4114 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4115 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 2, $vgpr0, implicit $exec 4116 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4117 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 3, $vgpr0, implicit $exec 4118 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4119 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4120 %0:vgpr_32 = COPY $vgpr0 4121 %1:vgpr_32 = V_MAX_I16_e32 1, %0:vgpr_32, implicit $exec 4122 %2:vgpr_32 = V_MAX_I16_e32 2, %0:vgpr_32, implicit $exec 4123 %3:vgpr_32 = V_MAX_I16_e32 3, %0:vgpr_32, implicit $exec 4124 S_NOP 0, implicit %1 4125 S_NOP 0, implicit %2 4126 S_NOP 0, implicit %3 4127 S_ENDPGM 0, implicit %0 4128... 4129 4130--- 4131name: test_remat_v_max_i16_e64 4132tracksRegLiveness: true 4133body: | 4134 bb.0: 4135 liveins: $vgpr0 4136 ; GCN-LABEL: name: test_remat_v_max_i16_e64 4137 ; GCN: liveins: $vgpr0 4138 ; GCN-NEXT: {{ $}} 4139 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 1, $vgpr0, implicit $exec 4140 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4141 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 2, $vgpr0, implicit $exec 4142 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4143 ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 3, $vgpr0, implicit $exec 4144 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4145 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4146 %0:vgpr_32 = COPY $vgpr0 4147 %1:vgpr_32 = V_MAX_I16_e64 1, %0:vgpr_32, implicit $exec 4148 %2:vgpr_32 = V_MAX_I16_e64 2, %0:vgpr_32, implicit $exec 4149 %3:vgpr_32 = V_MAX_I16_e64 3, %0:vgpr_32, implicit $exec 4150 S_NOP 0, implicit %1 4151 S_NOP 0, implicit %2 4152 S_NOP 0, implicit %3 4153 S_ENDPGM 0, implicit %0 4154... 4155 4156--- 4157name: test_remat_v_mul_lo_u16_e32 4158tracksRegLiveness: true 4159body: | 4160 bb.0: 4161 liveins: $vgpr0 4162 ; GCN-LABEL: name: test_remat_v_mul_lo_u16_e32 4163 ; GCN: liveins: $vgpr0 4164 ; GCN-NEXT: {{ $}} 4165 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 1, $vgpr0, implicit $exec 4166 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4167 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 2, $vgpr0, implicit $exec 4168 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4169 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 3, $vgpr0, implicit $exec 4170 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4171 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4172 %0:vgpr_32 = COPY $vgpr0 4173 %1:vgpr_32 = V_MUL_LO_U16_e32 1, %0:vgpr_32, implicit $exec 4174 %2:vgpr_32 = V_MUL_LO_U16_e32 2, %0:vgpr_32, implicit $exec 4175 %3:vgpr_32 = V_MUL_LO_U16_e32 3, %0:vgpr_32, implicit $exec 4176 S_NOP 0, implicit %1 4177 S_NOP 0, implicit %2 4178 S_NOP 0, implicit %3 4179 S_ENDPGM 0, implicit %0 4180... 4181 4182--- 4183name: test_remat_v_mul_lo_u16_e64 4184tracksRegLiveness: true 4185body: | 4186 bb.0: 4187 liveins: $vgpr0 4188 ; GCN-LABEL: name: test_remat_v_mul_lo_u16_e64 4189 ; GCN: liveins: $vgpr0 4190 ; GCN-NEXT: {{ $}} 4191 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 1, $vgpr0, implicit $exec 4192 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4193 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 2, $vgpr0, implicit $exec 4194 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4195 ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 3, $vgpr0, implicit $exec 4196 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4197 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4198 %0:vgpr_32 = COPY $vgpr0 4199 %1:vgpr_32 = V_MUL_LO_U16_e64 1, %0:vgpr_32, implicit $exec 4200 %2:vgpr_32 = V_MUL_LO_U16_e64 2, %0:vgpr_32, implicit $exec 4201 %3:vgpr_32 = V_MUL_LO_U16_e64 3, %0:vgpr_32, implicit $exec 4202 S_NOP 0, implicit %1 4203 S_NOP 0, implicit %2 4204 S_NOP 0, implicit %3 4205 S_ENDPGM 0, implicit %0 4206... 4207 4208--- 4209name: test_remat_v_add_f16_e32 4210tracksRegLiveness: true 4211body: | 4212 bb.0: 4213 liveins: $vgpr0 4214 ; GCN-LABEL: name: test_remat_v_add_f16_e32 4215 ; GCN: liveins: $vgpr0 4216 ; GCN-NEXT: {{ $}} 4217 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4218 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4219 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 2, $vgpr0, implicit $mode, implicit $exec 4220 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4221 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 3, $vgpr0, implicit $mode, implicit $exec 4222 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4223 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4224 %0:vgpr_32 = COPY $vgpr0 4225 %1:vgpr_32 = nofpexcept V_ADD_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec 4226 %2:vgpr_32 = nofpexcept V_ADD_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec 4227 %3:vgpr_32 = nofpexcept V_ADD_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec 4228 S_NOP 0, implicit %1 4229 S_NOP 0, implicit %2 4230 S_NOP 0, implicit %3 4231 S_ENDPGM 0, implicit %0 4232... 4233 4234--- 4235name: test_remat_v_add_f16_e64 4236tracksRegLiveness: true 4237body: | 4238 bb.0: 4239 liveins: $vgpr0 4240 ; GCN-LABEL: name: test_remat_v_add_f16_e64 4241 ; GCN: liveins: $vgpr0 4242 ; GCN-NEXT: {{ $}} 4243 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4244 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4245 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4246 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4247 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4248 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4249 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4250 %0:vgpr_32 = COPY $vgpr0 4251 %1:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4252 %2:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4253 %3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4254 S_NOP 0, implicit %1 4255 S_NOP 0, implicit %2 4256 S_NOP 0, implicit %3 4257 S_ENDPGM 0, implicit %0 4258... 4259 4260--- 4261name: test_remat_v_sub_f16_e32 4262tracksRegLiveness: true 4263body: | 4264 bb.0: 4265 liveins: $vgpr0 4266 ; GCN-LABEL: name: test_remat_v_sub_f16_e32 4267 ; GCN: liveins: $vgpr0 4268 ; GCN-NEXT: {{ $}} 4269 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4270 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4271 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 2, $vgpr0, implicit $mode, implicit $exec 4272 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4273 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 3, $vgpr0, implicit $mode, implicit $exec 4274 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4275 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4276 %0:vgpr_32 = COPY $vgpr0 4277 %1:vgpr_32 = nofpexcept V_SUB_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec 4278 %2:vgpr_32 = nofpexcept V_SUB_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec 4279 %3:vgpr_32 = nofpexcept V_SUB_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec 4280 S_NOP 0, implicit %1 4281 S_NOP 0, implicit %2 4282 S_NOP 0, implicit %3 4283 S_ENDPGM 0, implicit %0 4284... 4285 4286--- 4287name: test_remat_v_sub_f16_e64 4288tracksRegLiveness: true 4289body: | 4290 bb.0: 4291 liveins: $vgpr0 4292 ; GCN-LABEL: name: test_remat_v_sub_f16_e64 4293 ; GCN: liveins: $vgpr0 4294 ; GCN-NEXT: {{ $}} 4295 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4296 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4297 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4298 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4299 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4300 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4301 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4302 %0:vgpr_32 = COPY $vgpr0 4303 %1:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4304 %2:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4305 %3:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4306 S_NOP 0, implicit %1 4307 S_NOP 0, implicit %2 4308 S_NOP 0, implicit %3 4309 S_ENDPGM 0, implicit %0 4310... 4311 4312--- 4313name: test_remat_v_subrev_f16_e32 4314tracksRegLiveness: true 4315body: | 4316 bb.0: 4317 liveins: $vgpr0 4318 ; GCN-LABEL: name: test_remat_v_subrev_f16_e32 4319 ; GCN: liveins: $vgpr0 4320 ; GCN-NEXT: {{ $}} 4321 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4322 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4323 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 2, $vgpr0, implicit $mode, implicit $exec 4324 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4325 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 3, $vgpr0, implicit $mode, implicit $exec 4326 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4327 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4328 %0:vgpr_32 = COPY $vgpr0 4329 %1:vgpr_32 = nofpexcept V_SUBREV_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec 4330 %2:vgpr_32 = nofpexcept V_SUBREV_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec 4331 %3:vgpr_32 = nofpexcept V_SUBREV_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec 4332 S_NOP 0, implicit %1 4333 S_NOP 0, implicit %2 4334 S_NOP 0, implicit %3 4335 S_ENDPGM 0, implicit %0 4336... 4337 4338--- 4339name: test_remat_v_subrev_f16_e64 4340tracksRegLiveness: true 4341body: | 4342 bb.0: 4343 liveins: $vgpr0 4344 ; GCN-LABEL: name: test_remat_v_subrev_f16_e64 4345 ; GCN: liveins: $vgpr0 4346 ; GCN-NEXT: {{ $}} 4347 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4348 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4349 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4350 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4351 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4352 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4353 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4354 %0:vgpr_32 = COPY $vgpr0 4355 %1:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4356 %2:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4357 %3:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4358 S_NOP 0, implicit %1 4359 S_NOP 0, implicit %2 4360 S_NOP 0, implicit %3 4361 S_ENDPGM 0, implicit %0 4362... 4363 4364--- 4365name: test_remat_v_mul_f16_e32 4366tracksRegLiveness: true 4367body: | 4368 bb.0: 4369 liveins: $vgpr0 4370 ; GCN-LABEL: name: test_remat_v_mul_f16_e32 4371 ; GCN: liveins: $vgpr0 4372 ; GCN-NEXT: {{ $}} 4373 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4374 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4375 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 2, $vgpr0, implicit $mode, implicit $exec 4376 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4377 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 3, $vgpr0, implicit $mode, implicit $exec 4378 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4379 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4380 %0:vgpr_32 = COPY $vgpr0 4381 %1:vgpr_32 = nofpexcept V_MUL_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec 4382 %2:vgpr_32 = nofpexcept V_MUL_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec 4383 %3:vgpr_32 = nofpexcept V_MUL_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec 4384 S_NOP 0, implicit %1 4385 S_NOP 0, implicit %2 4386 S_NOP 0, implicit %3 4387 S_ENDPGM 0, implicit %0 4388... 4389 4390--- 4391name: test_remat_v_mul_f16_e64 4392tracksRegLiveness: true 4393body: | 4394 bb.0: 4395 liveins: $vgpr0 4396 ; GCN-LABEL: name: test_remat_v_mul_f16_e64 4397 ; GCN: liveins: $vgpr0 4398 ; GCN-NEXT: {{ $}} 4399 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4400 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4401 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4402 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4403 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4404 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4405 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4406 %0:vgpr_32 = COPY $vgpr0 4407 %1:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4408 %2:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4409 %3:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4410 S_NOP 0, implicit %1 4411 S_NOP 0, implicit %2 4412 S_NOP 0, implicit %3 4413 S_ENDPGM 0, implicit %0 4414... 4415 4416--- 4417name: test_remat_v_ldexp_f16_e32 4418tracksRegLiveness: true 4419body: | 4420 bb.0: 4421 liveins: $vgpr0, $vgpr1 4422 ; GCN-LABEL: name: test_remat_v_ldexp_f16_e32 4423 ; GCN: liveins: $vgpr0, $vgpr1 4424 ; GCN-NEXT: {{ $}} 4425 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4426 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4427 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4428 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4429 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4430 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4431 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4432 %0:vgpr_32 = COPY $vgpr0 4433 %1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, %0, implicit $mode, implicit $exec 4434 %2:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, %0, implicit $mode, implicit $exec 4435 %3:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, %0, implicit $mode, implicit $exec 4436 S_NOP 0, implicit %1 4437 S_NOP 0, implicit %2 4438 S_NOP 0, implicit %3 4439 S_ENDPGM 0, implicit %0 4440... 4441 4442--- 4443name: test_remat_v_ldexp_f16_e64 4444tracksRegLiveness: true 4445body: | 4446 bb.0: 4447 liveins: $vgpr0, $vgpr1 4448 ; GCN-LABEL: name: test_remat_v_ldexp_f16_e64 4449 ; GCN: liveins: $vgpr0, $vgpr1 4450 ; GCN-NEXT: {{ $}} 4451 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec 4452 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4453 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec 4454 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4455 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec 4456 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4457 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4458 %0:vgpr_32 = COPY $vgpr0 4459 %1:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, 1, 0, 0, implicit $mode, implicit $exec 4460 %2:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, 1, 0, 0, implicit $mode, implicit $exec 4461 %3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, 1, 0, 0, implicit $mode, implicit $exec 4462 S_NOP 0, implicit %1 4463 S_NOP 0, implicit %2 4464 S_NOP 0, implicit %3 4465 S_ENDPGM 0, implicit %0 4466... 4467 4468--- 4469name: test_remat_v_min_f16_e32 4470tracksRegLiveness: true 4471body: | 4472 bb.0: 4473 liveins: $vgpr0 4474 ; GCN-LABEL: name: test_remat_v_min_f16_e32 4475 ; GCN: liveins: $vgpr0 4476 ; GCN-NEXT: {{ $}} 4477 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4478 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4479 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 2, $vgpr0, implicit $mode, implicit $exec 4480 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4481 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 3, $vgpr0, implicit $mode, implicit $exec 4482 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4483 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4484 %0:vgpr_32 = COPY $vgpr0 4485 %1:vgpr_32 = nofpexcept V_MIN_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec 4486 %2:vgpr_32 = nofpexcept V_MIN_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec 4487 %3:vgpr_32 = nofpexcept V_MIN_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec 4488 S_NOP 0, implicit %1 4489 S_NOP 0, implicit %2 4490 S_NOP 0, implicit %3 4491 S_ENDPGM 0, implicit %0 4492... 4493 4494--- 4495name: test_remat_v_min_f16_e64 4496tracksRegLiveness: true 4497body: | 4498 bb.0: 4499 liveins: $vgpr0 4500 ; GCN-LABEL: name: test_remat_v_min_f16_e64 4501 ; GCN: liveins: $vgpr0 4502 ; GCN-NEXT: {{ $}} 4503 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4504 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4505 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4506 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4507 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4508 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4509 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4510 %0:vgpr_32 = COPY $vgpr0 4511 %1:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4512 %2:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4513 %3:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4514 S_NOP 0, implicit %1 4515 S_NOP 0, implicit %2 4516 S_NOP 0, implicit %3 4517 S_ENDPGM 0, implicit %0 4518... 4519 4520--- 4521name: test_remat_v_max_f16_e32 4522tracksRegLiveness: true 4523body: | 4524 bb.0: 4525 liveins: $vgpr0 4526 ; GCN-LABEL: name: test_remat_v_max_f16_e32 4527 ; GCN: liveins: $vgpr0 4528 ; GCN-NEXT: {{ $}} 4529 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 1, $vgpr0, implicit $mode, implicit $exec 4530 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4531 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 2, $vgpr0, implicit $mode, implicit $exec 4532 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4533 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 3, $vgpr0, implicit $mode, implicit $exec 4534 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4535 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4536 %0:vgpr_32 = COPY $vgpr0 4537 %1:vgpr_32 = nofpexcept V_MAX_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec 4538 %2:vgpr_32 = nofpexcept V_MAX_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec 4539 %3:vgpr_32 = nofpexcept V_MAX_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec 4540 S_NOP 0, implicit %1 4541 S_NOP 0, implicit %2 4542 S_NOP 0, implicit %3 4543 S_ENDPGM 0, implicit %0 4544... 4545 4546--- 4547name: test_remat_v_max_f16_e64 4548tracksRegLiveness: true 4549body: | 4550 bb.0: 4551 liveins: $vgpr0 4552 ; GCN-LABEL: name: test_remat_v_max_f16_e64 4553 ; GCN: liveins: $vgpr0 4554 ; GCN-NEXT: {{ $}} 4555 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4556 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4557 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4558 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4559 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec 4560 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4561 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4562 %0:vgpr_32 = COPY $vgpr0 4563 %1:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4564 %2:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4565 %3:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec 4566 S_NOP 0, implicit %1 4567 S_NOP 0, implicit %2 4568 S_NOP 0, implicit %3 4569 S_ENDPGM 0, implicit %0 4570... 4571 4572--- 4573name: test_remat_v_madak_f16 4574tracksRegLiveness: true 4575body: | 4576 bb.0: 4577 liveins: $vgpr0 4578 ; GCN-LABEL: name: test_remat_v_madak_f16 4579 ; GCN: liveins: $vgpr0 4580 ; GCN-NEXT: {{ $}} 4581 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 1, $vgpr0, 1, implicit $exec, implicit $mode 4582 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4583 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 2, $vgpr0, 2, implicit $exec, implicit $mode 4584 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4585 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 3, $vgpr0, 3, implicit $exec, implicit $mode 4586 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4587 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4588 %0:vgpr_32 = COPY $vgpr0 4589 %1:vgpr_32 = nofpexcept V_MADAK_F16 1, %0, 1, implicit $exec, implicit $mode 4590 %2:vgpr_32 = nofpexcept V_MADAK_F16 2, %0, 2, implicit $exec, implicit $mode 4591 %3:vgpr_32 = nofpexcept V_MADAK_F16 3, %0, 3, implicit $exec, implicit $mode 4592 S_NOP 0, implicit %1 4593 S_NOP 0, implicit %2 4594 S_NOP 0, implicit %3 4595 S_ENDPGM 0, implicit %0 4596... 4597 4598--- 4599name: test_remat_v_madmk_f16 4600tracksRegLiveness: true 4601body: | 4602 bb.0: 4603 liveins: $vgpr0, $vgpr1 4604 ; GCN-LABEL: name: test_remat_v_madmk_f16 4605 ; GCN: liveins: $vgpr0, $vgpr1 4606 ; GCN-NEXT: {{ $}} 4607 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 1, 1, $vgpr0, implicit $exec, implicit $mode 4608 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4609 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 2, 2, $vgpr0, implicit $exec, implicit $mode 4610 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4611 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 3, 3, $vgpr0, implicit $exec, implicit $mode 4612 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4613 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4614 %0:vgpr_32 = COPY $vgpr0 4615 %1:vgpr_32 = nofpexcept V_MADMK_F16 1, 1, %0, implicit $exec, implicit $mode 4616 %2:vgpr_32 = nofpexcept V_MADMK_F16 2, 2, %0, implicit $exec, implicit $mode 4617 %3:vgpr_32 = nofpexcept V_MADMK_F16 3, 3, %0, implicit $exec, implicit $mode 4618 S_NOP 0, implicit %1 4619 S_NOP 0, implicit %2 4620 S_NOP 0, implicit %3 4621 S_ENDPGM 0, implicit %0 4622... 4623 4624--- 4625name: test_remat_v_fmamk_f16 4626tracksRegLiveness: true 4627body: | 4628 bb.0: 4629 liveins: $vgpr0, $vgpr1 4630 ; GCN-LABEL: name: test_remat_v_fmamk_f16 4631 ; GCN: liveins: $vgpr0, $vgpr1 4632 ; GCN-NEXT: {{ $}} 4633 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 1, 1, $vgpr0, implicit $exec, implicit $mode 4634 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4635 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 2, 2, $vgpr0, implicit $exec, implicit $mode 4636 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4637 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 3, 3, $vgpr0, implicit $exec, implicit $mode 4638 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4639 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4640 %0:vgpr_32 = COPY $vgpr0 4641 %1:vgpr_32 = nofpexcept V_FMAMK_F16 1, 1, %0, implicit $exec, implicit $mode 4642 %2:vgpr_32 = nofpexcept V_FMAMK_F16 2, 2, %0, implicit $exec, implicit $mode 4643 %3:vgpr_32 = nofpexcept V_FMAMK_F16 3, 3, %0, implicit $exec, implicit $mode 4644 S_NOP 0, implicit %1 4645 S_NOP 0, implicit %2 4646 S_NOP 0, implicit %3 4647 S_ENDPGM 0, implicit %0 4648... 4649 4650--- 4651name: test_remat_v_pk_mad_i16 4652tracksRegLiveness: true 4653body: | 4654 bb.0: 4655 liveins: $vgpr0 4656 ; GCN-LABEL: name: test_remat_v_pk_mad_i16 4657 ; GCN: liveins: $vgpr0 4658 ; GCN-NEXT: {{ $}} 4659 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAD_I16 8, $vgpr0, 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4660 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4661 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAD_I16 9, $vgpr0, 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4662 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4663 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAD_I16 10, $vgpr0, 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4664 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4665 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4666 %0:vgpr_32 = COPY $vgpr0 4667 4668 %1:vgpr_32 = V_PK_MAD_I16 8, %0, 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4669 %2:vgpr_32 = V_PK_MAD_I16 9, %0, 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4670 %3:vgpr_32 = V_PK_MAD_I16 10, %0, 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4671 S_NOP 0, implicit %1 4672 S_NOP 0, implicit %2 4673 S_NOP 0, implicit %3 4674 S_ENDPGM 0, implicit %0 4675... 4676 4677--- 4678name: test_remat_v_pk_mad_u16 4679tracksRegLiveness: true 4680body: | 4681 bb.0: 4682 liveins: $vgpr0 4683 ; GCN-LABEL: name: test_remat_v_pk_mad_u16 4684 ; GCN: liveins: $vgpr0 4685 ; GCN-NEXT: {{ $}} 4686 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAD_U16 8, $vgpr0, 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4687 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4688 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAD_U16 9, $vgpr0, 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4689 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4690 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAD_U16 10, $vgpr0, 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4691 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4692 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4693 %0:vgpr_32 = COPY $vgpr0 4694 4695 %1:vgpr_32 = V_PK_MAD_U16 8, %0, 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4696 %2:vgpr_32 = V_PK_MAD_U16 9, %0, 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4697 %3:vgpr_32 = V_PK_MAD_U16 10, %0, 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4698 S_NOP 0, implicit %1 4699 S_NOP 0, implicit %2 4700 S_NOP 0, implicit %3 4701 S_ENDPGM 0, implicit %0 4702... 4703 4704--- 4705name: test_remat_v_pk_add_u16 4706tracksRegLiveness: true 4707body: | 4708 bb.0: 4709 liveins: $vgpr0 4710 ; GCN-LABEL: name: test_remat_v_pk_add_u16 4711 ; GCN: liveins: $vgpr0 4712 ; GCN-NEXT: {{ $}} 4713 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_U16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4714 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4715 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_U16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4716 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4717 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_U16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4718 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4719 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4720 %0:vgpr_32 = COPY $vgpr0 4721 4722 %1:vgpr_32 = V_PK_ADD_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4723 %2:vgpr_32 = V_PK_ADD_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4724 %3:vgpr_32 = V_PK_ADD_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4725 S_NOP 0, implicit %1 4726 S_NOP 0, implicit %2 4727 S_NOP 0, implicit %3 4728 S_ENDPGM 0, implicit %0 4729... 4730 4731--- 4732name: test_remat_v_pk_add_i16 4733tracksRegLiveness: true 4734body: | 4735 bb.0: 4736 liveins: $vgpr0 4737 ; GCN-LABEL: name: test_remat_v_pk_add_i16 4738 ; GCN: liveins: $vgpr0 4739 ; GCN-NEXT: {{ $}} 4740 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_I16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4741 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4742 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_I16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4743 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4744 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_I16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4745 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4746 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4747 %0:vgpr_32 = COPY $vgpr0 4748 4749 %1:vgpr_32 = V_PK_ADD_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4750 %2:vgpr_32 = V_PK_ADD_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4751 %3:vgpr_32 = V_PK_ADD_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4752 S_NOP 0, implicit %1 4753 S_NOP 0, implicit %2 4754 S_NOP 0, implicit %3 4755 S_ENDPGM 0, implicit %0 4756... 4757 4758--- 4759name: test_remat_v_pk_mul_lo_u16 4760tracksRegLiveness: true 4761body: | 4762 bb.0: 4763 liveins: $vgpr0 4764 ; GCN-LABEL: name: test_remat_v_pk_mul_lo_u16 4765 ; GCN: liveins: $vgpr0 4766 ; GCN-NEXT: {{ $}} 4767 ; GCN-NEXT: renamable $vgpr1 = V_PK_MUL_LO_U16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4768 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4769 ; GCN-NEXT: renamable $vgpr1 = V_PK_MUL_LO_U16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4770 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4771 ; GCN-NEXT: renamable $vgpr1 = V_PK_MUL_LO_U16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4772 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4773 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4774 %0:vgpr_32 = COPY $vgpr0 4775 4776 %1:vgpr_32 = V_PK_MUL_LO_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4777 %2:vgpr_32 = V_PK_MUL_LO_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4778 %3:vgpr_32 = V_PK_MUL_LO_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4779 S_NOP 0, implicit %1 4780 S_NOP 0, implicit %2 4781 S_NOP 0, implicit %3 4782 S_ENDPGM 0, implicit %0 4783... 4784 4785--- 4786name: test_remat_v_pk_min_i16 4787tracksRegLiveness: true 4788body: | 4789 bb.0: 4790 liveins: $vgpr0 4791 ; GCN-LABEL: name: test_remat_v_pk_min_i16 4792 ; GCN: liveins: $vgpr0 4793 ; GCN-NEXT: {{ $}} 4794 ; GCN-NEXT: renamable $vgpr1 = V_PK_MIN_I16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4795 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4796 ; GCN-NEXT: renamable $vgpr1 = V_PK_MIN_I16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4797 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4798 ; GCN-NEXT: renamable $vgpr1 = V_PK_MIN_I16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4799 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4800 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4801 %0:vgpr_32 = COPY $vgpr0 4802 4803 %1:vgpr_32 = V_PK_MIN_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4804 %2:vgpr_32 = V_PK_MIN_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4805 %3:vgpr_32 = V_PK_MIN_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4806 S_NOP 0, implicit %1 4807 S_NOP 0, implicit %2 4808 S_NOP 0, implicit %3 4809 S_ENDPGM 0, implicit %0 4810... 4811 4812--- 4813name: test_remat_v_pk_max_i16 4814tracksRegLiveness: true 4815body: | 4816 bb.0: 4817 liveins: $vgpr0 4818 ; GCN-LABEL: name: test_remat_v_pk_max_i16 4819 ; GCN: liveins: $vgpr0 4820 ; GCN-NEXT: {{ $}} 4821 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAX_I16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4822 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4823 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAX_I16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4824 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4825 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAX_I16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4826 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4827 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4828 %0:vgpr_32 = COPY $vgpr0 4829 4830 %1:vgpr_32 = V_PK_MAX_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4831 %2:vgpr_32 = V_PK_MAX_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4832 %3:vgpr_32 = V_PK_MAX_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4833 S_NOP 0, implicit %1 4834 S_NOP 0, implicit %2 4835 S_NOP 0, implicit %3 4836 S_ENDPGM 0, implicit %0 4837... 4838 4839--- 4840name: test_remat_v_pk_min_u16 4841tracksRegLiveness: true 4842body: | 4843 bb.0: 4844 liveins: $vgpr0 4845 ; GCN-LABEL: name: test_remat_v_pk_min_u16 4846 ; GCN: liveins: $vgpr0 4847 ; GCN-NEXT: {{ $}} 4848 ; GCN-NEXT: renamable $vgpr1 = V_PK_MIN_U16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4849 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4850 ; GCN-NEXT: renamable $vgpr1 = V_PK_MIN_U16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4851 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4852 ; GCN-NEXT: renamable $vgpr1 = V_PK_MIN_U16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4853 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4854 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4855 %0:vgpr_32 = COPY $vgpr0 4856 4857 %1:vgpr_32 = V_PK_MIN_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4858 %2:vgpr_32 = V_PK_MIN_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4859 %3:vgpr_32 = V_PK_MIN_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4860 S_NOP 0, implicit %1 4861 S_NOP 0, implicit %2 4862 S_NOP 0, implicit %3 4863 S_ENDPGM 0, implicit %0 4864... 4865 4866--- 4867name: test_remat_v_pk_max_u16 4868tracksRegLiveness: true 4869body: | 4870 bb.0: 4871 liveins: $vgpr0 4872 ; GCN-LABEL: name: test_remat_v_pk_max_u16 4873 ; GCN: liveins: $vgpr0 4874 ; GCN-NEXT: {{ $}} 4875 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAX_U16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4876 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4877 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAX_U16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4878 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4879 ; GCN-NEXT: renamable $vgpr1 = V_PK_MAX_U16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4880 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4881 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4882 %0:vgpr_32 = COPY $vgpr0 4883 4884 %1:vgpr_32 = V_PK_MAX_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4885 %2:vgpr_32 = V_PK_MAX_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4886 %3:vgpr_32 = V_PK_MAX_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4887 S_NOP 0, implicit %1 4888 S_NOP 0, implicit %2 4889 S_NOP 0, implicit %3 4890 S_ENDPGM 0, implicit %0 4891... 4892 4893--- 4894name: test_remat_v_pk_sub_u16 4895tracksRegLiveness: true 4896body: | 4897 bb.0: 4898 liveins: $vgpr0 4899 ; GCN-LABEL: name: test_remat_v_pk_sub_u16 4900 ; GCN: liveins: $vgpr0 4901 ; GCN-NEXT: {{ $}} 4902 ; GCN-NEXT: renamable $vgpr1 = V_PK_SUB_U16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4903 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4904 ; GCN-NEXT: renamable $vgpr1 = V_PK_SUB_U16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4905 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4906 ; GCN-NEXT: renamable $vgpr1 = V_PK_SUB_U16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4907 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4908 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4909 %0:vgpr_32 = COPY $vgpr0 4910 4911 %1:vgpr_32 = V_PK_SUB_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4912 %2:vgpr_32 = V_PK_SUB_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4913 %3:vgpr_32 = V_PK_SUB_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4914 S_NOP 0, implicit %1 4915 S_NOP 0, implicit %2 4916 S_NOP 0, implicit %3 4917 S_ENDPGM 0, implicit %0 4918... 4919 4920--- 4921name: test_remat_v_pk_sub_i16 4922tracksRegLiveness: true 4923body: | 4924 bb.0: 4925 liveins: $vgpr0 4926 ; GCN-LABEL: name: test_remat_v_pk_sub_i16 4927 ; GCN: liveins: $vgpr0 4928 ; GCN-NEXT: {{ $}} 4929 ; GCN-NEXT: renamable $vgpr1 = V_PK_SUB_I16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4930 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4931 ; GCN-NEXT: renamable $vgpr1 = V_PK_SUB_I16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4932 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4933 ; GCN-NEXT: renamable $vgpr1 = V_PK_SUB_I16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4934 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4935 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4936 %0:vgpr_32 = COPY $vgpr0 4937 4938 %1:vgpr_32 = V_PK_SUB_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4939 %2:vgpr_32 = V_PK_SUB_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4940 %3:vgpr_32 = V_PK_SUB_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4941 S_NOP 0, implicit %1 4942 S_NOP 0, implicit %2 4943 S_NOP 0, implicit %3 4944 S_ENDPGM 0, implicit %0 4945... 4946 4947--- 4948name: test_remat_v_pk_lshlrev_b16 4949tracksRegLiveness: true 4950body: | 4951 bb.0: 4952 liveins: $vgpr0 4953 ; GCN-LABEL: name: test_remat_v_pk_lshlrev_b16 4954 ; GCN: liveins: $vgpr0 4955 ; GCN-NEXT: {{ $}} 4956 ; GCN-NEXT: renamable $vgpr1 = V_PK_LSHLREV_B16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4957 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4958 ; GCN-NEXT: renamable $vgpr1 = V_PK_LSHLREV_B16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4959 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4960 ; GCN-NEXT: renamable $vgpr1 = V_PK_LSHLREV_B16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4961 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4962 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4963 %0:vgpr_32 = COPY $vgpr0 4964 4965 %1:vgpr_32 = V_PK_LSHLREV_B16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4966 %2:vgpr_32 = V_PK_LSHLREV_B16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4967 %3:vgpr_32 = V_PK_LSHLREV_B16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4968 S_NOP 0, implicit %1 4969 S_NOP 0, implicit %2 4970 S_NOP 0, implicit %3 4971 S_ENDPGM 0, implicit %0 4972... 4973 4974--- 4975name: test_remat_v_pk_ashrrev_i16 4976tracksRegLiveness: true 4977body: | 4978 bb.0: 4979 liveins: $vgpr0 4980 ; GCN-LABEL: name: test_remat_v_pk_ashrrev_i16 4981 ; GCN: liveins: $vgpr0 4982 ; GCN-NEXT: {{ $}} 4983 ; GCN-NEXT: renamable $vgpr1 = V_PK_ASHRREV_I16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4984 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4985 ; GCN-NEXT: renamable $vgpr1 = V_PK_ASHRREV_I16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4986 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4987 ; GCN-NEXT: renamable $vgpr1 = V_PK_ASHRREV_I16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 4988 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 4989 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 4990 %0:vgpr_32 = COPY $vgpr0 4991 4992 %1:vgpr_32 = V_PK_ASHRREV_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 4993 %2:vgpr_32 = V_PK_ASHRREV_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 4994 %3:vgpr_32 = V_PK_ASHRREV_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 4995 S_NOP 0, implicit %1 4996 S_NOP 0, implicit %2 4997 S_NOP 0, implicit %3 4998 S_ENDPGM 0, implicit %0 4999... 5000 5001--- 5002name: test_remat_v_pk_lshrrev_b16 5003tracksRegLiveness: true 5004body: | 5005 bb.0: 5006 liveins: $vgpr0 5007 ; GCN-LABEL: name: test_remat_v_pk_lshrrev_b16 5008 ; GCN: liveins: $vgpr0 5009 ; GCN-NEXT: {{ $}} 5010 ; GCN-NEXT: renamable $vgpr1 = V_PK_LSHRREV_B16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 5011 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5012 ; GCN-NEXT: renamable $vgpr1 = V_PK_LSHRREV_B16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 5013 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5014 ; GCN-NEXT: renamable $vgpr1 = V_PK_LSHRREV_B16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $exec 5015 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5016 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5017 %0:vgpr_32 = COPY $vgpr0 5018 5019 %1:vgpr_32 = V_PK_LSHRREV_B16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec 5020 %2:vgpr_32 = V_PK_LSHRREV_B16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec 5021 %3:vgpr_32 = V_PK_LSHRREV_B16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec 5022 S_NOP 0, implicit %1 5023 S_NOP 0, implicit %2 5024 S_NOP 0, implicit %3 5025 S_ENDPGM 0, implicit %0 5026... 5027 5028--- 5029name: test_remat_v_pk_add_f16 5030tracksRegLiveness: true 5031body: | 5032 bb.0: 5033 liveins: $vgpr0 5034 ; GCN-LABEL: name: test_remat_v_pk_add_f16 5035 ; GCN: liveins: $vgpr0 5036 ; GCN-NEXT: {{ $}} 5037 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_ADD_F16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5038 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5039 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_ADD_F16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5040 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5041 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_ADD_F16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5042 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5043 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5044 %0:vgpr_32 = COPY $vgpr0 5045 5046 %1:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5047 %2:vgpr_32 = nofpexcept V_PK_ADD_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5048 %3:vgpr_32 = nofpexcept V_PK_ADD_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5049 S_NOP 0, implicit %1 5050 S_NOP 0, implicit %2 5051 S_NOP 0, implicit %3 5052 S_ENDPGM 0, implicit %0 5053... 5054 5055# Missing nofpexcept 5056--- 5057name: test_no_remat_v_pk_add_f16 5058tracksRegLiveness: true 5059machineFunctionInfo: 5060 stackPtrOffsetReg: $sgpr32 5061body: | 5062 bb.0: 5063 liveins: $vgpr0 5064 ; GCN-LABEL: name: test_no_remat_v_pk_add_f16 5065 ; GCN: liveins: $vgpr0 5066 ; GCN-NEXT: {{ $}} 5067 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_F16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5068 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) 5069 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_F16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5070 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) 5071 ; GCN-NEXT: renamable $vgpr1 = V_PK_ADD_F16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5072 ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) 5073 ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) 5074 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5075 ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) 5076 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5077 ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) 5078 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5079 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5080 %0:vgpr_32 = COPY $vgpr0 5081 5082 %1:vgpr_32 = V_PK_ADD_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5083 %2:vgpr_32 = V_PK_ADD_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5084 %3:vgpr_32 = V_PK_ADD_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5085 S_NOP 0, implicit %1 5086 S_NOP 0, implicit %2 5087 S_NOP 0, implicit %3 5088 S_ENDPGM 0, implicit %0 5089... 5090 5091--- 5092name: test_remat_v_pk_mul_f16 5093tracksRegLiveness: true 5094body: | 5095 bb.0: 5096 liveins: $vgpr0 5097 ; GCN-LABEL: name: test_remat_v_pk_mul_f16 5098 ; GCN: liveins: $vgpr0 5099 ; GCN-NEXT: {{ $}} 5100 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MUL_F16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5101 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5102 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MUL_F16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5103 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5104 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MUL_F16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5105 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5106 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5107 %0:vgpr_32 = COPY $vgpr0 5108 5109 %1:vgpr_32 = nofpexcept V_PK_MUL_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5110 %2:vgpr_32 = nofpexcept V_PK_MUL_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5111 %3:vgpr_32 = nofpexcept V_PK_MUL_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5112 S_NOP 0, implicit %1 5113 S_NOP 0, implicit %2 5114 S_NOP 0, implicit %3 5115 S_ENDPGM 0, implicit %0 5116... 5117 5118--- 5119name: test_remat_v_pk_min_f16 5120tracksRegLiveness: true 5121body: | 5122 bb.0: 5123 liveins: $vgpr0 5124 ; GCN-LABEL: name: test_remat_v_pk_min_f16 5125 ; GCN: liveins: $vgpr0 5126 ; GCN-NEXT: {{ $}} 5127 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MIN_F16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5128 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5129 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MIN_F16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5130 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5131 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MIN_F16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5132 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5133 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5134 %0:vgpr_32 = COPY $vgpr0 5135 5136 %1:vgpr_32 = nofpexcept V_PK_MIN_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5137 %2:vgpr_32 = nofpexcept V_PK_MIN_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5138 %3:vgpr_32 = nofpexcept V_PK_MIN_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5139 S_NOP 0, implicit %1 5140 S_NOP 0, implicit %2 5141 S_NOP 0, implicit %3 5142 S_ENDPGM 0, implicit %0 5143... 5144 5145--- 5146name: test_remat_v_pk_max_f16 5147tracksRegLiveness: true 5148body: | 5149 bb.0: 5150 liveins: $vgpr0 5151 ; GCN-LABEL: name: test_remat_v_pk_max_f16 5152 ; GCN: liveins: $vgpr0 5153 ; GCN-NEXT: {{ $}} 5154 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MAX_F16 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5155 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5156 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MAX_F16 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5157 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5158 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_MAX_F16 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5159 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5160 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5161 %0:vgpr_32 = COPY $vgpr0 5162 5163 %1:vgpr_32 = nofpexcept V_PK_MAX_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5164 %2:vgpr_32 = nofpexcept V_PK_MAX_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5165 %3:vgpr_32 = nofpexcept V_PK_MAX_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5166 S_NOP 0, implicit %1 5167 S_NOP 0, implicit %2 5168 S_NOP 0, implicit %3 5169 S_ENDPGM 0, implicit %0 5170... 5171 5172--- 5173name: test_remat_v_pk_fma_f16 5174tracksRegLiveness: true 5175body: | 5176 bb.0: 5177 liveins: $vgpr0 5178 ; GCN-LABEL: name: test_remat_v_pk_fma_f16 5179 ; GCN: liveins: $vgpr0 5180 ; GCN-NEXT: {{ $}} 5181 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_FMA_F16 8, $vgpr0, 8, $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5182 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5183 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_FMA_F16 9, $vgpr0, 9, $vgpr0, 9, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5184 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5185 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_PK_FMA_F16 10, $vgpr0, 10, $vgpr0, 10, $vgpr0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5186 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5187 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5188 %0:vgpr_32 = COPY $vgpr0 5189 %1:vgpr_32 = nofpexcept V_PK_FMA_F16 8, %0, 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5190 %2:vgpr_32 = nofpexcept V_PK_FMA_F16 9, %0, 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5191 %3:vgpr_32 = nofpexcept V_PK_FMA_F16 10, %0, 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5192 5193 S_NOP 0, implicit %1 5194 S_NOP 0, implicit %2 5195 S_NOP 0, implicit %3 5196 S_ENDPGM 0, implicit %0 5197... 5198 5199--- 5200name: test_remat_v_mad_mix_f32 5201tracksRegLiveness: true 5202body: | 5203 bb.0: 5204 liveins: $vgpr0 5205 ; GCN-LABEL: name: test_remat_v_mad_mix_f32 5206 ; GCN: liveins: $vgpr0 5207 ; GCN-NEXT: {{ $}} 5208 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAD_MIX_F32 8, $vgpr0, 8, $vgpr0, 8, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec 5209 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5210 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAD_MIX_F32 9, $vgpr0, 9, $vgpr0, 9, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec 5211 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5212 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAD_MIX_F32 10, $vgpr0, 10, $vgpr0, 10, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec 5213 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5214 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5215 %0:vgpr_32 = COPY $vgpr0 5216 %1:vgpr_32 = nofpexcept V_MAD_MIX_F32 8, %0, 8, %0, 8, %0, 0, 0, 0, implicit $mode, implicit $exec 5217 %2:vgpr_32 = nofpexcept V_MAD_MIX_F32 9, %0, 9, %0, 9, %0, 0, 0, 0, implicit $mode, implicit $exec 5218 %3:vgpr_32 = nofpexcept V_MAD_MIX_F32 10, %0, 10, %0, 10, %0, 0, 0, 0, implicit $mode, implicit $exec 5219 S_NOP 0, implicit %1 5220 S_NOP 0, implicit %2 5221 S_NOP 0, implicit %3 5222 S_ENDPGM 0, implicit %0 5223... 5224 5225--- 5226name: test_remat_v_fma_mix_f32 5227tracksRegLiveness: true 5228body: | 5229 bb.0: 5230 liveins: $vgpr0 5231 ; GCN-LABEL: name: test_remat_v_fma_mix_f32 5232 ; GCN: liveins: $vgpr0 5233 ; GCN-NEXT: {{ $}} 5234 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMA_MIX_F32 8, $vgpr0, 8, $vgpr0, 8, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec 5235 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5236 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMA_MIX_F32 9, $vgpr0, 9, $vgpr0, 9, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec 5237 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5238 ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMA_MIX_F32 10, $vgpr0, 10, $vgpr0, 10, $vgpr0, 0, 0, 0, implicit $mode, implicit $exec 5239 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5240 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 5241 %0:vgpr_32 = COPY $vgpr0 5242 %1:vgpr_32 = nofpexcept V_FMA_MIX_F32 8, %0, 8, %0, 8, %0, 0, 0, 0, implicit $mode, implicit $exec 5243 %2:vgpr_32 = nofpexcept V_FMA_MIX_F32 9, %0, 9, %0, 9, %0, 0, 0, 0, implicit $mode, implicit $exec 5244 %3:vgpr_32 = nofpexcept V_FMA_MIX_F32 10, %0, 10, %0, 10, %0, 0, 0, 0, implicit $mode, implicit $exec 5245 S_NOP 0, implicit %1 5246 S_NOP 0, implicit %2 5247 S_NOP 0, implicit %3 5248 S_ENDPGM 0, implicit %0 5249... 5250 5251--- 5252name: test_remat_v_pk_fma_f32 5253tracksRegLiveness: true 5254body: | 5255 bb.0: 5256 liveins: $vgpr0_vgpr1 5257 ; GCN-LABEL: name: test_remat_v_pk_fma_f32 5258 ; GCN: liveins: $vgpr0_vgpr1 5259 ; GCN-NEXT: {{ $}} 5260 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_FMA_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5261 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5262 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_FMA_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5263 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5264 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_FMA_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5265 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5266 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0_vgpr1 5267 %0:vreg_64_align2 = COPY $vgpr0_vgpr1 5268 %1:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5269 %2:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5270 %3:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5271 S_NOP 0, implicit %1 5272 S_NOP 0, implicit %2 5273 S_NOP 0, implicit %3 5274 S_ENDPGM 0, implicit %0 5275... 5276 5277--- 5278name: test_no_remat_v_pk_fma_f32 5279tracksRegLiveness: true 5280machineFunctionInfo: 5281 stackPtrOffsetReg: $sgpr32 5282body: | 5283 bb.0: 5284 liveins: $vgpr0_vgpr1 5285 ; GCN-LABEL: name: test_no_remat_v_pk_fma_f32 5286 ; GCN: liveins: $vgpr0_vgpr1 5287 ; GCN-NEXT: {{ $}} 5288 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_PK_FMA_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5289 ; GCN-NEXT: SI_SPILL_V64_SAVE killed $vgpr2_vgpr3, %stack.1, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.1, align 4, addrspace 5) 5290 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_PK_FMA_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5291 ; GCN-NEXT: SI_SPILL_V64_SAVE killed $vgpr2_vgpr3, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, align 4, addrspace 5) 5292 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_PK_FMA_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, $vgpr0_vgpr1, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5293 ; GCN-NEXT: SI_SPILL_V64_SAVE killed $vgpr2_vgpr3, %stack.2, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.2, align 4, addrspace 5) 5294 ; GCN-NEXT: renamable $vgpr2_vgpr3 = SI_SPILL_V64_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s64) from %stack.1, align 4, addrspace 5) 5295 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5296 ; GCN-NEXT: renamable $vgpr2_vgpr3 = SI_SPILL_V64_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s64) from %stack.0, align 4, addrspace 5) 5297 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5298 ; GCN-NEXT: renamable $vgpr2_vgpr3 = SI_SPILL_V64_RESTORE %stack.2, $sgpr32, 0, implicit $exec :: (load (s64) from %stack.2, align 4, addrspace 5) 5299 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5300 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0_vgpr1 5301 %0:vreg_64_align2 = COPY $vgpr0_vgpr1 5302 %1:vreg_64_align2 = V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5303 %2:vreg_64_align2 = V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5304 %3:vreg_64_align2 = V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec 5305 S_NOP 0, implicit %1 5306 S_NOP 0, implicit %2 5307 S_NOP 0, implicit %3 5308 S_ENDPGM 0, implicit %0 5309... 5310 5311--- 5312name: test_remat_v_pk_mul_f32 5313tracksRegLiveness: true 5314body: | 5315 bb.0: 5316 liveins: $vgpr0_vgpr1 5317 ; GCN-LABEL: name: test_remat_v_pk_mul_f32 5318 ; GCN: liveins: $vgpr0_vgpr1 5319 ; GCN-NEXT: {{ $}} 5320 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_MUL_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5321 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5322 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_MUL_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5323 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5324 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_MUL_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5325 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5326 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0_vgpr1 5327 %0:vreg_64_align2 = COPY $vgpr0_vgpr1 5328 %1:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5329 %2:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5330 %3:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5331 S_NOP 0, implicit %1 5332 S_NOP 0, implicit %2 5333 S_NOP 0, implicit %3 5334 S_ENDPGM 0, implicit %0 5335... 5336 5337--- 5338name: test_remat_v_pk_add_f32 5339tracksRegLiveness: true 5340body: | 5341 bb.0: 5342 liveins: $vgpr0_vgpr1 5343 ; GCN-LABEL: name: test_remat_v_pk_add_f32 5344 ; GCN: liveins: $vgpr0_vgpr1 5345 ; GCN-NEXT: {{ $}} 5346 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_ADD_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5347 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5348 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_ADD_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5349 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5350 ; GCN-NEXT: renamable $vgpr2_vgpr3 = nofpexcept V_PK_ADD_F32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5351 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5352 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0_vgpr1 5353 %0:vreg_64_align2 = COPY $vgpr0_vgpr1 5354 %1:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5355 %2:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5356 %3:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec 5357 S_NOP 0, implicit %1 5358 S_NOP 0, implicit %2 5359 S_NOP 0, implicit %3 5360 S_ENDPGM 0, implicit %0 5361... 5362 5363--- 5364name: test_remat_v_pk_mov_b32 5365tracksRegLiveness: true 5366body: | 5367 bb.0: 5368 liveins: $vgpr0_vgpr1 5369 ; GCN-LABEL: name: test_remat_v_pk_mov_b32 5370 ; GCN: liveins: $vgpr0_vgpr1 5371 ; GCN-NEXT: {{ $}} 5372 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_PK_MOV_B32 8, $vgpr0_vgpr1, 8, $vgpr0_vgpr1, 11, 0, 0, 0, 0, implicit $exec 5373 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5374 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_PK_MOV_B32 9, $vgpr0_vgpr1, 9, $vgpr0_vgpr1, 12, 0, 0, 0, 0, implicit $exec 5375 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5376 ; GCN-NEXT: renamable $vgpr2_vgpr3 = V_PK_MOV_B32 10, $vgpr0_vgpr1, 10, $vgpr0_vgpr1, 13, 0, 0, 0, 0, implicit $exec 5377 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr2_vgpr3 5378 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0_vgpr1 5379 %0:vreg_64_align2 = COPY $vgpr0_vgpr1 5380 %1:vreg_64_align2 = V_PK_MOV_B32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $exec 5381 %2:vreg_64_align2 = V_PK_MOV_B32 9, %0, 9, %0, 12, 0, 0, 0, 0, implicit $exec 5382 %3:vreg_64_align2 = V_PK_MOV_B32 10, %0, 10, %0, 13, 0, 0, 0, 0, implicit $exec 5383 S_NOP 0, implicit %1 5384 S_NOP 0, implicit %2 5385 S_NOP 0, implicit %3 5386 S_ENDPGM 0, implicit %0 5387... 5388 5389# Make sure there's no verifier error after making a subregister def dead. The 5390# dead interval still needs a subrange. 5391 5392--- 5393name: test_remat_subreg_def 5394tracksRegLiveness: true 5395body: | 5396 bb.0: 5397 ; GCN-LABEL: name: test_remat_subreg_def 5398 ; GCN: renamable $vgpr1 = V_MOV_B32_e32 1, implicit $exec 5399 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e32 3, implicit $exec 5400 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 5401 ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 5402 ; GCN-NEXT: renamable $vgpr0 = V_MOV_B32_e32 2, implicit $exec 5403 ; GCN-NEXT: S_NOP 0, implicit renamable $vgpr0_vgpr1 5404 ; GCN-NEXT: S_ENDPGM 0 5405 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec 5406 undef %1.sub0:vreg_64 = V_MOV_B32_e32 2, implicit $exec 5407 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec 5408 S_NOP 0, implicit %0 5409 S_NOP 0, implicit %2 5410 S_NOP 0, implicit %1 5411 S_ENDPGM 0 5412... 5413