Skip to content

Commit 117bda5

Browse files
committed
[RISCV] Add unittests for MinVLen/MaxELen/MaxElenFp for ParseArchString. NFC
We had tests for ParseNormalizedArchString, but not ParseArchString. The ParseNormalizedArchString test was not checking MaxElenFp.
1 parent 6243395 commit 117bda5

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

llvm/unittests/TargetParser/RISCVISAInfoTest.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ TEST(ParseNormalizedArchString, UpdatesFLenMinVLenMaxELen) {
139139
EXPECT_EQ(Info.getFLen(), 64U);
140140
EXPECT_EQ(Info.getMinVLen(), 64U);
141141
EXPECT_EQ(Info.getMaxELen(), 64U);
142+
EXPECT_EQ(Info.getMaxELenFp(), 64U);
142143
}
143144

144145
TEST(ParseArchString, RejectsInvalidChars) {
@@ -181,6 +182,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
181182
EXPECT_TRUE(ExtsRV32I.at("i") == (RISCVISAUtils::ExtensionVersion{2, 1}));
182183
EXPECT_EQ(InfoRV32I.getXLen(), 32U);
183184
EXPECT_EQ(InfoRV32I.getFLen(), 0U);
185+
EXPECT_EQ(InfoRV32I.getMinVLen(), 0U);
186+
EXPECT_EQ(InfoRV32I.getMaxELen(), 0U);
187+
EXPECT_EQ(InfoRV32I.getMaxELenFp(), 0U);
184188

185189
auto MaybeRV32E = RISCVISAInfo::parseArchString("rv32e", true);
186190
ASSERT_THAT_EXPECTED(MaybeRV32E, Succeeded());
@@ -190,6 +194,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
190194
EXPECT_TRUE(ExtsRV32E.at("e") == (RISCVISAUtils::ExtensionVersion{2, 0}));
191195
EXPECT_EQ(InfoRV32E.getXLen(), 32U);
192196
EXPECT_EQ(InfoRV32E.getFLen(), 0U);
197+
EXPECT_EQ(InfoRV32E.getMinVLen(), 0U);
198+
EXPECT_EQ(InfoRV32E.getMaxELen(), 0U);
199+
EXPECT_EQ(InfoRV32E.getMaxELenFp(), 0U);
193200

194201
auto MaybeRV32G = RISCVISAInfo::parseArchString("rv32g", true);
195202
ASSERT_THAT_EXPECTED(MaybeRV32G, Succeeded());
@@ -206,6 +213,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
206213
(RISCVISAUtils::ExtensionVersion{2, 0}));
207214
EXPECT_EQ(InfoRV32G.getXLen(), 32U);
208215
EXPECT_EQ(InfoRV32G.getFLen(), 64U);
216+
EXPECT_EQ(InfoRV32G.getMinVLen(), 0U);
217+
EXPECT_EQ(InfoRV32G.getMaxELen(), 0U);
218+
EXPECT_EQ(InfoRV32G.getMaxELenFp(), 0U);
209219

210220
auto MaybeRV64I = RISCVISAInfo::parseArchString("rv64i", true);
211221
ASSERT_THAT_EXPECTED(MaybeRV64I, Succeeded());
@@ -215,6 +225,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
215225
EXPECT_TRUE(ExtsRV64I.at("i") == (RISCVISAUtils::ExtensionVersion{2, 1}));
216226
EXPECT_EQ(InfoRV64I.getXLen(), 64U);
217227
EXPECT_EQ(InfoRV64I.getFLen(), 0U);
228+
EXPECT_EQ(InfoRV64I.getMinVLen(), 0U);
229+
EXPECT_EQ(InfoRV64I.getMaxELen(), 0U);
230+
EXPECT_EQ(InfoRV64I.getMaxELenFp(), 0U);
218231

219232
auto MaybeRV64E = RISCVISAInfo::parseArchString("rv64e", true);
220233
ASSERT_THAT_EXPECTED(MaybeRV64E, Succeeded());
@@ -224,6 +237,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
224237
EXPECT_TRUE(ExtsRV64E.at("e") == (RISCVISAUtils::ExtensionVersion{2, 0}));
225238
EXPECT_EQ(InfoRV64E.getXLen(), 64U);
226239
EXPECT_EQ(InfoRV64E.getFLen(), 0U);
240+
EXPECT_EQ(InfoRV64E.getMinVLen(), 0U);
241+
EXPECT_EQ(InfoRV64E.getMaxELen(), 0U);
242+
EXPECT_EQ(InfoRV64E.getMaxELenFp(), 0U);
227243

228244
auto MaybeRV64G = RISCVISAInfo::parseArchString("rv64g", true);
229245
ASSERT_THAT_EXPECTED(MaybeRV64G, Succeeded());
@@ -240,6 +256,38 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
240256
(RISCVISAUtils::ExtensionVersion{2, 0}));
241257
EXPECT_EQ(InfoRV64G.getXLen(), 64U);
242258
EXPECT_EQ(InfoRV64G.getFLen(), 64U);
259+
EXPECT_EQ(InfoRV64G.getMinVLen(), 0U);
260+
EXPECT_EQ(InfoRV64G.getMaxELen(), 0U);
261+
EXPECT_EQ(InfoRV64G.getMaxELenFp(), 0U);
262+
263+
auto MaybeRV64GCV = RISCVISAInfo::parseArchString("rv64gcv", true);
264+
ASSERT_THAT_EXPECTED(MaybeRV64GCV, Succeeded());
265+
RISCVISAInfo &InfoRV64GCV = **MaybeRV64GCV;
266+
const auto &ExtsRV64GCV = InfoRV64GCV.getExtensions();
267+
EXPECT_EQ(ExtsRV64GCV.size(), 17UL);
268+
EXPECT_TRUE(ExtsRV64GCV.at("i") == (RISCVISAUtils::ExtensionVersion{2, 1}));
269+
EXPECT_TRUE(ExtsRV64GCV.at("m") == (RISCVISAUtils::ExtensionVersion{2, 0}));
270+
EXPECT_TRUE(ExtsRV64GCV.at("a") == (RISCVISAUtils::ExtensionVersion{2, 1}));
271+
EXPECT_TRUE(ExtsRV64GCV.at("f") == (RISCVISAUtils::ExtensionVersion{2, 2}));
272+
EXPECT_TRUE(ExtsRV64GCV.at("d") == (RISCVISAUtils::ExtensionVersion{2, 2}));
273+
EXPECT_TRUE(ExtsRV64GCV.at("c") == (RISCVISAUtils::ExtensionVersion{2, 0}));
274+
EXPECT_TRUE(ExtsRV64GCV.at("zicsr") == (RISCVISAUtils::ExtensionVersion{2, 0}));
275+
EXPECT_TRUE(ExtsRV64GCV.at("zifencei") ==
276+
(RISCVISAUtils::ExtensionVersion{2, 0}));
277+
EXPECT_TRUE(ExtsRV64GCV.at("v") == (RISCVISAUtils::ExtensionVersion{1, 0}));
278+
EXPECT_TRUE(ExtsRV64GCV.at("zve32x") == (RISCVISAUtils::ExtensionVersion{1, 0}));
279+
EXPECT_TRUE(ExtsRV64GCV.at("zve32f") == (RISCVISAUtils::ExtensionVersion{1, 0}));
280+
EXPECT_TRUE(ExtsRV64GCV.at("zve64x") == (RISCVISAUtils::ExtensionVersion{1, 0}));
281+
EXPECT_TRUE(ExtsRV64GCV.at("zve64f") == (RISCVISAUtils::ExtensionVersion{1, 0}));
282+
EXPECT_TRUE(ExtsRV64GCV.at("zve64d") == (RISCVISAUtils::ExtensionVersion{1, 0}));
283+
EXPECT_TRUE(ExtsRV64GCV.at("zvl32b") == (RISCVISAUtils::ExtensionVersion{1, 0}));
284+
EXPECT_TRUE(ExtsRV64GCV.at("zvl64b") == (RISCVISAUtils::ExtensionVersion{1, 0}));
285+
EXPECT_TRUE(ExtsRV64GCV.at("zvl128b") == (RISCVISAUtils::ExtensionVersion{1, 0}));
286+
EXPECT_EQ(InfoRV64GCV.getXLen(), 64U);
287+
EXPECT_EQ(InfoRV64GCV.getFLen(), 64U);
288+
EXPECT_EQ(InfoRV64GCV.getMinVLen(), 128U);
289+
EXPECT_EQ(InfoRV64GCV.getMaxELen(), 64U);
290+
EXPECT_EQ(InfoRV64GCV.getMaxELenFp(), 64U);
243291
}
244292

245293
TEST(ParseArchString, RejectsUnrecognizedExtensionNamesByDefault) {

0 commit comments

Comments
 (0)