Index: lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp =================================================================== --- lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -2554,6 +2554,8 @@ Int = 0x142; } else if (Int == 31) { Int = 0x143; + } else { + return MatchOperand_ParseFail; } } else { return MatchOperand_ParseFail; Index: test/MC/AMDGPU/regression/bug28538.s =================================================================== --- /dev/null +++ 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