forked from OSchip/llvm-project
[AMDGPU] Fix image opcodes GlobalISel on gfx90a.
- Correct flavor of an instruction was not selected. - GFX90A does not support TFE. Differential Revision: https://reviews.llvm.org/D126312
This commit is contained in:
parent
d0d985c196
commit
dec1283279
|
@ -1654,7 +1654,18 @@ bool AMDGPUInstructionSelector::selectImageIntrinsic(
|
|||
: AMDGPU::MIMGEncGfx10Default,
|
||||
NumVDataDwords, NumVAddrDwords);
|
||||
} else {
|
||||
if (STI.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS)
|
||||
if (Subtarget->hasGFX90AInsts()) {
|
||||
Opcode = AMDGPU::getMIMGOpcode(IntrOpcode, AMDGPU::MIMGEncGfx90a,
|
||||
NumVDataDwords, NumVAddrDwords);
|
||||
if (Opcode == -1) {
|
||||
LLVM_DEBUG(
|
||||
dbgs()
|
||||
<< "requested image instruction is not supported on this GPU\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (Opcode == -1 &&
|
||||
STI.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS)
|
||||
Opcode = AMDGPU::getMIMGOpcode(IntrOpcode, AMDGPU::MIMGEncGfx8,
|
||||
NumVDataDwords, NumVAddrDwords);
|
||||
if (Opcode == -1)
|
||||
|
@ -1712,7 +1723,11 @@ bool AMDGPUInstructionSelector::selectImageIntrinsic(
|
|||
if (IsGFX10Plus)
|
||||
MIB.addImm(IsA16 ? -1 : 0);
|
||||
|
||||
MIB.addImm(TFE); // tfe
|
||||
if (!Subtarget->hasGFX90AInsts())
|
||||
MIB.addImm(TFE); // tfe
|
||||
else if (TFE)
|
||||
report_fatal_error("TFE is not supported on this GPU");
|
||||
|
||||
MIB.addImm(LWE); // lwe
|
||||
if (!IsGFX10Plus)
|
||||
MIB.addImm(DimInfo->DA ? -1 : 0);
|
||||
|
|
|
@ -2,11 +2,9 @@
|
|||
; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -o - %s | FileCheck -check-prefix=GFX6 %s
|
||||
; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -o - %s | FileCheck -check-prefix=GFX8 %s
|
||||
; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -o - %s | FileCheck -check-prefix=GFX900 %s
|
||||
; XUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx90a -o - %s | FileCheck -check-prefix=GFX90A %s
|
||||
; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx90a -o - %s | FileCheck -check-prefix=GFX90A %s
|
||||
; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -o - %s | FileCheck -check-prefix=GFX10 %s
|
||||
|
||||
; FIXME: global isel does not select _gfx90a flavor of image instructions.
|
||||
|
||||
define amdgpu_ps float @atomic_swap_i32_1d(<8 x i32> inreg %rsrc, i32 %data, i32 %s) {
|
||||
; GFX6-LABEL: atomic_swap_i32_1d:
|
||||
; GFX6: ; %bb.0: ; %main_body
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
; RUN: llc -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN %s
|
||||
; XUN: llc -global-isel -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN %s
|
||||
|
||||
; FIXME: global isel does not select _gfx90a flavor of image instructions.
|
||||
; RUN: llc -global-isel -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN %s
|
||||
|
||||
; GCN-LABEL: {{^}}load_1d:
|
||||
; GCN: image_load v[0:3], v0, s[0:7] dmask:0xf unorm{{$}}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
; RUN: llc -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX90A,SDAG %s
|
||||
; XUN: llc -global-isel -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX90A,GISEL %s
|
||||
|
||||
; FIXME: global isel does not select _gfx90a flavor of image instructions.
|
||||
; RUN: llc -global-isel -march=amdgcn -mcpu=gfx90a -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX90A,GISEL %s
|
||||
|
||||
; GFX90A-LABEL: {{^}}sample_1d:
|
||||
; GFX90A-NOT: s_wqm_b64
|
||||
|
|
Loading…
Reference in New Issue