From 7fe0630fcb6d52cb63463669c47f4846f7d9ccbf Mon Sep 17 00:00:00 2001 From: Tsukasa OI Date: Wed, 11 May 2022 00:25:43 +0800 Subject: [PATCH] [RISCV] 'K'-extension ordering This commit adds 'K' to supported extension list (before 'J'). It makes "Zk*" extensions correctly placed before "Zv*" extensions. Multi-letter "Z*" extensions are first ordered with the most closely related alphabetical extension category ("IMAF..."). This is represented in LLVM as `AllStdExts' variable in `llvm/lib/Support/RISCVISAInfo.cpp'. However, it did not have 'k' making "Zk*" extensions not correctly ordered. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D124340 --- llvm/lib/Support/RISCVISAInfo.cpp | 2 +- llvm/test/MC/RISCV/attribute-arch.s | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Support/RISCVISAInfo.cpp b/llvm/lib/Support/RISCVISAInfo.cpp index 20dd08f..96b2cd98 100644 --- a/llvm/lib/Support/RISCVISAInfo.cpp +++ b/llvm/lib/Support/RISCVISAInfo.cpp @@ -37,7 +37,7 @@ struct RISCVSupportedExtension { } // end anonymous namespace -static constexpr StringLiteral AllStdExts = "mafdqlcbjtpvn"; +static constexpr StringLiteral AllStdExts = "mafdqlcbkjtpvn"; static const RISCVSupportedExtension SupportedExtensions[] = { {"i", RISCVExtensionVersion{2, 0}}, diff --git a/llvm/test/MC/RISCV/attribute-arch.s b/llvm/test/MC/RISCV/attribute-arch.s index 88f1552..2bd315d 100644 --- a/llvm/test/MC/RISCV/attribute-arch.s +++ b/llvm/test/MC/RISCV/attribute-arch.s @@ -175,3 +175,6 @@ .attribute arch, "rv32i_zk1p0" # CHECK: attribute 5, "rv32i2p0_zbkb1p0_zbkc1p0_zbkx1p0_zk1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0_zkr1p0_zkt1p0" + +.attribute arch, "rv32if_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0" +# CHECK: attribute 5, "rv32i2p0_f2p0_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0" -- 2.7.4