diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp --- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp +++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp @@ -80,16 +80,7 @@ if (CPU.empty() || CPU == "generic") CPU = TT.isArch64Bit() ? "generic-rv64" : "generic-rv32"; - MCSubtargetInfo *STI = - createRISCVMCSubtargetInfoImpl(TT, CPU, /*TuneCPU*/ CPU, FS); - - // Check if Feature string is valid - auto ISAInfo = - RISCVFeatures::parseFeatureBits(TT.isArch64Bit(), STI->getFeatureBits()); - if (!ISAInfo) - report_fatal_error(ISAInfo.takeError()); - else - return STI; + return createRISCVMCSubtargetInfoImpl(TT, CPU, /*TuneCPU*/ CPU, FS); } static MCInstPrinter *createRISCVMCInstPrinter(const Triple &T, diff --git a/llvm/test/CodeGen/RISCV/mattr-invalid-combination.ll b/llvm/test/CodeGen/RISCV/mattr-invalid-combination.ll --- a/llvm/test/CodeGen/RISCV/mattr-invalid-combination.ll +++ b/llvm/test/CodeGen/RISCV/mattr-invalid-combination.ll @@ -2,4 +2,4 @@ ; RUN: not --crash llc -mtriple=riscv64 -mattr=+e < %s 2>&1 \ ; RUN: | FileCheck -check-prefix=RV64E %s -; RV64E: LLVM ERROR: standard user-level extension 'e' requires 'rv32' +; RV64E: LLVM ERROR: RV32E can't be enabled for an RV64 target diff --git a/llvm/test/MC/RISCV/mattr-invalid-combination.s b/llvm/test/MC/RISCV/mattr-invalid-combination.s --- a/llvm/test/MC/RISCV/mattr-invalid-combination.s +++ b/llvm/test/MC/RISCV/mattr-invalid-combination.s @@ -1,4 +1,4 @@ # RUN: not --crash llvm-mc -triple riscv64 -mattr=+e < %s 2>&1 \ # RUN: | FileCheck %s -check-prefix=RV64E -# RV64E: LLVM ERROR: standard user-level extension 'e' requires 'rv32' +# RV64E: LLVM ERROR: RV32E can't be enabled for an RV64 target