5419 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# 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 %s3 4---5name: test_remat_v_mov_b32_e326tracksRegLiveness: true7body: |8 bb.0:9 ; GCN-LABEL: name: test_remat_v_mov_b32_e3210 ; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec11 ; GCN-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2, implicit $exec12 ; GCN-NEXT: [[V_MOV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 3, implicit $exec13 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_]]14 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_1]]15 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_2]]16 ; GCN-NEXT: S_ENDPGM 017 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec18 %1:vgpr_32 = V_MOV_B32_e32 2, implicit $exec19 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec20 S_NOP 0, implicit %021 S_NOP 0, implicit %122 S_NOP 0, implicit %223 S_ENDPGM 024...25---26name: test_no_remat_v_mov_b32_e32_impuse27tracksRegLiveness: true28machineFunctionInfo:29 stackPtrOffsetReg: $sgpr3230body: |31 bb.0:32 ; GCN-LABEL: name: test_no_remat_v_mov_b32_e32_impuse33 ; GCN: $m0 = IMPLICIT_DEF34 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec, implicit $m035 ; GCN-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2, implicit $exec, implicit $m036 ; GCN-NEXT: [[V_MOV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 3, implicit $exec, implicit $m037 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_]]38 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_1]]39 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_2]]40 ; GCN-NEXT: S_ENDPGM 041 $m0 = IMPLICIT_DEF42 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec, implicit $m043 %1:vgpr_32 = V_MOV_B32_e32 2, implicit $exec, implicit $m044 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec, implicit $m045 S_NOP 0, implicit %046 S_NOP 0, implicit %147 S_NOP 0, implicit %248 S_ENDPGM 049...50---51name: test_remat_v_mov_b32_e32_exec_def52tracksRegLiveness: true53machineFunctionInfo:54 stackPtrOffsetReg: $sgpr3255body: |56 bb.0:57 ; GCN-LABEL: name: test_remat_v_mov_b32_e32_exec_def58 ; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec59 ; GCN-NEXT: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2, implicit $exec60 ; GCN-NEXT: [[V_MOV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 3, implicit $exec61 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_]]62 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_1]]63 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_2]]64 ; GCN-NEXT: $exec = S_ANDN2_B64_term $exec, undef renamable $sgpr0_sgpr1, implicit-def $scc65 ; GCN-NEXT: S_ENDPGM 066 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec67 %1:vgpr_32 = V_MOV_B32_e32 2, implicit $exec68 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec69 S_NOP 0, implicit %070 S_NOP 0, implicit %171 S_NOP 0, implicit %272 $exec = S_ANDN2_B64_term $exec, undef %4:sreg_64, implicit-def $scc73 S_ENDPGM 074...75---76name: test_remat_v_mov_b32_e6477tracksRegLiveness: true78body: |79 bb.0:80 ; GCN-LABEL: name: test_remat_v_mov_b32_e6481 ; GCN: [[V_MOV_B32_e64_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e64 1, implicit $exec82 ; GCN-NEXT: [[V_MOV_B32_e64_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e64 2, implicit $exec83 ; GCN-NEXT: [[V_MOV_B32_e64_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e64 3, implicit $exec84 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e64_]]85 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e64_1]]86 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e64_2]]87 ; GCN-NEXT: S_ENDPGM 088 %0:vgpr_32 = V_MOV_B32_e64 1, implicit $exec89 %1:vgpr_32 = V_MOV_B32_e64 2, implicit $exec90 %2:vgpr_32 = V_MOV_B32_e64 3, implicit $exec91 S_NOP 0, implicit %092 S_NOP 0, implicit %193 S_NOP 0, implicit %294 S_ENDPGM 095...96---97name: test_no_remat_v_mov_b32_dpp98tracksRegLiveness: true99machineFunctionInfo:100 stackPtrOffsetReg: $sgpr32101body: |102 bb.0:103 ; GCN-LABEL: name: test_no_remat_v_mov_b32_dpp104 ; GCN: [[V_MOV_B32_dpp:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp undef [[V_MOV_B32_dpp]], undef %1:vgpr_32, 1, 15, 15, 1, implicit $exec105 ; GCN-NEXT: [[V_MOV_B32_dpp1:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp undef [[V_MOV_B32_dpp1]], undef %1:vgpr_32, 1, 15, 15, 1, implicit $exec106 ; GCN-NEXT: [[V_MOV_B32_dpp2:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp undef [[V_MOV_B32_dpp2]], undef %1:vgpr_32, 1, 15, 15, 1, implicit $exec107 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_dpp]]108 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_dpp1]]109 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_dpp2]]110 ; GCN-NEXT: S_ENDPGM 0111 %1:vgpr_32 = V_MOV_B32_dpp undef %1:vgpr_32, undef %0:vgpr_32, 1, 15, 15, 1, implicit $exec112 %2:vgpr_32 = V_MOV_B32_dpp undef %2:vgpr_32, undef %0:vgpr_32, 1, 15, 15, 1, implicit $exec113 %3:vgpr_32 = V_MOV_B32_dpp undef %3:vgpr_32, undef %0:vgpr_32, 1, 15, 15, 1, implicit $exec114 S_NOP 0, implicit %1115 S_NOP 0, implicit %2116 S_NOP 0, implicit %3117 S_ENDPGM 0118...119---120name: test_remat_v_accvgpr_read_b32121tracksRegLiveness: true122body: |123 bb.0:124 ; GCN-LABEL: name: test_remat_v_accvgpr_read_b32125 ; GCN: [[V_ACCVGPR_READ_B32_e64_:%[0-9]+]]:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec126 ; GCN-NEXT: [[V_ACCVGPR_READ_B32_e64_1:%[0-9]+]]:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec127 ; GCN-NEXT: [[V_ACCVGPR_READ_B32_e64_2:%[0-9]+]]:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec128 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_READ_B32_e64_]]129 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_READ_B32_e64_1]]130 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_READ_B32_e64_2]]131 ; GCN-NEXT: S_ENDPGM 0132 %0:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec133 %1:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec134 %2:vgpr_32 = V_ACCVGPR_READ_B32_e64 undef $agpr0, implicit $exec135 S_NOP 0, implicit %0136 S_NOP 0, implicit %1137 S_NOP 0, implicit %2138 S_ENDPGM 0139...140---141name: test_remat_v_accvgpr_write_b32142tracksRegLiveness: true143body: |144 bb.0:145 ; GCN-LABEL: name: test_remat_v_accvgpr_write_b32146 ; GCN: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec147 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_1:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec148 ; GCN-NEXT: [[V_ACCVGPR_WRITE_B32_e64_2:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 3, implicit $exec149 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_WRITE_B32_e64_]]150 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_WRITE_B32_e64_1]]151 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_WRITE_B32_e64_2]]152 ; GCN-NEXT: S_ENDPGM 0153 %0:agpr_32 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec154 %1:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec155 %2:agpr_32 = V_ACCVGPR_WRITE_B32_e64 3, implicit $exec156 S_NOP 0, implicit %0157 S_NOP 0, implicit %1158 S_NOP 0, implicit %2159 S_ENDPGM 0160...161---162name: test_remat_v_mov_b64_pseudo163tracksRegLiveness: true164body: |165 bb.0:166 ; GCN-LABEL: name: test_remat_v_mov_b64_pseudo167 ; GCN: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1, implicit $exec168 ; GCN-NEXT: [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 2, implicit $exec169 ; GCN-NEXT: [[V_MOV_B2:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 3, implicit $exec170 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B]]171 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B1]]172 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B2]]173 ; GCN-NEXT: S_ENDPGM 0174 %0:vreg_64_align2 = V_MOV_B64_PSEUDO 1, implicit $exec175 %1:vreg_64_align2 = V_MOV_B64_PSEUDO 2, implicit $exec176 %2:vreg_64_align2 = V_MOV_B64_PSEUDO 3, implicit $exec177 S_NOP 0, implicit %0178 S_NOP 0, implicit %1179 S_NOP 0, implicit %2180 S_ENDPGM 0181...182---183name: test_remat_v_cvt_i32_f64_e32184tracksRegLiveness: true185body: |186 bb.0:187 ; GCN-LABEL: name: test_remat_v_cvt_i32_f64_e32188 ; GCN: [[V_CVT_I32_F64_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode189 ; GCN-NEXT: [[V_CVT_I32_F64_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode190 ; GCN-NEXT: [[V_CVT_I32_F64_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode191 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_]]192 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_1]]193 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_2]]194 ; GCN-NEXT: S_ENDPGM 0195 %0:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode196 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode197 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode198 S_NOP 0, implicit %0199 S_NOP 0, implicit %1200 S_NOP 0, implicit %2201 S_ENDPGM 0202...203---204machineFunctionInfo:205 stackPtrOffsetReg: $sgpr32206name: test_no_remat_v_cvt_i32_f64_e32_fp_except207tracksRegLiveness: true208body: |209 bb.0:210 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_fp_except211 ; GCN: [[V_CVT_I32_F64_e32_:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode212 ; GCN-NEXT: [[V_CVT_I32_F64_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode213 ; GCN-NEXT: [[V_CVT_I32_F64_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode214 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_]]215 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_1]]216 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_2]]217 ; GCN-NEXT: S_ENDPGM 0218 %0:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode219 %1:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode220 %2:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode221 S_NOP 0, implicit %0222 S_NOP 0, implicit %1223 S_NOP 0, implicit %2224 S_ENDPGM 0225...226---227# Cannot rematerialize if MODE register is modified anywhere228name: test_no_remat_v_cvt_i32_f64_e32_mode_def229tracksRegLiveness: true230machineFunctionInfo:231 stackPtrOffsetReg: $sgpr32232body: |233 bb.0:234 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_mode_def235 ; GCN: $mode = IMPLICIT_DEF236 ; GCN-NEXT: [[V_CVT_I32_F64_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode237 ; GCN-NEXT: [[V_CVT_I32_F64_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode238 ; GCN-NEXT: [[V_CVT_I32_F64_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode239 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_]]240 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_1]]241 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_2]]242 ; GCN-NEXT: S_ENDPGM 0243 $mode = IMPLICIT_DEF244 %0:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode245 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode246 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode247 S_NOP 0, implicit %0248 S_NOP 0, implicit %1249 S_NOP 0, implicit %2250 S_ENDPGM 0251...252---253name: test_remat_v_cvt_i32_f64_e64254tracksRegLiveness: true255body: |256 bb.0:257 ; GCN-LABEL: name: test_remat_v_cvt_i32_f64_e64258 ; GCN: [[V_CVT_I32_F64_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 1, 0, 0, implicit $exec, implicit $mode259 ; GCN-NEXT: [[V_CVT_I32_F64_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 2, 0, 0, implicit $exec, implicit $mode260 ; GCN-NEXT: [[V_CVT_I32_F64_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 3, 0, 0, implicit $exec, implicit $mode261 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e64_]]262 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e64_1]]263 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e64_2]]264 ; GCN-NEXT: S_ENDPGM 0265 %0:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 1, 0, 0, implicit $exec, implicit $mode266 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 2, 0, 0, implicit $exec, implicit $mode267 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, 3, 0, 0, implicit $exec, implicit $mode268 S_NOP 0, implicit %0269 S_NOP 0, implicit %1270 S_NOP 0, implicit %2271 S_ENDPGM 0272...273---274name: test_remat_v_cvt_i32_f64_e64_undef275tracksRegLiveness: true276machineFunctionInfo:277 stackPtrOffsetReg: $sgpr32278body: |279 bb.0:280 ; GCN-LABEL: name: test_remat_v_cvt_i32_f64_e64_undef281 ; GCN: [[V_CVT_I32_F64_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode282 ; GCN-NEXT: [[V_CVT_I32_F64_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode283 ; GCN-NEXT: [[V_CVT_I32_F64_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode284 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e64_]]285 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e64_1]]286 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e64_2]]287 ; GCN-NEXT: S_ENDPGM 0288 %1:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode289 %2:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode290 %3:vgpr_32 = nofpexcept V_CVT_I32_F64_e64 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode291 S_NOP 0, implicit %1292 S_NOP 0, implicit %2293 S_NOP 0, implicit %3294 S_ENDPGM 0295...296---297name: test_no_remat_v_cvt_i32_f64_dpp298tracksRegLiveness: true299machineFunctionInfo:300 stackPtrOffsetReg: $sgpr32301body: |302 bb.0:303 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_dpp304 ; GCN: [[V_CVT_I32_F64_dpp:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_dpp undef [[V_CVT_I32_F64_dpp]], 0, undef %1:vreg_64_align2, 336, 0, 0, 0, implicit $exec, implicit $mode305 ; GCN-NEXT: [[V_CVT_I32_F64_dpp1:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_dpp undef [[V_CVT_I32_F64_dpp1]], 0, undef %1:vreg_64_align2, 336, 0, 0, 0, implicit $exec, implicit $mode306 ; GCN-NEXT: [[V_CVT_I32_F64_dpp2:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_dpp undef [[V_CVT_I32_F64_dpp2]], 0, undef %1:vreg_64_align2, 336, 0, 0, 0, implicit $exec, implicit $mode307 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_dpp]]308 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_dpp1]]309 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_dpp2]]310 ; GCN-NEXT: S_ENDPGM 0311 %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 $mode312 %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 $mode313 %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 $mode314 S_NOP 0, implicit %1315 S_NOP 0, implicit %2316 S_NOP 0, implicit %3317 S_ENDPGM 0318...319---320name: test_no_remat_v_cvt_i32_f64_e32_imp_def321tracksRegLiveness: true322machineFunctionInfo:323 stackPtrOffsetReg: $sgpr32324body: |325 bb.0:326 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_imp_def327 ; GCN: [[V_CVT_I32_F64_e32_:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit-def $m0328 ; GCN-NEXT: [[V_CVT_I32_F64_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit-def $m0329 ; GCN-NEXT: [[V_CVT_I32_F64_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit-def $m0330 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_]]331 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_1]]332 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_2]]333 ; GCN-NEXT: S_ENDPGM 0334 %0:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit-def $m0335 %1:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit-def $m0336 %2:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit-def $m0337 S_NOP 0, implicit %0338 S_NOP 0, implicit %1339 S_NOP 0, implicit %2340 S_ENDPGM 0341...342---343name: test_no_remat_v_cvt_i32_f64_e32_imp_use344tracksRegLiveness: true345machineFunctionInfo:346 stackPtrOffsetReg: $sgpr32347body: |348 bb.0:349 ; GCN-LABEL: name: test_no_remat_v_cvt_i32_f64_e32_imp_use350 ; GCN: [[V_CVT_I32_F64_e32_:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit $m0351 ; GCN-NEXT: [[V_CVT_I32_F64_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit $m0352 ; GCN-NEXT: [[V_CVT_I32_F64_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit $m0353 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_]]354 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_1]]355 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F64_e32_2]]356 ; GCN-NEXT: S_ENDPGM 0357 %0:vgpr_32 = V_CVT_I32_F64_e32 1, implicit $exec, implicit $mode, implicit $m0358 %1:vgpr_32 = V_CVT_I32_F64_e32 2, implicit $exec, implicit $mode, implicit $m0359 %2:vgpr_32 = V_CVT_I32_F64_e32 3, implicit $exec, implicit $mode, implicit $m0360 S_NOP 0, implicit %0361 S_NOP 0, implicit %1362 S_NOP 0, implicit %2363 S_ENDPGM 0364...365---366name: test_remat_v_cvt_f64_i32_e32367tracksRegLiveness: true368body: |369 bb.0:370 ; GCN-LABEL: name: test_remat_v_cvt_f64_i32_e32371 ; GCN: [[V_CVT_F64_I32_e32_:%[0-9]+]]:vreg_64_align2 = V_CVT_F64_I32_e32 1, implicit $exec, implicit $mode372 ; GCN-NEXT: [[V_CVT_F64_I32_e32_1:%[0-9]+]]:vreg_64_align2 = V_CVT_F64_I32_e32 2, implicit $exec, implicit $mode373 ; GCN-NEXT: [[V_CVT_F64_I32_e32_2:%[0-9]+]]:vreg_64_align2 = V_CVT_F64_I32_e32 3, implicit $exec, implicit $mode374 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_I32_e32_]]375 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_I32_e32_1]]376 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_I32_e32_2]]377 ; GCN-NEXT: S_ENDPGM 0378 %0:vreg_64_align2 = V_CVT_F64_I32_e32 1, implicit $exec, implicit $mode379 %1:vreg_64_align2 = V_CVT_F64_I32_e32 2, implicit $exec, implicit $mode380 %2:vreg_64_align2 = V_CVT_F64_I32_e32 3, implicit $exec, implicit $mode381 S_NOP 0, implicit %0382 S_NOP 0, implicit %1383 S_NOP 0, implicit %2384 S_ENDPGM 0385...386---387name: test_remat_v_cvt_f32_f64_e32388tracksRegLiveness: true389body: |390 bb.0:391 ; GCN-LABEL: name: test_remat_v_cvt_f32_f64_e32392 ; GCN: [[V_CVT_F32_F64_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 1, implicit $exec, implicit $mode393 ; GCN-NEXT: [[V_CVT_F32_F64_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 2, implicit $exec, implicit $mode394 ; GCN-NEXT: [[V_CVT_F32_F64_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 3, implicit $exec, implicit $mode395 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_F64_e32_]]396 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_F64_e32_1]]397 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_F64_e32_2]]398 ; GCN-NEXT: S_ENDPGM 0399 %0:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 1, implicit $exec, implicit $mode400 %1:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 2, implicit $exec, implicit $mode401 %2:vgpr_32 = nofpexcept V_CVT_F32_F64_e32 3, implicit $exec, implicit $mode402 S_NOP 0, implicit %0403 S_NOP 0, implicit %1404 S_NOP 0, implicit %2405 S_ENDPGM 0406...407---408name: test_remat_v_cvt_f64_f32_e32409tracksRegLiveness: true410body: |411 bb.0:412 ; GCN-LABEL: name: test_remat_v_cvt_f64_f32_e32413 ; GCN: [[V_CVT_F64_F32_e32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 1, implicit $exec, implicit $mode414 ; GCN-NEXT: [[V_CVT_F64_F32_e32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 2, implicit $exec, implicit $mode415 ; GCN-NEXT: [[V_CVT_F64_F32_e32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 3, implicit $exec, implicit $mode416 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_F32_e32_]]417 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_F32_e32_1]]418 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_F32_e32_2]]419 ; GCN-NEXT: S_ENDPGM 0420 %0:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 1, implicit $exec, implicit $mode421 %1:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 2, implicit $exec, implicit $mode422 %2:vreg_64_align2 = nofpexcept V_CVT_F64_F32_e32 3, implicit $exec, implicit $mode423 S_NOP 0, implicit %0424 S_NOP 0, implicit %1425 S_NOP 0, implicit %2426 S_ENDPGM 0427...428---429name: test_remat_v_cvt_u32_f64_e32430tracksRegLiveness: true431body: |432 bb.0:433 ; GCN-LABEL: name: test_remat_v_cvt_u32_f64_e32434 ; GCN: [[V_CVT_U32_F64_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 1, implicit $exec, implicit $mode435 ; GCN-NEXT: [[V_CVT_U32_F64_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 2, implicit $exec, implicit $mode436 ; GCN-NEXT: [[V_CVT_U32_F64_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 3, implicit $exec, implicit $mode437 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_U32_F64_e32_]]438 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_U32_F64_e32_1]]439 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_U32_F64_e32_2]]440 ; GCN-NEXT: S_ENDPGM 0441 %0:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 1, implicit $exec, implicit $mode442 %1:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 2, implicit $exec, implicit $mode443 %2:vgpr_32 = nofpexcept V_CVT_U32_F64_e32 3, implicit $exec, implicit $mode444 S_NOP 0, implicit %0445 S_NOP 0, implicit %1446 S_NOP 0, implicit %2447 S_ENDPGM 0448...449---450name: test_remat_v_cvt_f64_u32_e32451tracksRegLiveness: true452body: |453 bb.0:454 ; GCN-LABEL: name: test_remat_v_cvt_f64_u32_e32455 ; GCN: [[V_CVT_F64_U32_e32_:%[0-9]+]]:vreg_64_align2 = V_CVT_F64_U32_e32 1, implicit $exec, implicit $mode456 ; GCN-NEXT: [[V_CVT_F64_U32_e32_1:%[0-9]+]]:vreg_64_align2 = V_CVT_F64_U32_e32 2, implicit $exec, implicit $mode457 ; GCN-NEXT: [[V_CVT_F64_U32_e32_2:%[0-9]+]]:vreg_64_align2 = V_CVT_F64_U32_e32 3, implicit $exec, implicit $mode458 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_U32_e32_]]459 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_U32_e32_1]]460 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F64_U32_e32_2]]461 ; GCN-NEXT: S_ENDPGM 0462 %0:vreg_64_align2 = V_CVT_F64_U32_e32 1, implicit $exec, implicit $mode463 %1:vreg_64_align2 = V_CVT_F64_U32_e32 2, implicit $exec, implicit $mode464 %2:vreg_64_align2 = V_CVT_F64_U32_e32 3, implicit $exec, implicit $mode465 S_NOP 0, implicit %0466 S_NOP 0, implicit %1467 S_NOP 0, implicit %2468 S_ENDPGM 0469...470---471name: test_remat_v_cvt_f32_i32_e32472tracksRegLiveness: true473body: |474 bb.0:475 ; GCN-LABEL: name: test_remat_v_cvt_f32_i32_e32476 ; GCN: [[V_CVT_F32_I32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_e32 1, implicit $exec, implicit $mode477 ; GCN-NEXT: [[V_CVT_F32_I32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_e32 2, implicit $exec, implicit $mode478 ; GCN-NEXT: [[V_CVT_F32_I32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_e32 3, implicit $exec, implicit $mode479 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_e32_]]480 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_e32_1]]481 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_e32_2]]482 ; GCN-NEXT: S_ENDPGM 0483 %0:vgpr_32 = V_CVT_F32_I32_e32 1, implicit $exec, implicit $mode484 %1:vgpr_32 = V_CVT_F32_I32_e32 2, implicit $exec, implicit $mode485 %2:vgpr_32 = V_CVT_F32_I32_e32 3, implicit $exec, implicit $mode486 S_NOP 0, implicit %0487 S_NOP 0, implicit %1488 S_NOP 0, implicit %2489 S_ENDPGM 0490...491---492name: test_remat_v_cvt_f32_i32_sdwa493tracksRegLiveness: true494body: |495 bb.0:496 ; GCN-LABEL: name: test_remat_v_cvt_f32_i32_sdwa497 ; GCN: [[V_CVT_F32_I32_sdwa:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode498 ; GCN-NEXT: [[V_CVT_F32_I32_sdwa1:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode499 ; GCN-NEXT: [[V_CVT_F32_I32_sdwa2:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode500 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_sdwa]]501 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_sdwa1]]502 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_sdwa2]]503 ; GCN-NEXT: S_ENDPGM 0504 %1:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode505 %2:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode506 %3:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %0:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit $mode507 S_NOP 0, implicit %1508 S_NOP 0, implicit %2509 S_NOP 0, implicit %3510 S_ENDPGM 0511...512---513# SDWA instruction with UNUSED_PRESERVE cannot be rematerialized due to partial514# dst write. This is handled because it always has a tied-def implicit operand.515name: test_no_remat_v_cvt_f32_i32_sdwa_dst_unused_preserve516tracksRegLiveness: true517machineFunctionInfo:518 stackPtrOffsetReg: $sgpr32519body: |520 bb.0:521 ; GCN-LABEL: name: test_no_remat_v_cvt_f32_i32_sdwa_dst_unused_preserve522 ; GCN: [[V_CVT_F32_I32_sdwa:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %1:vgpr_32, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef [[V_CVT_F32_I32_sdwa]](tied-def 0)523 ; GCN-NEXT: [[V_CVT_F32_I32_sdwa1:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %1:vgpr_32, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef [[V_CVT_F32_I32_sdwa1]](tied-def 0)524 ; GCN-NEXT: [[V_CVT_F32_I32_sdwa2:%[0-9]+]]:vgpr_32 = V_CVT_F32_I32_sdwa 0, undef %1:vgpr_32, 0, 0, 0, 2, 0, implicit $exec, implicit $mode, implicit undef [[V_CVT_F32_I32_sdwa2]](tied-def 0)525 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_sdwa]]526 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_sdwa1]]527 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_I32_sdwa2]]528 ; GCN-NEXT: S_ENDPGM 0529 %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)530 %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)531 %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)532 S_NOP 0, implicit %1533 S_NOP 0, implicit %2534 S_NOP 0, implicit %3535 S_ENDPGM 0536...537---538name: test_remat_v_cvt_f32_u32_e32539tracksRegLiveness: true540body: |541 bb.0:542 ; GCN-LABEL: name: test_remat_v_cvt_f32_u32_e32543 ; GCN: [[V_CVT_F32_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 1, implicit $exec, implicit $mode544 ; GCN-NEXT: [[V_CVT_F32_U32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 2, implicit $exec, implicit $mode545 ; GCN-NEXT: [[V_CVT_F32_U32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_F32_U32_e32 3, implicit $exec, implicit $mode546 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_U32_e32_]]547 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_U32_e32_1]]548 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_U32_e32_2]]549 ; GCN-NEXT: S_ENDPGM 0550 %0:vgpr_32 = V_CVT_F32_U32_e32 1, implicit $exec, implicit $mode551 %1:vgpr_32 = V_CVT_F32_U32_e32 2, implicit $exec, implicit $mode552 %2:vgpr_32 = V_CVT_F32_U32_e32 3, implicit $exec, implicit $mode553 S_NOP 0, implicit %0554 S_NOP 0, implicit %1555 S_NOP 0, implicit %2556 S_ENDPGM 0557...558---559name: test_remat_v_cvt_u32_f32_e32560tracksRegLiveness: true561body: |562 bb.0:563 ; GCN-LABEL: name: test_remat_v_cvt_u32_f32_e32564 ; GCN: [[V_CVT_U32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 1, implicit $exec, implicit $mode565 ; GCN-NEXT: [[V_CVT_U32_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 2, implicit $exec, implicit $mode566 ; GCN-NEXT: [[V_CVT_U32_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 3, implicit $exec, implicit $mode567 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_U32_F32_e32_]]568 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_U32_F32_e32_1]]569 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_U32_F32_e32_2]]570 ; GCN-NEXT: S_ENDPGM 0571 %0:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 1, implicit $exec, implicit $mode572 %1:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 2, implicit $exec, implicit $mode573 %2:vgpr_32 = nofpexcept V_CVT_U32_F32_e32 3, implicit $exec, implicit $mode574 S_NOP 0, implicit %0575 S_NOP 0, implicit %1576 S_NOP 0, implicit %2577 S_ENDPGM 0578...579---580name: test_remat_v_cvt_i32_f32_e32581tracksRegLiveness: true582body: |583 bb.0:584 ; GCN-LABEL: name: test_remat_v_cvt_i32_f32_e32585 ; GCN: [[V_CVT_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 1, implicit $exec, implicit $mode586 ; GCN-NEXT: [[V_CVT_I32_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 2, implicit $exec, implicit $mode587 ; GCN-NEXT: [[V_CVT_I32_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 3, implicit $exec, implicit $mode588 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F32_e32_]]589 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F32_e32_1]]590 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_I32_F32_e32_2]]591 ; GCN-NEXT: S_ENDPGM 0592 %0:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 1, implicit $exec, implicit $mode593 %1:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 2, implicit $exec, implicit $mode594 %2:vgpr_32 = nofpexcept V_CVT_I32_F32_e32 3, implicit $exec, implicit $mode595 S_NOP 0, implicit %0596 S_NOP 0, implicit %1597 S_NOP 0, implicit %2598 S_ENDPGM 0599...600---601name: test_remat_v_cvt_f32_f16_e32602tracksRegLiveness: true603body: |604 bb.0:605 ; GCN-LABEL: name: test_remat_v_cvt_f32_f16_e32606 ; GCN: [[V_CVT_F32_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 1, implicit $exec, implicit $mode607 ; GCN-NEXT: [[V_CVT_F32_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 2, implicit $exec, implicit $mode608 ; GCN-NEXT: [[V_CVT_F32_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 3, implicit $exec, implicit $mode609 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_F16_e32_]]610 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_F16_e32_1]]611 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_F16_e32_2]]612 ; GCN-NEXT: S_ENDPGM 0613 %0:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 1, implicit $exec, implicit $mode614 %1:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 2, implicit $exec, implicit $mode615 %2:vgpr_32 = nofpexcept V_CVT_F32_F16_e32 3, implicit $exec, implicit $mode616 S_NOP 0, implicit %0617 S_NOP 0, implicit %1618 S_NOP 0, implicit %2619 S_ENDPGM 0620...621---622name: test_remat_v_cvt_rpi_i32_f32_e32623tracksRegLiveness: true624body: |625 bb.0:626 ; GCN-LABEL: name: test_remat_v_cvt_rpi_i32_f32_e32627 ; GCN: [[V_CVT_RPI_I32_F32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_RPI_I32_F32_e32 1, implicit $exec, implicit $mode628 ; GCN-NEXT: [[V_CVT_RPI_I32_F32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_RPI_I32_F32_e32 2, implicit $exec, implicit $mode629 ; GCN-NEXT: [[V_CVT_RPI_I32_F32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_RPI_I32_F32_e32 3, implicit $exec, implicit $mode630 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_RPI_I32_F32_e32_]]631 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_RPI_I32_F32_e32_1]]632 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_RPI_I32_F32_e32_2]]633 ; GCN-NEXT: S_ENDPGM 0634 %0:vgpr_32 = V_CVT_RPI_I32_F32_e32 1, implicit $exec, implicit $mode635 %1:vgpr_32 = V_CVT_RPI_I32_F32_e32 2, implicit $exec, implicit $mode636 %2:vgpr_32 = V_CVT_RPI_I32_F32_e32 3, implicit $exec, implicit $mode637 S_NOP 0, implicit %0638 S_NOP 0, implicit %1639 S_NOP 0, implicit %2640 S_ENDPGM 0641...642---643name: test_remat_v_cvt_flr_i32_f32_e32644tracksRegLiveness: true645body: |646 bb.0:647 ; GCN-LABEL: name: test_remat_v_cvt_flr_i32_f32_e32648 ; GCN: [[V_CVT_FLR_I32_F32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_FLR_I32_F32_e32 1, implicit $exec, implicit $mode649 ; GCN-NEXT: [[V_CVT_FLR_I32_F32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_FLR_I32_F32_e32 2, implicit $exec, implicit $mode650 ; GCN-NEXT: [[V_CVT_FLR_I32_F32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_FLR_I32_F32_e32 3, implicit $exec, implicit $mode651 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_FLR_I32_F32_e32_]]652 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_FLR_I32_F32_e32_1]]653 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_FLR_I32_F32_e32_2]]654 ; GCN-NEXT: S_ENDPGM 0655 %0:vgpr_32 = V_CVT_FLR_I32_F32_e32 1, implicit $exec, implicit $mode656 %1:vgpr_32 = V_CVT_FLR_I32_F32_e32 2, implicit $exec, implicit $mode657 %2:vgpr_32 = V_CVT_FLR_I32_F32_e32 3, implicit $exec, implicit $mode658 S_NOP 0, implicit %0659 S_NOP 0, implicit %1660 S_NOP 0, implicit %2661 S_ENDPGM 0662...663---664name: test_remat_v_cvt_off_f32_i4_e32665tracksRegLiveness: true666body: |667 bb.0:668 ; GCN-LABEL: name: test_remat_v_cvt_off_f32_i4_e32669 ; GCN: [[V_CVT_OFF_F32_I4_e32_:%[0-9]+]]:vgpr_32 = V_CVT_OFF_F32_I4_e32 1, implicit $exec, implicit $mode670 ; GCN-NEXT: [[V_CVT_OFF_F32_I4_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_OFF_F32_I4_e32 2, implicit $exec, implicit $mode671 ; GCN-NEXT: [[V_CVT_OFF_F32_I4_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_OFF_F32_I4_e32 3, implicit $exec, implicit $mode672 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_OFF_F32_I4_e32_]]673 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_OFF_F32_I4_e32_1]]674 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_OFF_F32_I4_e32_2]]675 ; GCN-NEXT: S_ENDPGM 0676 %0:vgpr_32 = V_CVT_OFF_F32_I4_e32 1, implicit $exec, implicit $mode677 %1:vgpr_32 = V_CVT_OFF_F32_I4_e32 2, implicit $exec, implicit $mode678 %2:vgpr_32 = V_CVT_OFF_F32_I4_e32 3, implicit $exec, implicit $mode679 S_NOP 0, implicit %0680 S_NOP 0, implicit %1681 S_NOP 0, implicit %2682 S_ENDPGM 0683...684---685name: test_remat_v_cvt_f32_ubyte0_e32686tracksRegLiveness: true687body: |688 bb.0:689 ; GCN-LABEL: name: test_remat_v_cvt_f32_ubyte0_e32690 ; GCN: [[V_CVT_F32_UBYTE0_e32_:%[0-9]+]]:vgpr_32 = V_CVT_F32_UBYTE0_e32 1, implicit $exec, implicit $mode691 ; GCN-NEXT: [[V_CVT_F32_UBYTE0_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_F32_UBYTE0_e32 2, implicit $exec, implicit $mode692 ; GCN-NEXT: [[V_CVT_F32_UBYTE0_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_F32_UBYTE0_e32 3, implicit $exec, implicit $mode693 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_UBYTE0_e32_]]694 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_UBYTE0_e32_1]]695 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_F32_UBYTE0_e32_2]]696 ; GCN-NEXT: S_ENDPGM 0697 %0:vgpr_32 = V_CVT_F32_UBYTE0_e32 1, implicit $exec, implicit $mode698 %1:vgpr_32 = V_CVT_F32_UBYTE0_e32 2, implicit $exec, implicit $mode699 %2:vgpr_32 = V_CVT_F32_UBYTE0_e32 3, implicit $exec, implicit $mode700 S_NOP 0, implicit %0701 S_NOP 0, implicit %1702 S_NOP 0, implicit %2703 S_ENDPGM 0704...705---706name: test_remat_v_fract_f32_e32707tracksRegLiveness: true708body: |709 bb.0:710 ; GCN-LABEL: name: test_remat_v_fract_f32_e32711 ; GCN: [[V_FRACT_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FRACT_F32_e32 1, implicit $exec, implicit $mode712 ; GCN-NEXT: [[V_FRACT_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FRACT_F32_e32 2, implicit $exec, implicit $mode713 ; GCN-NEXT: [[V_FRACT_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FRACT_F32_e32 3, implicit $exec, implicit $mode714 ; GCN-NEXT: S_NOP 0, implicit [[V_FRACT_F32_e32_]]715 ; GCN-NEXT: S_NOP 0, implicit [[V_FRACT_F32_e32_1]]716 ; GCN-NEXT: S_NOP 0, implicit [[V_FRACT_F32_e32_2]]717 ; GCN-NEXT: S_ENDPGM 0718 %0:vgpr_32 = nofpexcept V_FRACT_F32_e32 1, implicit $exec, implicit $mode719 %1:vgpr_32 = nofpexcept V_FRACT_F32_e32 2, implicit $exec, implicit $mode720 %2:vgpr_32 = nofpexcept V_FRACT_F32_e32 3, implicit $exec, implicit $mode721 S_NOP 0, implicit %0722 S_NOP 0, implicit %1723 S_NOP 0, implicit %2724 S_ENDPGM 0725...726---727name: test_remat_v_trunc_f32_e32728tracksRegLiveness: true729body: |730 bb.0:731 ; GCN-LABEL: name: test_remat_v_trunc_f32_e32732 ; GCN: [[V_TRUNC_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_TRUNC_F32_e32 1, implicit $exec, implicit $mode733 ; GCN-NEXT: [[V_TRUNC_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_TRUNC_F32_e32 2, implicit $exec, implicit $mode734 ; GCN-NEXT: [[V_TRUNC_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_TRUNC_F32_e32 3, implicit $exec, implicit $mode735 ; GCN-NEXT: S_NOP 0, implicit [[V_TRUNC_F32_e32_]]736 ; GCN-NEXT: S_NOP 0, implicit [[V_TRUNC_F32_e32_1]]737 ; GCN-NEXT: S_NOP 0, implicit [[V_TRUNC_F32_e32_2]]738 ; GCN-NEXT: S_ENDPGM 0739 %0:vgpr_32 = nofpexcept V_TRUNC_F32_e32 1, implicit $exec, implicit $mode740 %1:vgpr_32 = nofpexcept V_TRUNC_F32_e32 2, implicit $exec, implicit $mode741 %2:vgpr_32 = nofpexcept V_TRUNC_F32_e32 3, implicit $exec, implicit $mode742 S_NOP 0, implicit %0743 S_NOP 0, implicit %1744 S_NOP 0, implicit %2745 S_ENDPGM 0746...747---748name: test_remat_v_ceil_f32_e32749tracksRegLiveness: true750body: |751 bb.0:752 ; GCN-LABEL: name: test_remat_v_ceil_f32_e32753 ; GCN: [[V_CEIL_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F32_e32 1, implicit $exec, implicit $mode754 ; GCN-NEXT: [[V_CEIL_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F32_e32 2, implicit $exec, implicit $mode755 ; GCN-NEXT: [[V_CEIL_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CEIL_F32_e32 3, implicit $exec, implicit $mode756 ; GCN-NEXT: S_NOP 0, implicit [[V_CEIL_F32_e32_]]757 ; GCN-NEXT: S_NOP 0, implicit [[V_CEIL_F32_e32_1]]758 ; GCN-NEXT: S_NOP 0, implicit [[V_CEIL_F32_e32_2]]759 ; GCN-NEXT: S_ENDPGM 0760 %0:vgpr_32 = nofpexcept V_CEIL_F32_e32 1, implicit $exec, implicit $mode761 %1:vgpr_32 = nofpexcept V_CEIL_F32_e32 2, implicit $exec, implicit $mode762 %2:vgpr_32 = nofpexcept V_CEIL_F32_e32 3, implicit $exec, implicit $mode763 S_NOP 0, implicit %0764 S_NOP 0, implicit %1765 S_NOP 0, implicit %2766 S_ENDPGM 0767...768---769name: test_remat_v_rndne_f32_e32770tracksRegLiveness: true771body: |772 bb.0:773 ; GCN-LABEL: name: test_remat_v_rndne_f32_e32774 ; GCN: [[V_RNDNE_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_RNDNE_F32_e32 1, implicit $exec, implicit $mode775 ; GCN-NEXT: [[V_RNDNE_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_RNDNE_F32_e32 2, implicit $exec, implicit $mode776 ; GCN-NEXT: [[V_RNDNE_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_RNDNE_F32_e32 3, implicit $exec, implicit $mode777 ; GCN-NEXT: S_NOP 0, implicit [[V_RNDNE_F32_e32_]]778 ; GCN-NEXT: S_NOP 0, implicit [[V_RNDNE_F32_e32_1]]779 ; GCN-NEXT: S_NOP 0, implicit [[V_RNDNE_F32_e32_2]]780 ; GCN-NEXT: S_ENDPGM 0781 %0:vgpr_32 = nofpexcept V_RNDNE_F32_e32 1, implicit $exec, implicit $mode782 %1:vgpr_32 = nofpexcept V_RNDNE_F32_e32 2, implicit $exec, implicit $mode783 %2:vgpr_32 = nofpexcept V_RNDNE_F32_e32 3, implicit $exec, implicit $mode784 S_NOP 0, implicit %0785 S_NOP 0, implicit %1786 S_NOP 0, implicit %2787 S_ENDPGM 0788...789---790name: test_remat_v_floor_f32_e32791tracksRegLiveness: true792body: |793 bb.0:794 ; GCN-LABEL: name: test_remat_v_floor_f32_e32795 ; GCN: [[V_FLOOR_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F32_e32 1, implicit $exec, implicit $mode796 ; GCN-NEXT: [[V_FLOOR_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F32_e32 2, implicit $exec, implicit $mode797 ; GCN-NEXT: [[V_FLOOR_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FLOOR_F32_e32 3, implicit $exec, implicit $mode798 ; GCN-NEXT: S_NOP 0, implicit [[V_FLOOR_F32_e32_]]799 ; GCN-NEXT: S_NOP 0, implicit [[V_FLOOR_F32_e32_1]]800 ; GCN-NEXT: S_NOP 0, implicit [[V_FLOOR_F32_e32_2]]801 ; GCN-NEXT: S_ENDPGM 0802 %0:vgpr_32 = nofpexcept V_FLOOR_F32_e32 1, implicit $exec, implicit $mode803 %1:vgpr_32 = nofpexcept V_FLOOR_F32_e32 2, implicit $exec, implicit $mode804 %2:vgpr_32 = nofpexcept V_FLOOR_F32_e32 3, implicit $exec, implicit $mode805 S_NOP 0, implicit %0806 S_NOP 0, implicit %1807 S_NOP 0, implicit %2808 S_ENDPGM 0809...810---811name: test_remat_v_exp_f32_e32812tracksRegLiveness: true813body: |814 bb.0:815 ; GCN-LABEL: name: test_remat_v_exp_f32_e32816 ; GCN: [[V_EXP_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_EXP_F32_e32 1, implicit $exec, implicit $mode817 ; GCN-NEXT: [[V_EXP_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_EXP_F32_e32 2, implicit $exec, implicit $mode818 ; GCN-NEXT: [[V_EXP_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_EXP_F32_e32 3, implicit $exec, implicit $mode819 ; GCN-NEXT: S_NOP 0, implicit [[V_EXP_F32_e32_]]820 ; GCN-NEXT: S_NOP 0, implicit [[V_EXP_F32_e32_1]]821 ; GCN-NEXT: S_NOP 0, implicit [[V_EXP_F32_e32_2]]822 ; GCN-NEXT: S_ENDPGM 0823 %0:vgpr_32 = nofpexcept V_EXP_F32_e32 1, implicit $exec, implicit $mode824 %1:vgpr_32 = nofpexcept V_EXP_F32_e32 2, implicit $exec, implicit $mode825 %2:vgpr_32 = nofpexcept V_EXP_F32_e32 3, implicit $exec, implicit $mode826 S_NOP 0, implicit %0827 S_NOP 0, implicit %1828 S_NOP 0, implicit %2829 S_ENDPGM 0830...831---832name: test_remat_v_log_f32_e32833tracksRegLiveness: true834body: |835 bb.0:836 ; GCN-LABEL: name: test_remat_v_log_f32_e32837 ; GCN: [[V_LOG_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_LOG_F32_e32 1, implicit $exec, implicit $mode838 ; GCN-NEXT: [[V_LOG_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_LOG_F32_e32 2, implicit $exec, implicit $mode839 ; GCN-NEXT: [[V_LOG_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_LOG_F32_e32 3, implicit $exec, implicit $mode840 ; GCN-NEXT: S_NOP 0, implicit [[V_LOG_F32_e32_]]841 ; GCN-NEXT: S_NOP 0, implicit [[V_LOG_F32_e32_1]]842 ; GCN-NEXT: S_NOP 0, implicit [[V_LOG_F32_e32_2]]843 ; GCN-NEXT: S_ENDPGM 0844 %0:vgpr_32 = nofpexcept V_LOG_F32_e32 1, implicit $exec, implicit $mode845 %1:vgpr_32 = nofpexcept V_LOG_F32_e32 2, implicit $exec, implicit $mode846 %2:vgpr_32 = nofpexcept V_LOG_F32_e32 3, implicit $exec, implicit $mode847 S_NOP 0, implicit %0848 S_NOP 0, implicit %1849 S_NOP 0, implicit %2850 S_ENDPGM 0851...852---853name: test_remat_v_rcp_f32_e32854tracksRegLiveness: true855body: |856 bb.0:857 ; GCN-LABEL: name: test_remat_v_rcp_f32_e32858 ; GCN: [[V_RCP_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_RCP_F32_e32 1, implicit $exec, implicit $mode859 ; GCN-NEXT: [[V_RCP_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_RCP_F32_e32 2, implicit $exec, implicit $mode860 ; GCN-NEXT: [[V_RCP_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_RCP_F32_e32 3, implicit $exec, implicit $mode861 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_F32_e32_]]862 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_F32_e32_1]]863 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_F32_e32_2]]864 ; GCN-NEXT: S_ENDPGM 0865 %0:vgpr_32 = nofpexcept V_RCP_F32_e32 1, implicit $exec, implicit $mode866 %1:vgpr_32 = nofpexcept V_RCP_F32_e32 2, implicit $exec, implicit $mode867 %2:vgpr_32 = nofpexcept V_RCP_F32_e32 3, implicit $exec, implicit $mode868 S_NOP 0, implicit %0869 S_NOP 0, implicit %1870 S_NOP 0, implicit %2871 S_ENDPGM 0872...873---874name: test_remat_v_rcp_iflag_f32_e32875tracksRegLiveness: true876body: |877 bb.0:878 ; GCN-LABEL: name: test_remat_v_rcp_iflag_f32_e32879 ; GCN: [[V_RCP_IFLAG_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 1, implicit $exec, implicit $mode880 ; GCN-NEXT: [[V_RCP_IFLAG_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 2, implicit $exec, implicit $mode881 ; GCN-NEXT: [[V_RCP_IFLAG_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 3, implicit $exec, implicit $mode882 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_IFLAG_F32_e32_]]883 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_IFLAG_F32_e32_1]]884 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_IFLAG_F32_e32_2]]885 ; GCN-NEXT: S_ENDPGM 0886 %0:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 1, implicit $exec, implicit $mode887 %1:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 2, implicit $exec, implicit $mode888 %2:vgpr_32 = nofpexcept V_RCP_IFLAG_F32_e32 3, implicit $exec, implicit $mode889 S_NOP 0, implicit %0890 S_NOP 0, implicit %1891 S_NOP 0, implicit %2892 S_ENDPGM 0893...894---895name: test_remat_v_rsq_f32_e32896tracksRegLiveness: true897body: |898 bb.0:899 ; GCN-LABEL: name: test_remat_v_rsq_f32_e32900 ; GCN: [[V_RSQ_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_RSQ_F32_e32 1, implicit $exec, implicit $mode901 ; GCN-NEXT: [[V_RSQ_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_RSQ_F32_e32 2, implicit $exec, implicit $mode902 ; GCN-NEXT: [[V_RSQ_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_RSQ_F32_e32 3, implicit $exec, implicit $mode903 ; GCN-NEXT: S_NOP 0, implicit [[V_RSQ_F32_e32_]]904 ; GCN-NEXT: S_NOP 0, implicit [[V_RSQ_F32_e32_1]]905 ; GCN-NEXT: S_NOP 0, implicit [[V_RSQ_F32_e32_2]]906 ; GCN-NEXT: S_ENDPGM 0907 %0:vgpr_32 = nofpexcept V_RSQ_F32_e32 1, implicit $exec, implicit $mode908 %1:vgpr_32 = nofpexcept V_RSQ_F32_e32 2, implicit $exec, implicit $mode909 %2:vgpr_32 = nofpexcept V_RSQ_F32_e32 3, implicit $exec, implicit $mode910 S_NOP 0, implicit %0911 S_NOP 0, implicit %1912 S_NOP 0, implicit %2913 S_ENDPGM 0914...915---916name: test_remat_v_sqrt_f32_e32917tracksRegLiveness: true918body: |919 bb.0:920 ; GCN-LABEL: name: test_remat_v_sqrt_f32_e32921 ; GCN: [[V_SQRT_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_SQRT_F32_e32 1, implicit $exec, implicit $mode922 ; GCN-NEXT: [[V_SQRT_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SQRT_F32_e32 2, implicit $exec, implicit $mode923 ; GCN-NEXT: [[V_SQRT_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SQRT_F32_e32 3, implicit $exec, implicit $mode924 ; GCN-NEXT: S_NOP 0, implicit [[V_SQRT_F32_e32_]]925 ; GCN-NEXT: S_NOP 0, implicit [[V_SQRT_F32_e32_1]]926 ; GCN-NEXT: S_NOP 0, implicit [[V_SQRT_F32_e32_2]]927 ; GCN-NEXT: S_ENDPGM 0928 %0:vgpr_32 = nofpexcept V_SQRT_F32_e32 1, implicit $exec, implicit $mode929 %1:vgpr_32 = nofpexcept V_SQRT_F32_e32 2, implicit $exec, implicit $mode930 %2:vgpr_32 = nofpexcept V_SQRT_F32_e32 3, implicit $exec, implicit $mode931 S_NOP 0, implicit %0932 S_NOP 0, implicit %1933 S_NOP 0, implicit %2934 S_ENDPGM 0935...936---937name: test_remat_v_rcp_f64_e32938tracksRegLiveness: true939body: |940 bb.0:941 ; GCN-LABEL: name: test_remat_v_rcp_f64_e32942 ; GCN: [[V_RCP_F64_e32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_RCP_F64_e32 1, implicit $exec, implicit $mode943 ; GCN-NEXT: [[V_RCP_F64_e32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_RCP_F64_e32 2, implicit $exec, implicit $mode944 ; GCN-NEXT: [[V_RCP_F64_e32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_RCP_F64_e32 3, implicit $exec, implicit $mode945 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_F64_e32_]]946 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_F64_e32_1]]947 ; GCN-NEXT: S_NOP 0, implicit [[V_RCP_F64_e32_2]]948 ; GCN-NEXT: S_ENDPGM 0949 %0:vreg_64_align2 = nofpexcept V_RCP_F64_e32 1, implicit $exec, implicit $mode950 %1:vreg_64_align2 = nofpexcept V_RCP_F64_e32 2, implicit $exec, implicit $mode951 %2:vreg_64_align2 = nofpexcept V_RCP_F64_e32 3, implicit $exec, implicit $mode952 S_NOP 0, implicit %0953 S_NOP 0, implicit %1954 S_NOP 0, implicit %2955 S_ENDPGM 0956...957---958name: test_remat_v_rsq_f64_e32959tracksRegLiveness: true960body: |961 bb.0:962 ; GCN-LABEL: name: test_remat_v_rsq_f64_e32963 ; GCN: [[V_RSQ_F64_e32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 1, implicit $exec, implicit $mode964 ; GCN-NEXT: [[V_RSQ_F64_e32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 2, implicit $exec, implicit $mode965 ; GCN-NEXT: [[V_RSQ_F64_e32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 3, implicit $exec, implicit $mode966 ; GCN-NEXT: S_NOP 0, implicit [[V_RSQ_F64_e32_]]967 ; GCN-NEXT: S_NOP 0, implicit [[V_RSQ_F64_e32_1]]968 ; GCN-NEXT: S_NOP 0, implicit [[V_RSQ_F64_e32_2]]969 ; GCN-NEXT: S_ENDPGM 0970 %0:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 1, implicit $exec, implicit $mode971 %1:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 2, implicit $exec, implicit $mode972 %2:vreg_64_align2 = nofpexcept V_RSQ_F64_e32 3, implicit $exec, implicit $mode973 S_NOP 0, implicit %0974 S_NOP 0, implicit %1975 S_NOP 0, implicit %2976 S_ENDPGM 0977...978---979name: test_remat_v_sqrt_f64_e32980tracksRegLiveness: true981body: |982 bb.0:983 ; GCN-LABEL: name: test_remat_v_sqrt_f64_e32984 ; GCN: [[V_SQRT_F64_e32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 1, implicit $exec, implicit $mode985 ; GCN-NEXT: [[V_SQRT_F64_e32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 2, implicit $exec, implicit $mode986 ; GCN-NEXT: [[V_SQRT_F64_e32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 3, implicit $exec, implicit $mode987 ; GCN-NEXT: S_NOP 0, implicit [[V_SQRT_F64_e32_]]988 ; GCN-NEXT: S_NOP 0, implicit [[V_SQRT_F64_e32_1]]989 ; GCN-NEXT: S_NOP 0, implicit [[V_SQRT_F64_e32_2]]990 ; GCN-NEXT: S_ENDPGM 0991 %0:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 1, implicit $exec, implicit $mode992 %1:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 2, implicit $exec, implicit $mode993 %2:vreg_64_align2 = nofpexcept V_SQRT_F64_e32 3, implicit $exec, implicit $mode994 S_NOP 0, implicit %0995 S_NOP 0, implicit %1996 S_NOP 0, implicit %2997 S_ENDPGM 0998...999---1000name: test_remat_v_sin_f32_e321001tracksRegLiveness: true1002body: |1003 bb.0:1004 ; GCN-LABEL: name: test_remat_v_sin_f32_e321005 ; GCN: [[V_SIN_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_SIN_F32_e32 1, implicit $exec, implicit $mode1006 ; GCN-NEXT: [[V_SIN_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SIN_F32_e32 2, implicit $exec, implicit $mode1007 ; GCN-NEXT: [[V_SIN_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SIN_F32_e32 3, implicit $exec, implicit $mode1008 ; GCN-NEXT: S_NOP 0, implicit [[V_SIN_F32_e32_]]1009 ; GCN-NEXT: S_NOP 0, implicit [[V_SIN_F32_e32_1]]1010 ; GCN-NEXT: S_NOP 0, implicit [[V_SIN_F32_e32_2]]1011 ; GCN-NEXT: S_ENDPGM 01012 %0:vgpr_32 = nofpexcept V_SIN_F32_e32 1, implicit $exec, implicit $mode1013 %1:vgpr_32 = nofpexcept V_SIN_F32_e32 2, implicit $exec, implicit $mode1014 %2:vgpr_32 = nofpexcept V_SIN_F32_e32 3, implicit $exec, implicit $mode1015 S_NOP 0, implicit %01016 S_NOP 0, implicit %11017 S_NOP 0, implicit %21018 S_ENDPGM 01019...1020---1021name: test_remat_v_cos_f32_e321022tracksRegLiveness: true1023body: |1024 bb.0:1025 ; GCN-LABEL: name: test_remat_v_cos_f32_e321026 ; GCN: [[V_COS_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_COS_F32_e32 1, implicit $exec, implicit $mode1027 ; GCN-NEXT: [[V_COS_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_COS_F32_e32 2, implicit $exec, implicit $mode1028 ; GCN-NEXT: [[V_COS_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_COS_F32_e32 3, implicit $exec, implicit $mode1029 ; GCN-NEXT: S_NOP 0, implicit [[V_COS_F32_e32_]]1030 ; GCN-NEXT: S_NOP 0, implicit [[V_COS_F32_e32_1]]1031 ; GCN-NEXT: S_NOP 0, implicit [[V_COS_F32_e32_2]]1032 ; GCN-NEXT: S_ENDPGM 01033 %0:vgpr_32 = nofpexcept V_COS_F32_e32 1, implicit $exec, implicit $mode1034 %1:vgpr_32 = nofpexcept V_COS_F32_e32 2, implicit $exec, implicit $mode1035 %2:vgpr_32 = nofpexcept V_COS_F32_e32 3, implicit $exec, implicit $mode1036 S_NOP 0, implicit %01037 S_NOP 0, implicit %11038 S_NOP 0, implicit %21039 S_ENDPGM 01040...1041---1042name: test_remat_v_not_b32_e321043tracksRegLiveness: true1044body: |1045 bb.0:1046 ; GCN-LABEL: name: test_remat_v_not_b32_e321047 ; GCN: [[V_NOT_B32_e32_:%[0-9]+]]:vgpr_32 = V_NOT_B32_e32 1, implicit $exec, implicit $mode1048 ; GCN-NEXT: [[V_NOT_B32_e32_1:%[0-9]+]]:vgpr_32 = V_NOT_B32_e32 2, implicit $exec, implicit $mode1049 ; GCN-NEXT: [[V_NOT_B32_e32_2:%[0-9]+]]:vgpr_32 = V_NOT_B32_e32 3, implicit $exec, implicit $mode1050 ; GCN-NEXT: S_NOP 0, implicit [[V_NOT_B32_e32_]]1051 ; GCN-NEXT: S_NOP 0, implicit [[V_NOT_B32_e32_1]]1052 ; GCN-NEXT: S_NOP 0, implicit [[V_NOT_B32_e32_2]]1053 ; GCN-NEXT: S_ENDPGM 01054 %0:vgpr_32 = V_NOT_B32_e32 1, implicit $exec, implicit $mode1055 %1:vgpr_32 = V_NOT_B32_e32 2, implicit $exec, implicit $mode1056 %2:vgpr_32 = V_NOT_B32_e32 3, implicit $exec, implicit $mode1057 S_NOP 0, implicit %01058 S_NOP 0, implicit %11059 S_NOP 0, implicit %21060 S_ENDPGM 01061...1062---1063name: test_remat_v_bfrev_b32_e321064tracksRegLiveness: true1065body: |1066 bb.0:1067 ; GCN-LABEL: name: test_remat_v_bfrev_b32_e321068 ; GCN: [[V_BFREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_BFREV_B32_e32 1, implicit $exec, implicit $mode1069 ; GCN-NEXT: [[V_BFREV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_BFREV_B32_e32 2, implicit $exec, implicit $mode1070 ; GCN-NEXT: [[V_BFREV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_BFREV_B32_e32 3, implicit $exec, implicit $mode1071 ; GCN-NEXT: S_NOP 0, implicit [[V_BFREV_B32_e32_]]1072 ; GCN-NEXT: S_NOP 0, implicit [[V_BFREV_B32_e32_1]]1073 ; GCN-NEXT: S_NOP 0, implicit [[V_BFREV_B32_e32_2]]1074 ; GCN-NEXT: S_ENDPGM 01075 %0:vgpr_32 = V_BFREV_B32_e32 1, implicit $exec, implicit $mode1076 %1:vgpr_32 = V_BFREV_B32_e32 2, implicit $exec, implicit $mode1077 %2:vgpr_32 = V_BFREV_B32_e32 3, implicit $exec, implicit $mode1078 S_NOP 0, implicit %01079 S_NOP 0, implicit %11080 S_NOP 0, implicit %21081 S_ENDPGM 01082...1083---1084name: test_remat_v_ffbh_u32_e321085tracksRegLiveness: true1086body: |1087 bb.0:1088 ; GCN-LABEL: name: test_remat_v_ffbh_u32_e321089 ; GCN: [[V_FFBH_U32_e32_:%[0-9]+]]:vgpr_32 = V_FFBH_U32_e32 1, implicit $exec, implicit $mode1090 ; GCN-NEXT: [[V_FFBH_U32_e32_1:%[0-9]+]]:vgpr_32 = V_FFBH_U32_e32 2, implicit $exec, implicit $mode1091 ; GCN-NEXT: [[V_FFBH_U32_e32_2:%[0-9]+]]:vgpr_32 = V_FFBH_U32_e32 3, implicit $exec, implicit $mode1092 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBH_U32_e32_]]1093 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBH_U32_e32_1]]1094 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBH_U32_e32_2]]1095 ; GCN-NEXT: S_ENDPGM 01096 %0:vgpr_32 = V_FFBH_U32_e32 1, implicit $exec, implicit $mode1097 %1:vgpr_32 = V_FFBH_U32_e32 2, implicit $exec, implicit $mode1098 %2:vgpr_32 = V_FFBH_U32_e32 3, implicit $exec, implicit $mode1099 S_NOP 0, implicit %01100 S_NOP 0, implicit %11101 S_NOP 0, implicit %21102 S_ENDPGM 01103...1104---1105name: test_remat_v_ffbl_b32_e321106tracksRegLiveness: true1107body: |1108 bb.0:1109 ; GCN-LABEL: name: test_remat_v_ffbl_b32_e321110 ; GCN: [[V_FFBL_B32_e32_:%[0-9]+]]:vgpr_32 = V_FFBL_B32_e32 1, implicit $exec, implicit $mode1111 ; GCN-NEXT: [[V_FFBL_B32_e32_1:%[0-9]+]]:vgpr_32 = V_FFBL_B32_e32 2, implicit $exec, implicit $mode1112 ; GCN-NEXT: [[V_FFBL_B32_e32_2:%[0-9]+]]:vgpr_32 = V_FFBL_B32_e32 3, implicit $exec, implicit $mode1113 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBL_B32_e32_]]1114 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBL_B32_e32_1]]1115 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBL_B32_e32_2]]1116 ; GCN-NEXT: S_ENDPGM 01117 %0:vgpr_32 = V_FFBL_B32_e32 1, implicit $exec, implicit $mode1118 %1:vgpr_32 = V_FFBL_B32_e32 2, implicit $exec, implicit $mode1119 %2:vgpr_32 = V_FFBL_B32_e32 3, implicit $exec, implicit $mode1120 S_NOP 0, implicit %01121 S_NOP 0, implicit %11122 S_NOP 0, implicit %21123 S_ENDPGM 01124...1125---1126name: test_remat_v_ffbh_i32_e321127tracksRegLiveness: true1128body: |1129 bb.0:1130 ; GCN-LABEL: name: test_remat_v_ffbh_i32_e321131 ; GCN: [[V_FFBH_I32_e32_:%[0-9]+]]:vgpr_32 = V_FFBH_I32_e32 1, implicit $exec, implicit $mode1132 ; GCN-NEXT: [[V_FFBH_I32_e32_1:%[0-9]+]]:vgpr_32 = V_FFBH_I32_e32 2, implicit $exec, implicit $mode1133 ; GCN-NEXT: [[V_FFBH_I32_e32_2:%[0-9]+]]:vgpr_32 = V_FFBH_I32_e32 3, implicit $exec, implicit $mode1134 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBH_I32_e32_]]1135 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBH_I32_e32_1]]1136 ; GCN-NEXT: S_NOP 0, implicit [[V_FFBH_I32_e32_2]]1137 ; GCN-NEXT: S_ENDPGM 01138 %0:vgpr_32 = V_FFBH_I32_e32 1, implicit $exec, implicit $mode1139 %1:vgpr_32 = V_FFBH_I32_e32 2, implicit $exec, implicit $mode1140 %2:vgpr_32 = V_FFBH_I32_e32 3, implicit $exec, implicit $mode1141 S_NOP 0, implicit %01142 S_NOP 0, implicit %11143 S_NOP 0, implicit %21144 S_ENDPGM 01145...1146---1147name: test_remat_v_frexp_exp_i32_f64_e321148tracksRegLiveness: true1149body: |1150 bb.0:1151 ; GCN-LABEL: name: test_remat_v_frexp_exp_i32_f64_e321152 ; GCN: [[V_FREXP_EXP_I32_F64_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 1, implicit $exec, implicit $mode1153 ; GCN-NEXT: [[V_FREXP_EXP_I32_F64_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 2, implicit $exec, implicit $mode1154 ; GCN-NEXT: [[V_FREXP_EXP_I32_F64_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 3, implicit $exec, implicit $mode1155 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_EXP_I32_F64_e32_]]1156 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_EXP_I32_F64_e32_1]]1157 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_EXP_I32_F64_e32_2]]1158 ; GCN-NEXT: S_ENDPGM 01159 %0:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 1, implicit $exec, implicit $mode1160 %1:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 2, implicit $exec, implicit $mode1161 %2:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F64_e32 3, implicit $exec, implicit $mode1162 S_NOP 0, implicit %01163 S_NOP 0, implicit %11164 S_NOP 0, implicit %21165 S_ENDPGM 01166...1167---1168name: test_remat_v_frexp_mant_f64_e321169tracksRegLiveness: true1170body: |1171 bb.0:1172 ; GCN-LABEL: name: test_remat_v_frexp_mant_f64_e321173 ; GCN: [[V_FREXP_MANT_F64_e32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 1, implicit $exec, implicit $mode1174 ; GCN-NEXT: [[V_FREXP_MANT_F64_e32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 2, implicit $exec, implicit $mode1175 ; GCN-NEXT: [[V_FREXP_MANT_F64_e32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 3, implicit $exec, implicit $mode1176 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_MANT_F64_e32_]]1177 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_MANT_F64_e32_1]]1178 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_MANT_F64_e32_2]]1179 ; GCN-NEXT: S_ENDPGM 01180 %0:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 1, implicit $exec, implicit $mode1181 %1:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 2, implicit $exec, implicit $mode1182 %2:vreg_64_align2 = nofpexcept V_FREXP_MANT_F64_e32 3, implicit $exec, implicit $mode1183 S_NOP 0, implicit %01184 S_NOP 0, implicit %11185 S_NOP 0, implicit %21186 S_ENDPGM 01187...1188---1189name: test_remat_v_fract_f64_e321190tracksRegLiveness: true1191body: |1192 bb.0:1193 ; GCN-LABEL: name: test_remat_v_fract_f64_e321194 ; GCN: [[V_FRACT_F64_e32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 1, implicit $exec, implicit $mode1195 ; GCN-NEXT: [[V_FRACT_F64_e32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 2, implicit $exec, implicit $mode1196 ; GCN-NEXT: [[V_FRACT_F64_e32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 3, implicit $exec, implicit $mode1197 ; GCN-NEXT: S_NOP 0, implicit [[V_FRACT_F64_e32_]]1198 ; GCN-NEXT: S_NOP 0, implicit [[V_FRACT_F64_e32_1]]1199 ; GCN-NEXT: S_NOP 0, implicit [[V_FRACT_F64_e32_2]]1200 ; GCN-NEXT: S_ENDPGM 01201 %0:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 1, implicit $exec, implicit $mode1202 %1:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 2, implicit $exec, implicit $mode1203 %2:vreg_64_align2 = nofpexcept V_FRACT_F64_e32 3, implicit $exec, implicit $mode1204 S_NOP 0, implicit %01205 S_NOP 0, implicit %11206 S_NOP 0, implicit %21207 S_ENDPGM 01208...1209---1210name: test_remat_v_frexp_exp_i32_f32_e321211tracksRegLiveness: true1212body: |1213 bb.0:1214 ; GCN-LABEL: name: test_remat_v_frexp_exp_i32_f32_e321215 ; GCN: [[V_FREXP_EXP_I32_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 1, implicit $exec, implicit $mode1216 ; GCN-NEXT: [[V_FREXP_EXP_I32_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 2, implicit $exec, implicit $mode1217 ; GCN-NEXT: [[V_FREXP_EXP_I32_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 3, implicit $exec, implicit $mode1218 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_EXP_I32_F32_e32_]]1219 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_EXP_I32_F32_e32_1]]1220 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_EXP_I32_F32_e32_2]]1221 ; GCN-NEXT: S_ENDPGM 01222 %0:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 1, implicit $exec, implicit $mode1223 %1:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 2, implicit $exec, implicit $mode1224 %2:vgpr_32 = nofpexcept V_FREXP_EXP_I32_F32_e32 3, implicit $exec, implicit $mode1225 S_NOP 0, implicit %01226 S_NOP 0, implicit %11227 S_NOP 0, implicit %21228 S_ENDPGM 01229...1230---1231name: test_remat_v_frexp_mant_f32_e321232tracksRegLiveness: true1233body: |1234 bb.0:1235 ; GCN-LABEL: name: test_remat_v_frexp_mant_f32_e321236 ; GCN: [[V_FREXP_MANT_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 1, implicit $exec, implicit $mode1237 ; GCN-NEXT: [[V_FREXP_MANT_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 2, implicit $exec, implicit $mode1238 ; GCN-NEXT: [[V_FREXP_MANT_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 3, implicit $exec, implicit $mode1239 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_MANT_F32_e32_]]1240 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_MANT_F32_e32_1]]1241 ; GCN-NEXT: S_NOP 0, implicit [[V_FREXP_MANT_F32_e32_2]]1242 ; GCN-NEXT: S_ENDPGM 01243 %0:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 1, implicit $exec, implicit $mode1244 %1:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 2, implicit $exec, implicit $mode1245 %2:vgpr_32 = nofpexcept V_FREXP_MANT_F32_e32 3, implicit $exec, implicit $mode1246 S_NOP 0, implicit %01247 S_NOP 0, implicit %11248 S_NOP 0, implicit %21249 S_ENDPGM 01250...1251---1252name: test_remat_v_exp_legacy_f32_e321253tracksRegLiveness: true1254body: |1255 bb.0:1256 ; GCN-LABEL: name: test_remat_v_exp_legacy_f32_e321257 ; GCN: [[V_EXP_LEGACY_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 1, implicit $exec, implicit $mode1258 ; GCN-NEXT: [[V_EXP_LEGACY_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 2, implicit $exec, implicit $mode1259 ; GCN-NEXT: [[V_EXP_LEGACY_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 3, implicit $exec, implicit $mode1260 ; GCN-NEXT: S_NOP 0, implicit [[V_EXP_LEGACY_F32_e32_]]1261 ; GCN-NEXT: S_NOP 0, implicit [[V_EXP_LEGACY_F32_e32_1]]1262 ; GCN-NEXT: S_NOP 0, implicit [[V_EXP_LEGACY_F32_e32_2]]1263 ; GCN-NEXT: S_ENDPGM 01264 %0:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 1, implicit $exec, implicit $mode1265 %1:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 2, implicit $exec, implicit $mode1266 %2:vgpr_32 = nofpexcept V_EXP_LEGACY_F32_e32 3, implicit $exec, implicit $mode1267 S_NOP 0, implicit %01268 S_NOP 0, implicit %11269 S_NOP 0, implicit %21270 S_ENDPGM 01271...1272---1273name: test_remat_v_log_legacy_f32_e321274tracksRegLiveness: true1275body: |1276 bb.0:1277 ; GCN-LABEL: name: test_remat_v_log_legacy_f32_e321278 ; GCN: [[V_LOG_LEGACY_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 1, implicit $exec, implicit $mode1279 ; GCN-NEXT: [[V_LOG_LEGACY_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 2, implicit $exec, implicit $mode1280 ; GCN-NEXT: [[V_LOG_LEGACY_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 3, implicit $exec, implicit $mode1281 ; GCN-NEXT: S_NOP 0, implicit [[V_LOG_LEGACY_F32_e32_]]1282 ; GCN-NEXT: S_NOP 0, implicit [[V_LOG_LEGACY_F32_e32_1]]1283 ; GCN-NEXT: S_NOP 0, implicit [[V_LOG_LEGACY_F32_e32_2]]1284 ; GCN-NEXT: S_ENDPGM 01285 %0:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 1, implicit $exec, implicit $mode1286 %1:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 2, implicit $exec, implicit $mode1287 %2:vgpr_32 = nofpexcept V_LOG_LEGACY_F32_e32 3, implicit $exec, implicit $mode1288 S_NOP 0, implicit %01289 S_NOP 0, implicit %11290 S_NOP 0, implicit %21291 S_ENDPGM 01292...1293---1294name: test_remat_v_sat_pk_u8_i16_e321295tracksRegLiveness: true1296body: |1297 bb.0:1298 ; GCN-LABEL: name: test_remat_v_sat_pk_u8_i16_e321299 ; GCN: [[V_SAT_PK_U8_I16_e32_:%[0-9]+]]:vgpr_32 = V_SAT_PK_U8_I16_e32 1, implicit $exec, implicit $mode1300 ; GCN-NEXT: [[V_SAT_PK_U8_I16_e32_1:%[0-9]+]]:vgpr_32 = V_SAT_PK_U8_I16_e32 2, implicit $exec, implicit $mode1301 ; GCN-NEXT: [[V_SAT_PK_U8_I16_e32_2:%[0-9]+]]:vgpr_32 = V_SAT_PK_U8_I16_e32 3, implicit $exec, implicit $mode1302 ; GCN-NEXT: S_NOP 0, implicit [[V_SAT_PK_U8_I16_e32_]]1303 ; GCN-NEXT: S_NOP 0, implicit [[V_SAT_PK_U8_I16_e32_1]]1304 ; GCN-NEXT: S_NOP 0, implicit [[V_SAT_PK_U8_I16_e32_2]]1305 ; GCN-NEXT: S_ENDPGM 01306 %0:vgpr_32 = V_SAT_PK_U8_I16_e32 1, implicit $exec, implicit $mode1307 %1:vgpr_32 = V_SAT_PK_U8_I16_e32 2, implicit $exec, implicit $mode1308 %2:vgpr_32 = V_SAT_PK_U8_I16_e32 3, implicit $exec, implicit $mode1309 S_NOP 0, implicit %01310 S_NOP 0, implicit %11311 S_NOP 0, implicit %21312 S_ENDPGM 01313...1314---1315name: test_remat_v_accvgpr_mov_b321316tracksRegLiveness: true1317body: |1318 bb.0:1319 ; GCN-LABEL: name: test_remat_v_accvgpr_mov_b321320 ; GCN: [[V_ACCVGPR_MOV_B32_:%[0-9]+]]:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec1321 ; GCN-NEXT: [[V_ACCVGPR_MOV_B32_1:%[0-9]+]]:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec1322 ; GCN-NEXT: [[V_ACCVGPR_MOV_B32_2:%[0-9]+]]:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec1323 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_MOV_B32_]]1324 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_MOV_B32_1]]1325 ; GCN-NEXT: S_NOP 0, implicit [[V_ACCVGPR_MOV_B32_2]]1326 ; GCN-NEXT: S_ENDPGM 01327 %0:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec1328 %1:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec1329 %2:agpr_32 = V_ACCVGPR_MOV_B32 undef $agpr0, implicit $exec1330 S_NOP 0, implicit %01331 S_NOP 0, implicit %11332 S_NOP 0, implicit %21333 S_ENDPGM 01334...1335---1336name: test_no_remat_v_cndmask_b32_e321337tracksRegLiveness: true1338machineFunctionInfo:1339 stackPtrOffsetReg: $sgpr321340body: |1341 bb.0:1342 ; GCN-LABEL: name: test_no_remat_v_cndmask_b32_e321343 ; GCN: [[V_CNDMASK_B32_e32_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e32 1, undef %1:vgpr_32, implicit $exec, implicit undef $vcc1344 ; GCN-NEXT: [[V_CNDMASK_B32_e32_1:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e32 1, undef %1:vgpr_32, implicit $exec, implicit undef $vcc1345 ; GCN-NEXT: [[V_CNDMASK_B32_e32_2:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e32 1, undef %1:vgpr_32, implicit $exec, implicit undef $vcc1346 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_e32_]]1347 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_e32_1]]1348 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_e32_2]]1349 ; GCN-NEXT: S_ENDPGM 01350 %1:vgpr_32 = V_CNDMASK_B32_e32 1, undef %0:vgpr_32, implicit $exec, implicit undef $vcc1351 %2:vgpr_32 = V_CNDMASK_B32_e32 1, undef %0:vgpr_32, implicit $exec, implicit undef $vcc1352 %3:vgpr_32 = V_CNDMASK_B32_e32 1, undef %0:vgpr_32, implicit $exec, implicit undef $vcc1353 S_NOP 0, implicit %11354 S_NOP 0, implicit %21355 S_NOP 0, implicit %31356 S_ENDPGM 01357...1358---1359name: test_no_remat_v_cndmask_b32_sdwa1360tracksRegLiveness: true1361machineFunctionInfo:1362 stackPtrOffsetReg: $sgpr321363body: |1364 bb.0:1365 ; GCN-LABEL: name: test_no_remat_v_cndmask_b32_sdwa1366 ; GCN: [[V_CNDMASK_B32_sdwa:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc1367 ; GCN-NEXT: [[V_CNDMASK_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc1368 ; GCN-NEXT: [[V_CNDMASK_B32_sdwa2:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_sdwa 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, implicit $exec, implicit undef $vcc1369 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_sdwa]]1370 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_sdwa1]]1371 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_sdwa2]]1372 ; GCN-NEXT: S_ENDPGM 01373 %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 $vcc1374 %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 $vcc1375 %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 $vcc1376 S_NOP 0, implicit %11377 S_NOP 0, implicit %21378 S_NOP 0, implicit %31379 S_ENDPGM 01380...1381---1382name: test_no_remat_v_cndmask_b32_dpp1383tracksRegLiveness: true1384machineFunctionInfo:1385 stackPtrOffsetReg: $sgpr321386body: |1387 bb.0:1388 ; GCN-LABEL: name: test_no_remat_v_cndmask_b32_dpp1389 ; GCN: [[V_CNDMASK_B32_dpp:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_dpp undef [[V_CNDMASK_B32_dpp]], 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit undef $vcc1390 ; GCN-NEXT: [[V_CNDMASK_B32_dpp1:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_dpp undef [[V_CNDMASK_B32_dpp1]], 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit undef $vcc1391 ; GCN-NEXT: [[V_CNDMASK_B32_dpp2:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_dpp undef [[V_CNDMASK_B32_dpp2]], 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit undef $vcc1392 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_dpp]]1393 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_dpp1]]1394 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_dpp2]]1395 ; GCN-NEXT: S_ENDPGM 01396 %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 $vcc1397 %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 $vcc1398 %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 $vcc1399 S_NOP 0, implicit %11400 S_NOP 0, implicit %21401 S_NOP 0, implicit %31402 S_ENDPGM 01403...1404---1405name: test_remat_v_cndmask_b32_e641406tracksRegLiveness: true1407body: |1408 bb.0:1409 ; GCN-LABEL: name: test_remat_v_cndmask_b32_e641410 ; GCN: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef $sgpr0_sgpr1, implicit $exec1411 ; GCN-NEXT: [[V_CNDMASK_B32_e64_1:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef $sgpr0_sgpr1, implicit $exec1412 ; GCN-NEXT: [[V_CNDMASK_B32_e64_2:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef $sgpr0_sgpr1, implicit $exec1413 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_e64_]]1414 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_e64_1]]1415 ; GCN-NEXT: S_NOP 0, implicit [[V_CNDMASK_B32_e64_2]]1416 ; GCN-NEXT: S_ENDPGM 01417 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef %0:sreg_64_xexec, implicit $exec1418 %2:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef %0:sreg_64_xexec, implicit $exec1419 %3:vgpr_32 = V_CNDMASK_B32_e64 0, 1, 0, 2, undef %0:sreg_64_xexec, implicit $exec1420 S_NOP 0, implicit %11421 S_NOP 0, implicit %21422 S_NOP 0, implicit %31423 S_ENDPGM 01424...1425---1426name: test_remat_v_madmk_f321427tracksRegLiveness: true1428body: |1429 bb.0:1430 ; GCN-LABEL: name: test_remat_v_madmk_f321431 ; GCN: [[V_MADMK_F32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MADMK_F32 1, 1, undef %1:vgpr_32, implicit $exec, implicit $mode1432 ; GCN-NEXT: [[V_MADMK_F32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MADMK_F32 2, 2, undef %1:vgpr_32, implicit $exec, implicit $mode1433 ; GCN-NEXT: [[V_MADMK_F32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MADMK_F32 3, 3, undef %1:vgpr_32, implicit $exec, implicit $mode1434 ; GCN-NEXT: S_NOP 0, implicit [[V_MADMK_F32_]]1435 ; GCN-NEXT: S_NOP 0, implicit [[V_MADMK_F32_1]]1436 ; GCN-NEXT: S_NOP 0, implicit [[V_MADMK_F32_2]]1437 ; GCN-NEXT: S_ENDPGM 01438 %1:vgpr_32 = nofpexcept V_MADMK_F32 1, 1, undef %0:vgpr_32, implicit $exec, implicit $mode1439 %2:vgpr_32 = nofpexcept V_MADMK_F32 2, 2, undef %0:vgpr_32, implicit $exec, implicit $mode1440 %3:vgpr_32 = nofpexcept V_MADMK_F32 3, 3, undef %0:vgpr_32, implicit $exec, implicit $mode1441 S_NOP 0, implicit %11442 S_NOP 0, implicit %21443 S_NOP 0, implicit %31444 S_ENDPGM 01445...1446---1447name: test_remat_v_add_f32_e321448tracksRegLiveness: true1449body: |1450 bb.0:1451 ; GCN-LABEL: name: test_remat_v_add_f32_e321452 ; GCN: [[V_ADD_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1453 ; GCN-NEXT: [[V_ADD_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1454 ; GCN-NEXT: [[V_ADD_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1455 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_e32_]]1456 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_e32_1]]1457 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_e32_2]]1458 ; GCN-NEXT: S_ENDPGM 01459 %1:vgpr_32 = nofpexcept V_ADD_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1460 %2:vgpr_32 = nofpexcept V_ADD_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1461 %3:vgpr_32 = nofpexcept V_ADD_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1462 S_NOP 0, implicit %11463 S_NOP 0, implicit %21464 S_NOP 0, implicit %31465 S_ENDPGM 01466...1467---1468name: test_remat_v_add_f32_e641469tracksRegLiveness: true1470body: |1471 bb.0:1472 ; GCN-LABEL: name: test_remat_v_add_f32_e641473 ; GCN: [[V_ADD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode1474 ; GCN-NEXT: [[V_ADD_F32_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode1475 ; GCN-NEXT: [[V_ADD_F32_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode1476 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_e64_]]1477 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_e64_1]]1478 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_e64_2]]1479 ; GCN-NEXT: S_ENDPGM 01480 %1:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode1481 %2:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode1482 %3:vgpr_32 = nofpexcept V_ADD_F32_e64 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode1483 S_NOP 0, implicit %11484 S_NOP 0, implicit %21485 S_NOP 0, implicit %31486 S_ENDPGM 01487...1488---1489name: test_remat_v_add_f32_sdwa1490tracksRegLiveness: true1491body: |1492 bb.0:1493 ; GCN-LABEL: name: test_remat_v_add_f32_sdwa1494 ; GCN: [[V_ADD_F32_sdwa:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_sdwa 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode1495 ; GCN-NEXT: [[V_ADD_F32_sdwa1:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_sdwa 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode1496 ; GCN-NEXT: [[V_ADD_F32_sdwa2:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_sdwa 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 0, 0, 0, 0, 0, 0, implicit $exec, implicit $mode1497 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_sdwa]]1498 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_sdwa1]]1499 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_sdwa2]]1500 ; GCN-NEXT: S_ENDPGM 01501 %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 $mode1502 %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 $mode1503 %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 $mode1504 S_NOP 0, implicit %11505 S_NOP 0, implicit %21506 S_NOP 0, implicit %31507 S_ENDPGM 01508...1509---1510name: test_no_remat_v_add_f32_dpp1511tracksRegLiveness: true1512machineFunctionInfo:1513 stackPtrOffsetReg: $sgpr321514body: |1515 bb.0:1516 ; GCN-LABEL: name: test_no_remat_v_add_f32_dpp1517 ; GCN: [[V_ADD_F32_dpp:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_dpp undef [[V_ADD_F32_dpp]], 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit $mode1518 ; GCN-NEXT: [[V_ADD_F32_dpp1:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_dpp undef [[V_ADD_F32_dpp1]], 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit $mode1519 ; GCN-NEXT: [[V_ADD_F32_dpp2:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F32_dpp undef [[V_ADD_F32_dpp2]], 0, undef %1:vgpr_32, 0, undef %1:vgpr_32, 1, 15, 15, 10, implicit $exec, implicit $mode1520 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_dpp]]1521 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_dpp1]]1522 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F32_dpp2]]1523 ; GCN-NEXT: S_ENDPGM 01524 %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 $mode1525 %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 $mode1526 %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 $mode1527 S_NOP 0, implicit %11528 S_NOP 0, implicit %21529 S_NOP 0, implicit %31530 S_ENDPGM 01531...1532---1533name: test_remat_v_sub_f32_e321534tracksRegLiveness: true1535body: |1536 bb.0:1537 ; GCN-LABEL: name: test_remat_v_sub_f32_e321538 ; GCN: [[V_SUB_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1539 ; GCN-NEXT: [[V_SUB_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1540 ; GCN-NEXT: [[V_SUB_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1541 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F32_e32_]]1542 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F32_e32_1]]1543 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F32_e32_2]]1544 ; GCN-NEXT: S_ENDPGM 01545 %1:vgpr_32 = nofpexcept V_SUB_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1546 %2:vgpr_32 = nofpexcept V_SUB_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1547 %3:vgpr_32 = nofpexcept V_SUB_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1548 S_NOP 0, implicit %11549 S_NOP 0, implicit %21550 S_NOP 0, implicit %31551 S_ENDPGM 01552...1553---1554name: test_remat_v_subrev_f32_e321555tracksRegLiveness: true1556body: |1557 bb.0:1558 ; GCN-LABEL: name: test_remat_v_subrev_f32_e321559 ; GCN: [[V_SUBREV_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1560 ; GCN-NEXT: [[V_SUBREV_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1561 ; GCN-NEXT: [[V_SUBREV_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1562 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F32_e32_]]1563 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F32_e32_1]]1564 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F32_e32_2]]1565 ; GCN-NEXT: S_ENDPGM 01566 %1:vgpr_32 = nofpexcept V_SUBREV_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1567 %2:vgpr_32 = nofpexcept V_SUBREV_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1568 %3:vgpr_32 = nofpexcept V_SUBREV_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1569 S_NOP 0, implicit %11570 S_NOP 0, implicit %21571 S_NOP 0, implicit %31572 S_ENDPGM 01573...1574---1575name: test_remat_v_mul_legacy_f32_e321576tracksRegLiveness: true1577body: |1578 bb.0:1579 ; GCN-LABEL: name: test_remat_v_mul_legacy_f32_e321580 ; GCN: [[V_MUL_LEGACY_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1581 ; GCN-NEXT: [[V_MUL_LEGACY_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1582 ; GCN-NEXT: [[V_MUL_LEGACY_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1583 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LEGACY_F32_e32_]]1584 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LEGACY_F32_e32_1]]1585 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LEGACY_F32_e32_2]]1586 ; GCN-NEXT: S_ENDPGM 01587 %1:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1588 %2:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1589 %3:vgpr_32 = nofpexcept V_MUL_LEGACY_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1590 S_NOP 0, implicit %11591 S_NOP 0, implicit %21592 S_NOP 0, implicit %31593 S_ENDPGM 01594...1595---1596name: test_remat_v_mul_f32_e321597tracksRegLiveness: true1598body: |1599 bb.0:1600 ; GCN-LABEL: name: test_remat_v_mul_f32_e321601 ; GCN: [[V_MUL_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1602 ; GCN-NEXT: [[V_MUL_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1603 ; GCN-NEXT: [[V_MUL_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1604 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F32_e32_]]1605 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F32_e32_1]]1606 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F32_e32_2]]1607 ; GCN-NEXT: S_ENDPGM 01608 %1:vgpr_32 = nofpexcept V_MUL_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1609 %2:vgpr_32 = nofpexcept V_MUL_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1610 %3:vgpr_32 = nofpexcept V_MUL_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1611 S_NOP 0, implicit %11612 S_NOP 0, implicit %21613 S_NOP 0, implicit %31614 S_ENDPGM 01615...1616---1617name: test_remat_v_mul_i32_i24_e321618tracksRegLiveness: true1619body: |1620 bb.0:1621 ; GCN-LABEL: name: test_remat_v_mul_i32_i24_e321622 ; GCN: [[V_MUL_I32_I24_e32_:%[0-9]+]]:vgpr_32 = V_MUL_I32_I24_e32 1, undef %1:vgpr_32, implicit $exec1623 ; GCN-NEXT: [[V_MUL_I32_I24_e32_1:%[0-9]+]]:vgpr_32 = V_MUL_I32_I24_e32 2, undef %1:vgpr_32, implicit $exec1624 ; GCN-NEXT: [[V_MUL_I32_I24_e32_2:%[0-9]+]]:vgpr_32 = V_MUL_I32_I24_e32 3, undef %1:vgpr_32, implicit $exec1625 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_I32_I24_e32_]]1626 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_I32_I24_e32_1]]1627 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_I32_I24_e32_2]]1628 ; GCN-NEXT: S_ENDPGM 01629 %1:vgpr_32 = V_MUL_I32_I24_e32 1, undef %0:vgpr_32, implicit $exec1630 %2:vgpr_32 = V_MUL_I32_I24_e32 2, undef %0:vgpr_32, implicit $exec1631 %3:vgpr_32 = V_MUL_I32_I24_e32 3, undef %0:vgpr_32, implicit $exec1632 S_NOP 0, implicit %11633 S_NOP 0, implicit %21634 S_NOP 0, implicit %31635 S_ENDPGM 01636...1637---1638name: test_remat_v_mul_hi_i32_i24_e321639tracksRegLiveness: true1640body: |1641 bb.0:1642 ; GCN-LABEL: name: test_remat_v_mul_hi_i32_i24_e321643 ; GCN: [[V_MUL_HI_I32_I24_e32_:%[0-9]+]]:vgpr_32 = V_MUL_HI_I32_I24_e32 1, undef %1:vgpr_32, implicit $exec1644 ; GCN-NEXT: [[V_MUL_HI_I32_I24_e32_1:%[0-9]+]]:vgpr_32 = V_MUL_HI_I32_I24_e32 2, undef %1:vgpr_32, implicit $exec1645 ; GCN-NEXT: [[V_MUL_HI_I32_I24_e32_2:%[0-9]+]]:vgpr_32 = V_MUL_HI_I32_I24_e32 3, undef %1:vgpr_32, implicit $exec1646 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_I32_I24_e32_]]1647 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_I32_I24_e32_1]]1648 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_I32_I24_e32_2]]1649 ; GCN-NEXT: S_ENDPGM 01650 %1:vgpr_32 = V_MUL_HI_I32_I24_e32 1, undef %0:vgpr_32, implicit $exec1651 %2:vgpr_32 = V_MUL_HI_I32_I24_e32 2, undef %0:vgpr_32, implicit $exec1652 %3:vgpr_32 = V_MUL_HI_I32_I24_e32 3, undef %0:vgpr_32, implicit $exec1653 S_NOP 0, implicit %11654 S_NOP 0, implicit %21655 S_NOP 0, implicit %31656 S_ENDPGM 01657...1658---1659name: test_remat_v_mul_u32_u24_e321660tracksRegLiveness: true1661body: |1662 bb.0:1663 ; GCN-LABEL: name: test_remat_v_mul_u32_u24_e321664 ; GCN: [[V_MUL_U32_U24_e32_:%[0-9]+]]:vgpr_32 = V_MUL_U32_U24_e32 1, undef %1:vgpr_32, implicit $exec1665 ; GCN-NEXT: [[V_MUL_U32_U24_e32_1:%[0-9]+]]:vgpr_32 = V_MUL_U32_U24_e32 2, undef %1:vgpr_32, implicit $exec1666 ; GCN-NEXT: [[V_MUL_U32_U24_e32_2:%[0-9]+]]:vgpr_32 = V_MUL_U32_U24_e32 3, undef %1:vgpr_32, implicit $exec1667 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_U32_U24_e32_]]1668 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_U32_U24_e32_1]]1669 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_U32_U24_e32_2]]1670 ; GCN-NEXT: S_ENDPGM 01671 %1:vgpr_32 = V_MUL_U32_U24_e32 1, undef %0:vgpr_32, implicit $exec1672 %2:vgpr_32 = V_MUL_U32_U24_e32 2, undef %0:vgpr_32, implicit $exec1673 %3:vgpr_32 = V_MUL_U32_U24_e32 3, undef %0:vgpr_32, implicit $exec1674 S_NOP 0, implicit %11675 S_NOP 0, implicit %21676 S_NOP 0, implicit %31677 S_ENDPGM 01678...1679---1680name: test_remat_v_mul_hi_u32_u24_e321681tracksRegLiveness: true1682body: |1683 bb.0:1684 ; GCN-LABEL: name: test_remat_v_mul_hi_u32_u24_e321685 ; GCN: [[V_MUL_HI_U32_U24_e32_:%[0-9]+]]:vgpr_32 = V_MUL_HI_U32_U24_e32 1, undef %1:vgpr_32, implicit $exec1686 ; GCN-NEXT: [[V_MUL_HI_U32_U24_e32_1:%[0-9]+]]:vgpr_32 = V_MUL_HI_U32_U24_e32 2, undef %1:vgpr_32, implicit $exec1687 ; GCN-NEXT: [[V_MUL_HI_U32_U24_e32_2:%[0-9]+]]:vgpr_32 = V_MUL_HI_U32_U24_e32 3, undef %1:vgpr_32, implicit $exec1688 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_U32_U24_e32_]]1689 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_U32_U24_e32_1]]1690 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_U32_U24_e32_2]]1691 ; GCN-NEXT: S_ENDPGM 01692 %1:vgpr_32 = V_MUL_HI_U32_U24_e32 1, undef %0:vgpr_32, implicit $exec1693 %2:vgpr_32 = V_MUL_HI_U32_U24_e32 2, undef %0:vgpr_32, implicit $exec1694 %3:vgpr_32 = V_MUL_HI_U32_U24_e32 3, undef %0:vgpr_32, implicit $exec1695 S_NOP 0, implicit %11696 S_NOP 0, implicit %21697 S_NOP 0, implicit %31698 S_ENDPGM 01699...1700---1701name: test_remat_v_min_f32_e321702tracksRegLiveness: true1703body: |1704 bb.0:1705 ; GCN-LABEL: name: test_remat_v_min_f32_e321706 ; GCN: [[V_MIN_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1707 ; GCN-NEXT: [[V_MIN_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1708 ; GCN-NEXT: [[V_MIN_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1709 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F32_e32_]]1710 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F32_e32_1]]1711 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F32_e32_2]]1712 ; GCN-NEXT: S_ENDPGM 01713 %1:vgpr_32 = nofpexcept V_MIN_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1714 %2:vgpr_32 = nofpexcept V_MIN_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1715 %3:vgpr_32 = nofpexcept V_MIN_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1716 S_NOP 0, implicit %11717 S_NOP 0, implicit %21718 S_NOP 0, implicit %31719 S_ENDPGM 01720...1721---1722name: test_remat_v_max_f32_e321723tracksRegLiveness: true1724body: |1725 bb.0:1726 ; GCN-LABEL: name: test_remat_v_max_f32_e321727 ; GCN: [[V_MAX_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode1728 ; GCN-NEXT: [[V_MAX_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode1729 ; GCN-NEXT: [[V_MAX_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode1730 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F32_e32_]]1731 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F32_e32_1]]1732 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F32_e32_2]]1733 ; GCN-NEXT: S_ENDPGM 01734 %1:vgpr_32 = nofpexcept V_MAX_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode1735 %2:vgpr_32 = nofpexcept V_MAX_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode1736 %3:vgpr_32 = nofpexcept V_MAX_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode1737 S_NOP 0, implicit %11738 S_NOP 0, implicit %21739 S_NOP 0, implicit %31740 S_ENDPGM 01741...1742---1743name: test_remat_v_min_i32_e321744tracksRegLiveness: true1745body: |1746 bb.0:1747 ; GCN-LABEL: name: test_remat_v_min_i32_e321748 ; GCN: [[V_MIN_I32_e32_:%[0-9]+]]:vgpr_32 = V_MIN_I32_e32 1, undef %1:vgpr_32, implicit $exec1749 ; GCN-NEXT: [[V_MIN_I32_e32_1:%[0-9]+]]:vgpr_32 = V_MIN_I32_e32 2, undef %1:vgpr_32, implicit $exec1750 ; GCN-NEXT: [[V_MIN_I32_e32_2:%[0-9]+]]:vgpr_32 = V_MIN_I32_e32 3, undef %1:vgpr_32, implicit $exec1751 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I32_e32_]]1752 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I32_e32_1]]1753 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I32_e32_2]]1754 ; GCN-NEXT: S_ENDPGM 01755 %1:vgpr_32 = V_MIN_I32_e32 1, undef %0:vgpr_32, implicit $exec1756 %2:vgpr_32 = V_MIN_I32_e32 2, undef %0:vgpr_32, implicit $exec1757 %3:vgpr_32 = V_MIN_I32_e32 3, undef %0:vgpr_32, implicit $exec1758 S_NOP 0, implicit %11759 S_NOP 0, implicit %21760 S_NOP 0, implicit %31761 S_ENDPGM 01762...1763---1764name: test_remat_v_max_i32_e321765tracksRegLiveness: true1766body: |1767 bb.0:1768 ; GCN-LABEL: name: test_remat_v_max_i32_e321769 ; GCN: [[V_MAX_I32_e32_:%[0-9]+]]:vgpr_32 = V_MAX_I32_e32 1, undef %1:vgpr_32, implicit $exec1770 ; GCN-NEXT: [[V_MAX_I32_e32_1:%[0-9]+]]:vgpr_32 = V_MAX_I32_e32 2, undef %1:vgpr_32, implicit $exec1771 ; GCN-NEXT: [[V_MAX_I32_e32_2:%[0-9]+]]:vgpr_32 = V_MAX_I32_e32 3, undef %1:vgpr_32, implicit $exec1772 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I32_e32_]]1773 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I32_e32_1]]1774 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I32_e32_2]]1775 ; GCN-NEXT: S_ENDPGM 01776 %1:vgpr_32 = V_MAX_I32_e32 1, undef %0:vgpr_32, implicit $exec1777 %2:vgpr_32 = V_MAX_I32_e32 2, undef %0:vgpr_32, implicit $exec1778 %3:vgpr_32 = V_MAX_I32_e32 3, undef %0:vgpr_32, implicit $exec1779 S_NOP 0, implicit %11780 S_NOP 0, implicit %21781 S_NOP 0, implicit %31782 S_ENDPGM 01783...1784---1785name: test_remat_v_min_u32_e321786tracksRegLiveness: true1787body: |1788 bb.0:1789 ; GCN-LABEL: name: test_remat_v_min_u32_e321790 ; GCN: [[V_MIN_U32_e32_:%[0-9]+]]:vgpr_32 = V_MIN_U32_e32 1, undef %1:vgpr_32, implicit $exec1791 ; GCN-NEXT: [[V_MIN_U32_e32_1:%[0-9]+]]:vgpr_32 = V_MIN_U32_e32 2, undef %1:vgpr_32, implicit $exec1792 ; GCN-NEXT: [[V_MIN_U32_e32_2:%[0-9]+]]:vgpr_32 = V_MIN_U32_e32 3, undef %1:vgpr_32, implicit $exec1793 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U32_e32_]]1794 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U32_e32_1]]1795 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U32_e32_2]]1796 ; GCN-NEXT: S_ENDPGM 01797 %1:vgpr_32 = V_MIN_U32_e32 1, undef %0:vgpr_32, implicit $exec1798 %2:vgpr_32 = V_MIN_U32_e32 2, undef %0:vgpr_32, implicit $exec1799 %3:vgpr_32 = V_MIN_U32_e32 3, undef %0:vgpr_32, implicit $exec1800 S_NOP 0, implicit %11801 S_NOP 0, implicit %21802 S_NOP 0, implicit %31803 S_ENDPGM 01804...1805---1806name: test_remat_v_max_u32_e321807tracksRegLiveness: true1808body: |1809 bb.0:1810 ; GCN-LABEL: name: test_remat_v_max_u32_e321811 ; GCN: [[V_MAX_U32_e32_:%[0-9]+]]:vgpr_32 = V_MAX_U32_e32 1, undef %1:vgpr_32, implicit $exec1812 ; GCN-NEXT: [[V_MAX_U32_e32_1:%[0-9]+]]:vgpr_32 = V_MAX_U32_e32 2, undef %1:vgpr_32, implicit $exec1813 ; GCN-NEXT: [[V_MAX_U32_e32_2:%[0-9]+]]:vgpr_32 = V_MAX_U32_e32 3, undef %1:vgpr_32, implicit $exec1814 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U32_e32_]]1815 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U32_e32_1]]1816 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U32_e32_2]]1817 ; GCN-NEXT: S_ENDPGM 01818 %1:vgpr_32 = V_MAX_U32_e32 1, undef %0:vgpr_32, implicit $exec1819 %2:vgpr_32 = V_MAX_U32_e32 2, undef %0:vgpr_32, implicit $exec1820 %3:vgpr_32 = V_MAX_U32_e32 3, undef %0:vgpr_32, implicit $exec1821 S_NOP 0, implicit %11822 S_NOP 0, implicit %21823 S_NOP 0, implicit %31824 S_ENDPGM 01825...1826---1827name: test_remat_v_lshrrev_b32_e321828tracksRegLiveness: true1829body: |1830 bb.0:1831 ; GCN-LABEL: name: test_remat_v_lshrrev_b32_e321832 ; GCN: [[V_LSHRREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e32 1, undef %1:vgpr_32, implicit $exec1833 ; GCN-NEXT: [[V_LSHRREV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e32 2, undef %1:vgpr_32, implicit $exec1834 ; GCN-NEXT: [[V_LSHRREV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_e32 3, undef %1:vgpr_32, implicit $exec1835 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B32_e32_]]1836 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B32_e32_1]]1837 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B32_e32_2]]1838 ; GCN-NEXT: S_ENDPGM 01839 %1:vgpr_32 = V_LSHRREV_B32_e32 1, undef %0:vgpr_32, implicit $exec1840 %2:vgpr_32 = V_LSHRREV_B32_e32 2, undef %0:vgpr_32, implicit $exec1841 %3:vgpr_32 = V_LSHRREV_B32_e32 3, undef %0:vgpr_32, implicit $exec1842 S_NOP 0, implicit %11843 S_NOP 0, implicit %21844 S_NOP 0, implicit %31845 S_ENDPGM 01846...1847---1848name: test_remat_v_lshlrev_b32_e321849tracksRegLiveness: true1850body: |1851 bb.0:1852 ; GCN-LABEL: name: test_remat_v_lshlrev_b32_e321853 ; GCN: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 1, undef %1:vgpr_32, implicit $exec1854 ; GCN-NEXT: [[V_LSHLREV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 2, undef %1:vgpr_32, implicit $exec1855 ; GCN-NEXT: [[V_LSHLREV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 3, undef %1:vgpr_32, implicit $exec1856 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B32_e32_]]1857 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B32_e32_1]]1858 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B32_e32_2]]1859 ; GCN-NEXT: S_ENDPGM 01860 %1:vgpr_32 = V_LSHLREV_B32_e32 1, undef %0:vgpr_32, implicit $exec1861 %2:vgpr_32 = V_LSHLREV_B32_e32 2, undef %0:vgpr_32, implicit $exec1862 %3:vgpr_32 = V_LSHLREV_B32_e32 3, undef %0:vgpr_32, implicit $exec1863 S_NOP 0, implicit %11864 S_NOP 0, implicit %21865 S_NOP 0, implicit %31866 S_ENDPGM 01867...1868---1869name: test_remat_v_ashrrev_i32_e321870tracksRegLiveness: true1871body: |1872 bb.0:1873 ; GCN-LABEL: name: test_remat_v_ashrrev_i32_e321874 ; GCN: [[V_ASHRREV_I32_e32_:%[0-9]+]]:vgpr_32 = V_ASHRREV_I32_e32 1, undef %1:vgpr_32, implicit $exec1875 ; GCN-NEXT: [[V_ASHRREV_I32_e32_1:%[0-9]+]]:vgpr_32 = V_ASHRREV_I32_e32 2, undef %1:vgpr_32, implicit $exec1876 ; GCN-NEXT: [[V_ASHRREV_I32_e32_2:%[0-9]+]]:vgpr_32 = V_ASHRREV_I32_e32 3, undef %1:vgpr_32, implicit $exec1877 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I32_e32_]]1878 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I32_e32_1]]1879 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I32_e32_2]]1880 ; GCN-NEXT: S_ENDPGM 01881 %1:vgpr_32 = V_ASHRREV_I32_e32 1, undef %0:vgpr_32, implicit $exec1882 %2:vgpr_32 = V_ASHRREV_I32_e32 2, undef %0:vgpr_32, implicit $exec1883 %3:vgpr_32 = V_ASHRREV_I32_e32 3, undef %0:vgpr_32, implicit $exec1884 S_NOP 0, implicit %11885 S_NOP 0, implicit %21886 S_NOP 0, implicit %31887 S_ENDPGM 01888...1889---1890name: test_remat_v_and_b32_e321891tracksRegLiveness: true1892body: |1893 bb.0:1894 ; GCN-LABEL: name: test_remat_v_and_b32_e321895 ; GCN: [[V_AND_B32_e32_:%[0-9]+]]:vgpr_32 = V_AND_B32_e32 1, undef %1:vgpr_32, implicit $exec1896 ; GCN-NEXT: [[V_AND_B32_e32_1:%[0-9]+]]:vgpr_32 = V_AND_B32_e32 2, undef %1:vgpr_32, implicit $exec1897 ; GCN-NEXT: [[V_AND_B32_e32_2:%[0-9]+]]:vgpr_32 = V_AND_B32_e32 3, undef %1:vgpr_32, implicit $exec1898 ; GCN-NEXT: S_NOP 0, implicit [[V_AND_B32_e32_]]1899 ; GCN-NEXT: S_NOP 0, implicit [[V_AND_B32_e32_1]]1900 ; GCN-NEXT: S_NOP 0, implicit [[V_AND_B32_e32_2]]1901 ; GCN-NEXT: S_ENDPGM 01902 %1:vgpr_32 = V_AND_B32_e32 1, undef %0:vgpr_32, implicit $exec1903 %2:vgpr_32 = V_AND_B32_e32 2, undef %0:vgpr_32, implicit $exec1904 %3:vgpr_32 = V_AND_B32_e32 3, undef %0:vgpr_32, implicit $exec1905 S_NOP 0, implicit %11906 S_NOP 0, implicit %21907 S_NOP 0, implicit %31908 S_ENDPGM 01909...1910---1911name: test_remat_v_or_b32_e321912tracksRegLiveness: true1913body: |1914 bb.0:1915 ; GCN-LABEL: name: test_remat_v_or_b32_e321916 ; GCN: [[V_OR_B32_e32_:%[0-9]+]]:vgpr_32 = V_OR_B32_e32 1, undef %1:vgpr_32, implicit $exec1917 ; GCN-NEXT: [[V_OR_B32_e32_1:%[0-9]+]]:vgpr_32 = V_OR_B32_e32 2, undef %1:vgpr_32, implicit $exec1918 ; GCN-NEXT: [[V_OR_B32_e32_2:%[0-9]+]]:vgpr_32 = V_OR_B32_e32 3, undef %1:vgpr_32, implicit $exec1919 ; GCN-NEXT: S_NOP 0, implicit [[V_OR_B32_e32_]]1920 ; GCN-NEXT: S_NOP 0, implicit [[V_OR_B32_e32_1]]1921 ; GCN-NEXT: S_NOP 0, implicit [[V_OR_B32_e32_2]]1922 ; GCN-NEXT: S_ENDPGM 01923 %1:vgpr_32 = V_OR_B32_e32 1, undef %0:vgpr_32, implicit $exec1924 %2:vgpr_32 = V_OR_B32_e32 2, undef %0:vgpr_32, implicit $exec1925 %3:vgpr_32 = V_OR_B32_e32 3, undef %0:vgpr_32, implicit $exec1926 S_NOP 0, implicit %11927 S_NOP 0, implicit %21928 S_NOP 0, implicit %31929 S_ENDPGM 01930...1931---1932name: test_remat_v_xor_b32_e321933tracksRegLiveness: true1934body: |1935 bb.0:1936 ; GCN-LABEL: name: test_remat_v_xor_b32_e321937 ; GCN: [[V_XOR_B32_e32_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 1, undef %1:vgpr_32, implicit $exec1938 ; GCN-NEXT: [[V_XOR_B32_e32_1:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 2, undef %1:vgpr_32, implicit $exec1939 ; GCN-NEXT: [[V_XOR_B32_e32_2:%[0-9]+]]:vgpr_32 = V_XOR_B32_e32 3, undef %1:vgpr_32, implicit $exec1940 ; GCN-NEXT: S_NOP 0, implicit [[V_XOR_B32_e32_]]1941 ; GCN-NEXT: S_NOP 0, implicit [[V_XOR_B32_e32_1]]1942 ; GCN-NEXT: S_NOP 0, implicit [[V_XOR_B32_e32_2]]1943 ; GCN-NEXT: S_ENDPGM 01944 %1:vgpr_32 = V_XOR_B32_e32 1, undef %0:vgpr_32, implicit $exec1945 %2:vgpr_32 = V_XOR_B32_e32 2, undef %0:vgpr_32, implicit $exec1946 %3:vgpr_32 = V_XOR_B32_e32 3, undef %0:vgpr_32, implicit $exec1947 S_NOP 0, implicit %11948 S_NOP 0, implicit %21949 S_NOP 0, implicit %31950 S_ENDPGM 01951...1952---1953name: test_remat_v_madak_f321954tracksRegLiveness: true1955body: |1956 bb.0:1957 ; GCN-LABEL: name: test_remat_v_madak_f321958 ; GCN: [[V_MADAK_F32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MADAK_F32 1, undef %1:vgpr_32, 1, implicit $exec, implicit $mode1959 ; GCN-NEXT: [[V_MADAK_F32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MADAK_F32 2, undef %1:vgpr_32, 2, implicit $exec, implicit $mode1960 ; GCN-NEXT: [[V_MADAK_F32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MADAK_F32 3, undef %1:vgpr_32, 3, implicit $exec, implicit $mode1961 ; GCN-NEXT: S_NOP 0, implicit [[V_MADAK_F32_]]1962 ; GCN-NEXT: S_NOP 0, implicit [[V_MADAK_F32_1]]1963 ; GCN-NEXT: S_NOP 0, implicit [[V_MADAK_F32_2]]1964 ; GCN-NEXT: S_ENDPGM 01965 %1:vgpr_32 = nofpexcept V_MADAK_F32 1, undef %0:vgpr_32, 1, implicit $exec, implicit $mode1966 %2:vgpr_32 = nofpexcept V_MADAK_F32 2, undef %0:vgpr_32, 2, implicit $exec, implicit $mode1967 %3:vgpr_32 = nofpexcept V_MADAK_F32 3, undef %0:vgpr_32, 3, implicit $exec, implicit $mode1968 S_NOP 0, implicit %11969 S_NOP 0, implicit %21970 S_NOP 0, implicit %31971 S_ENDPGM 01972...1973---1974name: test_remat_v_add_u32_e321975tracksRegLiveness: true1976body: |1977 bb.0:1978 ; GCN-LABEL: name: test_remat_v_add_u32_e321979 ; GCN: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 1, undef %1:vgpr_32, implicit $exec1980 ; GCN-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 2, undef %1:vgpr_32, implicit $exec1981 ; GCN-NEXT: [[V_ADD_U32_e32_2:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 3, undef %1:vgpr_32, implicit $exec1982 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U32_e32_]]1983 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U32_e32_1]]1984 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U32_e32_2]]1985 ; GCN-NEXT: S_ENDPGM 01986 %1:vgpr_32 = V_ADD_U32_e32 1, undef %0:vgpr_32, implicit $exec1987 %2:vgpr_32 = V_ADD_U32_e32 2, undef %0:vgpr_32, implicit $exec1988 %3:vgpr_32 = V_ADD_U32_e32 3, undef %0:vgpr_32, implicit $exec1989 S_NOP 0, implicit %11990 S_NOP 0, implicit %21991 S_NOP 0, implicit %31992 S_ENDPGM 01993...1994---1995name: test_remat_v_sub_u32_e321996tracksRegLiveness: true1997body: |1998 bb.0:1999 ; GCN-LABEL: name: test_remat_v_sub_u32_e322000 ; GCN: [[V_SUB_U32_e32_:%[0-9]+]]:vgpr_32 = V_SUB_U32_e32 1, undef %1:vgpr_32, implicit $exec2001 ; GCN-NEXT: [[V_SUB_U32_e32_1:%[0-9]+]]:vgpr_32 = V_SUB_U32_e32 2, undef %1:vgpr_32, implicit $exec2002 ; GCN-NEXT: [[V_SUB_U32_e32_2:%[0-9]+]]:vgpr_32 = V_SUB_U32_e32 3, undef %1:vgpr_32, implicit $exec2003 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U32_e32_]]2004 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U32_e32_1]]2005 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U32_e32_2]]2006 ; GCN-NEXT: S_ENDPGM 02007 %1:vgpr_32 = V_SUB_U32_e32 1, undef %0:vgpr_32, implicit $exec2008 %2:vgpr_32 = V_SUB_U32_e32 2, undef %0:vgpr_32, implicit $exec2009 %3:vgpr_32 = V_SUB_U32_e32 3, undef %0:vgpr_32, implicit $exec2010 S_NOP 0, implicit %12011 S_NOP 0, implicit %22012 S_NOP 0, implicit %32013 S_ENDPGM 02014...2015---2016name: test_remat_v_subrev_u32_e322017tracksRegLiveness: true2018body: |2019 bb.0:2020 ; GCN-LABEL: name: test_remat_v_subrev_u32_e322021 ; GCN: [[V_SUBREV_U32_e32_:%[0-9]+]]:vgpr_32 = V_SUBREV_U32_e32 1, undef %1:vgpr_32, implicit $exec2022 ; GCN-NEXT: [[V_SUBREV_U32_e32_1:%[0-9]+]]:vgpr_32 = V_SUBREV_U32_e32 2, undef %1:vgpr_32, implicit $exec2023 ; GCN-NEXT: [[V_SUBREV_U32_e32_2:%[0-9]+]]:vgpr_32 = V_SUBREV_U32_e32 3, undef %1:vgpr_32, implicit $exec2024 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U32_e32_]]2025 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U32_e32_1]]2026 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U32_e32_2]]2027 ; GCN-NEXT: S_ENDPGM 02028 %1:vgpr_32 = V_SUBREV_U32_e32 1, undef %0:vgpr_32, implicit $exec2029 %2:vgpr_32 = V_SUBREV_U32_e32 2, undef %0:vgpr_32, implicit $exec2030 %3:vgpr_32 = V_SUBREV_U32_e32 3, undef %0:vgpr_32, implicit $exec2031 S_NOP 0, implicit %12032 S_NOP 0, implicit %22033 S_NOP 0, implicit %32034 S_ENDPGM 02035...2036---2037name: test_remat_v_bfm_b32_e322038tracksRegLiveness: true2039body: |2040 bb.0:2041 ; GCN-LABEL: name: test_remat_v_bfm_b32_e322042 ; GCN: [[V_BFM_B32_e32_:%[0-9]+]]:vgpr_32 = V_BFM_B32_e32 1, undef %1:vgpr_32, implicit $exec2043 ; GCN-NEXT: [[V_BFM_B32_e32_1:%[0-9]+]]:vgpr_32 = V_BFM_B32_e32 2, undef %1:vgpr_32, implicit $exec2044 ; GCN-NEXT: [[V_BFM_B32_e32_2:%[0-9]+]]:vgpr_32 = V_BFM_B32_e32 3, undef %1:vgpr_32, implicit $exec2045 ; GCN-NEXT: S_NOP 0, implicit [[V_BFM_B32_e32_]]2046 ; GCN-NEXT: S_NOP 0, implicit [[V_BFM_B32_e32_1]]2047 ; GCN-NEXT: S_NOP 0, implicit [[V_BFM_B32_e32_2]]2048 ; GCN-NEXT: S_ENDPGM 02049 %1:vgpr_32 = V_BFM_B32_e32 1, undef %0:vgpr_32, implicit $exec2050 %2:vgpr_32 = V_BFM_B32_e32 2, undef %0:vgpr_32, implicit $exec2051 %3:vgpr_32 = V_BFM_B32_e32 3, undef %0:vgpr_32, implicit $exec2052 S_NOP 0, implicit %12053 S_NOP 0, implicit %22054 S_NOP 0, implicit %32055 S_ENDPGM 02056...2057---2058name: test_remat_v_bcnt_u32_b32_e322059tracksRegLiveness: true2060body: |2061 bb.0:2062 ; GCN-LABEL: name: test_remat_v_bcnt_u32_b32_e322063 ; GCN: [[V_BCNT_U32_B32_e32_:%[0-9]+]]:vgpr_32 = V_BCNT_U32_B32_e32 1, undef %1:vgpr_32, implicit $exec2064 ; GCN-NEXT: [[V_BCNT_U32_B32_e32_1:%[0-9]+]]:vgpr_32 = V_BCNT_U32_B32_e32 2, undef %1:vgpr_32, implicit $exec2065 ; GCN-NEXT: [[V_BCNT_U32_B32_e32_2:%[0-9]+]]:vgpr_32 = V_BCNT_U32_B32_e32 3, undef %1:vgpr_32, implicit $exec2066 ; GCN-NEXT: S_NOP 0, implicit [[V_BCNT_U32_B32_e32_]]2067 ; GCN-NEXT: S_NOP 0, implicit [[V_BCNT_U32_B32_e32_1]]2068 ; GCN-NEXT: S_NOP 0, implicit [[V_BCNT_U32_B32_e32_2]]2069 ; GCN-NEXT: S_ENDPGM 02070 %1:vgpr_32 = V_BCNT_U32_B32_e32 1, undef %0:vgpr_32, implicit $exec2071 %2:vgpr_32 = V_BCNT_U32_B32_e32 2, undef %0:vgpr_32, implicit $exec2072 %3:vgpr_32 = V_BCNT_U32_B32_e32 3, undef %0:vgpr_32, implicit $exec2073 S_NOP 0, implicit %12074 S_NOP 0, implicit %22075 S_NOP 0, implicit %32076 S_ENDPGM 02077...2078---2079name: test_remat_v_mbcnt_lo_u32_b32_e322080tracksRegLiveness: true2081body: |2082 bb.0:2083 ; GCN-LABEL: name: test_remat_v_mbcnt_lo_u32_b32_e322084 ; GCN: [[V_MBCNT_LO_U32_B32_e32_:%[0-9]+]]:vgpr_32 = V_MBCNT_LO_U32_B32_e32 1, undef %1:vgpr_32, implicit $exec2085 ; GCN-NEXT: [[V_MBCNT_LO_U32_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MBCNT_LO_U32_B32_e32 2, undef %1:vgpr_32, implicit $exec2086 ; GCN-NEXT: [[V_MBCNT_LO_U32_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MBCNT_LO_U32_B32_e32 3, undef %1:vgpr_32, implicit $exec2087 ; GCN-NEXT: S_NOP 0, implicit [[V_MBCNT_LO_U32_B32_e32_]]2088 ; GCN-NEXT: S_NOP 0, implicit [[V_MBCNT_LO_U32_B32_e32_1]]2089 ; GCN-NEXT: S_NOP 0, implicit [[V_MBCNT_LO_U32_B32_e32_2]]2090 ; GCN-NEXT: S_ENDPGM 02091 %1:vgpr_32 = V_MBCNT_LO_U32_B32_e32 1, undef %0:vgpr_32, implicit $exec2092 %2:vgpr_32 = V_MBCNT_LO_U32_B32_e32 2, undef %0:vgpr_32, implicit $exec2093 %3:vgpr_32 = V_MBCNT_LO_U32_B32_e32 3, undef %0:vgpr_32, implicit $exec2094 S_NOP 0, implicit %12095 S_NOP 0, implicit %22096 S_NOP 0, implicit %32097 S_ENDPGM 02098...2099---2100name: test_remat_v_mbcnt_hi_u32_b32_e322101tracksRegLiveness: true2102body: |2103 bb.0:2104 ; GCN-LABEL: name: test_remat_v_mbcnt_hi_u32_b32_e322105 ; GCN: [[V_MBCNT_HI_U32_B32_e32_:%[0-9]+]]:vgpr_32 = V_MBCNT_HI_U32_B32_e32 1, undef %1:vgpr_32, implicit $exec2106 ; GCN-NEXT: [[V_MBCNT_HI_U32_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MBCNT_HI_U32_B32_e32 2, undef %1:vgpr_32, implicit $exec2107 ; GCN-NEXT: [[V_MBCNT_HI_U32_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MBCNT_HI_U32_B32_e32 3, undef %1:vgpr_32, implicit $exec2108 ; GCN-NEXT: S_NOP 0, implicit [[V_MBCNT_HI_U32_B32_e32_]]2109 ; GCN-NEXT: S_NOP 0, implicit [[V_MBCNT_HI_U32_B32_e32_1]]2110 ; GCN-NEXT: S_NOP 0, implicit [[V_MBCNT_HI_U32_B32_e32_2]]2111 ; GCN-NEXT: S_ENDPGM 02112 %1:vgpr_32 = V_MBCNT_HI_U32_B32_e32 1, undef %0:vgpr_32, implicit $exec2113 %2:vgpr_32 = V_MBCNT_HI_U32_B32_e32 2, undef %0:vgpr_32, implicit $exec2114 %3:vgpr_32 = V_MBCNT_HI_U32_B32_e32 3, undef %0:vgpr_32, implicit $exec2115 S_NOP 0, implicit %12116 S_NOP 0, implicit %22117 S_NOP 0, implicit %32118 S_ENDPGM 02119...2120---2121name: test_remat_v_ldexp_f32_e322122tracksRegLiveness: true2123body: |2124 bb.0:2125 ; GCN-LABEL: name: test_remat_v_ldexp_f32_e322126 ; GCN: [[V_LDEXP_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode2127 ; GCN-NEXT: [[V_LDEXP_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode2128 ; GCN-NEXT: [[V_LDEXP_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode2129 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F32_e32_]]2130 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F32_e32_1]]2131 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F32_e32_2]]2132 ; GCN-NEXT: S_ENDPGM 02133 %1:vgpr_32 = nofpexcept V_LDEXP_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode2134 %2:vgpr_32 = nofpexcept V_LDEXP_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode2135 %3:vgpr_32 = nofpexcept V_LDEXP_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode2136 S_NOP 0, implicit %12137 S_NOP 0, implicit %22138 S_NOP 0, implicit %32139 S_ENDPGM 02140...2141---2142name: test_remat_v_cvt_pknorm_i16_f32_e322143tracksRegLiveness: true2144body: |2145 bb.0:2146 ; GCN-LABEL: name: test_remat_v_cvt_pknorm_i16_f32_e322147 ; GCN: [[V_CVT_PKNORM_I16_F32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 1, undef %1:vgpr_32, implicit $exec2148 ; GCN-NEXT: [[V_CVT_PKNORM_I16_F32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 2, undef %1:vgpr_32, implicit $exec2149 ; GCN-NEXT: [[V_CVT_PKNORM_I16_F32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 3, undef %1:vgpr_32, implicit $exec2150 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKNORM_I16_F32_e32_]]2151 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKNORM_I16_F32_e32_1]]2152 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKNORM_I16_F32_e32_2]]2153 ; GCN-NEXT: S_ENDPGM 02154 %1:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 1, undef %0:vgpr_32, implicit $exec2155 %2:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 2, undef %0:vgpr_32, implicit $exec2156 %3:vgpr_32 = V_CVT_PKNORM_I16_F32_e32 3, undef %0:vgpr_32, implicit $exec2157 S_NOP 0, implicit %12158 S_NOP 0, implicit %22159 S_NOP 0, implicit %32160 S_ENDPGM 02161...2162---2163name: test_remat_v_cvt_pknorm_u16_f32_e322164tracksRegLiveness: true2165body: |2166 bb.0:2167 ; GCN-LABEL: name: test_remat_v_cvt_pknorm_u16_f32_e322168 ; GCN: [[V_CVT_PKNORM_U16_F32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 1, undef %1:vgpr_32, implicit $exec2169 ; GCN-NEXT: [[V_CVT_PKNORM_U16_F32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 2, undef %1:vgpr_32, implicit $exec2170 ; GCN-NEXT: [[V_CVT_PKNORM_U16_F32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 3, undef %1:vgpr_32, implicit $exec2171 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKNORM_U16_F32_e32_]]2172 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKNORM_U16_F32_e32_1]]2173 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKNORM_U16_F32_e32_2]]2174 ; GCN-NEXT: S_ENDPGM 02175 %1:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 1, undef %0:vgpr_32, implicit $exec2176 %2:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 2, undef %0:vgpr_32, implicit $exec2177 %3:vgpr_32 = V_CVT_PKNORM_U16_F32_e32 3, undef %0:vgpr_32, implicit $exec2178 S_NOP 0, implicit %12179 S_NOP 0, implicit %22180 S_NOP 0, implicit %32181 S_ENDPGM 02182...2183---2184name: test_remat_v_cvt_pkrtz_f16_f32_e322185tracksRegLiveness: true2186body: |2187 bb.0:2188 ; GCN-LABEL: name: test_remat_v_cvt_pkrtz_f16_f32_e322189 ; GCN: [[V_CVT_PKRTZ_F16_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode2190 ; GCN-NEXT: [[V_CVT_PKRTZ_F16_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode2191 ; GCN-NEXT: [[V_CVT_PKRTZ_F16_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode2192 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKRTZ_F16_F32_e32_]]2193 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKRTZ_F16_F32_e32_1]]2194 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PKRTZ_F16_F32_e32_2]]2195 ; GCN-NEXT: S_ENDPGM 02196 %1:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode2197 %2:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode2198 %3:vgpr_32 = nofpexcept V_CVT_PKRTZ_F16_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode2199 S_NOP 0, implicit %12200 S_NOP 0, implicit %22201 S_NOP 0, implicit %32202 S_ENDPGM 02203...2204---2205name: test_remat_v_cvt_pk_u16_u32_e322206tracksRegLiveness: true2207body: |2208 bb.0:2209 ; GCN-LABEL: name: test_remat_v_cvt_pk_u16_u32_e322210 ; GCN: [[V_CVT_PK_U16_U32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_PK_U16_U32_e32 1, undef %1:vgpr_32, implicit $exec2211 ; GCN-NEXT: [[V_CVT_PK_U16_U32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_PK_U16_U32_e32 2, undef %1:vgpr_32, implicit $exec2212 ; GCN-NEXT: [[V_CVT_PK_U16_U32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_PK_U16_U32_e32 3, undef %1:vgpr_32, implicit $exec2213 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_U16_U32_e32_]]2214 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_U16_U32_e32_1]]2215 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_U16_U32_e32_2]]2216 ; GCN-NEXT: S_ENDPGM 02217 %1:vgpr_32 = V_CVT_PK_U16_U32_e32 1, undef %0:vgpr_32, implicit $exec2218 %2:vgpr_32 = V_CVT_PK_U16_U32_e32 2, undef %0:vgpr_32, implicit $exec2219 %3:vgpr_32 = V_CVT_PK_U16_U32_e32 3, undef %0:vgpr_32, implicit $exec2220 S_NOP 0, implicit %12221 S_NOP 0, implicit %22222 S_NOP 0, implicit %32223 S_ENDPGM 02224...2225---2226name: test_remat_v_cvt_pk_i16_i32_e322227tracksRegLiveness: true2228body: |2229 bb.0:2230 ; GCN-LABEL: name: test_remat_v_cvt_pk_i16_i32_e322231 ; GCN: [[V_CVT_PK_I16_I32_e32_:%[0-9]+]]:vgpr_32 = V_CVT_PK_I16_I32_e32 1, undef %1:vgpr_32, implicit $exec2232 ; GCN-NEXT: [[V_CVT_PK_I16_I32_e32_1:%[0-9]+]]:vgpr_32 = V_CVT_PK_I16_I32_e32 2, undef %1:vgpr_32, implicit $exec2233 ; GCN-NEXT: [[V_CVT_PK_I16_I32_e32_2:%[0-9]+]]:vgpr_32 = V_CVT_PK_I16_I32_e32 3, undef %1:vgpr_32, implicit $exec2234 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_I16_I32_e32_]]2235 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_I16_I32_e32_1]]2236 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_I16_I32_e32_2]]2237 ; GCN-NEXT: S_ENDPGM 02238 %1:vgpr_32 = V_CVT_PK_I16_I32_e32 1, undef %0:vgpr_32, implicit $exec2239 %2:vgpr_32 = V_CVT_PK_I16_I32_e32 2, undef %0:vgpr_32, implicit $exec2240 %3:vgpr_32 = V_CVT_PK_I16_I32_e32 3, undef %0:vgpr_32, implicit $exec2241 S_NOP 0, implicit %12242 S_NOP 0, implicit %22243 S_NOP 0, implicit %32244 S_ENDPGM 02245...2246---2247name: test_remat_v_min_legacy_f32_e322248tracksRegLiveness: true2249body: |2250 bb.0:2251 ; GCN-LABEL: name: test_remat_v_min_legacy_f32_e322252 ; GCN: [[V_MIN_LEGACY_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode2253 ; GCN-NEXT: [[V_MIN_LEGACY_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode2254 ; GCN-NEXT: [[V_MIN_LEGACY_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode2255 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_LEGACY_F32_e32_]]2256 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_LEGACY_F32_e32_1]]2257 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_LEGACY_F32_e32_2]]2258 ; GCN-NEXT: S_ENDPGM 02259 %1:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode2260 %2:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode2261 %3:vgpr_32 = nofpexcept V_MIN_LEGACY_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode2262 S_NOP 0, implicit %12263 S_NOP 0, implicit %22264 S_NOP 0, implicit %32265 S_ENDPGM 02266...2267---2268name: test_remat_v_max_legacy_f32_e322269tracksRegLiveness: true2270body: |2271 bb.0:2272 ; GCN-LABEL: name: test_remat_v_max_legacy_f32_e322273 ; GCN: [[V_MAX_LEGACY_F32_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 1, undef %1:vgpr_32, implicit $exec, implicit $mode2274 ; GCN-NEXT: [[V_MAX_LEGACY_F32_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 2, undef %1:vgpr_32, implicit $exec, implicit $mode2275 ; GCN-NEXT: [[V_MAX_LEGACY_F32_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 3, undef %1:vgpr_32, implicit $exec, implicit $mode2276 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_LEGACY_F32_e32_]]2277 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_LEGACY_F32_e32_1]]2278 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_LEGACY_F32_e32_2]]2279 ; GCN-NEXT: S_ENDPGM 02280 %1:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode2281 %2:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode2282 %3:vgpr_32 = nofpexcept V_MAX_LEGACY_F32_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode2283 S_NOP 0, implicit %12284 S_NOP 0, implicit %22285 S_NOP 0, implicit %32286 S_ENDPGM 02287...2288---2289name: test_remat_v_lshr_b32_e322290tracksRegLiveness: true2291body: |2292 bb.0:2293 ; GCN-LABEL: name: test_remat_v_lshr_b32_e322294 ; GCN: [[V_LSHR_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHR_B32_e32 1, undef %1:vgpr_32, implicit $exec2295 ; GCN-NEXT: [[V_LSHR_B32_e32_1:%[0-9]+]]:vgpr_32 = V_LSHR_B32_e32 2, undef %1:vgpr_32, implicit $exec2296 ; GCN-NEXT: [[V_LSHR_B32_e32_2:%[0-9]+]]:vgpr_32 = V_LSHR_B32_e32 3, undef %1:vgpr_32, implicit $exec2297 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHR_B32_e32_]]2298 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHR_B32_e32_1]]2299 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHR_B32_e32_2]]2300 ; GCN-NEXT: S_ENDPGM 02301 %1:vgpr_32 = V_LSHR_B32_e32 1, undef %0:vgpr_32, implicit $exec2302 %2:vgpr_32 = V_LSHR_B32_e32 2, undef %0:vgpr_32, implicit $exec2303 %3:vgpr_32 = V_LSHR_B32_e32 3, undef %0:vgpr_32, implicit $exec2304 S_NOP 0, implicit %12305 S_NOP 0, implicit %22306 S_NOP 0, implicit %32307 S_ENDPGM 02308...2309---2310name: test_remat_v_lshl_b32_e322311tracksRegLiveness: true2312body: |2313 bb.0:2314 ; GCN-LABEL: name: test_remat_v_lshl_b32_e322315 ; GCN: [[V_LSHL_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHL_B32_e32 1, undef %1:vgpr_32, implicit $exec2316 ; GCN-NEXT: [[V_LSHL_B32_e32_1:%[0-9]+]]:vgpr_32 = V_LSHL_B32_e32 2, undef %1:vgpr_32, implicit $exec2317 ; GCN-NEXT: [[V_LSHL_B32_e32_2:%[0-9]+]]:vgpr_32 = V_LSHL_B32_e32 3, undef %1:vgpr_32, implicit $exec2318 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_B32_e32_]]2319 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_B32_e32_1]]2320 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_B32_e32_2]]2321 ; GCN-NEXT: S_ENDPGM 02322 %1:vgpr_32 = V_LSHL_B32_e32 1, undef %0:vgpr_32, implicit $exec2323 %2:vgpr_32 = V_LSHL_B32_e32 2, undef %0:vgpr_32, implicit $exec2324 %3:vgpr_32 = V_LSHL_B32_e32 3, undef %0:vgpr_32, implicit $exec2325 S_NOP 0, implicit %12326 S_NOP 0, implicit %22327 S_NOP 0, implicit %32328 S_ENDPGM 02329...2330---2331name: test_remat_v_ashr_i32_e322332tracksRegLiveness: true2333body: |2334 bb.0:2335 ; GCN-LABEL: name: test_remat_v_ashr_i32_e322336 ; GCN: [[V_ASHR_I32_e32_:%[0-9]+]]:vgpr_32 = V_ASHR_I32_e32 1, undef %1:vgpr_32, implicit $exec2337 ; GCN-NEXT: [[V_ASHR_I32_e32_1:%[0-9]+]]:vgpr_32 = V_ASHR_I32_e32 2, undef %1:vgpr_32, implicit $exec2338 ; GCN-NEXT: [[V_ASHR_I32_e32_2:%[0-9]+]]:vgpr_32 = V_ASHR_I32_e32 3, undef %1:vgpr_32, implicit $exec2339 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHR_I32_e32_]]2340 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHR_I32_e32_1]]2341 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHR_I32_e32_2]]2342 ; GCN-NEXT: S_ENDPGM 02343 %1:vgpr_32 = V_ASHR_I32_e32 1, undef %0:vgpr_32, implicit $exec2344 %2:vgpr_32 = V_ASHR_I32_e32 2, undef %0:vgpr_32, implicit $exec2345 %3:vgpr_32 = V_ASHR_I32_e32 3, undef %0:vgpr_32, implicit $exec2346 S_NOP 0, implicit %12347 S_NOP 0, implicit %22348 S_NOP 0, implicit %32349 S_ENDPGM 02350...2351---2352name: test_remat_v_xnor_b32_e322353tracksRegLiveness: true2354body: |2355 bb.0:2356 ; GCN-LABEL: name: test_remat_v_xnor_b32_e322357 ; GCN: [[V_XNOR_B32_e32_:%[0-9]+]]:vgpr_32 = V_XNOR_B32_e32 1, undef %1:vgpr_32, implicit $exec2358 ; GCN-NEXT: [[V_XNOR_B32_e32_1:%[0-9]+]]:vgpr_32 = V_XNOR_B32_e32 2, undef %1:vgpr_32, implicit $exec2359 ; GCN-NEXT: [[V_XNOR_B32_e32_2:%[0-9]+]]:vgpr_32 = V_XNOR_B32_e32 3, undef %1:vgpr_32, implicit $exec2360 ; GCN-NEXT: S_NOP 0, implicit [[V_XNOR_B32_e32_]]2361 ; GCN-NEXT: S_NOP 0, implicit [[V_XNOR_B32_e32_1]]2362 ; GCN-NEXT: S_NOP 0, implicit [[V_XNOR_B32_e32_2]]2363 ; GCN-NEXT: S_ENDPGM 02364 %1:vgpr_32 = V_XNOR_B32_e32 1, undef %0:vgpr_32, implicit $exec2365 %2:vgpr_32 = V_XNOR_B32_e32 2, undef %0:vgpr_32, implicit $exec2366 %3:vgpr_32 = V_XNOR_B32_e32 3, undef %0:vgpr_32, implicit $exec2367 S_NOP 0, implicit %12368 S_NOP 0, implicit %22369 S_NOP 0, implicit %32370 S_ENDPGM 02371...2372---2373name: test_remat_v_fmamk_f322374tracksRegLiveness: true2375body: |2376 bb.0:2377 ; GCN-LABEL: name: test_remat_v_fmamk_f322378 ; GCN: [[V_FMAMK_F32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAMK_F32 1, 1, undef %1:vgpr_32, implicit $exec, implicit $mode2379 ; GCN-NEXT: [[V_FMAMK_F32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAMK_F32 2, 2, undef %1:vgpr_32, implicit $exec, implicit $mode2380 ; GCN-NEXT: [[V_FMAMK_F32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAMK_F32 3, 3, undef %1:vgpr_32, implicit $exec, implicit $mode2381 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAMK_F32_]]2382 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAMK_F32_1]]2383 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAMK_F32_2]]2384 ; GCN-NEXT: S_ENDPGM 02385 %1:vgpr_32 = nofpexcept V_FMAMK_F32 1, 1, undef %0:vgpr_32, implicit $exec, implicit $mode2386 %2:vgpr_32 = nofpexcept V_FMAMK_F32 2, 2, undef %0:vgpr_32, implicit $exec, implicit $mode2387 %3:vgpr_32 = nofpexcept V_FMAMK_F32 3, 3, undef %0:vgpr_32, implicit $exec, implicit $mode2388 S_NOP 0, implicit %12389 S_NOP 0, implicit %22390 S_NOP 0, implicit %32391 S_ENDPGM 02392...2393---2394name: test_remat_v_fmaak_f322395tracksRegLiveness: true2396body: |2397 bb.0:2398 ; GCN-LABEL: name: test_remat_v_fmaak_f322399 ; GCN: [[V_FMAAK_F32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAAK_F32 1, undef %1:vgpr_32, 1, implicit $exec, implicit $mode2400 ; GCN-NEXT: [[V_FMAAK_F32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAAK_F32 2, undef %1:vgpr_32, 2, implicit $exec, implicit $mode2401 ; GCN-NEXT: [[V_FMAAK_F32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAAK_F32 3, undef %1:vgpr_32, 3, implicit $exec, implicit $mode2402 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAAK_F32_]]2403 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAAK_F32_1]]2404 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAAK_F32_2]]2405 ; GCN-NEXT: S_ENDPGM 02406 %1:vgpr_32 = nofpexcept V_FMAAK_F32 1, undef %0:vgpr_32, 1, implicit $exec, implicit $mode2407 %2:vgpr_32 = nofpexcept V_FMAAK_F32 2, undef %0:vgpr_32, 2, implicit $exec, implicit $mode2408 %3:vgpr_32 = nofpexcept V_FMAAK_F32 3, undef %0:vgpr_32, 3, implicit $exec, implicit $mode2409 S_NOP 0, implicit %12410 S_NOP 0, implicit %22411 S_NOP 0, implicit %32412 S_ENDPGM 02413...2414---2415name: test_remat_v_mad_legacy_f32_e642416tracksRegLiveness: true2417body: |2418 bb.0:2419 ; GCN-LABEL: name: test_remat_v_mad_legacy_f32_e642420 ; GCN: [[V_MAD_LEGACY_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2421 ; GCN-NEXT: [[V_MAD_LEGACY_F32_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2422 ; GCN-NEXT: [[V_MAD_LEGACY_F32_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2423 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_LEGACY_F32_e64_]]2424 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_LEGACY_F32_e64_1]]2425 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_LEGACY_F32_e64_2]]2426 ; GCN-NEXT: S_ENDPGM 02427 %1:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2428 %2:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2429 %3:vgpr_32 = nofpexcept V_MAD_LEGACY_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2430 S_NOP 0, implicit %12431 S_NOP 0, implicit %22432 S_NOP 0, implicit %32433 S_ENDPGM 02434...2435---2436name: test_remat_v_mad_f32_e642437tracksRegLiveness: true2438body: |2439 bb.0:2440 ; GCN-LABEL: name: test_remat_v_mad_f32_e642441 ; GCN: [[V_MAD_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2442 ; GCN-NEXT: [[V_MAD_F32_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2443 ; GCN-NEXT: [[V_MAD_F32_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2444 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_F32_e64_]]2445 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_F32_e64_1]]2446 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_F32_e64_2]]2447 ; GCN-NEXT: S_ENDPGM 02448 %1:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2449 %2:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2450 %3:vgpr_32 = nofpexcept V_MAD_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2451 S_NOP 0, implicit %12452 S_NOP 0, implicit %22453 S_NOP 0, implicit %32454 S_ENDPGM 02455...2456---2457name: test_remat_v_fma_legacy_f32_e642458tracksRegLiveness: true2459body: |2460 bb.0:2461 ; GCN-LABEL: name: test_remat_v_fma_legacy_f32_e642462 ; GCN: [[V_FMA_LEGACY_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2463 ; GCN-NEXT: [[V_FMA_LEGACY_F32_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2464 ; GCN-NEXT: [[V_FMA_LEGACY_F32_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2465 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_LEGACY_F32_e64_]]2466 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_LEGACY_F32_e64_1]]2467 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_LEGACY_F32_e64_2]]2468 ; GCN-NEXT: S_ENDPGM 02469 %1:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2470 %2:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2471 %3:vgpr_32 = nofpexcept V_FMA_LEGACY_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2472 S_NOP 0, implicit %12473 S_NOP 0, implicit %22474 S_NOP 0, implicit %32475 S_ENDPGM 02476...2477---2478name: test_remat_v_fma_f32_e642479tracksRegLiveness: true2480body: |2481 bb.0:2482 ; GCN-LABEL: name: test_remat_v_fma_f32_e642483 ; GCN: [[V_FMA_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2484 ; GCN-NEXT: [[V_FMA_F32_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2485 ; GCN-NEXT: [[V_FMA_F32_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2486 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_F32_e64_]]2487 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_F32_e64_1]]2488 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_F32_e64_2]]2489 ; GCN-NEXT: S_ENDPGM 02490 %1:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2491 %2:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2492 %3:vgpr_32 = nofpexcept V_FMA_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2493 S_NOP 0, implicit %12494 S_NOP 0, implicit %22495 S_NOP 0, implicit %32496 S_ENDPGM 02497...2498---2499name: test_remat_v_mad_i32_i24_e642500tracksRegLiveness: true2501body: |2502 bb.0:2503 ; GCN-LABEL: name: test_remat_v_mad_i32_i24_e642504 ; GCN: [[V_MAD_I32_I24_e64_:%[0-9]+]]:vgpr_32 = V_MAD_I32_I24_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec2505 ; GCN-NEXT: [[V_MAD_I32_I24_e64_1:%[0-9]+]]:vgpr_32 = V_MAD_I32_I24_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec2506 ; GCN-NEXT: [[V_MAD_I32_I24_e64_2:%[0-9]+]]:vgpr_32 = V_MAD_I32_I24_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec2507 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_I32_I24_e64_]]2508 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_I32_I24_e64_1]]2509 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_I32_I24_e64_2]]2510 ; GCN-NEXT: S_ENDPGM 02511 %1:vgpr_32 = V_MAD_I32_I24_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec2512 %2:vgpr_32 = V_MAD_I32_I24_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec2513 %3:vgpr_32 = V_MAD_I32_I24_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec2514 S_NOP 0, implicit %12515 S_NOP 0, implicit %22516 S_NOP 0, implicit %32517 S_ENDPGM 02518...2519---2520name: test_remat_v_mad_u32_u24_e642521tracksRegLiveness: true2522body: |2523 bb.0:2524 ; GCN-LABEL: name: test_remat_v_mad_u32_u24_e642525 ; GCN: [[V_MAD_U32_U24_e64_:%[0-9]+]]:vgpr_32 = V_MAD_U32_U24_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec2526 ; GCN-NEXT: [[V_MAD_U32_U24_e64_1:%[0-9]+]]:vgpr_32 = V_MAD_U32_U24_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec2527 ; GCN-NEXT: [[V_MAD_U32_U24_e64_2:%[0-9]+]]:vgpr_32 = V_MAD_U32_U24_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec2528 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_U32_U24_e64_]]2529 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_U32_U24_e64_1]]2530 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_U32_U24_e64_2]]2531 ; GCN-NEXT: S_ENDPGM 02532 %1:vgpr_32 = V_MAD_U32_U24_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec2533 %2:vgpr_32 = V_MAD_U32_U24_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec2534 %3:vgpr_32 = V_MAD_U32_U24_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec2535 S_NOP 0, implicit %12536 S_NOP 0, implicit %22537 S_NOP 0, implicit %32538 S_ENDPGM 02539...2540---2541name: test_remat_v_lerp_u8_e642542tracksRegLiveness: true2543body: |2544 bb.0:2545 ; GCN-LABEL: name: test_remat_v_lerp_u8_e642546 ; GCN: [[V_LERP_U8_e64_:%[0-9]+]]:vgpr_32 = V_LERP_U8_e64 1, 1, undef %1:vgpr_32, implicit $exec2547 ; GCN-NEXT: [[V_LERP_U8_e64_1:%[0-9]+]]:vgpr_32 = V_LERP_U8_e64 2, 2, undef %1:vgpr_32, implicit $exec2548 ; GCN-NEXT: [[V_LERP_U8_e64_2:%[0-9]+]]:vgpr_32 = V_LERP_U8_e64 3, 3, undef %1:vgpr_32, implicit $exec2549 ; GCN-NEXT: S_NOP 0, implicit [[V_LERP_U8_e64_]]2550 ; GCN-NEXT: S_NOP 0, implicit [[V_LERP_U8_e64_1]]2551 ; GCN-NEXT: S_NOP 0, implicit [[V_LERP_U8_e64_2]]2552 ; GCN-NEXT: S_ENDPGM 02553 %1:vgpr_32 = V_LERP_U8_e64 1, 1, undef %0:vgpr_32, implicit $exec2554 %2:vgpr_32 = V_LERP_U8_e64 2, 2, undef %0:vgpr_32, implicit $exec2555 %3:vgpr_32 = V_LERP_U8_e64 3, 3, undef %0:vgpr_32, implicit $exec2556 S_NOP 0, implicit %12557 S_NOP 0, implicit %22558 S_NOP 0, implicit %32559 S_ENDPGM 02560...2561---2562name: test_remat_v_fma_f64_e642563tracksRegLiveness: true2564body: |2565 bb.0:2566 ; GCN-LABEL: name: test_remat_v_fma_f64_e642567 ; GCN: [[V_FMA_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 1, 0, 1, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2568 ; GCN-NEXT: [[V_FMA_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 2, 0, 2, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2569 ; GCN-NEXT: [[V_FMA_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 3, 0, 3, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2570 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_F64_e64_]]2571 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_F64_e64_1]]2572 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_F64_e64_2]]2573 ; GCN-NEXT: S_ENDPGM 02574 %1:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 1, 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2575 %2:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 2, 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2576 %3:vreg_64_align2 = nofpexcept V_FMA_F64_e64 0, 3, 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2577 S_NOP 0, implicit %12578 S_NOP 0, implicit %22579 S_NOP 0, implicit %32580 S_ENDPGM 02581...2582---2583name: test_remat_v_add_f64_e642584tracksRegLiveness: true2585body: |2586 bb.0:2587 ; GCN-LABEL: name: test_remat_v_add_f64_e642588 ; GCN: [[V_ADD_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 1, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2589 ; GCN-NEXT: [[V_ADD_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 2, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2590 ; GCN-NEXT: [[V_ADD_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 3, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2591 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F64_e64_]]2592 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F64_e64_1]]2593 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F64_e64_2]]2594 ; GCN-NEXT: S_ENDPGM 02595 %1:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2596 %2:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2597 %3:vreg_64_align2 = nofpexcept V_ADD_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2598 S_NOP 0, implicit %12599 S_NOP 0, implicit %22600 S_NOP 0, implicit %32601 S_ENDPGM 02602...2603---2604name: test_remat_v_mul_f64_e642605tracksRegLiveness: true2606body: |2607 bb.0:2608 ; GCN-LABEL: name: test_remat_v_mul_f64_e642609 ; GCN: [[V_MUL_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 1, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2610 ; GCN-NEXT: [[V_MUL_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 2, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2611 ; GCN-NEXT: [[V_MUL_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 3, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2612 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F64_e64_]]2613 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F64_e64_1]]2614 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F64_e64_2]]2615 ; GCN-NEXT: S_ENDPGM 02616 %1:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2617 %2:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2618 %3:vreg_64_align2 = nofpexcept V_MUL_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2619 S_NOP 0, implicit %12620 S_NOP 0, implicit %22621 S_NOP 0, implicit %32622 S_ENDPGM 02623...2624---2625name: test_remat_v_min_f64_e642626tracksRegLiveness: true2627body: |2628 bb.0:2629 ; GCN-LABEL: name: test_remat_v_min_f64_e642630 ; GCN: [[V_MIN_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 1, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2631 ; GCN-NEXT: [[V_MIN_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 2, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2632 ; GCN-NEXT: [[V_MIN_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 3, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2633 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F64_e64_]]2634 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F64_e64_1]]2635 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F64_e64_2]]2636 ; GCN-NEXT: S_ENDPGM 02637 %1:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2638 %2:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2639 %3:vreg_64_align2 = nofpexcept V_MIN_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2640 S_NOP 0, implicit %12641 S_NOP 0, implicit %22642 S_NOP 0, implicit %32643 S_ENDPGM 02644...2645---2646name: test_remat_v_max_f64_e642647tracksRegLiveness: true2648body: |2649 bb.0:2650 ; GCN-LABEL: name: test_remat_v_max_f64_e642651 ; GCN: [[V_MAX_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 1, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2652 ; GCN-NEXT: [[V_MAX_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 2, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2653 ; GCN-NEXT: [[V_MAX_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 3, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2654 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F64_e64_]]2655 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F64_e64_1]]2656 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F64_e64_2]]2657 ; GCN-NEXT: S_ENDPGM 02658 %1:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 1, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2659 %2:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 2, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2660 %3:vreg_64_align2 = nofpexcept V_MAX_F64_e64 0, 3, 0, undef %0:vreg_64_align2, 0, 0, implicit $exec, implicit $mode2661 S_NOP 0, implicit %12662 S_NOP 0, implicit %22663 S_NOP 0, implicit %32664 S_ENDPGM 02665...2666---2667name: test_remat_v_mul_lo_u32_e642668tracksRegLiveness: true2669body: |2670 bb.0:2671 ; GCN-LABEL: name: test_remat_v_mul_lo_u32_e642672 ; GCN: [[V_MUL_LO_U32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32_e64 1, undef %1:vgpr_32, implicit $exec2673 ; GCN-NEXT: [[V_MUL_LO_U32_e64_1:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32_e64 2, undef %1:vgpr_32, implicit $exec2674 ; GCN-NEXT: [[V_MUL_LO_U32_e64_2:%[0-9]+]]:vgpr_32 = V_MUL_LO_U32_e64 3, undef %1:vgpr_32, implicit $exec2675 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U32_e64_]]2676 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U32_e64_1]]2677 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U32_e64_2]]2678 ; GCN-NEXT: S_ENDPGM 02679 %1:vgpr_32 = V_MUL_LO_U32_e64 1, undef %0:vgpr_32, implicit $exec2680 %2:vgpr_32 = V_MUL_LO_U32_e64 2, undef %0:vgpr_32, implicit $exec2681 %3:vgpr_32 = V_MUL_LO_U32_e64 3, undef %0:vgpr_32, implicit $exec2682 S_NOP 0, implicit %12683 S_NOP 0, implicit %22684 S_NOP 0, implicit %32685 S_ENDPGM 02686...2687---2688name: test_remat_v_mul_hi_u32_e642689tracksRegLiveness: true2690body: |2691 bb.0:2692 ; GCN-LABEL: name: test_remat_v_mul_hi_u32_e642693 ; GCN: [[V_MUL_HI_U32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_HI_U32_e64 1, undef %1:vgpr_32, implicit $exec2694 ; GCN-NEXT: [[V_MUL_HI_U32_e64_1:%[0-9]+]]:vgpr_32 = V_MUL_HI_U32_e64 2, undef %1:vgpr_32, implicit $exec2695 ; GCN-NEXT: [[V_MUL_HI_U32_e64_2:%[0-9]+]]:vgpr_32 = V_MUL_HI_U32_e64 3, undef %1:vgpr_32, implicit $exec2696 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_U32_e64_]]2697 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_U32_e64_1]]2698 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_U32_e64_2]]2699 ; GCN-NEXT: S_ENDPGM 02700 %1:vgpr_32 = V_MUL_HI_U32_e64 1, undef %0:vgpr_32, implicit $exec2701 %2:vgpr_32 = V_MUL_HI_U32_e64 2, undef %0:vgpr_32, implicit $exec2702 %3:vgpr_32 = V_MUL_HI_U32_e64 3, undef %0:vgpr_32, implicit $exec2703 S_NOP 0, implicit %12704 S_NOP 0, implicit %22705 S_NOP 0, implicit %32706 S_ENDPGM 02707...2708---2709name: test_remat_v_mul_lo_i32_e642710tracksRegLiveness: true2711body: |2712 bb.0:2713 ; GCN-LABEL: name: test_remat_v_mul_lo_i32_e642714 ; GCN: [[V_MUL_LO_I32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_LO_I32_e64 1, undef %1:vgpr_32, implicit $exec2715 ; GCN-NEXT: [[V_MUL_LO_I32_e64_1:%[0-9]+]]:vgpr_32 = V_MUL_LO_I32_e64 2, undef %1:vgpr_32, implicit $exec2716 ; GCN-NEXT: [[V_MUL_LO_I32_e64_2:%[0-9]+]]:vgpr_32 = V_MUL_LO_I32_e64 3, undef %1:vgpr_32, implicit $exec2717 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_I32_e64_]]2718 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_I32_e64_1]]2719 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_I32_e64_2]]2720 ; GCN-NEXT: S_ENDPGM 02721 %1:vgpr_32 = V_MUL_LO_I32_e64 1, undef %0:vgpr_32, implicit $exec2722 %2:vgpr_32 = V_MUL_LO_I32_e64 2, undef %0:vgpr_32, implicit $exec2723 %3:vgpr_32 = V_MUL_LO_I32_e64 3, undef %0:vgpr_32, implicit $exec2724 S_NOP 0, implicit %12725 S_NOP 0, implicit %22726 S_NOP 0, implicit %32727 S_ENDPGM 02728...2729---2730name: test_remat_v_mul_hi_i32_e642731tracksRegLiveness: true2732body: |2733 bb.0:2734 ; GCN-LABEL: name: test_remat_v_mul_hi_i32_e642735 ; GCN: [[V_MUL_HI_I32_e64_:%[0-9]+]]:vgpr_32 = V_MUL_HI_I32_e64 1, undef %1:vgpr_32, implicit $exec2736 ; GCN-NEXT: [[V_MUL_HI_I32_e64_1:%[0-9]+]]:vgpr_32 = V_MUL_HI_I32_e64 2, undef %1:vgpr_32, implicit $exec2737 ; GCN-NEXT: [[V_MUL_HI_I32_e64_2:%[0-9]+]]:vgpr_32 = V_MUL_HI_I32_e64 3, undef %1:vgpr_32, implicit $exec2738 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_I32_e64_]]2739 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_I32_e64_1]]2740 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_HI_I32_e64_2]]2741 ; GCN-NEXT: S_ENDPGM 02742 %1:vgpr_32 = V_MUL_HI_I32_e64 1, undef %0:vgpr_32, implicit $exec2743 %2:vgpr_32 = V_MUL_HI_I32_e64 2, undef %0:vgpr_32, implicit $exec2744 %3:vgpr_32 = V_MUL_HI_I32_e64 3, undef %0:vgpr_32, implicit $exec2745 S_NOP 0, implicit %12746 S_NOP 0, implicit %22747 S_NOP 0, implicit %32748 S_ENDPGM 02749...2750---2751name: test_remat_v_cubeid_f32_e642752tracksRegLiveness: true2753body: |2754 bb.0:2755 ; GCN-LABEL: name: test_remat_v_cubeid_f32_e642756 ; GCN: [[V_CUBEID_F32_e64_:%[0-9]+]]:vgpr_32 = V_CUBEID_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2757 ; GCN-NEXT: [[V_CUBEID_F32_e64_1:%[0-9]+]]:vgpr_32 = V_CUBEID_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2758 ; GCN-NEXT: [[V_CUBEID_F32_e64_2:%[0-9]+]]:vgpr_32 = V_CUBEID_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2759 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBEID_F32_e64_]]2760 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBEID_F32_e64_1]]2761 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBEID_F32_e64_2]]2762 ; GCN-NEXT: S_ENDPGM 02763 %1:vgpr_32 = V_CUBEID_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2764 %2:vgpr_32 = V_CUBEID_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2765 %3:vgpr_32 = V_CUBEID_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2766 S_NOP 0, implicit %12767 S_NOP 0, implicit %22768 S_NOP 0, implicit %32769 S_ENDPGM 02770...2771---2772name: test_remat_v_cubesc_f32_e642773tracksRegLiveness: true2774body: |2775 bb.0:2776 ; GCN-LABEL: name: test_remat_v_cubesc_f32_e642777 ; GCN: [[V_CUBESC_F32_e64_:%[0-9]+]]:vgpr_32 = V_CUBESC_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2778 ; GCN-NEXT: [[V_CUBESC_F32_e64_1:%[0-9]+]]:vgpr_32 = V_CUBESC_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2779 ; GCN-NEXT: [[V_CUBESC_F32_e64_2:%[0-9]+]]:vgpr_32 = V_CUBESC_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2780 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBESC_F32_e64_]]2781 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBESC_F32_e64_1]]2782 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBESC_F32_e64_2]]2783 ; GCN-NEXT: S_ENDPGM 02784 %1:vgpr_32 = V_CUBESC_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2785 %2:vgpr_32 = V_CUBESC_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2786 %3:vgpr_32 = V_CUBESC_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2787 S_NOP 0, implicit %12788 S_NOP 0, implicit %22789 S_NOP 0, implicit %32790 S_ENDPGM 02791...2792---2793name: test_remat_v_cubetc_f32_e642794tracksRegLiveness: true2795body: |2796 bb.0:2797 ; GCN-LABEL: name: test_remat_v_cubetc_f32_e642798 ; GCN: [[V_CUBETC_F32_e64_:%[0-9]+]]:vgpr_32 = V_CUBETC_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2799 ; GCN-NEXT: [[V_CUBETC_F32_e64_1:%[0-9]+]]:vgpr_32 = V_CUBETC_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2800 ; GCN-NEXT: [[V_CUBETC_F32_e64_2:%[0-9]+]]:vgpr_32 = V_CUBETC_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2801 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBETC_F32_e64_]]2802 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBETC_F32_e64_1]]2803 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBETC_F32_e64_2]]2804 ; GCN-NEXT: S_ENDPGM 02805 %1:vgpr_32 = V_CUBETC_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2806 %2:vgpr_32 = V_CUBETC_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2807 %3:vgpr_32 = V_CUBETC_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2808 S_NOP 0, implicit %12809 S_NOP 0, implicit %22810 S_NOP 0, implicit %32811 S_ENDPGM 02812...2813---2814name: test_remat_v_cubema_f32_e642815tracksRegLiveness: true2816body: |2817 bb.0:2818 ; GCN-LABEL: name: test_remat_v_cubema_f32_e642819 ; GCN: [[V_CUBEMA_F32_e64_:%[0-9]+]]:vgpr_32 = V_CUBEMA_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2820 ; GCN-NEXT: [[V_CUBEMA_F32_e64_1:%[0-9]+]]:vgpr_32 = V_CUBEMA_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2821 ; GCN-NEXT: [[V_CUBEMA_F32_e64_2:%[0-9]+]]:vgpr_32 = V_CUBEMA_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode2822 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBEMA_F32_e64_]]2823 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBEMA_F32_e64_1]]2824 ; GCN-NEXT: S_NOP 0, implicit [[V_CUBEMA_F32_e64_2]]2825 ; GCN-NEXT: S_ENDPGM 02826 %1:vgpr_32 = V_CUBEMA_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2827 %2:vgpr_32 = V_CUBEMA_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2828 %3:vgpr_32 = V_CUBEMA_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode2829 S_NOP 0, implicit %12830 S_NOP 0, implicit %22831 S_NOP 0, implicit %32832 S_ENDPGM 02833...2834---2835name: test_remat_v_bfe_u32_e642836tracksRegLiveness: true2837body: |2838 bb.0:2839 ; GCN-LABEL: name: test_remat_v_bfe_u32_e642840 ; GCN: [[V_BFE_U32_e64_:%[0-9]+]]:vgpr_32 = V_BFE_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec2841 ; GCN-NEXT: [[V_BFE_U32_e64_1:%[0-9]+]]:vgpr_32 = V_BFE_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec2842 ; GCN-NEXT: [[V_BFE_U32_e64_2:%[0-9]+]]:vgpr_32 = V_BFE_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec2843 ; GCN-NEXT: S_NOP 0, implicit [[V_BFE_U32_e64_]]2844 ; GCN-NEXT: S_NOP 0, implicit [[V_BFE_U32_e64_1]]2845 ; GCN-NEXT: S_NOP 0, implicit [[V_BFE_U32_e64_2]]2846 ; GCN-NEXT: S_ENDPGM 02847 %1:vgpr_32 = V_BFE_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec2848 %2:vgpr_32 = V_BFE_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec2849 %3:vgpr_32 = V_BFE_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec2850 S_NOP 0, implicit %12851 S_NOP 0, implicit %22852 S_NOP 0, implicit %32853 S_ENDPGM 02854...2855---2856name: test_remat_v_bfe_i32_e642857tracksRegLiveness: true2858body: |2859 bb.0:2860 ; GCN-LABEL: name: test_remat_v_bfe_i32_e642861 ; GCN: [[V_BFE_I32_e64_:%[0-9]+]]:vgpr_32 = V_BFE_I32_e64 1, 1, undef %1:vgpr_32, implicit $exec2862 ; GCN-NEXT: [[V_BFE_I32_e64_1:%[0-9]+]]:vgpr_32 = V_BFE_I32_e64 2, 2, undef %1:vgpr_32, implicit $exec2863 ; GCN-NEXT: [[V_BFE_I32_e64_2:%[0-9]+]]:vgpr_32 = V_BFE_I32_e64 3, 3, undef %1:vgpr_32, implicit $exec2864 ; GCN-NEXT: S_NOP 0, implicit [[V_BFE_I32_e64_]]2865 ; GCN-NEXT: S_NOP 0, implicit [[V_BFE_I32_e64_1]]2866 ; GCN-NEXT: S_NOP 0, implicit [[V_BFE_I32_e64_2]]2867 ; GCN-NEXT: S_ENDPGM 02868 %1:vgpr_32 = V_BFE_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec2869 %2:vgpr_32 = V_BFE_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec2870 %3:vgpr_32 = V_BFE_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec2871 S_NOP 0, implicit %12872 S_NOP 0, implicit %22873 S_NOP 0, implicit %32874 S_ENDPGM 02875...2876---2877name: test_remat_v_bfi_b32_e642878tracksRegLiveness: true2879body: |2880 bb.0:2881 ; GCN-LABEL: name: test_remat_v_bfi_b32_e642882 ; GCN: [[V_BFI_B32_e64_:%[0-9]+]]:vgpr_32 = V_BFI_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec2883 ; GCN-NEXT: [[V_BFI_B32_e64_1:%[0-9]+]]:vgpr_32 = V_BFI_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec2884 ; GCN-NEXT: [[V_BFI_B32_e64_2:%[0-9]+]]:vgpr_32 = V_BFI_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec2885 ; GCN-NEXT: S_NOP 0, implicit [[V_BFI_B32_e64_]]2886 ; GCN-NEXT: S_NOP 0, implicit [[V_BFI_B32_e64_1]]2887 ; GCN-NEXT: S_NOP 0, implicit [[V_BFI_B32_e64_2]]2888 ; GCN-NEXT: S_ENDPGM 02889 %1:vgpr_32 = V_BFI_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec2890 %2:vgpr_32 = V_BFI_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec2891 %3:vgpr_32 = V_BFI_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec2892 S_NOP 0, implicit %12893 S_NOP 0, implicit %22894 S_NOP 0, implicit %32895 S_ENDPGM 02896...2897---2898name: test_remat_v_alignbit_b32_e642899tracksRegLiveness: true2900body: |2901 bb.0:2902 ; GCN-LABEL: name: test_remat_v_alignbit_b32_e642903 ; GCN: [[V_ALIGNBIT_B32_e64_:%[0-9]+]]:vgpr_32 = V_ALIGNBIT_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec2904 ; GCN-NEXT: [[V_ALIGNBIT_B32_e64_1:%[0-9]+]]:vgpr_32 = V_ALIGNBIT_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec2905 ; GCN-NEXT: [[V_ALIGNBIT_B32_e64_2:%[0-9]+]]:vgpr_32 = V_ALIGNBIT_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec2906 ; GCN-NEXT: S_NOP 0, implicit [[V_ALIGNBIT_B32_e64_]]2907 ; GCN-NEXT: S_NOP 0, implicit [[V_ALIGNBIT_B32_e64_1]]2908 ; GCN-NEXT: S_NOP 0, implicit [[V_ALIGNBIT_B32_e64_2]]2909 ; GCN-NEXT: S_ENDPGM 02910 %1:vgpr_32 = V_ALIGNBIT_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec2911 %2:vgpr_32 = V_ALIGNBIT_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec2912 %3:vgpr_32 = V_ALIGNBIT_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec2913 S_NOP 0, implicit %12914 S_NOP 0, implicit %22915 S_NOP 0, implicit %32916 S_ENDPGM 02917...2918---2919name: test_remat_v_alignbyte_b32_e642920tracksRegLiveness: true2921body: |2922 bb.0:2923 ; GCN-LABEL: name: test_remat_v_alignbyte_b32_e642924 ; GCN: [[V_ALIGNBYTE_B32_e64_:%[0-9]+]]:vgpr_32 = V_ALIGNBYTE_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec2925 ; GCN-NEXT: [[V_ALIGNBYTE_B32_e64_1:%[0-9]+]]:vgpr_32 = V_ALIGNBYTE_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec2926 ; GCN-NEXT: [[V_ALIGNBYTE_B32_e64_2:%[0-9]+]]:vgpr_32 = V_ALIGNBYTE_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec2927 ; GCN-NEXT: S_NOP 0, implicit [[V_ALIGNBYTE_B32_e64_]]2928 ; GCN-NEXT: S_NOP 0, implicit [[V_ALIGNBYTE_B32_e64_1]]2929 ; GCN-NEXT: S_NOP 0, implicit [[V_ALIGNBYTE_B32_e64_2]]2930 ; GCN-NEXT: S_ENDPGM 02931 %1:vgpr_32 = V_ALIGNBYTE_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec2932 %2:vgpr_32 = V_ALIGNBYTE_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec2933 %3:vgpr_32 = V_ALIGNBYTE_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec2934 S_NOP 0, implicit %12935 S_NOP 0, implicit %22936 S_NOP 0, implicit %32937 S_ENDPGM 02938...2939---2940name: test_remat_v_min3_i32_e642941tracksRegLiveness: true2942body: |2943 bb.0:2944 ; GCN-LABEL: name: test_remat_v_min3_i32_e642945 ; GCN: [[V_MIN3_I32_e64_:%[0-9]+]]:vgpr_32 = V_MIN3_I32_e64 1, 1, undef %1:vgpr_32, implicit $exec2946 ; GCN-NEXT: [[V_MIN3_I32_e64_1:%[0-9]+]]:vgpr_32 = V_MIN3_I32_e64 2, 2, undef %1:vgpr_32, implicit $exec2947 ; GCN-NEXT: [[V_MIN3_I32_e64_2:%[0-9]+]]:vgpr_32 = V_MIN3_I32_e64 3, 3, undef %1:vgpr_32, implicit $exec2948 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_I32_e64_]]2949 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_I32_e64_1]]2950 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_I32_e64_2]]2951 ; GCN-NEXT: S_ENDPGM 02952 %1:vgpr_32 = V_MIN3_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec2953 %2:vgpr_32 = V_MIN3_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec2954 %3:vgpr_32 = V_MIN3_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec2955 S_NOP 0, implicit %12956 S_NOP 0, implicit %22957 S_NOP 0, implicit %32958 S_ENDPGM 02959...2960---2961name: test_remat_v_min3_u32_e642962tracksRegLiveness: true2963body: |2964 bb.0:2965 ; GCN-LABEL: name: test_remat_v_min3_u32_e642966 ; GCN: [[V_MIN3_U32_e64_:%[0-9]+]]:vgpr_32 = V_MIN3_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec2967 ; GCN-NEXT: [[V_MIN3_U32_e64_1:%[0-9]+]]:vgpr_32 = V_MIN3_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec2968 ; GCN-NEXT: [[V_MIN3_U32_e64_2:%[0-9]+]]:vgpr_32 = V_MIN3_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec2969 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_U32_e64_]]2970 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_U32_e64_1]]2971 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_U32_e64_2]]2972 ; GCN-NEXT: S_ENDPGM 02973 %1:vgpr_32 = V_MIN3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec2974 %2:vgpr_32 = V_MIN3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec2975 %3:vgpr_32 = V_MIN3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec2976 S_NOP 0, implicit %12977 S_NOP 0, implicit %22978 S_NOP 0, implicit %32979 S_ENDPGM 02980...2981---2982name: test_remat_v_max3_i32_e642983tracksRegLiveness: true2984body: |2985 bb.0:2986 ; GCN-LABEL: name: test_remat_v_max3_i32_e642987 ; GCN: [[V_MAX3_I32_e64_:%[0-9]+]]:vgpr_32 = V_MAX3_I32_e64 1, 1, undef %1:vgpr_32, implicit $exec2988 ; GCN-NEXT: [[V_MAX3_I32_e64_1:%[0-9]+]]:vgpr_32 = V_MAX3_I32_e64 2, 2, undef %1:vgpr_32, implicit $exec2989 ; GCN-NEXT: [[V_MAX3_I32_e64_2:%[0-9]+]]:vgpr_32 = V_MAX3_I32_e64 3, 3, undef %1:vgpr_32, implicit $exec2990 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_I32_e64_]]2991 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_I32_e64_1]]2992 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_I32_e64_2]]2993 ; GCN-NEXT: S_ENDPGM 02994 %1:vgpr_32 = V_MAX3_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec2995 %2:vgpr_32 = V_MAX3_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec2996 %3:vgpr_32 = V_MAX3_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec2997 S_NOP 0, implicit %12998 S_NOP 0, implicit %22999 S_NOP 0, implicit %33000 S_ENDPGM 03001...3002---3003name: test_remat_v_max3_u32_e643004tracksRegLiveness: true3005body: |3006 bb.0:3007 ; GCN-LABEL: name: test_remat_v_max3_u32_e643008 ; GCN: [[V_MAX3_U32_e64_:%[0-9]+]]:vgpr_32 = V_MAX3_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec3009 ; GCN-NEXT: [[V_MAX3_U32_e64_1:%[0-9]+]]:vgpr_32 = V_MAX3_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec3010 ; GCN-NEXT: [[V_MAX3_U32_e64_2:%[0-9]+]]:vgpr_32 = V_MAX3_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec3011 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_U32_e64_]]3012 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_U32_e64_1]]3013 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_U32_e64_2]]3014 ; GCN-NEXT: S_ENDPGM 03015 %1:vgpr_32 = V_MAX3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec3016 %2:vgpr_32 = V_MAX3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec3017 %3:vgpr_32 = V_MAX3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec3018 S_NOP 0, implicit %13019 S_NOP 0, implicit %23020 S_NOP 0, implicit %33021 S_ENDPGM 03022...3023---3024name: test_remat_v_med3_i32_e643025tracksRegLiveness: true3026body: |3027 bb.0:3028 ; GCN-LABEL: name: test_remat_v_med3_i32_e643029 ; GCN: [[V_MED3_I32_e64_:%[0-9]+]]:vgpr_32 = V_MED3_I32_e64 1, 1, undef %1:vgpr_32, implicit $exec3030 ; GCN-NEXT: [[V_MED3_I32_e64_1:%[0-9]+]]:vgpr_32 = V_MED3_I32_e64 2, 2, undef %1:vgpr_32, implicit $exec3031 ; GCN-NEXT: [[V_MED3_I32_e64_2:%[0-9]+]]:vgpr_32 = V_MED3_I32_e64 3, 3, undef %1:vgpr_32, implicit $exec3032 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_I32_e64_]]3033 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_I32_e64_1]]3034 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_I32_e64_2]]3035 ; GCN-NEXT: S_ENDPGM 03036 %1:vgpr_32 = V_MED3_I32_e64 1, 1, undef %0:vgpr_32, implicit $exec3037 %2:vgpr_32 = V_MED3_I32_e64 2, 2, undef %0:vgpr_32, implicit $exec3038 %3:vgpr_32 = V_MED3_I32_e64 3, 3, undef %0:vgpr_32, implicit $exec3039 S_NOP 0, implicit %13040 S_NOP 0, implicit %23041 S_NOP 0, implicit %33042 S_ENDPGM 03043...3044---3045name: test_remat_v_med3_u32_e643046tracksRegLiveness: true3047body: |3048 bb.0:3049 ; GCN-LABEL: name: test_remat_v_med3_u32_e643050 ; GCN: [[V_MED3_U32_e64_:%[0-9]+]]:vgpr_32 = V_MED3_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec3051 ; GCN-NEXT: [[V_MED3_U32_e64_1:%[0-9]+]]:vgpr_32 = V_MED3_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec3052 ; GCN-NEXT: [[V_MED3_U32_e64_2:%[0-9]+]]:vgpr_32 = V_MED3_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec3053 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_U32_e64_]]3054 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_U32_e64_1]]3055 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_U32_e64_2]]3056 ; GCN-NEXT: S_ENDPGM 03057 %1:vgpr_32 = V_MED3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec3058 %2:vgpr_32 = V_MED3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec3059 %3:vgpr_32 = V_MED3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec3060 S_NOP 0, implicit %13061 S_NOP 0, implicit %23062 S_NOP 0, implicit %33063 S_ENDPGM 03064...3065---3066name: test_remat_v_min3_f32_e643067tracksRegLiveness: true3068body: |3069 bb.0:3070 ; GCN-LABEL: name: test_remat_v_min3_f32_e643071 ; GCN: [[V_MIN3_F32_e64_:%[0-9]+]]:vgpr_32 = V_MIN3_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3072 ; GCN-NEXT: [[V_MIN3_F32_e64_1:%[0-9]+]]:vgpr_32 = V_MIN3_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3073 ; GCN-NEXT: [[V_MIN3_F32_e64_2:%[0-9]+]]:vgpr_32 = V_MIN3_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3074 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_F32_e64_]]3075 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_F32_e64_1]]3076 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN3_F32_e64_2]]3077 ; GCN-NEXT: S_ENDPGM 03078 %1:vgpr_32 = V_MIN3_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3079 %2:vgpr_32 = V_MIN3_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3080 %3:vgpr_32 = V_MIN3_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3081 S_NOP 0, implicit %13082 S_NOP 0, implicit %23083 S_NOP 0, implicit %33084 S_ENDPGM 03085...3086---3087name: test_remat_v_max3_f32_e643088tracksRegLiveness: true3089body: |3090 bb.0:3091 ; GCN-LABEL: name: test_remat_v_max3_f32_e643092 ; GCN: [[V_MAX3_F32_e64_:%[0-9]+]]:vgpr_32 = V_MAX3_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3093 ; GCN-NEXT: [[V_MAX3_F32_e64_1:%[0-9]+]]:vgpr_32 = V_MAX3_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3094 ; GCN-NEXT: [[V_MAX3_F32_e64_2:%[0-9]+]]:vgpr_32 = V_MAX3_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3095 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_F32_e64_]]3096 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_F32_e64_1]]3097 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX3_F32_e64_2]]3098 ; GCN-NEXT: S_ENDPGM 03099 %1:vgpr_32 = V_MAX3_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3100 %2:vgpr_32 = V_MAX3_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3101 %3:vgpr_32 = V_MAX3_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3102 S_NOP 0, implicit %13103 S_NOP 0, implicit %23104 S_NOP 0, implicit %33105 S_ENDPGM 03106...3107---3108name: test_remat_v_med3_f32_e643109tracksRegLiveness: true3110body: |3111 bb.0:3112 ; GCN-LABEL: name: test_remat_v_med3_f32_e643113 ; GCN: [[V_MED3_F32_e64_:%[0-9]+]]:vgpr_32 = V_MED3_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3114 ; GCN-NEXT: [[V_MED3_F32_e64_1:%[0-9]+]]:vgpr_32 = V_MED3_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3115 ; GCN-NEXT: [[V_MED3_F32_e64_2:%[0-9]+]]:vgpr_32 = V_MED3_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3116 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_F32_e64_]]3117 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_F32_e64_1]]3118 ; GCN-NEXT: S_NOP 0, implicit [[V_MED3_F32_e64_2]]3119 ; GCN-NEXT: S_ENDPGM 03120 %1:vgpr_32 = V_MED3_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3121 %2:vgpr_32 = V_MED3_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3122 %3:vgpr_32 = V_MED3_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3123 S_NOP 0, implicit %13124 S_NOP 0, implicit %23125 S_NOP 0, implicit %33126 S_ENDPGM 03127...3128---3129name: test_remat_v_sad_u8_e643130tracksRegLiveness: true3131body: |3132 bb.0:3133 ; GCN-LABEL: name: test_remat_v_sad_u8_e643134 ; GCN: [[V_SAD_U8_e64_:%[0-9]+]]:vgpr_32 = V_SAD_U8_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec3135 ; GCN-NEXT: [[V_SAD_U8_e64_1:%[0-9]+]]:vgpr_32 = V_SAD_U8_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec3136 ; GCN-NEXT: [[V_SAD_U8_e64_2:%[0-9]+]]:vgpr_32 = V_SAD_U8_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec3137 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U8_e64_]]3138 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U8_e64_1]]3139 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U8_e64_2]]3140 ; GCN-NEXT: S_ENDPGM 03141 %1:vgpr_32 = V_SAD_U8_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec3142 %2:vgpr_32 = V_SAD_U8_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec3143 %3:vgpr_32 = V_SAD_U8_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec3144 S_NOP 0, implicit %13145 S_NOP 0, implicit %23146 S_NOP 0, implicit %33147 S_ENDPGM 03148...3149---3150name: test_remat_v_sad_hi_u8_e643151tracksRegLiveness: true3152body: |3153 bb.0:3154 ; GCN-LABEL: name: test_remat_v_sad_hi_u8_e643155 ; GCN: [[V_SAD_HI_U8_e64_:%[0-9]+]]:vgpr_32 = V_SAD_HI_U8_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec3156 ; GCN-NEXT: [[V_SAD_HI_U8_e64_1:%[0-9]+]]:vgpr_32 = V_SAD_HI_U8_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec3157 ; GCN-NEXT: [[V_SAD_HI_U8_e64_2:%[0-9]+]]:vgpr_32 = V_SAD_HI_U8_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec3158 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_HI_U8_e64_]]3159 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_HI_U8_e64_1]]3160 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_HI_U8_e64_2]]3161 ; GCN-NEXT: S_ENDPGM 03162 %1:vgpr_32 = V_SAD_HI_U8_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec3163 %2:vgpr_32 = V_SAD_HI_U8_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec3164 %3:vgpr_32 = V_SAD_HI_U8_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec3165 S_NOP 0, implicit %13166 S_NOP 0, implicit %23167 S_NOP 0, implicit %33168 S_ENDPGM 03169...3170---3171name: test_remat_v_sad_u16_e643172tracksRegLiveness: true3173body: |3174 bb.0:3175 ; GCN-LABEL: name: test_remat_v_sad_u16_e643176 ; GCN: [[V_SAD_U16_e64_:%[0-9]+]]:vgpr_32 = V_SAD_U16_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec3177 ; GCN-NEXT: [[V_SAD_U16_e64_1:%[0-9]+]]:vgpr_32 = V_SAD_U16_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec3178 ; GCN-NEXT: [[V_SAD_U16_e64_2:%[0-9]+]]:vgpr_32 = V_SAD_U16_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec3179 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U16_e64_]]3180 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U16_e64_1]]3181 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U16_e64_2]]3182 ; GCN-NEXT: S_ENDPGM 03183 %1:vgpr_32 = V_SAD_U16_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec3184 %2:vgpr_32 = V_SAD_U16_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec3185 %3:vgpr_32 = V_SAD_U16_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec3186 S_NOP 0, implicit %13187 S_NOP 0, implicit %23188 S_NOP 0, implicit %33189 S_ENDPGM 03190...3191---3192name: test_remat_v_sad_u32_e643193tracksRegLiveness: true3194body: |3195 bb.0:3196 ; GCN-LABEL: name: test_remat_v_sad_u32_e643197 ; GCN: [[V_SAD_U32_e64_:%[0-9]+]]:vgpr_32 = V_SAD_U32_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec3198 ; GCN-NEXT: [[V_SAD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_SAD_U32_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec3199 ; GCN-NEXT: [[V_SAD_U32_e64_2:%[0-9]+]]:vgpr_32 = V_SAD_U32_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec3200 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U32_e64_]]3201 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U32_e64_1]]3202 ; GCN-NEXT: S_NOP 0, implicit [[V_SAD_U32_e64_2]]3203 ; GCN-NEXT: S_ENDPGM 03204 %1:vgpr_32 = V_SAD_U32_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec3205 %2:vgpr_32 = V_SAD_U32_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec3206 %3:vgpr_32 = V_SAD_U32_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec3207 S_NOP 0, implicit %13208 S_NOP 0, implicit %23209 S_NOP 0, implicit %33210 S_ENDPGM 03211...3212---3213name: test_remat_v_cvt_pk_u8_f32_e643214tracksRegLiveness: true3215body: |3216 bb.0:3217 ; GCN-LABEL: name: test_remat_v_cvt_pk_u8_f32_e643218 ; GCN: [[V_CVT_PK_U8_F32_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 1, 0, 1, 0, undef %1:vgpr_32, 0, implicit $exec, implicit $mode3219 ; GCN-NEXT: [[V_CVT_PK_U8_F32_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 2, 0, 2, 0, undef %1:vgpr_32, 0, implicit $exec, implicit $mode3220 ; GCN-NEXT: [[V_CVT_PK_U8_F32_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 3, 0, 3, 0, undef %1:vgpr_32, 0, implicit $exec, implicit $mode3221 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_U8_F32_e64_]]3222 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_U8_F32_e64_1]]3223 ; GCN-NEXT: S_NOP 0, implicit [[V_CVT_PK_U8_F32_e64_2]]3224 ; GCN-NEXT: S_ENDPGM 03225 %1:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 1, 0, 1, 0, undef %0:vgpr_32, 0, implicit $exec, implicit $mode3226 %2:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 2, 0, 2, 0, undef %0:vgpr_32, 0, implicit $exec, implicit $mode3227 %3:vgpr_32 = nofpexcept V_CVT_PK_U8_F32_e64 0, 3, 0, 3, 0, undef %0:vgpr_32, 0, implicit $exec, implicit $mode3228 S_NOP 0, implicit %13229 S_NOP 0, implicit %23230 S_NOP 0, implicit %33231 S_ENDPGM 03232...3233---3234name: test_remat_v_div_fixup_f64_e643235tracksRegLiveness: true3236body: |3237 bb.0:3238 ; GCN-LABEL: name: test_remat_v_div_fixup_f64_e643239 ; GCN: [[V_DIV_FIXUP_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_DIV_FIXUP_F64_e64 0, 1, 0, 1, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode3240 ; GCN-NEXT: [[V_DIV_FIXUP_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_DIV_FIXUP_F64_e64 0, 2, 0, 2, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode3241 ; GCN-NEXT: [[V_DIV_FIXUP_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_DIV_FIXUP_F64_e64 0, 3, 0, 3, 0, undef %1:vreg_64_align2, 0, 0, implicit $exec, implicit $mode3242 ; GCN-NEXT: S_NOP 0, implicit [[V_DIV_FIXUP_F64_e64_]]3243 ; GCN-NEXT: S_NOP 0, implicit [[V_DIV_FIXUP_F64_e64_1]]3244 ; GCN-NEXT: S_NOP 0, implicit [[V_DIV_FIXUP_F64_e64_2]]3245 ; GCN-NEXT: S_ENDPGM 03246 %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 $mode3247 %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 $mode3248 %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 $mode3249 S_NOP 0, implicit %13250 S_NOP 0, implicit %23251 S_NOP 0, implicit %33252 S_ENDPGM 03253...3254---3255name: test_remat_v_ldexp_f64_e643256tracksRegLiveness: true3257body: |3258 bb.0:3259 ; GCN-LABEL: name: test_remat_v_ldexp_f64_e643260 ; GCN: [[V_LDEXP_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3261 ; GCN-NEXT: [[V_LDEXP_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3262 ; GCN-NEXT: [[V_LDEXP_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3263 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F64_e64_]]3264 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F64_e64_1]]3265 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F64_e64_2]]3266 ; GCN-NEXT: S_ENDPGM 03267 %1:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3268 %2:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3269 %3:vreg_64_align2 = nofpexcept V_LDEXP_F64_e64 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3270 S_NOP 0, implicit %13271 S_NOP 0, implicit %23272 S_NOP 0, implicit %33273 S_ENDPGM 03274...3275---3276name: test_remat_v_msad_u8_e643277tracksRegLiveness: true3278body: |3279 bb.0:3280 ; GCN-LABEL: name: test_remat_v_msad_u8_e643281 ; GCN: [[V_MSAD_U8_e64_:%[0-9]+]]:vgpr_32 = V_MSAD_U8_e64 1, 1, undef %1:vgpr_32, 0, implicit $exec3282 ; GCN-NEXT: [[V_MSAD_U8_e64_1:%[0-9]+]]:vgpr_32 = V_MSAD_U8_e64 2, 2, undef %1:vgpr_32, 0, implicit $exec3283 ; GCN-NEXT: [[V_MSAD_U8_e64_2:%[0-9]+]]:vgpr_32 = V_MSAD_U8_e64 3, 3, undef %1:vgpr_32, 0, implicit $exec3284 ; GCN-NEXT: S_NOP 0, implicit [[V_MSAD_U8_e64_]]3285 ; GCN-NEXT: S_NOP 0, implicit [[V_MSAD_U8_e64_1]]3286 ; GCN-NEXT: S_NOP 0, implicit [[V_MSAD_U8_e64_2]]3287 ; GCN-NEXT: S_ENDPGM 03288 %1:vgpr_32 = V_MSAD_U8_e64 1, 1, undef %0:vgpr_32, 0, implicit $exec3289 %2:vgpr_32 = V_MSAD_U8_e64 2, 2, undef %0:vgpr_32, 0, implicit $exec3290 %3:vgpr_32 = V_MSAD_U8_e64 3, 3, undef %0:vgpr_32, 0, implicit $exec3291 S_NOP 0, implicit %13292 S_NOP 0, implicit %23293 S_NOP 0, implicit %33294 S_ENDPGM 03295...3296---3297name: test_remat_v_trig_preop_f64_e643298tracksRegLiveness: true3299body: |3300 bb.0:3301 ; GCN-LABEL: name: test_remat_v_trig_preop_f64_e643302 ; GCN: [[V_TRIG_PREOP_F64_e64_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 1, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3303 ; GCN-NEXT: [[V_TRIG_PREOP_F64_e64_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 2, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3304 ; GCN-NEXT: [[V_TRIG_PREOP_F64_e64_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 3, 0, undef %1:vgpr_32, 0, 0, implicit $exec, implicit $mode3305 ; GCN-NEXT: S_NOP 0, implicit [[V_TRIG_PREOP_F64_e64_]]3306 ; GCN-NEXT: S_NOP 0, implicit [[V_TRIG_PREOP_F64_e64_1]]3307 ; GCN-NEXT: S_NOP 0, implicit [[V_TRIG_PREOP_F64_e64_2]]3308 ; GCN-NEXT: S_ENDPGM 03309 %1:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 1, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3310 %2:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 2, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3311 %3:vreg_64_align2 = nofpexcept V_TRIG_PREOP_F64_e64 0, 3, 0, undef %0:vgpr_32, 0, 0, implicit $exec, implicit $mode3312 S_NOP 0, implicit %13313 S_NOP 0, implicit %23314 S_NOP 0, implicit %33315 S_ENDPGM 03316...3317---3318name: test_remat_v_lshlrev_b64_e643319tracksRegLiveness: true3320body: |3321 bb.0:3322 ; GCN-LABEL: name: test_remat_v_lshlrev_b64_e643323 ; GCN: [[V_LSHLREV_B64_e64_:%[0-9]+]]:vreg_64_align2 = V_LSHLREV_B64_e64 1, undef %1:vreg_64_align2, implicit $exec3324 ; GCN-NEXT: [[V_LSHLREV_B64_e64_1:%[0-9]+]]:vreg_64_align2 = V_LSHLREV_B64_e64 2, undef %1:vreg_64_align2, implicit $exec3325 ; GCN-NEXT: [[V_LSHLREV_B64_e64_2:%[0-9]+]]:vreg_64_align2 = V_LSHLREV_B64_e64 3, undef %1:vreg_64_align2, implicit $exec3326 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B64_e64_]]3327 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B64_e64_1]]3328 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B64_e64_2]]3329 ; GCN-NEXT: S_ENDPGM 03330 %1:vreg_64_align2 = V_LSHLREV_B64_e64 1, undef %0:vreg_64_align2, implicit $exec3331 %2:vreg_64_align2 = V_LSHLREV_B64_e64 2, undef %0:vreg_64_align2, implicit $exec3332 %3:vreg_64_align2 = V_LSHLREV_B64_e64 3, undef %0:vreg_64_align2, implicit $exec3333 S_NOP 0, implicit %13334 S_NOP 0, implicit %23335 S_NOP 0, implicit %33336 S_ENDPGM 03337...3338---3339name: test_remat_v_lshrrev_b64_e643340tracksRegLiveness: true3341body: |3342 bb.0:3343 ; GCN-LABEL: name: test_remat_v_lshrrev_b64_e643344 ; GCN: [[V_LSHRREV_B64_e64_:%[0-9]+]]:vreg_64_align2 = V_LSHRREV_B64_e64 1, undef %1:vreg_64_align2, implicit $exec3345 ; GCN-NEXT: [[V_LSHRREV_B64_e64_1:%[0-9]+]]:vreg_64_align2 = V_LSHRREV_B64_e64 2, undef %1:vreg_64_align2, implicit $exec3346 ; GCN-NEXT: [[V_LSHRREV_B64_e64_2:%[0-9]+]]:vreg_64_align2 = V_LSHRREV_B64_e64 3, undef %1:vreg_64_align2, implicit $exec3347 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B64_e64_]]3348 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B64_e64_1]]3349 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B64_e64_2]]3350 ; GCN-NEXT: S_ENDPGM 03351 %1:vreg_64_align2 = V_LSHRREV_B64_e64 1, undef %0:vreg_64_align2, implicit $exec3352 %2:vreg_64_align2 = V_LSHRREV_B64_e64 2, undef %0:vreg_64_align2, implicit $exec3353 %3:vreg_64_align2 = V_LSHRREV_B64_e64 3, undef %0:vreg_64_align2, implicit $exec3354 S_NOP 0, implicit %13355 S_NOP 0, implicit %23356 S_NOP 0, implicit %33357 S_ENDPGM 03358...3359---3360name: test_remat_v_ashrrev_i64_e643361tracksRegLiveness: true3362body: |3363 bb.0:3364 ; GCN-LABEL: name: test_remat_v_ashrrev_i64_e643365 ; GCN: [[V_ASHRREV_I64_e64_:%[0-9]+]]:vreg_64_align2 = V_ASHRREV_I64_e64 1, undef %1:vreg_64_align2, implicit $exec3366 ; GCN-NEXT: [[V_ASHRREV_I64_e64_1:%[0-9]+]]:vreg_64_align2 = V_ASHRREV_I64_e64 2, undef %1:vreg_64_align2, implicit $exec3367 ; GCN-NEXT: [[V_ASHRREV_I64_e64_2:%[0-9]+]]:vreg_64_align2 = V_ASHRREV_I64_e64 3, undef %1:vreg_64_align2, implicit $exec3368 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I64_e64_]]3369 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I64_e64_1]]3370 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I64_e64_2]]3371 ; GCN-NEXT: S_ENDPGM 03372 %1:vreg_64_align2 = V_ASHRREV_I64_e64 1, undef %0:vreg_64_align2, implicit $exec3373 %2:vreg_64_align2 = V_ASHRREV_I64_e64 2, undef %0:vreg_64_align2, implicit $exec3374 %3:vreg_64_align2 = V_ASHRREV_I64_e64 3, undef %0:vreg_64_align2, implicit $exec3375 S_NOP 0, implicit %13376 S_NOP 0, implicit %23377 S_NOP 0, implicit %33378 S_ENDPGM 03379...3380---3381name: test_remat_v_perm_b32_e643382tracksRegLiveness: true3383body: |3384 bb.0:3385 ; GCN-LABEL: name: test_remat_v_perm_b32_e643386 ; GCN: [[V_PERM_B32_e64_:%[0-9]+]]:vgpr_32 = V_PERM_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec3387 ; GCN-NEXT: [[V_PERM_B32_e64_1:%[0-9]+]]:vgpr_32 = V_PERM_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec3388 ; GCN-NEXT: [[V_PERM_B32_e64_2:%[0-9]+]]:vgpr_32 = V_PERM_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec3389 ; GCN-NEXT: S_NOP 0, implicit [[V_PERM_B32_e64_]]3390 ; GCN-NEXT: S_NOP 0, implicit [[V_PERM_B32_e64_1]]3391 ; GCN-NEXT: S_NOP 0, implicit [[V_PERM_B32_e64_2]]3392 ; GCN-NEXT: S_ENDPGM 03393 %1:vgpr_32 = V_PERM_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec3394 %2:vgpr_32 = V_PERM_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec3395 %3:vgpr_32 = V_PERM_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec3396 S_NOP 0, implicit %13397 S_NOP 0, implicit %23398 S_NOP 0, implicit %33399 S_ENDPGM 03400...3401---3402name: test_remat_v_add3_u32_e643403tracksRegLiveness: true3404body: |3405 bb.0:3406 ; GCN-LABEL: name: test_remat_v_add3_u32_e643407 ; GCN: [[V_ADD3_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD3_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec3408 ; GCN-NEXT: [[V_ADD3_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD3_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec3409 ; GCN-NEXT: [[V_ADD3_U32_e64_2:%[0-9]+]]:vgpr_32 = V_ADD3_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec3410 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD3_U32_e64_]]3411 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD3_U32_e64_1]]3412 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD3_U32_e64_2]]3413 ; GCN-NEXT: S_ENDPGM 03414 %1:vgpr_32 = V_ADD3_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec3415 %2:vgpr_32 = V_ADD3_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec3416 %3:vgpr_32 = V_ADD3_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec3417 S_NOP 0, implicit %13418 S_NOP 0, implicit %23419 S_NOP 0, implicit %33420 S_ENDPGM 03421...3422---3423name: test_remat_v_and_or_b32_e643424tracksRegLiveness: true3425body: |3426 bb.0:3427 ; GCN-LABEL: name: test_remat_v_and_or_b32_e643428 ; GCN: [[V_AND_OR_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_OR_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec3429 ; GCN-NEXT: [[V_AND_OR_B32_e64_1:%[0-9]+]]:vgpr_32 = V_AND_OR_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec3430 ; GCN-NEXT: [[V_AND_OR_B32_e64_2:%[0-9]+]]:vgpr_32 = V_AND_OR_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec3431 ; GCN-NEXT: S_NOP 0, implicit [[V_AND_OR_B32_e64_]]3432 ; GCN-NEXT: S_NOP 0, implicit [[V_AND_OR_B32_e64_1]]3433 ; GCN-NEXT: S_NOP 0, implicit [[V_AND_OR_B32_e64_2]]3434 ; GCN-NEXT: S_ENDPGM 03435 %1:vgpr_32 = V_AND_OR_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec3436 %2:vgpr_32 = V_AND_OR_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec3437 %3:vgpr_32 = V_AND_OR_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec3438 S_NOP 0, implicit %13439 S_NOP 0, implicit %23440 S_NOP 0, implicit %33441 S_ENDPGM 03442...3443---3444name: test_remat_v_or3_b32_e643445tracksRegLiveness: true3446body: |3447 bb.0:3448 ; GCN-LABEL: name: test_remat_v_or3_b32_e643449 ; GCN: [[V_OR3_B32_e64_:%[0-9]+]]:vgpr_32 = V_OR3_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec3450 ; GCN-NEXT: [[V_OR3_B32_e64_1:%[0-9]+]]:vgpr_32 = V_OR3_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec3451 ; GCN-NEXT: [[V_OR3_B32_e64_2:%[0-9]+]]:vgpr_32 = V_OR3_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec3452 ; GCN-NEXT: S_NOP 0, implicit [[V_OR3_B32_e64_]]3453 ; GCN-NEXT: S_NOP 0, implicit [[V_OR3_B32_e64_1]]3454 ; GCN-NEXT: S_NOP 0, implicit [[V_OR3_B32_e64_2]]3455 ; GCN-NEXT: S_ENDPGM 03456 %1:vgpr_32 = V_OR3_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec3457 %2:vgpr_32 = V_OR3_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec3458 %3:vgpr_32 = V_OR3_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec3459 S_NOP 0, implicit %13460 S_NOP 0, implicit %23461 S_NOP 0, implicit %33462 S_ENDPGM 03463...3464---3465name: test_remat_v_xad_u32_e643466tracksRegLiveness: true3467body: |3468 bb.0:3469 ; GCN-LABEL: name: test_remat_v_xad_u32_e643470 ; GCN: [[V_XAD_U32_e64_:%[0-9]+]]:vgpr_32 = V_XAD_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec3471 ; GCN-NEXT: [[V_XAD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_XAD_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec3472 ; GCN-NEXT: [[V_XAD_U32_e64_2:%[0-9]+]]:vgpr_32 = V_XAD_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec3473 ; GCN-NEXT: S_NOP 0, implicit [[V_XAD_U32_e64_]]3474 ; GCN-NEXT: S_NOP 0, implicit [[V_XAD_U32_e64_1]]3475 ; GCN-NEXT: S_NOP 0, implicit [[V_XAD_U32_e64_2]]3476 ; GCN-NEXT: S_ENDPGM 03477 %1:vgpr_32 = V_XAD_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec3478 %2:vgpr_32 = V_XAD_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec3479 %3:vgpr_32 = V_XAD_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec3480 S_NOP 0, implicit %13481 S_NOP 0, implicit %23482 S_NOP 0, implicit %33483 S_ENDPGM 03484...3485---3486name: test_remat_v_add_i32_e643487tracksRegLiveness: true3488body: |3489 bb.0:3490 ; GCN-LABEL: name: test_remat_v_add_i32_e643491 ; GCN: [[V_ADD_I32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_I32_e64 1, undef %1:vgpr_32, 0, implicit $exec3492 ; GCN-NEXT: [[V_ADD_I32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_I32_e64 2, undef %1:vgpr_32, 0, implicit $exec3493 ; GCN-NEXT: [[V_ADD_I32_e64_2:%[0-9]+]]:vgpr_32 = V_ADD_I32_e64 3, undef %1:vgpr_32, 0, implicit $exec3494 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_I32_e64_]]3495 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_I32_e64_1]]3496 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_I32_e64_2]]3497 ; GCN-NEXT: S_ENDPGM 03498 %1:vgpr_32 = V_ADD_I32_e64 1, undef %0:vgpr_32, 0, implicit $exec3499 %2:vgpr_32 = V_ADD_I32_e64 2, undef %0:vgpr_32, 0, implicit $exec3500 %3:vgpr_32 = V_ADD_I32_e64 3, undef %0:vgpr_32, 0, implicit $exec3501 S_NOP 0, implicit %13502 S_NOP 0, implicit %23503 S_NOP 0, implicit %33504 S_ENDPGM 03505...3506---3507name: test_remat_v_add_lshl_u32_e643508tracksRegLiveness: true3509body: |3510 bb.0:3511 ; GCN-LABEL: name: test_remat_v_add_lshl_u32_e643512 ; GCN: [[V_ADD_LSHL_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_LSHL_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec3513 ; GCN-NEXT: [[V_ADD_LSHL_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_LSHL_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec3514 ; GCN-NEXT: [[V_ADD_LSHL_U32_e64_2:%[0-9]+]]:vgpr_32 = V_ADD_LSHL_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec3515 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_LSHL_U32_e64_]]3516 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_LSHL_U32_e64_1]]3517 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_LSHL_U32_e64_2]]3518 ; GCN-NEXT: S_ENDPGM 03519 %1:vgpr_32 = V_ADD_LSHL_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec3520 %2:vgpr_32 = V_ADD_LSHL_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec3521 %3:vgpr_32 = V_ADD_LSHL_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec3522 S_NOP 0, implicit %13523 S_NOP 0, implicit %23524 S_NOP 0, implicit %33525 S_ENDPGM 03526...3527---3528name: test_remat_v_sub_i32_e643529tracksRegLiveness: true3530body: |3531 bb.0:3532 ; GCN-LABEL: name: test_remat_v_sub_i32_e643533 ; GCN: [[V_SUB_I32_e64_:%[0-9]+]]:vgpr_32 = V_SUB_I32_e64 1, undef %1:vgpr_32, 0, implicit $exec3534 ; GCN-NEXT: [[V_SUB_I32_e64_1:%[0-9]+]]:vgpr_32 = V_SUB_I32_e64 2, undef %1:vgpr_32, 0, implicit $exec3535 ; GCN-NEXT: [[V_SUB_I32_e64_2:%[0-9]+]]:vgpr_32 = V_SUB_I32_e64 3, undef %1:vgpr_32, 0, implicit $exec3536 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_I32_e64_]]3537 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_I32_e64_1]]3538 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_I32_e64_2]]3539 ; GCN-NEXT: S_ENDPGM 03540 %1:vgpr_32 = V_SUB_I32_e64 1, undef %0:vgpr_32, 0, implicit $exec3541 %2:vgpr_32 = V_SUB_I32_e64 2, undef %0:vgpr_32, 0, implicit $exec3542 %3:vgpr_32 = V_SUB_I32_e64 3, undef %0:vgpr_32, 0, implicit $exec3543 S_NOP 0, implicit %13544 S_NOP 0, implicit %23545 S_NOP 0, implicit %33546 S_ENDPGM 03547...3548---3549name: test_remat_v_lshl_add_u32_e643550tracksRegLiveness: true3551body: |3552 bb.0:3553 ; GCN-LABEL: name: test_remat_v_lshl_add_u32_e643554 ; GCN: [[V_LSHL_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_LSHL_ADD_U32_e64 1, 1, undef %1:vgpr_32, implicit $exec3555 ; GCN-NEXT: [[V_LSHL_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_LSHL_ADD_U32_e64 2, 2, undef %1:vgpr_32, implicit $exec3556 ; GCN-NEXT: [[V_LSHL_ADD_U32_e64_2:%[0-9]+]]:vgpr_32 = V_LSHL_ADD_U32_e64 3, 3, undef %1:vgpr_32, implicit $exec3557 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_ADD_U32_e64_]]3558 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_ADD_U32_e64_1]]3559 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_ADD_U32_e64_2]]3560 ; GCN-NEXT: S_ENDPGM 03561 %1:vgpr_32 = V_LSHL_ADD_U32_e64 1, 1, undef %0:vgpr_32, implicit $exec3562 %2:vgpr_32 = V_LSHL_ADD_U32_e64 2, 2, undef %0:vgpr_32, implicit $exec3563 %3:vgpr_32 = V_LSHL_ADD_U32_e64 3, 3, undef %0:vgpr_32, implicit $exec3564 S_NOP 0, implicit %13565 S_NOP 0, implicit %23566 S_NOP 0, implicit %33567 S_ENDPGM 03568...3569---3570name: test_remat_v_lshl_or_b32_e643571tracksRegLiveness: true3572body: |3573 bb.0:3574 ; GCN-LABEL: name: test_remat_v_lshl_or_b32_e643575 ; GCN: [[V_LSHL_OR_B32_e64_:%[0-9]+]]:vgpr_32 = V_LSHL_OR_B32_e64 1, 1, undef %1:vgpr_32, implicit $exec3576 ; GCN-NEXT: [[V_LSHL_OR_B32_e64_1:%[0-9]+]]:vgpr_32 = V_LSHL_OR_B32_e64 2, 2, undef %1:vgpr_32, implicit $exec3577 ; GCN-NEXT: [[V_LSHL_OR_B32_e64_2:%[0-9]+]]:vgpr_32 = V_LSHL_OR_B32_e64 3, 3, undef %1:vgpr_32, implicit $exec3578 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_OR_B32_e64_]]3579 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_OR_B32_e64_1]]3580 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHL_OR_B32_e64_2]]3581 ; GCN-NEXT: S_ENDPGM 03582 %1:vgpr_32 = V_LSHL_OR_B32_e64 1, 1, undef %0:vgpr_32, implicit $exec3583 %2:vgpr_32 = V_LSHL_OR_B32_e64 2, 2, undef %0:vgpr_32, implicit $exec3584 %3:vgpr_32 = V_LSHL_OR_B32_e64 3, 3, undef %0:vgpr_32, implicit $exec3585 S_NOP 0, implicit %13586 S_NOP 0, implicit %23587 S_NOP 0, implicit %33588 S_ENDPGM 03589...3590 3591---3592name: test_remat_v_lshlrev_b16_e323593tracksRegLiveness: true3594body: |3595 bb.0:3596 liveins: $vgpr03597 ; GCN-LABEL: name: test_remat_v_lshlrev_b16_e323598 ; GCN: liveins: $vgpr03599 ; GCN-NEXT: {{ $}}3600 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03601 ; GCN-NEXT: [[V_LSHLREV_B16_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B16_e32 1, [[COPY]], implicit $exec3602 ; GCN-NEXT: [[V_LSHLREV_B16_e32_1:%[0-9]+]]:vgpr_32 = V_LSHLREV_B16_e32 2, [[COPY]], implicit $exec3603 ; GCN-NEXT: [[V_LSHLREV_B16_e32_2:%[0-9]+]]:vgpr_32 = V_LSHLREV_B16_e32 3, [[COPY]], implicit $exec3604 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B16_e32_]]3605 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B16_e32_1]]3606 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B16_e32_2]]3607 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3608 %0:vgpr_32 = COPY $vgpr03609 %1:vgpr_32 = V_LSHLREV_B16_e32 1, %0:vgpr_32, implicit $exec3610 %2:vgpr_32 = V_LSHLREV_B16_e32 2, %0:vgpr_32, implicit $exec3611 %3:vgpr_32 = V_LSHLREV_B16_e32 3, %0:vgpr_32, implicit $exec3612 S_NOP 0, implicit %13613 S_NOP 0, implicit %23614 S_NOP 0, implicit %33615 S_ENDPGM 0, implicit %03616...3617---3618name: test_remat_v_lshlrev_b16_e643619tracksRegLiveness: true3620body: |3621 bb.0:3622 liveins: $vgpr03623 ; GCN-LABEL: name: test_remat_v_lshlrev_b16_e643624 ; GCN: liveins: $vgpr03625 ; GCN-NEXT: {{ $}}3626 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03627 ; GCN-NEXT: [[V_LSHLREV_B16_e64_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B16_e64 1, [[COPY]], implicit $exec3628 ; GCN-NEXT: [[V_LSHLREV_B16_e64_1:%[0-9]+]]:vgpr_32 = V_LSHLREV_B16_e64 2, [[COPY]], implicit $exec3629 ; GCN-NEXT: [[V_LSHLREV_B16_e64_2:%[0-9]+]]:vgpr_32 = V_LSHLREV_B16_e64 3, [[COPY]], implicit $exec3630 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B16_e64_]]3631 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B16_e64_1]]3632 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHLREV_B16_e64_2]]3633 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3634 %0:vgpr_32 = COPY $vgpr03635 %1:vgpr_32 = V_LSHLREV_B16_e64 1, %0:vgpr_32, implicit $exec3636 %2:vgpr_32 = V_LSHLREV_B16_e64 2, %0:vgpr_32, implicit $exec3637 %3:vgpr_32 = V_LSHLREV_B16_e64 3, %0:vgpr_32, implicit $exec3638 S_NOP 0, implicit %13639 S_NOP 0, implicit %23640 S_NOP 0, implicit %33641 S_ENDPGM 0, implicit %03642...3643 3644---3645name: test_remat_v_lshrrev_b16_e323646tracksRegLiveness: true3647body: |3648 bb.0:3649 liveins: $vgpr03650 ; GCN-LABEL: name: test_remat_v_lshrrev_b16_e323651 ; GCN: liveins: $vgpr03652 ; GCN-NEXT: {{ $}}3653 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03654 ; GCN-NEXT: [[V_LSHRREV_B16_e32_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B16_e32 1, [[COPY]], implicit $exec3655 ; GCN-NEXT: [[V_LSHRREV_B16_e32_1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B16_e32 2, [[COPY]], implicit $exec3656 ; GCN-NEXT: [[V_LSHRREV_B16_e32_2:%[0-9]+]]:vgpr_32 = V_LSHRREV_B16_e32 3, [[COPY]], implicit $exec3657 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B16_e32_]]3658 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B16_e32_1]]3659 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B16_e32_2]]3660 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3661 %0:vgpr_32 = COPY $vgpr03662 %1:vgpr_32 = V_LSHRREV_B16_e32 1, %0:vgpr_32, implicit $exec3663 %2:vgpr_32 = V_LSHRREV_B16_e32 2, %0:vgpr_32, implicit $exec3664 %3:vgpr_32 = V_LSHRREV_B16_e32 3, %0:vgpr_32, implicit $exec3665 S_NOP 0, implicit %13666 S_NOP 0, implicit %23667 S_NOP 0, implicit %33668 S_ENDPGM 0, implicit %03669...3670---3671name: test_remat_v_lshrrev_b16_e643672tracksRegLiveness: true3673body: |3674 bb.0:3675 liveins: $vgpr03676 ; GCN-LABEL: name: test_remat_v_lshrrev_b16_e643677 ; GCN: liveins: $vgpr03678 ; GCN-NEXT: {{ $}}3679 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03680 ; GCN-NEXT: [[V_LSHRREV_B16_e64_:%[0-9]+]]:vgpr_32 = V_LSHRREV_B16_e64 1, [[COPY]], implicit $exec3681 ; GCN-NEXT: [[V_LSHRREV_B16_e64_1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B16_e64 2, [[COPY]], implicit $exec3682 ; GCN-NEXT: [[V_LSHRREV_B16_e64_2:%[0-9]+]]:vgpr_32 = V_LSHRREV_B16_e64 3, [[COPY]], implicit $exec3683 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B16_e64_]]3684 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B16_e64_1]]3685 ; GCN-NEXT: S_NOP 0, implicit [[V_LSHRREV_B16_e64_2]]3686 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3687 %0:vgpr_32 = COPY $vgpr03688 %1:vgpr_32 = V_LSHRREV_B16_e64 1, %0:vgpr_32, implicit $exec3689 %2:vgpr_32 = V_LSHRREV_B16_e64 2, %0:vgpr_32, implicit $exec3690 %3:vgpr_32 = V_LSHRREV_B16_e64 3, %0:vgpr_32, implicit $exec3691 S_NOP 0, implicit %13692 S_NOP 0, implicit %23693 S_NOP 0, implicit %33694 S_ENDPGM 0, implicit %03695...3696 3697---3698name: test_remat_v_ashrrev_i16_e323699tracksRegLiveness: true3700body: |3701 bb.0:3702 liveins: $vgpr03703 ; GCN-LABEL: name: test_remat_v_ashrrev_i16_e323704 ; GCN: liveins: $vgpr03705 ; GCN-NEXT: {{ $}}3706 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03707 ; GCN-NEXT: [[V_ASHRREV_I16_e32_:%[0-9]+]]:vgpr_32 = V_ASHRREV_I16_e32 1, [[COPY]], implicit $exec3708 ; GCN-NEXT: [[V_ASHRREV_I16_e32_1:%[0-9]+]]:vgpr_32 = V_ASHRREV_I16_e32 2, [[COPY]], implicit $exec3709 ; GCN-NEXT: [[V_ASHRREV_I16_e32_2:%[0-9]+]]:vgpr_32 = V_ASHRREV_I16_e32 3, [[COPY]], implicit $exec3710 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I16_e32_]]3711 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I16_e32_1]]3712 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I16_e32_2]]3713 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3714 %0:vgpr_32 = COPY $vgpr03715 %1:vgpr_32 = V_ASHRREV_I16_e32 1, %0:vgpr_32, implicit $exec3716 %2:vgpr_32 = V_ASHRREV_I16_e32 2, %0:vgpr_32, implicit $exec3717 %3:vgpr_32 = V_ASHRREV_I16_e32 3, %0:vgpr_32, implicit $exec3718 S_NOP 0, implicit %13719 S_NOP 0, implicit %23720 S_NOP 0, implicit %33721 S_ENDPGM 0, implicit %03722...3723---3724name: test_remat_v_ashrrev_i16_e643725tracksRegLiveness: true3726body: |3727 bb.0:3728 liveins: $vgpr03729 ; GCN-LABEL: name: test_remat_v_ashrrev_i16_e643730 ; GCN: liveins: $vgpr03731 ; GCN-NEXT: {{ $}}3732 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03733 ; GCN-NEXT: [[V_ASHRREV_I16_e64_:%[0-9]+]]:vgpr_32 = V_ASHRREV_I16_e64 1, [[COPY]], implicit $exec3734 ; GCN-NEXT: [[V_ASHRREV_I16_e64_1:%[0-9]+]]:vgpr_32 = V_ASHRREV_I16_e64 2, [[COPY]], implicit $exec3735 ; GCN-NEXT: [[V_ASHRREV_I16_e64_2:%[0-9]+]]:vgpr_32 = V_ASHRREV_I16_e64 3, [[COPY]], implicit $exec3736 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I16_e64_]]3737 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I16_e64_1]]3738 ; GCN-NEXT: S_NOP 0, implicit [[V_ASHRREV_I16_e64_2]]3739 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3740 %0:vgpr_32 = COPY $vgpr03741 %1:vgpr_32 = V_ASHRREV_I16_e64 1, %0:vgpr_32, implicit $exec3742 %2:vgpr_32 = V_ASHRREV_I16_e64 2, %0:vgpr_32, implicit $exec3743 %3:vgpr_32 = V_ASHRREV_I16_e64 3, %0:vgpr_32, implicit $exec3744 S_NOP 0, implicit %13745 S_NOP 0, implicit %23746 S_NOP 0, implicit %33747 S_ENDPGM 0, implicit %03748...3749 3750---3751name: test_remat_v_add_u16_e323752tracksRegLiveness: true3753body: |3754 bb.0:3755 liveins: $vgpr03756 ; GCN-LABEL: name: test_remat_v_add_u16_e323757 ; GCN: liveins: $vgpr03758 ; GCN-NEXT: {{ $}}3759 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03760 ; GCN-NEXT: [[V_ADD_U16_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U16_e32 1, [[COPY]], implicit $exec3761 ; GCN-NEXT: [[V_ADD_U16_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U16_e32 2, [[COPY]], implicit $exec3762 ; GCN-NEXT: [[V_ADD_U16_e32_2:%[0-9]+]]:vgpr_32 = V_ADD_U16_e32 3, [[COPY]], implicit $exec3763 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U16_e32_]]3764 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U16_e32_1]]3765 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U16_e32_2]]3766 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3767 %0:vgpr_32 = COPY $vgpr03768 %1:vgpr_32 = V_ADD_U16_e32 1, %0:vgpr_32, implicit $exec3769 %2:vgpr_32 = V_ADD_U16_e32 2, %0:vgpr_32, implicit $exec3770 %3:vgpr_32 = V_ADD_U16_e32 3, %0:vgpr_32, implicit $exec3771 S_NOP 0, implicit %13772 S_NOP 0, implicit %23773 S_NOP 0, implicit %33774 S_ENDPGM 0, implicit %03775...3776 3777---3778name: test_remat_v_add_u16_e643779tracksRegLiveness: true3780body: |3781 bb.0:3782 liveins: $vgpr03783 ; GCN-LABEL: name: test_remat_v_add_u16_e643784 ; GCN: liveins: $vgpr03785 ; GCN-NEXT: {{ $}}3786 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03787 ; GCN-NEXT: [[V_ADD_U16_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U16_e64 1, [[COPY]], 0, implicit $exec3788 ; GCN-NEXT: [[V_ADD_U16_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U16_e64 2, [[COPY]], 0, implicit $exec3789 ; GCN-NEXT: [[V_ADD_U16_e64_2:%[0-9]+]]:vgpr_32 = V_ADD_U16_e64 3, [[COPY]], 0, implicit $exec3790 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U16_e64_]]3791 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U16_e64_1]]3792 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_U16_e64_2]]3793 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3794 %0:vgpr_32 = COPY $vgpr03795 %1:vgpr_32 = V_ADD_U16_e64 1, %0:vgpr_32, 0, implicit $exec3796 %2:vgpr_32 = V_ADD_U16_e64 2, %0:vgpr_32, 0, implicit $exec3797 %3:vgpr_32 = V_ADD_U16_e64 3, %0:vgpr_32, 0, implicit $exec3798 S_NOP 0, implicit %13799 S_NOP 0, implicit %23800 S_NOP 0, implicit %33801 S_ENDPGM 0, implicit %03802...3803 3804---3805name: test_remat_v_sub_u16_e323806tracksRegLiveness: true3807body: |3808 bb.0:3809 liveins: $vgpr03810 ; GCN-LABEL: name: test_remat_v_sub_u16_e323811 ; GCN: liveins: $vgpr03812 ; GCN-NEXT: {{ $}}3813 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03814 ; GCN-NEXT: [[V_SUB_U16_e32_:%[0-9]+]]:vgpr_32 = V_SUB_U16_e32 1, [[COPY]], implicit $exec3815 ; GCN-NEXT: [[V_SUB_U16_e32_1:%[0-9]+]]:vgpr_32 = V_SUB_U16_e32 2, [[COPY]], implicit $exec3816 ; GCN-NEXT: [[V_SUB_U16_e32_2:%[0-9]+]]:vgpr_32 = V_SUB_U16_e32 3, [[COPY]], implicit $exec3817 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U16_e32_]]3818 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U16_e32_1]]3819 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U16_e32_2]]3820 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3821 %0:vgpr_32 = COPY $vgpr03822 %1:vgpr_32 = V_SUB_U16_e32 1, %0:vgpr_32, implicit $exec3823 %2:vgpr_32 = V_SUB_U16_e32 2, %0:vgpr_32, implicit $exec3824 %3:vgpr_32 = V_SUB_U16_e32 3, %0:vgpr_32, implicit $exec3825 S_NOP 0, implicit %13826 S_NOP 0, implicit %23827 S_NOP 0, implicit %33828 S_ENDPGM 0, implicit %03829...3830 3831---3832name: test_remat_v_sub_u16_e643833tracksRegLiveness: true3834body: |3835 bb.0:3836 liveins: $vgpr03837 ; GCN-LABEL: name: test_remat_v_sub_u16_e643838 ; GCN: liveins: $vgpr03839 ; GCN-NEXT: {{ $}}3840 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03841 ; GCN-NEXT: [[V_SUB_U16_e64_:%[0-9]+]]:vgpr_32 = V_SUB_U16_e64 1, [[COPY]], 0, implicit $exec3842 ; GCN-NEXT: [[V_SUB_U16_e64_1:%[0-9]+]]:vgpr_32 = V_SUB_U16_e64 2, [[COPY]], 0, implicit $exec3843 ; GCN-NEXT: [[V_SUB_U16_e64_2:%[0-9]+]]:vgpr_32 = V_SUB_U16_e64 3, [[COPY]], 0, implicit $exec3844 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U16_e64_]]3845 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U16_e64_1]]3846 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_U16_e64_2]]3847 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3848 %0:vgpr_32 = COPY $vgpr03849 %1:vgpr_32 = V_SUB_U16_e64 1, %0:vgpr_32, 0, implicit $exec3850 %2:vgpr_32 = V_SUB_U16_e64 2, %0:vgpr_32, 0, implicit $exec3851 %3:vgpr_32 = V_SUB_U16_e64 3, %0:vgpr_32, 0, implicit $exec3852 S_NOP 0, implicit %13853 S_NOP 0, implicit %23854 S_NOP 0, implicit %33855 S_ENDPGM 0, implicit %03856...3857 3858---3859name: test_remat_v_subrev_u16_e323860tracksRegLiveness: true3861body: |3862 bb.0:3863 liveins: $vgpr03864 ; GCN-LABEL: name: test_remat_v_subrev_u16_e323865 ; GCN: liveins: $vgpr03866 ; GCN-NEXT: {{ $}}3867 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03868 ; GCN-NEXT: [[V_SUBREV_U16_e32_:%[0-9]+]]:vgpr_32 = V_SUBREV_U16_e32 1, [[COPY]], implicit $exec3869 ; GCN-NEXT: [[V_SUBREV_U16_e32_1:%[0-9]+]]:vgpr_32 = V_SUBREV_U16_e32 2, [[COPY]], implicit $exec3870 ; GCN-NEXT: [[V_SUBREV_U16_e32_2:%[0-9]+]]:vgpr_32 = V_SUBREV_U16_e32 3, [[COPY]], implicit $exec3871 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U16_e32_]]3872 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U16_e32_1]]3873 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U16_e32_2]]3874 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3875 %0:vgpr_32 = COPY $vgpr03876 %1:vgpr_32 = V_SUBREV_U16_e32 1, %0:vgpr_32, implicit $exec3877 %2:vgpr_32 = V_SUBREV_U16_e32 2, %0:vgpr_32, implicit $exec3878 %3:vgpr_32 = V_SUBREV_U16_e32 3, %0:vgpr_32, implicit $exec3879 S_NOP 0, implicit %13880 S_NOP 0, implicit %23881 S_NOP 0, implicit %33882 S_ENDPGM 0, implicit %03883...3884 3885---3886name: test_remat_v_subrev_u16_e643887tracksRegLiveness: true3888body: |3889 bb.0:3890 liveins: $vgpr03891 ; GCN-LABEL: name: test_remat_v_subrev_u16_e643892 ; GCN: liveins: $vgpr03893 ; GCN-NEXT: {{ $}}3894 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03895 ; GCN-NEXT: [[V_SUBREV_U16_e64_:%[0-9]+]]:vgpr_32 = V_SUBREV_U16_e64 1, [[COPY]], 0, implicit $exec3896 ; GCN-NEXT: [[V_SUBREV_U16_e64_1:%[0-9]+]]:vgpr_32 = V_SUBREV_U16_e64 2, [[COPY]], 0, implicit $exec3897 ; GCN-NEXT: [[V_SUBREV_U16_e64_2:%[0-9]+]]:vgpr_32 = V_SUBREV_U16_e64 3, [[COPY]], 0, implicit $exec3898 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U16_e64_]]3899 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U16_e64_1]]3900 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_U16_e64_2]]3901 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3902 %0:vgpr_32 = COPY $vgpr03903 %1:vgpr_32 = V_SUBREV_U16_e64 1, %0:vgpr_32, 0, implicit $exec3904 %2:vgpr_32 = V_SUBREV_U16_e64 2, %0:vgpr_32, 0, implicit $exec3905 %3:vgpr_32 = V_SUBREV_U16_e64 3, %0:vgpr_32, 0, implicit $exec3906 S_NOP 0, implicit %13907 S_NOP 0, implicit %23908 S_NOP 0, implicit %33909 S_ENDPGM 0, implicit %03910...3911 3912---3913name: test_remat_v_min_u16_e323914tracksRegLiveness: true3915body: |3916 bb.0:3917 liveins: $vgpr03918 ; GCN-LABEL: name: test_remat_v_min_u16_e323919 ; GCN: liveins: $vgpr03920 ; GCN-NEXT: {{ $}}3921 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03922 ; GCN-NEXT: [[V_MIN_U16_e32_:%[0-9]+]]:vgpr_32 = V_MIN_U16_e32 1, [[COPY]], implicit $exec3923 ; GCN-NEXT: [[V_MIN_U16_e32_1:%[0-9]+]]:vgpr_32 = V_MIN_U16_e32 2, [[COPY]], implicit $exec3924 ; GCN-NEXT: [[V_MIN_U16_e32_2:%[0-9]+]]:vgpr_32 = V_MIN_U16_e32 3, [[COPY]], implicit $exec3925 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U16_e32_]]3926 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U16_e32_1]]3927 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U16_e32_2]]3928 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3929 %0:vgpr_32 = COPY $vgpr03930 %1:vgpr_32 = V_MIN_U16_e32 1, %0:vgpr_32, implicit $exec3931 %2:vgpr_32 = V_MIN_U16_e32 2, %0:vgpr_32, implicit $exec3932 %3:vgpr_32 = V_MIN_U16_e32 3, %0:vgpr_32, implicit $exec3933 S_NOP 0, implicit %13934 S_NOP 0, implicit %23935 S_NOP 0, implicit %33936 S_ENDPGM 0, implicit %03937...3938 3939---3940name: test_remat_v_min_u16_e643941tracksRegLiveness: true3942body: |3943 bb.0:3944 liveins: $vgpr03945 ; GCN-LABEL: name: test_remat_v_min_u16_e643946 ; GCN: liveins: $vgpr03947 ; GCN-NEXT: {{ $}}3948 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03949 ; GCN-NEXT: [[V_MIN_U16_e64_:%[0-9]+]]:vgpr_32 = V_MIN_U16_e64 1, [[COPY]], implicit $exec3950 ; GCN-NEXT: [[V_MIN_U16_e64_1:%[0-9]+]]:vgpr_32 = V_MIN_U16_e64 2, [[COPY]], implicit $exec3951 ; GCN-NEXT: [[V_MIN_U16_e64_2:%[0-9]+]]:vgpr_32 = V_MIN_U16_e64 3, [[COPY]], implicit $exec3952 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U16_e64_]]3953 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U16_e64_1]]3954 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_U16_e64_2]]3955 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3956 %0:vgpr_32 = COPY $vgpr03957 %1:vgpr_32 = V_MIN_U16_e64 1, %0:vgpr_32, implicit $exec3958 %2:vgpr_32 = V_MIN_U16_e64 2, %0:vgpr_32, implicit $exec3959 %3:vgpr_32 = V_MIN_U16_e64 3, %0:vgpr_32, implicit $exec3960 S_NOP 0, implicit %13961 S_NOP 0, implicit %23962 S_NOP 0, implicit %33963 S_ENDPGM 0, implicit %03964...3965 3966---3967name: test_remat_v_max_u16_e323968tracksRegLiveness: true3969body: |3970 bb.0:3971 liveins: $vgpr03972 ; GCN-LABEL: name: test_remat_v_max_u16_e323973 ; GCN: liveins: $vgpr03974 ; GCN-NEXT: {{ $}}3975 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr03976 ; GCN-NEXT: [[V_MAX_U16_e32_:%[0-9]+]]:vgpr_32 = V_MAX_U16_e32 1, [[COPY]], implicit $exec3977 ; GCN-NEXT: [[V_MAX_U16_e32_1:%[0-9]+]]:vgpr_32 = V_MAX_U16_e32 2, [[COPY]], implicit $exec3978 ; GCN-NEXT: [[V_MAX_U16_e32_2:%[0-9]+]]:vgpr_32 = V_MAX_U16_e32 3, [[COPY]], implicit $exec3979 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U16_e32_]]3980 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U16_e32_1]]3981 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U16_e32_2]]3982 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]3983 %0:vgpr_32 = COPY $vgpr03984 %1:vgpr_32 = V_MAX_U16_e32 1, %0:vgpr_32, implicit $exec3985 %2:vgpr_32 = V_MAX_U16_e32 2, %0:vgpr_32, implicit $exec3986 %3:vgpr_32 = V_MAX_U16_e32 3, %0:vgpr_32, implicit $exec3987 S_NOP 0, implicit %13988 S_NOP 0, implicit %23989 S_NOP 0, implicit %33990 S_ENDPGM 0, implicit %03991...3992 3993---3994name: test_remat_v_max_u16_e643995tracksRegLiveness: true3996body: |3997 bb.0:3998 liveins: $vgpr03999 ; GCN-LABEL: name: test_remat_v_max_u16_e644000 ; GCN: liveins: $vgpr04001 ; GCN-NEXT: {{ $}}4002 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04003 ; GCN-NEXT: [[V_MAX_U16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_U16_e64 1, [[COPY]], implicit $exec4004 ; GCN-NEXT: [[V_MAX_U16_e64_1:%[0-9]+]]:vgpr_32 = V_MAX_U16_e64 2, [[COPY]], implicit $exec4005 ; GCN-NEXT: [[V_MAX_U16_e64_2:%[0-9]+]]:vgpr_32 = V_MAX_U16_e64 3, [[COPY]], implicit $exec4006 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U16_e64_]]4007 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U16_e64_1]]4008 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_U16_e64_2]]4009 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4010 %0:vgpr_32 = COPY $vgpr04011 %1:vgpr_32 = V_MAX_U16_e64 1, %0:vgpr_32, implicit $exec4012 %2:vgpr_32 = V_MAX_U16_e64 2, %0:vgpr_32, implicit $exec4013 %3:vgpr_32 = V_MAX_U16_e64 3, %0:vgpr_32, implicit $exec4014 S_NOP 0, implicit %14015 S_NOP 0, implicit %24016 S_NOP 0, implicit %34017 S_ENDPGM 0, implicit %04018...4019 4020---4021name: test_remat_v_min_i16_e324022tracksRegLiveness: true4023body: |4024 bb.0:4025 liveins: $vgpr04026 ; GCN-LABEL: name: test_remat_v_min_i16_e324027 ; GCN: liveins: $vgpr04028 ; GCN-NEXT: {{ $}}4029 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04030 ; GCN-NEXT: [[V_MIN_I16_e32_:%[0-9]+]]:vgpr_32 = V_MIN_I16_e32 1, [[COPY]], implicit $exec4031 ; GCN-NEXT: [[V_MIN_I16_e32_1:%[0-9]+]]:vgpr_32 = V_MIN_I16_e32 2, [[COPY]], implicit $exec4032 ; GCN-NEXT: [[V_MIN_I16_e32_2:%[0-9]+]]:vgpr_32 = V_MIN_I16_e32 3, [[COPY]], implicit $exec4033 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I16_e32_]]4034 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I16_e32_1]]4035 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I16_e32_2]]4036 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4037 %0:vgpr_32 = COPY $vgpr04038 %1:vgpr_32 = V_MIN_I16_e32 1, %0:vgpr_32, implicit $exec4039 %2:vgpr_32 = V_MIN_I16_e32 2, %0:vgpr_32, implicit $exec4040 %3:vgpr_32 = V_MIN_I16_e32 3, %0:vgpr_32, implicit $exec4041 S_NOP 0, implicit %14042 S_NOP 0, implicit %24043 S_NOP 0, implicit %34044 S_ENDPGM 0, implicit %04045...4046 4047---4048name: test_remat_v_min_i16_e644049tracksRegLiveness: true4050body: |4051 bb.0:4052 liveins: $vgpr04053 ; GCN-LABEL: name: test_remat_v_min_i16_e644054 ; GCN: liveins: $vgpr04055 ; GCN-NEXT: {{ $}}4056 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04057 ; GCN-NEXT: [[V_MIN_I16_e64_:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 1, [[COPY]], implicit $exec4058 ; GCN-NEXT: [[V_MIN_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 2, [[COPY]], implicit $exec4059 ; GCN-NEXT: [[V_MIN_I16_e64_2:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 3, [[COPY]], implicit $exec4060 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I16_e64_]]4061 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I16_e64_1]]4062 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_I16_e64_2]]4063 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4064 %0:vgpr_32 = COPY $vgpr04065 %1:vgpr_32 = V_MIN_I16_e64 1, %0:vgpr_32, implicit $exec4066 %2:vgpr_32 = V_MIN_I16_e64 2, %0:vgpr_32, implicit $exec4067 %3:vgpr_32 = V_MIN_I16_e64 3, %0:vgpr_32, implicit $exec4068 S_NOP 0, implicit %14069 S_NOP 0, implicit %24070 S_NOP 0, implicit %34071 S_ENDPGM 0, implicit %04072...4073 4074---4075name: test_remat_v_max_i16_e324076tracksRegLiveness: true4077body: |4078 bb.0:4079 liveins: $vgpr04080 ; GCN-LABEL: name: test_remat_v_max_i16_e324081 ; GCN: liveins: $vgpr04082 ; GCN-NEXT: {{ $}}4083 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04084 ; GCN-NEXT: [[V_MAX_I16_e32_:%[0-9]+]]:vgpr_32 = V_MAX_I16_e32 1, [[COPY]], implicit $exec4085 ; GCN-NEXT: [[V_MAX_I16_e32_1:%[0-9]+]]:vgpr_32 = V_MAX_I16_e32 2, [[COPY]], implicit $exec4086 ; GCN-NEXT: [[V_MAX_I16_e32_2:%[0-9]+]]:vgpr_32 = V_MAX_I16_e32 3, [[COPY]], implicit $exec4087 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I16_e32_]]4088 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I16_e32_1]]4089 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I16_e32_2]]4090 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4091 %0:vgpr_32 = COPY $vgpr04092 %1:vgpr_32 = V_MAX_I16_e32 1, %0:vgpr_32, implicit $exec4093 %2:vgpr_32 = V_MAX_I16_e32 2, %0:vgpr_32, implicit $exec4094 %3:vgpr_32 = V_MAX_I16_e32 3, %0:vgpr_32, implicit $exec4095 S_NOP 0, implicit %14096 S_NOP 0, implicit %24097 S_NOP 0, implicit %34098 S_ENDPGM 0, implicit %04099...4100 4101---4102name: test_remat_v_max_i16_e644103tracksRegLiveness: true4104body: |4105 bb.0:4106 liveins: $vgpr04107 ; GCN-LABEL: name: test_remat_v_max_i16_e644108 ; GCN: liveins: $vgpr04109 ; GCN-NEXT: {{ $}}4110 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04111 ; GCN-NEXT: [[V_MAX_I16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 1, [[COPY]], implicit $exec4112 ; GCN-NEXT: [[V_MAX_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 2, [[COPY]], implicit $exec4113 ; GCN-NEXT: [[V_MAX_I16_e64_2:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 3, [[COPY]], implicit $exec4114 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I16_e64_]]4115 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I16_e64_1]]4116 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_I16_e64_2]]4117 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4118 %0:vgpr_32 = COPY $vgpr04119 %1:vgpr_32 = V_MAX_I16_e64 1, %0:vgpr_32, implicit $exec4120 %2:vgpr_32 = V_MAX_I16_e64 2, %0:vgpr_32, implicit $exec4121 %3:vgpr_32 = V_MAX_I16_e64 3, %0:vgpr_32, implicit $exec4122 S_NOP 0, implicit %14123 S_NOP 0, implicit %24124 S_NOP 0, implicit %34125 S_ENDPGM 0, implicit %04126...4127 4128---4129name: test_remat_v_mul_lo_u16_e324130tracksRegLiveness: true4131body: |4132 bb.0:4133 liveins: $vgpr04134 ; GCN-LABEL: name: test_remat_v_mul_lo_u16_e324135 ; GCN: liveins: $vgpr04136 ; GCN-NEXT: {{ $}}4137 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04138 ; GCN-NEXT: [[V_MUL_LO_U16_e32_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U16_e32 1, [[COPY]], implicit $exec4139 ; GCN-NEXT: [[V_MUL_LO_U16_e32_1:%[0-9]+]]:vgpr_32 = V_MUL_LO_U16_e32 2, [[COPY]], implicit $exec4140 ; GCN-NEXT: [[V_MUL_LO_U16_e32_2:%[0-9]+]]:vgpr_32 = V_MUL_LO_U16_e32 3, [[COPY]], implicit $exec4141 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U16_e32_]]4142 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U16_e32_1]]4143 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U16_e32_2]]4144 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4145 %0:vgpr_32 = COPY $vgpr04146 %1:vgpr_32 = V_MUL_LO_U16_e32 1, %0:vgpr_32, implicit $exec4147 %2:vgpr_32 = V_MUL_LO_U16_e32 2, %0:vgpr_32, implicit $exec4148 %3:vgpr_32 = V_MUL_LO_U16_e32 3, %0:vgpr_32, implicit $exec4149 S_NOP 0, implicit %14150 S_NOP 0, implicit %24151 S_NOP 0, implicit %34152 S_ENDPGM 0, implicit %04153...4154 4155---4156name: test_remat_v_mul_lo_u16_e644157tracksRegLiveness: true4158body: |4159 bb.0:4160 liveins: $vgpr04161 ; GCN-LABEL: name: test_remat_v_mul_lo_u16_e644162 ; GCN: liveins: $vgpr04163 ; GCN-NEXT: {{ $}}4164 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04165 ; GCN-NEXT: [[V_MUL_LO_U16_e64_:%[0-9]+]]:vgpr_32 = V_MUL_LO_U16_e64 1, [[COPY]], implicit $exec4166 ; GCN-NEXT: [[V_MUL_LO_U16_e64_1:%[0-9]+]]:vgpr_32 = V_MUL_LO_U16_e64 2, [[COPY]], implicit $exec4167 ; GCN-NEXT: [[V_MUL_LO_U16_e64_2:%[0-9]+]]:vgpr_32 = V_MUL_LO_U16_e64 3, [[COPY]], implicit $exec4168 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U16_e64_]]4169 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U16_e64_1]]4170 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_LO_U16_e64_2]]4171 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4172 %0:vgpr_32 = COPY $vgpr04173 %1:vgpr_32 = V_MUL_LO_U16_e64 1, %0:vgpr_32, implicit $exec4174 %2:vgpr_32 = V_MUL_LO_U16_e64 2, %0:vgpr_32, implicit $exec4175 %3:vgpr_32 = V_MUL_LO_U16_e64 3, %0:vgpr_32, implicit $exec4176 S_NOP 0, implicit %14177 S_NOP 0, implicit %24178 S_NOP 0, implicit %34179 S_ENDPGM 0, implicit %04180...4181 4182---4183name: test_remat_v_add_f16_e324184tracksRegLiveness: true4185body: |4186 bb.0:4187 liveins: $vgpr04188 ; GCN-LABEL: name: test_remat_v_add_f16_e324189 ; GCN: liveins: $vgpr04190 ; GCN-NEXT: {{ $}}4191 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04192 ; GCN-NEXT: [[V_ADD_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4193 ; GCN-NEXT: [[V_ADD_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F16_e32 2, [[COPY]], implicit $mode, implicit $exec4194 ; GCN-NEXT: [[V_ADD_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F16_e32 3, [[COPY]], implicit $mode, implicit $exec4195 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F16_e32_]]4196 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F16_e32_1]]4197 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F16_e32_2]]4198 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4199 %0:vgpr_32 = COPY $vgpr04200 %1:vgpr_32 = nofpexcept V_ADD_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec4201 %2:vgpr_32 = nofpexcept V_ADD_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec4202 %3:vgpr_32 = nofpexcept V_ADD_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec4203 S_NOP 0, implicit %14204 S_NOP 0, implicit %24205 S_NOP 0, implicit %34206 S_ENDPGM 0, implicit %04207...4208 4209---4210name: test_remat_v_add_f16_e644211tracksRegLiveness: true4212body: |4213 bb.0:4214 liveins: $vgpr04215 ; GCN-LABEL: name: test_remat_v_add_f16_e644216 ; GCN: liveins: $vgpr04217 ; GCN-NEXT: {{ $}}4218 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04219 ; GCN-NEXT: [[V_ADD_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 1, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4220 ; GCN-NEXT: [[V_ADD_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 2, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4221 ; GCN-NEXT: [[V_ADD_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 3, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4222 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F16_e64_]]4223 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F16_e64_1]]4224 ; GCN-NEXT: S_NOP 0, implicit [[V_ADD_F16_e64_2]]4225 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4226 %0:vgpr_32 = COPY $vgpr04227 %1:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4228 %2:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4229 %3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4230 S_NOP 0, implicit %14231 S_NOP 0, implicit %24232 S_NOP 0, implicit %34233 S_ENDPGM 0, implicit %04234...4235 4236---4237name: test_remat_v_sub_f16_e324238tracksRegLiveness: true4239body: |4240 bb.0:4241 liveins: $vgpr04242 ; GCN-LABEL: name: test_remat_v_sub_f16_e324243 ; GCN: liveins: $vgpr04244 ; GCN-NEXT: {{ $}}4245 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04246 ; GCN-NEXT: [[V_SUB_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4247 ; GCN-NEXT: [[V_SUB_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F16_e32 2, [[COPY]], implicit $mode, implicit $exec4248 ; GCN-NEXT: [[V_SUB_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F16_e32 3, [[COPY]], implicit $mode, implicit $exec4249 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F16_e32_]]4250 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F16_e32_1]]4251 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F16_e32_2]]4252 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4253 %0:vgpr_32 = COPY $vgpr04254 %1:vgpr_32 = nofpexcept V_SUB_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec4255 %2:vgpr_32 = nofpexcept V_SUB_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec4256 %3:vgpr_32 = nofpexcept V_SUB_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec4257 S_NOP 0, implicit %14258 S_NOP 0, implicit %24259 S_NOP 0, implicit %34260 S_ENDPGM 0, implicit %04261...4262 4263---4264name: test_remat_v_sub_f16_e644265tracksRegLiveness: true4266body: |4267 bb.0:4268 liveins: $vgpr04269 ; GCN-LABEL: name: test_remat_v_sub_f16_e644270 ; GCN: liveins: $vgpr04271 ; GCN-NEXT: {{ $}}4272 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04273 ; GCN-NEXT: [[V_SUB_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 1, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4274 ; GCN-NEXT: [[V_SUB_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 2, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4275 ; GCN-NEXT: [[V_SUB_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 3, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4276 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F16_e64_]]4277 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F16_e64_1]]4278 ; GCN-NEXT: S_NOP 0, implicit [[V_SUB_F16_e64_2]]4279 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4280 %0:vgpr_32 = COPY $vgpr04281 %1:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4282 %2:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4283 %3:vgpr_32 = nofpexcept V_SUB_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4284 S_NOP 0, implicit %14285 S_NOP 0, implicit %24286 S_NOP 0, implicit %34287 S_ENDPGM 0, implicit %04288...4289 4290---4291name: test_remat_v_subrev_f16_e324292tracksRegLiveness: true4293body: |4294 bb.0:4295 liveins: $vgpr04296 ; GCN-LABEL: name: test_remat_v_subrev_f16_e324297 ; GCN: liveins: $vgpr04298 ; GCN-NEXT: {{ $}}4299 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04300 ; GCN-NEXT: [[V_SUBREV_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4301 ; GCN-NEXT: [[V_SUBREV_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F16_e32 2, [[COPY]], implicit $mode, implicit $exec4302 ; GCN-NEXT: [[V_SUBREV_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F16_e32 3, [[COPY]], implicit $mode, implicit $exec4303 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F16_e32_]]4304 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F16_e32_1]]4305 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F16_e32_2]]4306 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4307 %0:vgpr_32 = COPY $vgpr04308 %1:vgpr_32 = nofpexcept V_SUBREV_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec4309 %2:vgpr_32 = nofpexcept V_SUBREV_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec4310 %3:vgpr_32 = nofpexcept V_SUBREV_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec4311 S_NOP 0, implicit %14312 S_NOP 0, implicit %24313 S_NOP 0, implicit %34314 S_ENDPGM 0, implicit %04315...4316 4317---4318name: test_remat_v_subrev_f16_e644319tracksRegLiveness: true4320body: |4321 bb.0:4322 liveins: $vgpr04323 ; GCN-LABEL: name: test_remat_v_subrev_f16_e644324 ; GCN: liveins: $vgpr04325 ; GCN-NEXT: {{ $}}4326 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04327 ; GCN-NEXT: [[V_SUBREV_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 1, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4328 ; GCN-NEXT: [[V_SUBREV_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 2, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4329 ; GCN-NEXT: [[V_SUBREV_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 3, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4330 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F16_e64_]]4331 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F16_e64_1]]4332 ; GCN-NEXT: S_NOP 0, implicit [[V_SUBREV_F16_e64_2]]4333 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4334 %0:vgpr_32 = COPY $vgpr04335 %1:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4336 %2:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4337 %3:vgpr_32 = nofpexcept V_SUBREV_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4338 S_NOP 0, implicit %14339 S_NOP 0, implicit %24340 S_NOP 0, implicit %34341 S_ENDPGM 0, implicit %04342...4343 4344---4345name: test_remat_v_mul_f16_e324346tracksRegLiveness: true4347body: |4348 bb.0:4349 liveins: $vgpr04350 ; GCN-LABEL: name: test_remat_v_mul_f16_e324351 ; GCN: liveins: $vgpr04352 ; GCN-NEXT: {{ $}}4353 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04354 ; GCN-NEXT: [[V_MUL_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4355 ; GCN-NEXT: [[V_MUL_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F16_e32 2, [[COPY]], implicit $mode, implicit $exec4356 ; GCN-NEXT: [[V_MUL_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F16_e32 3, [[COPY]], implicit $mode, implicit $exec4357 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F16_e32_]]4358 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F16_e32_1]]4359 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F16_e32_2]]4360 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4361 %0:vgpr_32 = COPY $vgpr04362 %1:vgpr_32 = nofpexcept V_MUL_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec4363 %2:vgpr_32 = nofpexcept V_MUL_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec4364 %3:vgpr_32 = nofpexcept V_MUL_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec4365 S_NOP 0, implicit %14366 S_NOP 0, implicit %24367 S_NOP 0, implicit %34368 S_ENDPGM 0, implicit %04369...4370 4371---4372name: test_remat_v_mul_f16_e644373tracksRegLiveness: true4374body: |4375 bb.0:4376 liveins: $vgpr04377 ; GCN-LABEL: name: test_remat_v_mul_f16_e644378 ; GCN: liveins: $vgpr04379 ; GCN-NEXT: {{ $}}4380 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04381 ; GCN-NEXT: [[V_MUL_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 1, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4382 ; GCN-NEXT: [[V_MUL_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 2, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4383 ; GCN-NEXT: [[V_MUL_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 3, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4384 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F16_e64_]]4385 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F16_e64_1]]4386 ; GCN-NEXT: S_NOP 0, implicit [[V_MUL_F16_e64_2]]4387 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4388 %0:vgpr_32 = COPY $vgpr04389 %1:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4390 %2:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4391 %3:vgpr_32 = nofpexcept V_MUL_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4392 S_NOP 0, implicit %14393 S_NOP 0, implicit %24394 S_NOP 0, implicit %34395 S_ENDPGM 0, implicit %04396...4397 4398---4399name: test_remat_v_ldexp_f16_e324400tracksRegLiveness: true4401body: |4402 bb.0:4403 liveins: $vgpr0, $vgpr14404 ; GCN-LABEL: name: test_remat_v_ldexp_f16_e324405 ; GCN: liveins: $vgpr0, $vgpr14406 ; GCN-NEXT: {{ $}}4407 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04408 ; GCN-NEXT: [[V_LDEXP_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4409 ; GCN-NEXT: [[V_LDEXP_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4410 ; GCN-NEXT: [[V_LDEXP_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4411 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F16_e32_]]4412 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F16_e32_1]]4413 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F16_e32_2]]4414 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4415 %0:vgpr_32 = COPY $vgpr04416 %1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, %0, implicit $mode, implicit $exec4417 %2:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, %0, implicit $mode, implicit $exec4418 %3:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, %0, implicit $mode, implicit $exec4419 S_NOP 0, implicit %14420 S_NOP 0, implicit %24421 S_NOP 0, implicit %34422 S_ENDPGM 0, implicit %04423...4424 4425---4426name: test_remat_v_ldexp_f16_e644427tracksRegLiveness: true4428body: |4429 bb.0:4430 liveins: $vgpr0, $vgpr14431 ; GCN-LABEL: name: test_remat_v_ldexp_f16_e644432 ; GCN: liveins: $vgpr0, $vgpr14433 ; GCN-NEXT: {{ $}}4434 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04435 ; GCN-NEXT: [[V_LDEXP_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, 1, 0, 0, implicit $mode, implicit $exec4436 ; GCN-NEXT: [[V_LDEXP_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, 1, 0, 0, implicit $mode, implicit $exec4437 ; GCN-NEXT: [[V_LDEXP_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, 1, 0, 0, implicit $mode, implicit $exec4438 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F16_e64_]]4439 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F16_e64_1]]4440 ; GCN-NEXT: S_NOP 0, implicit [[V_LDEXP_F16_e64_2]]4441 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4442 %0:vgpr_32 = COPY $vgpr04443 %1:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, 1, 0, 0, implicit $mode, implicit $exec4444 %2:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, 1, 0, 0, implicit $mode, implicit $exec4445 %3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, 1, 0, 0, implicit $mode, implicit $exec4446 S_NOP 0, implicit %14447 S_NOP 0, implicit %24448 S_NOP 0, implicit %34449 S_ENDPGM 0, implicit %04450...4451 4452---4453name: test_remat_v_min_f16_e324454tracksRegLiveness: true4455body: |4456 bb.0:4457 liveins: $vgpr04458 ; GCN-LABEL: name: test_remat_v_min_f16_e324459 ; GCN: liveins: $vgpr04460 ; GCN-NEXT: {{ $}}4461 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04462 ; GCN-NEXT: [[V_MIN_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4463 ; GCN-NEXT: [[V_MIN_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F16_e32 2, [[COPY]], implicit $mode, implicit $exec4464 ; GCN-NEXT: [[V_MIN_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F16_e32 3, [[COPY]], implicit $mode, implicit $exec4465 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F16_e32_]]4466 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F16_e32_1]]4467 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F16_e32_2]]4468 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4469 %0:vgpr_32 = COPY $vgpr04470 %1:vgpr_32 = nofpexcept V_MIN_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec4471 %2:vgpr_32 = nofpexcept V_MIN_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec4472 %3:vgpr_32 = nofpexcept V_MIN_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec4473 S_NOP 0, implicit %14474 S_NOP 0, implicit %24475 S_NOP 0, implicit %34476 S_ENDPGM 0, implicit %04477...4478 4479---4480name: test_remat_v_min_f16_e644481tracksRegLiveness: true4482body: |4483 bb.0:4484 liveins: $vgpr04485 ; GCN-LABEL: name: test_remat_v_min_f16_e644486 ; GCN: liveins: $vgpr04487 ; GCN-NEXT: {{ $}}4488 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04489 ; GCN-NEXT: [[V_MIN_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 1, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4490 ; GCN-NEXT: [[V_MIN_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 2, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4491 ; GCN-NEXT: [[V_MIN_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 3, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4492 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F16_e64_]]4493 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F16_e64_1]]4494 ; GCN-NEXT: S_NOP 0, implicit [[V_MIN_F16_e64_2]]4495 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4496 %0:vgpr_32 = COPY $vgpr04497 %1:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4498 %2:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4499 %3:vgpr_32 = nofpexcept V_MIN_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4500 S_NOP 0, implicit %14501 S_NOP 0, implicit %24502 S_NOP 0, implicit %34503 S_ENDPGM 0, implicit %04504...4505 4506---4507name: test_remat_v_max_f16_e324508tracksRegLiveness: true4509body: |4510 bb.0:4511 liveins: $vgpr04512 ; GCN-LABEL: name: test_remat_v_max_f16_e324513 ; GCN: liveins: $vgpr04514 ; GCN-NEXT: {{ $}}4515 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04516 ; GCN-NEXT: [[V_MAX_F16_e32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e32 1, [[COPY]], implicit $mode, implicit $exec4517 ; GCN-NEXT: [[V_MAX_F16_e32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e32 2, [[COPY]], implicit $mode, implicit $exec4518 ; GCN-NEXT: [[V_MAX_F16_e32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e32 3, [[COPY]], implicit $mode, implicit $exec4519 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F16_e32_]]4520 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F16_e32_1]]4521 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F16_e32_2]]4522 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4523 %0:vgpr_32 = COPY $vgpr04524 %1:vgpr_32 = nofpexcept V_MAX_F16_e32 1, %0:vgpr_32, implicit $mode, implicit $exec4525 %2:vgpr_32 = nofpexcept V_MAX_F16_e32 2, %0:vgpr_32, implicit $mode, implicit $exec4526 %3:vgpr_32 = nofpexcept V_MAX_F16_e32 3, %0:vgpr_32, implicit $mode, implicit $exec4527 S_NOP 0, implicit %14528 S_NOP 0, implicit %24529 S_NOP 0, implicit %34530 S_ENDPGM 0, implicit %04531...4532 4533---4534name: test_remat_v_max_f16_e644535tracksRegLiveness: true4536body: |4537 bb.0:4538 liveins: $vgpr04539 ; GCN-LABEL: name: test_remat_v_max_f16_e644540 ; GCN: liveins: $vgpr04541 ; GCN-NEXT: {{ $}}4542 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04543 ; GCN-NEXT: [[V_MAX_F16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 1, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4544 ; GCN-NEXT: [[V_MAX_F16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 2, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4545 ; GCN-NEXT: [[V_MAX_F16_e64_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 3, 0, [[COPY]], 0, 0, implicit $mode, implicit $exec4546 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F16_e64_]]4547 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F16_e64_1]]4548 ; GCN-NEXT: S_NOP 0, implicit [[V_MAX_F16_e64_2]]4549 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4550 %0:vgpr_32 = COPY $vgpr04551 %1:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 1, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4552 %2:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 2, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4553 %3:vgpr_32 = nofpexcept V_MAX_F16_e64 0, 3, 0, %0:vgpr_32, 0, 0, implicit $mode, implicit $exec4554 S_NOP 0, implicit %14555 S_NOP 0, implicit %24556 S_NOP 0, implicit %34557 S_ENDPGM 0, implicit %04558...4559 4560---4561name: test_remat_v_madak_f164562tracksRegLiveness: true4563body: |4564 bb.0:4565 liveins: $vgpr04566 ; GCN-LABEL: name: test_remat_v_madak_f164567 ; GCN: liveins: $vgpr04568 ; GCN-NEXT: {{ $}}4569 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04570 ; GCN-NEXT: [[V_MADAK_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_MADAK_F16 1, [[COPY]], 1, implicit $exec, implicit $mode4571 ; GCN-NEXT: [[V_MADAK_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MADAK_F16 2, [[COPY]], 2, implicit $exec, implicit $mode4572 ; GCN-NEXT: [[V_MADAK_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MADAK_F16 3, [[COPY]], 3, implicit $exec, implicit $mode4573 ; GCN-NEXT: S_NOP 0, implicit [[V_MADAK_F16_]]4574 ; GCN-NEXT: S_NOP 0, implicit [[V_MADAK_F16_1]]4575 ; GCN-NEXT: S_NOP 0, implicit [[V_MADAK_F16_2]]4576 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4577 %0:vgpr_32 = COPY $vgpr04578 %1:vgpr_32 = nofpexcept V_MADAK_F16 1, %0, 1, implicit $exec, implicit $mode4579 %2:vgpr_32 = nofpexcept V_MADAK_F16 2, %0, 2, implicit $exec, implicit $mode4580 %3:vgpr_32 = nofpexcept V_MADAK_F16 3, %0, 3, implicit $exec, implicit $mode4581 S_NOP 0, implicit %14582 S_NOP 0, implicit %24583 S_NOP 0, implicit %34584 S_ENDPGM 0, implicit %04585...4586 4587---4588name: test_remat_v_madmk_f164589tracksRegLiveness: true4590body: |4591 bb.0:4592 liveins: $vgpr0, $vgpr14593 ; GCN-LABEL: name: test_remat_v_madmk_f164594 ; GCN: liveins: $vgpr0, $vgpr14595 ; GCN-NEXT: {{ $}}4596 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04597 ; GCN-NEXT: [[V_MADMK_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_MADMK_F16 1, 1, [[COPY]], implicit $exec, implicit $mode4598 ; GCN-NEXT: [[V_MADMK_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MADMK_F16 2, 2, [[COPY]], implicit $exec, implicit $mode4599 ; GCN-NEXT: [[V_MADMK_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MADMK_F16 3, 3, [[COPY]], implicit $exec, implicit $mode4600 ; GCN-NEXT: S_NOP 0, implicit [[V_MADMK_F16_]]4601 ; GCN-NEXT: S_NOP 0, implicit [[V_MADMK_F16_1]]4602 ; GCN-NEXT: S_NOP 0, implicit [[V_MADMK_F16_2]]4603 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4604 %0:vgpr_32 = COPY $vgpr04605 %1:vgpr_32 = nofpexcept V_MADMK_F16 1, 1, %0, implicit $exec, implicit $mode4606 %2:vgpr_32 = nofpexcept V_MADMK_F16 2, 2, %0, implicit $exec, implicit $mode4607 %3:vgpr_32 = nofpexcept V_MADMK_F16 3, 3, %0, implicit $exec, implicit $mode4608 S_NOP 0, implicit %14609 S_NOP 0, implicit %24610 S_NOP 0, implicit %34611 S_ENDPGM 0, implicit %04612...4613 4614---4615name: test_remat_v_fmamk_f164616tracksRegLiveness: true4617body: |4618 bb.0:4619 liveins: $vgpr0, $vgpr14620 ; GCN-LABEL: name: test_remat_v_fmamk_f164621 ; GCN: liveins: $vgpr0, $vgpr14622 ; GCN-NEXT: {{ $}}4623 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04624 ; GCN-NEXT: [[V_FMAMK_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAMK_F16 1, 1, [[COPY]], implicit $exec, implicit $mode4625 ; GCN-NEXT: [[V_FMAMK_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAMK_F16 2, 2, [[COPY]], implicit $exec, implicit $mode4626 ; GCN-NEXT: [[V_FMAMK_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FMAMK_F16 3, 3, [[COPY]], implicit $exec, implicit $mode4627 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAMK_F16_]]4628 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAMK_F16_1]]4629 ; GCN-NEXT: S_NOP 0, implicit [[V_FMAMK_F16_2]]4630 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4631 %0:vgpr_32 = COPY $vgpr04632 %1:vgpr_32 = nofpexcept V_FMAMK_F16 1, 1, %0, implicit $exec, implicit $mode4633 %2:vgpr_32 = nofpexcept V_FMAMK_F16 2, 2, %0, implicit $exec, implicit $mode4634 %3:vgpr_32 = nofpexcept V_FMAMK_F16 3, 3, %0, implicit $exec, implicit $mode4635 S_NOP 0, implicit %14636 S_NOP 0, implicit %24637 S_NOP 0, implicit %34638 S_ENDPGM 0, implicit %04639...4640 4641---4642name: test_remat_v_pk_mad_i164643tracksRegLiveness: true4644body: |4645 bb.0:4646 liveins: $vgpr04647 ; GCN-LABEL: name: test_remat_v_pk_mad_i164648 ; GCN: liveins: $vgpr04649 ; GCN-NEXT: {{ $}}4650 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04651 ; GCN-NEXT: [[V_PK_MAD_I16_:%[0-9]+]]:vgpr_32 = V_PK_MAD_I16 8, [[COPY]], 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4652 ; GCN-NEXT: [[V_PK_MAD_I16_1:%[0-9]+]]:vgpr_32 = V_PK_MAD_I16 9, [[COPY]], 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4653 ; GCN-NEXT: [[V_PK_MAD_I16_2:%[0-9]+]]:vgpr_32 = V_PK_MAD_I16 10, [[COPY]], 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4654 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAD_I16_]]4655 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAD_I16_1]]4656 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAD_I16_2]]4657 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4658 %0:vgpr_32 = COPY $vgpr04659 4660 %1:vgpr_32 = V_PK_MAD_I16 8, %0, 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4661 %2:vgpr_32 = V_PK_MAD_I16 9, %0, 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4662 %3:vgpr_32 = V_PK_MAD_I16 10, %0, 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4663 S_NOP 0, implicit %14664 S_NOP 0, implicit %24665 S_NOP 0, implicit %34666 S_ENDPGM 0, implicit %04667...4668 4669---4670name: test_remat_v_pk_mad_u164671tracksRegLiveness: true4672body: |4673 bb.0:4674 liveins: $vgpr04675 ; GCN-LABEL: name: test_remat_v_pk_mad_u164676 ; GCN: liveins: $vgpr04677 ; GCN-NEXT: {{ $}}4678 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04679 ; GCN-NEXT: [[V_PK_MAD_U16_:%[0-9]+]]:vgpr_32 = V_PK_MAD_U16 8, [[COPY]], 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4680 ; GCN-NEXT: [[V_PK_MAD_U16_1:%[0-9]+]]:vgpr_32 = V_PK_MAD_U16 9, [[COPY]], 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4681 ; GCN-NEXT: [[V_PK_MAD_U16_2:%[0-9]+]]:vgpr_32 = V_PK_MAD_U16 10, [[COPY]], 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4682 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAD_U16_]]4683 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAD_U16_1]]4684 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAD_U16_2]]4685 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4686 %0:vgpr_32 = COPY $vgpr04687 4688 %1:vgpr_32 = V_PK_MAD_U16 8, %0, 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4689 %2:vgpr_32 = V_PK_MAD_U16 9, %0, 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4690 %3:vgpr_32 = V_PK_MAD_U16 10, %0, 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4691 S_NOP 0, implicit %14692 S_NOP 0, implicit %24693 S_NOP 0, implicit %34694 S_ENDPGM 0, implicit %04695...4696 4697---4698name: test_remat_v_pk_add_u164699tracksRegLiveness: true4700body: |4701 bb.0:4702 liveins: $vgpr04703 ; GCN-LABEL: name: test_remat_v_pk_add_u164704 ; GCN: liveins: $vgpr04705 ; GCN-NEXT: {{ $}}4706 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04707 ; GCN-NEXT: [[V_PK_ADD_U16_:%[0-9]+]]:vgpr_32 = V_PK_ADD_U16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4708 ; GCN-NEXT: [[V_PK_ADD_U16_1:%[0-9]+]]:vgpr_32 = V_PK_ADD_U16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4709 ; GCN-NEXT: [[V_PK_ADD_U16_2:%[0-9]+]]:vgpr_32 = V_PK_ADD_U16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4710 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_U16_]]4711 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_U16_1]]4712 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_U16_2]]4713 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4714 %0:vgpr_32 = COPY $vgpr04715 4716 %1:vgpr_32 = V_PK_ADD_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4717 %2:vgpr_32 = V_PK_ADD_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4718 %3:vgpr_32 = V_PK_ADD_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4719 S_NOP 0, implicit %14720 S_NOP 0, implicit %24721 S_NOP 0, implicit %34722 S_ENDPGM 0, implicit %04723...4724 4725---4726name: test_remat_v_pk_add_i164727tracksRegLiveness: true4728body: |4729 bb.0:4730 liveins: $vgpr04731 ; GCN-LABEL: name: test_remat_v_pk_add_i164732 ; GCN: liveins: $vgpr04733 ; GCN-NEXT: {{ $}}4734 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04735 ; GCN-NEXT: [[V_PK_ADD_I16_:%[0-9]+]]:vgpr_32 = V_PK_ADD_I16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4736 ; GCN-NEXT: [[V_PK_ADD_I16_1:%[0-9]+]]:vgpr_32 = V_PK_ADD_I16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4737 ; GCN-NEXT: [[V_PK_ADD_I16_2:%[0-9]+]]:vgpr_32 = V_PK_ADD_I16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4738 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_I16_]]4739 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_I16_1]]4740 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_I16_2]]4741 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4742 %0:vgpr_32 = COPY $vgpr04743 4744 %1:vgpr_32 = V_PK_ADD_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4745 %2:vgpr_32 = V_PK_ADD_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4746 %3:vgpr_32 = V_PK_ADD_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4747 S_NOP 0, implicit %14748 S_NOP 0, implicit %24749 S_NOP 0, implicit %34750 S_ENDPGM 0, implicit %04751...4752 4753---4754name: test_remat_v_pk_mul_lo_u164755tracksRegLiveness: true4756body: |4757 bb.0:4758 liveins: $vgpr04759 ; GCN-LABEL: name: test_remat_v_pk_mul_lo_u164760 ; GCN: liveins: $vgpr04761 ; GCN-NEXT: {{ $}}4762 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04763 ; GCN-NEXT: [[V_PK_MUL_LO_U16_:%[0-9]+]]:vgpr_32 = V_PK_MUL_LO_U16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4764 ; GCN-NEXT: [[V_PK_MUL_LO_U16_1:%[0-9]+]]:vgpr_32 = V_PK_MUL_LO_U16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4765 ; GCN-NEXT: [[V_PK_MUL_LO_U16_2:%[0-9]+]]:vgpr_32 = V_PK_MUL_LO_U16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4766 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_LO_U16_]]4767 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_LO_U16_1]]4768 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_LO_U16_2]]4769 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4770 %0:vgpr_32 = COPY $vgpr04771 4772 %1:vgpr_32 = V_PK_MUL_LO_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4773 %2:vgpr_32 = V_PK_MUL_LO_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4774 %3:vgpr_32 = V_PK_MUL_LO_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4775 S_NOP 0, implicit %14776 S_NOP 0, implicit %24777 S_NOP 0, implicit %34778 S_ENDPGM 0, implicit %04779...4780 4781---4782name: test_remat_v_pk_min_i164783tracksRegLiveness: true4784body: |4785 bb.0:4786 liveins: $vgpr04787 ; GCN-LABEL: name: test_remat_v_pk_min_i164788 ; GCN: liveins: $vgpr04789 ; GCN-NEXT: {{ $}}4790 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04791 ; GCN-NEXT: [[V_PK_MIN_I16_:%[0-9]+]]:vgpr_32 = V_PK_MIN_I16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4792 ; GCN-NEXT: [[V_PK_MIN_I16_1:%[0-9]+]]:vgpr_32 = V_PK_MIN_I16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4793 ; GCN-NEXT: [[V_PK_MIN_I16_2:%[0-9]+]]:vgpr_32 = V_PK_MIN_I16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4794 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_I16_]]4795 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_I16_1]]4796 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_I16_2]]4797 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4798 %0:vgpr_32 = COPY $vgpr04799 4800 %1:vgpr_32 = V_PK_MIN_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4801 %2:vgpr_32 = V_PK_MIN_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4802 %3:vgpr_32 = V_PK_MIN_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4803 S_NOP 0, implicit %14804 S_NOP 0, implicit %24805 S_NOP 0, implicit %34806 S_ENDPGM 0, implicit %04807...4808 4809---4810name: test_remat_v_pk_max_i164811tracksRegLiveness: true4812body: |4813 bb.0:4814 liveins: $vgpr04815 ; GCN-LABEL: name: test_remat_v_pk_max_i164816 ; GCN: liveins: $vgpr04817 ; GCN-NEXT: {{ $}}4818 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04819 ; GCN-NEXT: [[V_PK_MAX_I16_:%[0-9]+]]:vgpr_32 = V_PK_MAX_I16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4820 ; GCN-NEXT: [[V_PK_MAX_I16_1:%[0-9]+]]:vgpr_32 = V_PK_MAX_I16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4821 ; GCN-NEXT: [[V_PK_MAX_I16_2:%[0-9]+]]:vgpr_32 = V_PK_MAX_I16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4822 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_I16_]]4823 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_I16_1]]4824 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_I16_2]]4825 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4826 %0:vgpr_32 = COPY $vgpr04827 4828 %1:vgpr_32 = V_PK_MAX_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4829 %2:vgpr_32 = V_PK_MAX_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4830 %3:vgpr_32 = V_PK_MAX_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4831 S_NOP 0, implicit %14832 S_NOP 0, implicit %24833 S_NOP 0, implicit %34834 S_ENDPGM 0, implicit %04835...4836 4837---4838name: test_remat_v_pk_min_u164839tracksRegLiveness: true4840body: |4841 bb.0:4842 liveins: $vgpr04843 ; GCN-LABEL: name: test_remat_v_pk_min_u164844 ; GCN: liveins: $vgpr04845 ; GCN-NEXT: {{ $}}4846 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04847 ; GCN-NEXT: [[V_PK_MIN_U16_:%[0-9]+]]:vgpr_32 = V_PK_MIN_U16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4848 ; GCN-NEXT: [[V_PK_MIN_U16_1:%[0-9]+]]:vgpr_32 = V_PK_MIN_U16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4849 ; GCN-NEXT: [[V_PK_MIN_U16_2:%[0-9]+]]:vgpr_32 = V_PK_MIN_U16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4850 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_U16_]]4851 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_U16_1]]4852 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_U16_2]]4853 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4854 %0:vgpr_32 = COPY $vgpr04855 4856 %1:vgpr_32 = V_PK_MIN_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4857 %2:vgpr_32 = V_PK_MIN_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4858 %3:vgpr_32 = V_PK_MIN_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4859 S_NOP 0, implicit %14860 S_NOP 0, implicit %24861 S_NOP 0, implicit %34862 S_ENDPGM 0, implicit %04863...4864 4865---4866name: test_remat_v_pk_max_u164867tracksRegLiveness: true4868body: |4869 bb.0:4870 liveins: $vgpr04871 ; GCN-LABEL: name: test_remat_v_pk_max_u164872 ; GCN: liveins: $vgpr04873 ; GCN-NEXT: {{ $}}4874 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04875 ; GCN-NEXT: [[V_PK_MAX_U16_:%[0-9]+]]:vgpr_32 = V_PK_MAX_U16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4876 ; GCN-NEXT: [[V_PK_MAX_U16_1:%[0-9]+]]:vgpr_32 = V_PK_MAX_U16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4877 ; GCN-NEXT: [[V_PK_MAX_U16_2:%[0-9]+]]:vgpr_32 = V_PK_MAX_U16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4878 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_U16_]]4879 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_U16_1]]4880 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_U16_2]]4881 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4882 %0:vgpr_32 = COPY $vgpr04883 4884 %1:vgpr_32 = V_PK_MAX_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4885 %2:vgpr_32 = V_PK_MAX_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4886 %3:vgpr_32 = V_PK_MAX_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4887 S_NOP 0, implicit %14888 S_NOP 0, implicit %24889 S_NOP 0, implicit %34890 S_ENDPGM 0, implicit %04891...4892 4893---4894name: test_remat_v_pk_sub_u164895tracksRegLiveness: true4896body: |4897 bb.0:4898 liveins: $vgpr04899 ; GCN-LABEL: name: test_remat_v_pk_sub_u164900 ; GCN: liveins: $vgpr04901 ; GCN-NEXT: {{ $}}4902 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04903 ; GCN-NEXT: [[V_PK_SUB_U16_:%[0-9]+]]:vgpr_32 = V_PK_SUB_U16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4904 ; GCN-NEXT: [[V_PK_SUB_U16_1:%[0-9]+]]:vgpr_32 = V_PK_SUB_U16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4905 ; GCN-NEXT: [[V_PK_SUB_U16_2:%[0-9]+]]:vgpr_32 = V_PK_SUB_U16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4906 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_SUB_U16_]]4907 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_SUB_U16_1]]4908 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_SUB_U16_2]]4909 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4910 %0:vgpr_32 = COPY $vgpr04911 4912 %1:vgpr_32 = V_PK_SUB_U16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4913 %2:vgpr_32 = V_PK_SUB_U16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4914 %3:vgpr_32 = V_PK_SUB_U16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4915 S_NOP 0, implicit %14916 S_NOP 0, implicit %24917 S_NOP 0, implicit %34918 S_ENDPGM 0, implicit %04919...4920 4921---4922name: test_remat_v_pk_sub_i164923tracksRegLiveness: true4924body: |4925 bb.0:4926 liveins: $vgpr04927 ; GCN-LABEL: name: test_remat_v_pk_sub_i164928 ; GCN: liveins: $vgpr04929 ; GCN-NEXT: {{ $}}4930 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04931 ; GCN-NEXT: [[V_PK_SUB_I16_:%[0-9]+]]:vgpr_32 = V_PK_SUB_I16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4932 ; GCN-NEXT: [[V_PK_SUB_I16_1:%[0-9]+]]:vgpr_32 = V_PK_SUB_I16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4933 ; GCN-NEXT: [[V_PK_SUB_I16_2:%[0-9]+]]:vgpr_32 = V_PK_SUB_I16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4934 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_SUB_I16_]]4935 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_SUB_I16_1]]4936 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_SUB_I16_2]]4937 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4938 %0:vgpr_32 = COPY $vgpr04939 4940 %1:vgpr_32 = V_PK_SUB_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4941 %2:vgpr_32 = V_PK_SUB_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4942 %3:vgpr_32 = V_PK_SUB_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4943 S_NOP 0, implicit %14944 S_NOP 0, implicit %24945 S_NOP 0, implicit %34946 S_ENDPGM 0, implicit %04947...4948 4949---4950name: test_remat_v_pk_lshlrev_b164951tracksRegLiveness: true4952body: |4953 bb.0:4954 liveins: $vgpr04955 ; GCN-LABEL: name: test_remat_v_pk_lshlrev_b164956 ; GCN: liveins: $vgpr04957 ; GCN-NEXT: {{ $}}4958 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04959 ; GCN-NEXT: [[V_PK_LSHLREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHLREV_B16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4960 ; GCN-NEXT: [[V_PK_LSHLREV_B16_1:%[0-9]+]]:vgpr_32 = V_PK_LSHLREV_B16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4961 ; GCN-NEXT: [[V_PK_LSHLREV_B16_2:%[0-9]+]]:vgpr_32 = V_PK_LSHLREV_B16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4962 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_LSHLREV_B16_]]4963 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_LSHLREV_B16_1]]4964 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_LSHLREV_B16_2]]4965 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4966 %0:vgpr_32 = COPY $vgpr04967 4968 %1:vgpr_32 = V_PK_LSHLREV_B16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4969 %2:vgpr_32 = V_PK_LSHLREV_B16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4970 %3:vgpr_32 = V_PK_LSHLREV_B16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4971 S_NOP 0, implicit %14972 S_NOP 0, implicit %24973 S_NOP 0, implicit %34974 S_ENDPGM 0, implicit %04975...4976 4977---4978name: test_remat_v_pk_ashrrev_i164979tracksRegLiveness: true4980body: |4981 bb.0:4982 liveins: $vgpr04983 ; GCN-LABEL: name: test_remat_v_pk_ashrrev_i164984 ; GCN: liveins: $vgpr04985 ; GCN-NEXT: {{ $}}4986 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr04987 ; GCN-NEXT: [[V_PK_ASHRREV_I16_:%[0-9]+]]:vgpr_32 = V_PK_ASHRREV_I16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4988 ; GCN-NEXT: [[V_PK_ASHRREV_I16_1:%[0-9]+]]:vgpr_32 = V_PK_ASHRREV_I16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4989 ; GCN-NEXT: [[V_PK_ASHRREV_I16_2:%[0-9]+]]:vgpr_32 = V_PK_ASHRREV_I16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec4990 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ASHRREV_I16_]]4991 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ASHRREV_I16_1]]4992 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ASHRREV_I16_2]]4993 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]4994 %0:vgpr_32 = COPY $vgpr04995 4996 %1:vgpr_32 = V_PK_ASHRREV_I16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec4997 %2:vgpr_32 = V_PK_ASHRREV_I16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec4998 %3:vgpr_32 = V_PK_ASHRREV_I16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec4999 S_NOP 0, implicit %15000 S_NOP 0, implicit %25001 S_NOP 0, implicit %35002 S_ENDPGM 0, implicit %05003...5004 5005---5006name: test_remat_v_pk_lshrrev_b165007tracksRegLiveness: true5008body: |5009 bb.0:5010 liveins: $vgpr05011 ; GCN-LABEL: name: test_remat_v_pk_lshrrev_b165012 ; GCN: liveins: $vgpr05013 ; GCN-NEXT: {{ $}}5014 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05015 ; GCN-NEXT: [[V_PK_LSHRREV_B16_:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $exec5016 ; GCN-NEXT: [[V_PK_LSHRREV_B16_1:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $exec5017 ; GCN-NEXT: [[V_PK_LSHRREV_B16_2:%[0-9]+]]:vgpr_32 = V_PK_LSHRREV_B16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $exec5018 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_LSHRREV_B16_]]5019 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_LSHRREV_B16_1]]5020 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_LSHRREV_B16_2]]5021 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5022 %0:vgpr_32 = COPY $vgpr05023 5024 %1:vgpr_32 = V_PK_LSHRREV_B16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $exec5025 %2:vgpr_32 = V_PK_LSHRREV_B16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $exec5026 %3:vgpr_32 = V_PK_LSHRREV_B16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $exec5027 S_NOP 0, implicit %15028 S_NOP 0, implicit %25029 S_NOP 0, implicit %35030 S_ENDPGM 0, implicit %05031...5032 5033---5034name: test_remat_v_pk_add_f165035tracksRegLiveness: true5036body: |5037 bb.0:5038 liveins: $vgpr05039 ; GCN-LABEL: name: test_remat_v_pk_add_f165040 ; GCN: liveins: $vgpr05041 ; GCN-NEXT: {{ $}}5042 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05043 ; GCN-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5044 ; GCN-NEXT: [[V_PK_ADD_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5045 ; GCN-NEXT: [[V_PK_ADD_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_ADD_F16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5046 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F16_]]5047 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F16_1]]5048 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F16_2]]5049 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5050 %0:vgpr_32 = COPY $vgpr05051 5052 %1:vgpr_32 = nofpexcept V_PK_ADD_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5053 %2:vgpr_32 = nofpexcept V_PK_ADD_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5054 %3:vgpr_32 = nofpexcept V_PK_ADD_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5055 S_NOP 0, implicit %15056 S_NOP 0, implicit %25057 S_NOP 0, implicit %35058 S_ENDPGM 0, implicit %05059...5060 5061# Missing nofpexcept5062---5063name: test_no_remat_v_pk_add_f165064tracksRegLiveness: true5065machineFunctionInfo:5066 stackPtrOffsetReg: $sgpr325067body: |5068 bb.0:5069 liveins: $vgpr05070 ; GCN-LABEL: name: test_no_remat_v_pk_add_f165071 ; GCN: liveins: $vgpr05072 ; GCN-NEXT: {{ $}}5073 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05074 ; GCN-NEXT: [[V_PK_ADD_F16_:%[0-9]+]]:vgpr_32 = V_PK_ADD_F16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5075 ; GCN-NEXT: [[V_PK_ADD_F16_1:%[0-9]+]]:vgpr_32 = V_PK_ADD_F16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5076 ; GCN-NEXT: [[V_PK_ADD_F16_2:%[0-9]+]]:vgpr_32 = V_PK_ADD_F16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5077 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F16_]]5078 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F16_1]]5079 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F16_2]]5080 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5081 %0:vgpr_32 = COPY $vgpr05082 5083 %1:vgpr_32 = V_PK_ADD_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5084 %2:vgpr_32 = V_PK_ADD_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5085 %3:vgpr_32 = V_PK_ADD_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5086 S_NOP 0, implicit %15087 S_NOP 0, implicit %25088 S_NOP 0, implicit %35089 S_ENDPGM 0, implicit %05090...5091 5092---5093name: test_remat_v_pk_mul_f165094tracksRegLiveness: true5095body: |5096 bb.0:5097 liveins: $vgpr05098 ; GCN-LABEL: name: test_remat_v_pk_mul_f165099 ; GCN: liveins: $vgpr05100 ; GCN-NEXT: {{ $}}5101 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05102 ; GCN-NEXT: [[V_PK_MUL_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MUL_F16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5103 ; GCN-NEXT: [[V_PK_MUL_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MUL_F16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5104 ; GCN-NEXT: [[V_PK_MUL_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MUL_F16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5105 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_F16_]]5106 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_F16_1]]5107 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_F16_2]]5108 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5109 %0:vgpr_32 = COPY $vgpr05110 5111 %1:vgpr_32 = nofpexcept V_PK_MUL_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5112 %2:vgpr_32 = nofpexcept V_PK_MUL_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5113 %3:vgpr_32 = nofpexcept V_PK_MUL_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5114 S_NOP 0, implicit %15115 S_NOP 0, implicit %25116 S_NOP 0, implicit %35117 S_ENDPGM 0, implicit %05118...5119 5120---5121name: test_remat_v_pk_min_f165122tracksRegLiveness: true5123body: |5124 bb.0:5125 liveins: $vgpr05126 ; GCN-LABEL: name: test_remat_v_pk_min_f165127 ; GCN: liveins: $vgpr05128 ; GCN-NEXT: {{ $}}5129 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05130 ; GCN-NEXT: [[V_PK_MIN_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MIN_F16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5131 ; GCN-NEXT: [[V_PK_MIN_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MIN_F16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5132 ; GCN-NEXT: [[V_PK_MIN_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MIN_F16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5133 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_F16_]]5134 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_F16_1]]5135 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MIN_F16_2]]5136 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5137 %0:vgpr_32 = COPY $vgpr05138 5139 %1:vgpr_32 = nofpexcept V_PK_MIN_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5140 %2:vgpr_32 = nofpexcept V_PK_MIN_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5141 %3:vgpr_32 = nofpexcept V_PK_MIN_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5142 S_NOP 0, implicit %15143 S_NOP 0, implicit %25144 S_NOP 0, implicit %35145 S_ENDPGM 0, implicit %05146...5147 5148---5149name: test_remat_v_pk_max_f165150tracksRegLiveness: true5151body: |5152 bb.0:5153 liveins: $vgpr05154 ; GCN-LABEL: name: test_remat_v_pk_max_f165155 ; GCN: liveins: $vgpr05156 ; GCN-NEXT: {{ $}}5157 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05158 ; GCN-NEXT: [[V_PK_MAX_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MAX_F16 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5159 ; GCN-NEXT: [[V_PK_MAX_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MAX_F16 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5160 ; GCN-NEXT: [[V_PK_MAX_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_MAX_F16 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5161 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_F16_]]5162 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_F16_1]]5163 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MAX_F16_2]]5164 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5165 %0:vgpr_32 = COPY $vgpr05166 5167 %1:vgpr_32 = nofpexcept V_PK_MAX_F16 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5168 %2:vgpr_32 = nofpexcept V_PK_MAX_F16 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5169 %3:vgpr_32 = nofpexcept V_PK_MAX_F16 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5170 S_NOP 0, implicit %15171 S_NOP 0, implicit %25172 S_NOP 0, implicit %35173 S_ENDPGM 0, implicit %05174...5175 5176---5177name: test_remat_v_pk_fma_f165178tracksRegLiveness: true5179body: |5180 bb.0:5181 liveins: $vgpr05182 ; GCN-LABEL: name: test_remat_v_pk_fma_f165183 ; GCN: liveins: $vgpr05184 ; GCN-NEXT: {{ $}}5185 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05186 ; GCN-NEXT: [[V_PK_FMA_F16_:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_FMA_F16 8, [[COPY]], 8, [[COPY]], 8, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5187 ; GCN-NEXT: [[V_PK_FMA_F16_1:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_FMA_F16 9, [[COPY]], 9, [[COPY]], 9, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5188 ; GCN-NEXT: [[V_PK_FMA_F16_2:%[0-9]+]]:vgpr_32 = nofpexcept V_PK_FMA_F16 10, [[COPY]], 10, [[COPY]], 10, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5189 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F16_]]5190 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F16_1]]5191 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F16_2]]5192 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5193 %0:vgpr_32 = COPY $vgpr05194 %1:vgpr_32 = nofpexcept V_PK_FMA_F16 8, %0, 8, %0, 8, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5195 %2:vgpr_32 = nofpexcept V_PK_FMA_F16 9, %0, 9, %0, 9, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5196 %3:vgpr_32 = nofpexcept V_PK_FMA_F16 10, %0, 10, %0, 10, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5197 5198 S_NOP 0, implicit %15199 S_NOP 0, implicit %25200 S_NOP 0, implicit %35201 S_ENDPGM 0, implicit %05202...5203 5204---5205name: test_remat_v_mad_mix_f325206tracksRegLiveness: true5207body: |5208 bb.0:5209 liveins: $vgpr05210 ; GCN-LABEL: name: test_remat_v_mad_mix_f325211 ; GCN: liveins: $vgpr05212 ; GCN-NEXT: {{ $}}5213 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05214 ; GCN-NEXT: [[V_MAD_MIX_F32_:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_MIX_F32 8, [[COPY]], 8, [[COPY]], 8, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec5215 ; GCN-NEXT: [[V_MAD_MIX_F32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_MIX_F32 9, [[COPY]], 9, [[COPY]], 9, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec5216 ; GCN-NEXT: [[V_MAD_MIX_F32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_MAD_MIX_F32 10, [[COPY]], 10, [[COPY]], 10, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec5217 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_MIX_F32_]]5218 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_MIX_F32_1]]5219 ; GCN-NEXT: S_NOP 0, implicit [[V_MAD_MIX_F32_2]]5220 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5221 %0:vgpr_32 = COPY $vgpr05222 %1:vgpr_32 = nofpexcept V_MAD_MIX_F32 8, %0, 8, %0, 8, %0, 0, 0, 0, implicit $mode, implicit $exec5223 %2:vgpr_32 = nofpexcept V_MAD_MIX_F32 9, %0, 9, %0, 9, %0, 0, 0, 0, implicit $mode, implicit $exec5224 %3:vgpr_32 = nofpexcept V_MAD_MIX_F32 10, %0, 10, %0, 10, %0, 0, 0, 0, implicit $mode, implicit $exec5225 S_NOP 0, implicit %15226 S_NOP 0, implicit %25227 S_NOP 0, implicit %35228 S_ENDPGM 0, implicit %05229...5230 5231---5232name: test_remat_v_fma_mix_f325233tracksRegLiveness: true5234body: |5235 bb.0:5236 liveins: $vgpr05237 ; GCN-LABEL: name: test_remat_v_fma_mix_f325238 ; GCN: liveins: $vgpr05239 ; GCN-NEXT: {{ $}}5240 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr05241 ; GCN-NEXT: [[V_FMA_MIX_F32_:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_MIX_F32 8, [[COPY]], 8, [[COPY]], 8, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec5242 ; GCN-NEXT: [[V_FMA_MIX_F32_1:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_MIX_F32 9, [[COPY]], 9, [[COPY]], 9, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec5243 ; GCN-NEXT: [[V_FMA_MIX_F32_2:%[0-9]+]]:vgpr_32 = nofpexcept V_FMA_MIX_F32 10, [[COPY]], 10, [[COPY]], 10, [[COPY]], 0, 0, 0, implicit $mode, implicit $exec5244 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_MIX_F32_]]5245 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_MIX_F32_1]]5246 ; GCN-NEXT: S_NOP 0, implicit [[V_FMA_MIX_F32_2]]5247 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5248 %0:vgpr_32 = COPY $vgpr05249 %1:vgpr_32 = nofpexcept V_FMA_MIX_F32 8, %0, 8, %0, 8, %0, 0, 0, 0, implicit $mode, implicit $exec5250 %2:vgpr_32 = nofpexcept V_FMA_MIX_F32 9, %0, 9, %0, 9, %0, 0, 0, 0, implicit $mode, implicit $exec5251 %3:vgpr_32 = nofpexcept V_FMA_MIX_F32 10, %0, 10, %0, 10, %0, 0, 0, 0, implicit $mode, implicit $exec5252 S_NOP 0, implicit %15253 S_NOP 0, implicit %25254 S_NOP 0, implicit %35255 S_ENDPGM 0, implicit %05256...5257 5258---5259name: test_remat_v_pk_fma_f325260tracksRegLiveness: true5261body: |5262 bb.0:5263 liveins: $vgpr0_vgpr15264 ; GCN-LABEL: name: test_remat_v_pk_fma_f325265 ; GCN: liveins: $vgpr0_vgpr15266 ; GCN-NEXT: {{ $}}5267 ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr15268 ; GCN-NEXT: [[V_PK_FMA_F32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, [[COPY]], 8, [[COPY]], 11, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5269 ; GCN-NEXT: [[V_PK_FMA_F32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, [[COPY]], 8, [[COPY]], 11, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5270 ; GCN-NEXT: [[V_PK_FMA_F32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, [[COPY]], 8, [[COPY]], 11, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5271 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F32_]]5272 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F32_1]]5273 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F32_2]]5274 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5275 %0:vreg_64_align2 = COPY $vgpr0_vgpr15276 %1:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5277 %2:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5278 %3:vreg_64_align2 = nofpexcept V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5279 S_NOP 0, implicit %15280 S_NOP 0, implicit %25281 S_NOP 0, implicit %35282 S_ENDPGM 0, implicit %05283...5284 5285---5286name: test_no_remat_v_pk_fma_f325287tracksRegLiveness: true5288machineFunctionInfo:5289 stackPtrOffsetReg: $sgpr325290body: |5291 bb.0:5292 liveins: $vgpr0_vgpr15293 ; GCN-LABEL: name: test_no_remat_v_pk_fma_f325294 ; GCN: liveins: $vgpr0_vgpr15295 ; GCN-NEXT: {{ $}}5296 ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr15297 ; GCN-NEXT: [[V_PK_FMA_F32_:%[0-9]+]]:vreg_64_align2 = V_PK_FMA_F32 8, [[COPY]], 8, [[COPY]], 11, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5298 ; GCN-NEXT: [[V_PK_FMA_F32_1:%[0-9]+]]:vreg_64_align2 = V_PK_FMA_F32 8, [[COPY]], 8, [[COPY]], 11, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5299 ; GCN-NEXT: [[V_PK_FMA_F32_2:%[0-9]+]]:vreg_64_align2 = V_PK_FMA_F32 8, [[COPY]], 8, [[COPY]], 11, [[COPY]], 0, 0, 0, 0, 0, implicit $mode, implicit $exec5300 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F32_]]5301 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F32_1]]5302 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_FMA_F32_2]]5303 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5304 %0:vreg_64_align2 = COPY $vgpr0_vgpr15305 %1:vreg_64_align2 = V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5306 %2:vreg_64_align2 = V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5307 %3:vreg_64_align2 = V_PK_FMA_F32 8, %0, 8, %0, 11, %0, 0, 0, 0, 0, 0, implicit $mode, implicit $exec5308 S_NOP 0, implicit %15309 S_NOP 0, implicit %25310 S_NOP 0, implicit %35311 S_ENDPGM 0, implicit %05312...5313 5314---5315name: test_remat_v_pk_mul_f325316tracksRegLiveness: true5317body: |5318 bb.0:5319 liveins: $vgpr0_vgpr15320 ; GCN-LABEL: name: test_remat_v_pk_mul_f325321 ; GCN: liveins: $vgpr0_vgpr15322 ; GCN-NEXT: {{ $}}5323 ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr15324 ; GCN-NEXT: [[V_PK_MUL_F32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $mode, implicit $exec5325 ; GCN-NEXT: [[V_PK_MUL_F32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $mode, implicit $exec5326 ; GCN-NEXT: [[V_PK_MUL_F32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $mode, implicit $exec5327 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_F32_]]5328 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_F32_1]]5329 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MUL_F32_2]]5330 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5331 %0:vreg_64_align2 = COPY $vgpr0_vgpr15332 %1:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec5333 %2:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec5334 %3:vreg_64_align2 = nofpexcept V_PK_MUL_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec5335 S_NOP 0, implicit %15336 S_NOP 0, implicit %25337 S_NOP 0, implicit %35338 S_ENDPGM 0, implicit %05339...5340 5341---5342name: test_remat_v_pk_add_f325343tracksRegLiveness: true5344body: |5345 bb.0:5346 liveins: $vgpr0_vgpr15347 ; GCN-LABEL: name: test_remat_v_pk_add_f325348 ; GCN: liveins: $vgpr0_vgpr15349 ; GCN-NEXT: {{ $}}5350 ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr15351 ; GCN-NEXT: [[V_PK_ADD_F32_:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $mode, implicit $exec5352 ; GCN-NEXT: [[V_PK_ADD_F32_1:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $mode, implicit $exec5353 ; GCN-NEXT: [[V_PK_ADD_F32_2:%[0-9]+]]:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $mode, implicit $exec5354 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F32_]]5355 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F32_1]]5356 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_ADD_F32_2]]5357 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5358 %0:vreg_64_align2 = COPY $vgpr0_vgpr15359 %1:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec5360 %2:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec5361 %3:vreg_64_align2 = nofpexcept V_PK_ADD_F32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $mode, implicit $exec5362 S_NOP 0, implicit %15363 S_NOP 0, implicit %25364 S_NOP 0, implicit %35365 S_ENDPGM 0, implicit %05366...5367 5368---5369name: test_remat_v_pk_mov_b325370tracksRegLiveness: true5371body: |5372 bb.0:5373 liveins: $vgpr0_vgpr15374 ; GCN-LABEL: name: test_remat_v_pk_mov_b325375 ; GCN: liveins: $vgpr0_vgpr15376 ; GCN-NEXT: {{ $}}5377 ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr15378 ; GCN-NEXT: [[V_PK_MOV_B32_:%[0-9]+]]:vreg_64_align2 = V_PK_MOV_B32 8, [[COPY]], 8, [[COPY]], 11, 0, 0, 0, 0, implicit $exec5379 ; GCN-NEXT: [[V_PK_MOV_B32_1:%[0-9]+]]:vreg_64_align2 = V_PK_MOV_B32 9, [[COPY]], 9, [[COPY]], 12, 0, 0, 0, 0, implicit $exec5380 ; GCN-NEXT: [[V_PK_MOV_B32_2:%[0-9]+]]:vreg_64_align2 = V_PK_MOV_B32 10, [[COPY]], 10, [[COPY]], 13, 0, 0, 0, 0, implicit $exec5381 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MOV_B32_]]5382 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MOV_B32_1]]5383 ; GCN-NEXT: S_NOP 0, implicit [[V_PK_MOV_B32_2]]5384 ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]5385 %0:vreg_64_align2 = COPY $vgpr0_vgpr15386 %1:vreg_64_align2 = V_PK_MOV_B32 8, %0, 8, %0, 11, 0, 0, 0, 0, implicit $exec5387 %2:vreg_64_align2 = V_PK_MOV_B32 9, %0, 9, %0, 12, 0, 0, 0, 0, implicit $exec5388 %3:vreg_64_align2 = V_PK_MOV_B32 10, %0, 10, %0, 13, 0, 0, 0, 0, implicit $exec5389 S_NOP 0, implicit %15390 S_NOP 0, implicit %25391 S_NOP 0, implicit %35392 S_ENDPGM 0, implicit %05393...5394 5395# Make sure there's no verifier error after making a subregister def dead. The5396# dead interval still needs a subrange.5397 5398---5399name: test_remat_subreg_def5400tracksRegLiveness: true5401body: |5402 bb.0:5403 ; GCN-LABEL: name: test_remat_subreg_def5404 ; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec5405 ; GCN-NEXT: undef [[V_MOV_B32_e32_1:%[0-9]+]].sub0:vreg_64 = V_MOV_B32_e32 2, implicit $exec5406 ; GCN-NEXT: [[V_MOV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 3, implicit $exec5407 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_]]5408 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_2]]5409 ; GCN-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_1]]5410 ; GCN-NEXT: S_ENDPGM 05411 %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec5412 undef %1.sub0:vreg_64 = V_MOV_B32_e32 2, implicit $exec5413 %2:vgpr_32 = V_MOV_B32_e32 3, implicit $exec5414 S_NOP 0, implicit %05415 S_NOP 0, implicit %25416 S_NOP 0, implicit %15417 S_ENDPGM 05418...5419