Skip to content

Commit c99756b

Browse files
committed
remove build vector change
1 parent 8f73cc4 commit c99756b

File tree

2 files changed

+5
-18
lines changed

2 files changed

+5
-18
lines changed

llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -782,22 +782,9 @@ bool AMDGPUInstructionSelector::selectG_BUILD_VECTOR(MachineInstr &MI) const {
782782
return true;
783783

784784
// TODO: This should probably be a combine somewhere
785+
// (build_vector $src0, undef) -> copy $src0
785786
MachineInstr *Src1Def = getDefIgnoringCopies(Src1, *MRI);
786787
if (Src1Def->getOpcode() == AMDGPU::G_IMPLICIT_DEF) {
787-
if (Subtarget->useRealTrue16Insts() && IsVector) {
788-
// (vecTy (DivergentBinFrag<build_vector> Ty:$src0, (Ty undef))),
789-
// -> (vecTy (INSERT_SUBREG (IMPLICIT_DEF), VGPR_16:$src0, lo16))
790-
Register Undef = MRI->createVirtualRegister(&AMDGPU::VGPR_32RegClass);
791-
BuildMI(*BB, &MI, DL, TII.get(AMDGPU::IMPLICIT_DEF), Undef);
792-
BuildMI(*BB, &MI, DL, TII.get(TargetOpcode::INSERT_SUBREG), Dst)
793-
.addReg(Undef)
794-
.addReg(Src0)
795-
.addImm(AMDGPU::lo16);
796-
MI.eraseFromParent();
797-
return RBI.constrainGenericRegister(Dst, AMDGPU::VGPR_32RegClass, *MRI) &&
798-
RBI.constrainGenericRegister(Src0, AMDGPU::VGPR_16RegClass, *MRI);
799-
}
800-
// (build_vector $src0, undef) -> copy $src0
801788
MI.setDesc(TII.get(AMDGPU::COPY));
802789
MI.removeOperand(2);
803790
const auto &RC =

llvm/test/CodeGen/AMDGPU/llvm.ldexp.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -790,13 +790,13 @@ define <3 x half> @test_ldexp_v3f16_v3i32(<3 x half> %a, <3 x i32> %b) {
790790
; GFX11-GISEL-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
791791
; GFX11-GISEL-TRUE16-NEXT: v_mov_b32_e32 v5, 0x7fff
792792
; GFX11-GISEL-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_3)
793+
; GFX11-GISEL-TRUE16-NEXT: v_med3_i32 v4, 0xffff8000, v4, v5
793794
; GFX11-GISEL-TRUE16-NEXT: v_med3_i32 v2, 0xffff8000, v2, v5
794795
; GFX11-GISEL-TRUE16-NEXT: v_med3_i32 v3, 0xffff8000, v3, v5
795-
; GFX11-GISEL-TRUE16-NEXT: v_med3_i32 v4, 0xffff8000, v4, v5
796-
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v0.l, v0.l, v2.l
796+
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v1.l, v1.l, v4.l
797797
; GFX11-GISEL-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_3)
798+
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v0.l, v0.l, v2.l
798799
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v0.h, v0.h, v3.l
799-
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v1.l, v1.l, v4.l
800800
; GFX11-GISEL-TRUE16-NEXT: s_setpc_b64 s[30:31]
801801
;
802802
; GFX11-GISEL-FAKE16-LABEL: test_ldexp_v3f16_v3i32:
@@ -918,9 +918,9 @@ define <3 x half> @test_ldexp_v3f16_v3i16(<3 x half> %a, <3 x i16> %b) {
918918
; GFX11-GISEL-TRUE16-LABEL: test_ldexp_v3f16_v3i16:
919919
; GFX11-GISEL-TRUE16: ; %bb.0:
920920
; GFX11-GISEL-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
921+
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v1.l, v1.l, v3.l
921922
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v0.l, v0.l, v2.l
922923
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v0.h, v0.h, v2.h
923-
; GFX11-GISEL-TRUE16-NEXT: v_ldexp_f16_e32 v1.l, v1.l, v3.l
924924
; GFX11-GISEL-TRUE16-NEXT: s_setpc_b64 s[30:31]
925925
;
926926
; GFX11-GISEL-FAKE16-LABEL: test_ldexp_v3f16_v3i16:

0 commit comments

Comments
 (0)