Skip to content

Commit 89fc8bc

Browse files
committed
AMDGPU/GlobalISel: Fail on store to 32-bit address space
llvm-svn: 364766
1 parent 3b7668a commit 89fc8bc

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,12 @@ bool AMDGPUInstructionSelector::selectG_STORE(MachineInstr &I) const {
549549
MachineFunction *MF = BB->getParent();
550550
MachineRegisterInfo &MRI = MF->getRegInfo();
551551
DebugLoc DL = I.getDebugLoc();
552+
unsigned PtrSize = RBI.getSizeInBits(I.getOperand(1).getReg(), MRI, TRI);
553+
if (PtrSize != 64) {
554+
LLVM_DEBUG(dbgs() << "Unhandled address space\n");
555+
return false;
556+
}
557+
552558
unsigned StoreSize = RBI.getSizeInBits(I.getOperand(0).getReg(), MRI, TRI);
553559
unsigned Opcode;
554560

llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-implicit-def.mir

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ regBankSelected: true
119119
body: |
120120
bb.0:
121121
; GCN-LABEL: name: implicit_def_p3_vgpr
122-
; GCN: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF
123-
; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 4, implicit $exec
124-
; GCN: FLAT_STORE_DWORD [[DEF]], [[V_MOV_B32_e32_]], 0, 0, 0, 0, implicit $exec, implicit $flat_scr
122+
; GCN: [[DEF:%[0-9]+]]:vgpr(p3) = G_IMPLICIT_DEF
123+
; GCN: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 4
124+
; GCN: G_STORE [[C]](s32), [[DEF]](p3) :: (store 4, addrspace 1)
125125
%0:vgpr(p3) = G_IMPLICIT_DEF
126126
%1:vgpr(s32) = G_CONSTANT i32 4
127127
G_STORE %1, %0 :: (store 4, addrspace 1)

0 commit comments

Comments
 (0)