summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/Disassembler
diff options
context:
space:
mode:
authorSam Kolton <Sam.Kolton@amd.com>2017-06-27 15:02:23 +0000
committerSam Kolton <Sam.Kolton@amd.com>2017-06-27 15:02:23 +0000
commita179d25b99fec680d2430a07b6a35254c548e298 (patch)
treed8aa864ec684eb692a0d520c8231df45f20047fb /llvm/lib/Target/AMDGPU/Disassembler
parent0bd79f416a2416a88803cceb1a59c218bb7639d1 (diff)
downloadbcm5719-llvm-a179d25b99fec680d2430a07b6a35254c548e298.tar.gz
bcm5719-llvm-a179d25b99fec680d2430a07b6a35254c548e298.zip
[AMDGPU] SDWA: several fixes for V_CVT and VOPC instructions
Summary: 1. Instruction V_CVT_U32_F32 allow omod operand (see SIInstrInfo.td:1435). In fact this operand shouldn't be allowed here. This fix checks if SDWA pseudo instruction has OMod operand and then copy it. 2. There were several problems with support of VOPC instructions in SDWA peephole pass. Reviewers: tstellar, arsenm, vpykhtin, airlied, kzhuravl Subscribers: wdng, nhaehnle, yaxunl, dstuttard, tpr, sarnex, t-tye Differential Revision: https://reviews.llvm.org/D34626 llvm-svn: 306413
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Disassembler')
-rw-r--r--llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
index 04308fb3aaf..f26e49295e6 100644
--- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
@@ -626,7 +626,9 @@ MCOperand AMDGPUDisassembler::decodeSDWASrc(const OpWidthTy Width,
using namespace AMDGPU::SDWA;
if (STI.getFeatureBits()[AMDGPU::FeatureGFX9]) {
- if (SDWA9EncValues::SRC_VGPR_MIN <= Val &&
+ // XXX: static_cast<int> is needed to avoid stupid warning:
+ // compare with unsigned is always true
+ if (SDWA9EncValues::SRC_VGPR_MIN <= static_cast<int>(Val) &&
Val <= SDWA9EncValues::SRC_VGPR_MAX) {
return createRegOperand(getVgprClassId(Width),
Val - SDWA9EncValues::SRC_VGPR_MIN);
OpenPOWER on IntegriCloud