summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp2
-rw-r--r--llvm/test/MC/AMDGPU/regression/bug28538.s12
2 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
index efa57c87d09..efcf1b23ada 100644
--- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
@@ -2554,6 +2554,8 @@ AMDGPUAsmParser::parseDPPCtrl(OperandVector &Operands) {
Int = 0x142;
} else if (Int == 31) {
Int = 0x143;
+ } else {
+ return MatchOperand_ParseFail;
}
} else {
return MatchOperand_ParseFail;
diff --git a/llvm/test/MC/AMDGPU/regression/bug28538.s b/llvm/test/MC/AMDGPU/regression/bug28538.s
new file mode 100644
index 00000000000..82b2d27331f
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/regression/bug28538.s
@@ -0,0 +1,12 @@
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOCIVI --check-prefix=NOVI
+// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
+
+// NOSICI: error:
+// NOVI: error: failed parsing operand
+v_mov_b32 v0, v0 row_bcast:0
+
+// NOSICI: error:
+// NOVI: error: failed parsing operand
+v_mov_b32 v0, v0 row_bcast:13
OpenPOWER on IntegriCloud