Index: llvm/lib/Target/AMDGPU/VOP2Instructions.td =================================================================== --- llvm/lib/Target/AMDGPU/VOP2Instructions.td +++ llvm/lib/Target/AMDGPU/VOP2Instructions.td @@ -754,7 +754,7 @@ let SubtargetPredicate = Has16BitInsts in { - +let isReMaterializable = 1 in { let FPDPRounding = 1 in { def V_MADMK_F16 : VOP2_Pseudo <"v_madmk_f16", VOP_MADMK_F16, [], "">; defm V_LDEXP_F16 : VOP2Inst <"v_ldexp_f16", VOP_F16_F16_I32, AMDGPUldexp>; @@ -776,6 +776,7 @@ } } // End FPDPRounding = 1 + defm V_MUL_LO_U16 : VOP2Inst <"v_mul_lo_u16", VOP_I16_I16_I16, mul>; defm V_MAX_F16 : VOP2Inst <"v_max_f16", VOP_F16_F16_F16, fmaxnum_like>; defm V_MIN_F16 : VOP2Inst <"v_min_f16", VOP_F16_F16_F16, fminnum_like>; @@ -789,13 +790,14 @@ defm V_SUB_U16 : VOP2Inst <"v_sub_u16" , VOP_I16_I16_I16_ARITH, sub>; defm V_SUBREV_U16 : VOP2Inst <"v_subrev_u16", VOP_I16_I16_I16_ARITH, null_frag, "v_sub_u16">; } +} // End isCommutable = 1 +} // End isReMaterializable = 1 +// FIXME: Missing FPDPRounding let Constraints = "$vdst = $src2", DisableEncoding="$src2", - isConvertibleToThreeAddress = 1 in { + isConvertibleToThreeAddress = 1, isCommutable = 1 in { defm V_MAC_F16 : VOP2Inst <"v_mac_f16", VOP_MAC_F16>; } -} // End isCommutable = 1 - } // End SubtargetPredicate = Has16BitInsts let SubtargetPredicate = HasDLInsts in { @@ -911,12 +913,12 @@ let SubtargetPredicate = isGFX10Plus in { -let FPDPRounding = 1 in { +let FPDPRounding = 1, isReMaterializable = 1 in { def V_FMAMK_F16 : VOP2_Pseudo <"v_fmamk_f16", VOP_MADMK_F16, [], "">; let isCommutable = 1 in def V_FMAAK_F16 : VOP2_Pseudo <"v_fmaak_f16", VOP_MADAK_F16, [], "">; -} // End FPDPRounding = 1 +} // End FPDPRounding = 1, isReMaterializable = 1 let Constraints = "$vdst = $src2", DisableEncoding="$src2", Index: llvm/test/CodeGen/AMDGPU/remat-vop.mir =================================================================== --- llvm/test/CodeGen/AMDGPU/remat-vop.mir +++ llvm/test/CodeGen/AMDGPU/remat-vop.mir @@ -1,5 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py -# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -verify-machineinstrs=0 --stress-regalloc=2 -start-before=greedy,0 -stop-after=virtregrewriter,1 -o - %s | FileCheck -check-prefix=GCN %s +# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -verify-machineinstrs --stress-regalloc=2 -start-before=greedy,0 -stop-after=virtregrewriter,1 -o - %s | FileCheck -check-prefix=GCN %s --- name: test_remat_v_mov_b32_e32 @@ -2397,114 +2397,6 @@ S_ENDPGM 0 ... --- -name: test_no_remat_v_ldexp_f16_e32 -tracksRegLiveness: true -machineFunctionInfo: - stackPtrOffsetReg: $sgpr32 -body: | - bb.0: - ; GCN-LABEL: name: test_no_remat_v_ldexp_f16_e32 - ; GCN: renamable $vgpr0 = nofpexcept V_LDEXP_F16_e32 1, undef $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 2, undef $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: renamable $vgpr0 = nofpexcept V_LDEXP_F16_e32 3, undef $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_ENDPGM 0 - %1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 1, undef %0:vgpr_32, implicit $exec, implicit $mode - %2:vgpr_32 = nofpexcept V_LDEXP_F16_e32 2, undef %0:vgpr_32, implicit $exec, implicit $mode - %3:vgpr_32 = nofpexcept V_LDEXP_F16_e32 3, undef %0:vgpr_32, implicit $exec, implicit $mode - S_NOP 0, implicit %1 - S_NOP 0, implicit %2 - S_NOP 0, implicit %3 - S_ENDPGM 0 -... ---- -name: test_no_remat_v_lshrrev_b16_e32 -tracksRegLiveness: true -machineFunctionInfo: - stackPtrOffsetReg: $sgpr32 -body: | - bb.0: - ; GCN-LABEL: name: test_no_remat_v_lshrrev_b16_e32 - ; GCN: renamable $vgpr0 = V_LSHRREV_B16_e32 1, undef $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 2, undef $vgpr0, implicit $exec - ; GCN-NEXT: renamable $vgpr0 = V_LSHRREV_B16_e32 3, undef $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_ENDPGM 0 - %1:vgpr_32 = V_LSHRREV_B16_e32 1, undef %0:vgpr_32, implicit $exec - %2:vgpr_32 = V_LSHRREV_B16_e32 2, undef %0:vgpr_32, implicit $exec - %3:vgpr_32 = V_LSHRREV_B16_e32 3, undef %0:vgpr_32, implicit $exec - S_NOP 0, implicit %1 - S_NOP 0, implicit %2 - S_NOP 0, implicit %3 - S_ENDPGM 0 -... ---- -name: test_no_remat_v_lshlrev_b16_e32 -tracksRegLiveness: true -machineFunctionInfo: - stackPtrOffsetReg: $sgpr32 -body: | - bb.0: - ; GCN-LABEL: name: test_no_remat_v_lshlrev_b16_e32 - ; GCN: renamable $vgpr0 = V_LSHLREV_B16_e32 1, undef $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 2, undef $vgpr0, implicit $exec - ; GCN-NEXT: renamable $vgpr0 = V_LSHLREV_B16_e32 3, undef $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_ENDPGM 0 - %1:vgpr_32 = V_LSHLREV_B16_e32 1, undef %0:vgpr_32, implicit $exec - %2:vgpr_32 = V_LSHLREV_B16_e32 2, undef %0:vgpr_32, implicit $exec - %3:vgpr_32 = V_LSHLREV_B16_e32 3, undef %0:vgpr_32, implicit $exec - S_NOP 0, implicit %1 - S_NOP 0, implicit %2 - S_NOP 0, implicit %3 - S_ENDPGM 0 -... ---- -name: test_no_remat_v_ashrrev_i16_e32 -tracksRegLiveness: true -machineFunctionInfo: - stackPtrOffsetReg: $sgpr32 -body: | - bb.0: - ; GCN-LABEL: name: test_no_remat_v_ashrrev_i16_e32 - ; GCN: renamable $vgpr0 = V_ASHRREV_I16_e32 1, undef $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.1, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 2, undef $vgpr0, implicit $exec - ; GCN-NEXT: renamable $vgpr0 = V_ASHRREV_I16_e32 3, undef $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr0, %stack.0, $sgpr32, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr0 = SI_SPILL_V32_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) - ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr0 - ; GCN-NEXT: S_ENDPGM 0 - %1:vgpr_32 = V_ASHRREV_I16_e32 1, undef %0:vgpr_32, implicit $exec - %2:vgpr_32 = V_ASHRREV_I16_e32 2, undef %0:vgpr_32, implicit $exec - %3:vgpr_32 = V_ASHRREV_I16_e32 3, undef %0:vgpr_32, implicit $exec - S_NOP 0, implicit %1 - S_NOP 0, implicit %2 - S_NOP 0, implicit %3 - S_ENDPGM 0 -... ---- name: test_remat_v_xnor_b32_e32 tracksRegLiveness: true body: | @@ -3754,16 +3646,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3785,16 +3671,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHLREV_B16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3817,16 +3697,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3848,16 +3722,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_LSHRREV_B16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3880,16 +3748,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3911,16 +3773,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ASHRREV_I16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3943,16 +3799,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -3975,16 +3825,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 1, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 2, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 3, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 2, $vgpr0, 0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_ADD_U16_e64 3, $vgpr0, 0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4007,16 +3851,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4039,16 +3877,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 1, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 2, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 3, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 2, $vgpr0, 0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUB_U16_e64 3, $vgpr0, 0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4071,16 +3903,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4103,16 +3929,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 1, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 2, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 3, $vgpr0, 0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 2, $vgpr0, 0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_SUBREV_U16_e64 3, $vgpr0, 0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4135,16 +3955,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4167,16 +3981,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_U16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4199,16 +4007,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4231,16 +4033,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_U16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4263,16 +4059,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4295,16 +4085,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MIN_I16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4327,16 +4111,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4359,16 +4137,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MAX_I16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4391,16 +4163,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e32 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4423,16 +4189,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 1, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 2, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 3, $vgpr0, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 2, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = V_MUL_LO_U16_e64 3, $vgpr0, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4455,16 +4215,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 2, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 3, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 2, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e32 3, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4487,16 +4241,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_ADD_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4519,16 +4267,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 2, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 3, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 2, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e32 3, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4551,16 +4293,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUB_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4583,16 +4319,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 2, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 3, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 2, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e32 3, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4615,16 +4345,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_SUBREV_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4647,16 +4371,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 2, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 3, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 2, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e32 3, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4679,16 +4397,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MUL_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4711,16 +4423,10 @@ ; GCN: liveins: $vgpr0, $vgpr1 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e32 1, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4743,16 +4449,10 @@ ; GCN: liveins: $vgpr0, $vgpr1 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_LDEXP_F16_e64 0, $vgpr0, 0, 1, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4775,16 +4475,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 2, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 3, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 2, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e32 3, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4807,16 +4501,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MIN_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4839,16 +4527,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 1, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 2, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 3, $vgpr0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 2, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e32 3, $vgpr0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4871,16 +4553,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 1, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 2, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MAX_F16_e64 0, 3, 0, $vgpr0, 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4903,16 +4579,10 @@ ; GCN: liveins: $vgpr0 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 1, $vgpr0, 1, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 2, $vgpr0, 2, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 3, $vgpr0, 3, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 2, $vgpr0, 2, implicit $exec, implicit $mode ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADAK_F16 3, $vgpr0, 3, implicit $exec, implicit $mode ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4935,16 +4605,10 @@ ; GCN: liveins: $vgpr0, $vgpr1 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 1, 1, $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 2, 2, $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 3, 3, $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 2, 2, $vgpr0, implicit $exec, implicit $mode ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_MADMK_F16 3, 3, $vgpr0, implicit $exec, implicit $mode ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0 @@ -4967,16 +4631,10 @@ ; GCN: liveins: $vgpr0, $vgpr1 ; GCN-NEXT: {{ $}} ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 1, 1, $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.1, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.1, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 2, 2, $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.0, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.0, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 3, 3, $vgpr0, implicit $exec, implicit $mode - ; GCN-NEXT: SI_SPILL_V32_SAVE killed $vgpr1, %stack.2, $sp_reg, 0, implicit $exec :: (store (s32) into %stack.2, addrspace 5) - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.1, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.1, addrspace 5) ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.0, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.0, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 2, 2, $vgpr0, implicit $exec, implicit $mode ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 - ; GCN-NEXT: renamable $vgpr1 = SI_SPILL_V32_RESTORE %stack.2, $sp_reg, 0, implicit $exec :: (load (s32) from %stack.2, addrspace 5) + ; GCN-NEXT: renamable $vgpr1 = nofpexcept V_FMAMK_F16 3, 3, $vgpr0, implicit $exec, implicit $mode ; GCN-NEXT: S_NOP 0, implicit killed renamable $vgpr1 ; GCN-NEXT: S_ENDPGM 0, implicit killed renamable $vgpr0 %0:vgpr_32 = COPY $vgpr0