[llvm] r356576 - [AMDGPU][MC] Corrected checks for DS offset0 range
Dmitry Preobrazhensky via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 20 10:13:58 PDT 2019
Author: dpreobra
Date: Wed Mar 20 10:13:58 2019
New Revision: 356576
URL: http://llvm.org/viewvc/llvm-project?rev=356576&view=rev
Log:
[AMDGPU][MC] Corrected checks for DS offset0 range
See bug 40889: https://bugs.llvm.org/show_bug.cgi?id=40889
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D59313
Modified:
llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
llvm/trunk/test/MC/AMDGPU/ds-err.s
Modified: llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp?rev=356576&r1=356575&r2=356576&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp Wed Mar 20 10:13:58 2019
@@ -306,7 +306,7 @@ public:
bool isIdxen() const { return isImmTy(ImmTyIdxen); }
bool isAddr64() const { return isImmTy(ImmTyAddr64); }
bool isOffset() const { return isImmTy(ImmTyOffset) && isUInt<16>(getImm()); }
- bool isOffset0() const { return isImmTy(ImmTyOffset0) && isUInt<16>(getImm()); }
+ bool isOffset0() const { return isImmTy(ImmTyOffset0) && isUInt<8>(getImm()); }
bool isOffset1() const { return isImmTy(ImmTyOffset1) && isUInt<8>(getImm()); }
bool isOffsetU12() const { return (isImmTy(ImmTyOffset) || isImmTy(ImmTyInstOffset)) && isUInt<12>(getImm()); }
Modified: llvm/trunk/test/MC/AMDGPU/ds-err.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/ds-err.s?rev=356576&r1=356575&r2=356576&view=diff
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/ds-err.s (original)
+++ llvm/trunk/test/MC/AMDGPU/ds-err.s Wed Mar 20 10:13:58 2019
@@ -5,6 +5,10 @@
// CHECK: error: invalid operand for instruction
ds_add_u32 v2, v4 offset:1000000000
+// offset too big
+// CHECK: error: invalid operand for instruction
+ds_add_u32 v2, v4 offset:0x10000
+
// offset0 twice
// CHECK: error: invalid operand for instruction
ds_write2_b32 v2, v4, v6 offset0:4 offset0:8
@@ -17,10 +21,18 @@ ds_write2_b32 v2, v4, v6 offset1:4 offse
// CHECK: invalid operand for instruction
ds_write2_b32 v2, v4, v6 offset0:1000000000
+// offset0 too big
+// CHECK: invalid operand for instruction
+ds_write2_b32 v2, v4, v6 offset0:0x100
+
// offset1 too big
// CHECK: invalid operand for instruction
ds_write2_b32 v2, v4, v6 offset1:1000000000
+// offset1 too big
+// CHECK: invalid operand for instruction
+ds_write2_b32 v2, v4, v6 offset1:0x100
+
//===----------------------------------------------------------------------===//
// swizzle
//===----------------------------------------------------------------------===//
More information about the llvm-commits
mailing list