diff --git a/clang/lib/Basic/Targets/RISCV.cpp b/clang/lib/Basic/Targets/RISCV.cpp --- a/clang/lib/Basic/Targets/RISCV.cpp +++ b/clang/lib/Basic/Targets/RISCV.cpp @@ -152,10 +152,9 @@ for (auto &Extension : ISAInfo->getExtensions()) { auto ExtName = Extension.first; auto ExtInfo = Extension.second; - unsigned Version = - (ExtInfo.MajorVersion * 1000000) + (ExtInfo.MinorVersion * 1000); - Builder.defineMacro(Twine("__riscv_", ExtName), Twine(Version)); + Builder.defineMacro(Twine("__riscv_", ExtName), + Twine(ExtInfo.getVersionValue())); } if (ISAInfo->hasExtension("m") || ISAInfo->hasExtension("zmmul")) @@ -193,8 +192,9 @@ if (ISAInfo->hasExtension("zve32x")) { Builder.defineMacro("__riscv_vector"); // Currently we support the v0.10 RISC-V V intrinsics. - unsigned Version = (0 * 1000000) + (10 * 1000); - Builder.defineMacro("__riscv_v_intrinsic", Twine(Version)); + Builder.defineMacro( + "__riscv_v_intrinsic", + Twine(llvm::RISCVExtensionInfo::getVersionValue(0, 10))); } } diff --git a/llvm/include/llvm/Support/RISCVISAInfo.h b/llvm/include/llvm/Support/RISCVISAInfo.h --- a/llvm/include/llvm/Support/RISCVISAInfo.h +++ b/llvm/include/llvm/Support/RISCVISAInfo.h @@ -21,6 +21,13 @@ std::string ExtName; unsigned MajorVersion; unsigned MinorVersion; + unsigned getVersionValue() { + return MajorVersion * 1000000 + MinorVersion * 1000; + } + static unsigned getVersionValue(unsigned MajorVersion, + unsigned MinorVersion) { + return MajorVersion * 1000000 + MinorVersion * 1000; + } }; class RISCVISAInfo {