brintos

brintos / llvm-project-archived public Read only

0
0
Text · 256.6 KiB · 23cf6f0 Raw
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