@@ -139,6 +139,7 @@ TEST(ParseNormalizedArchString, UpdatesFLenMinVLenMaxELen) {
139
139
EXPECT_EQ (Info.getFLen (), 64U );
140
140
EXPECT_EQ (Info.getMinVLen (), 64U );
141
141
EXPECT_EQ (Info.getMaxELen (), 64U );
142
+ EXPECT_EQ (Info.getMaxELenFp (), 64U );
142
143
}
143
144
144
145
TEST (ParseArchString, RejectsInvalidChars) {
@@ -181,6 +182,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
181
182
EXPECT_TRUE (ExtsRV32I.at (" i" ) == (RISCVISAUtils::ExtensionVersion{2 , 1 }));
182
183
EXPECT_EQ (InfoRV32I.getXLen (), 32U );
183
184
EXPECT_EQ (InfoRV32I.getFLen (), 0U );
185
+ EXPECT_EQ (InfoRV32I.getMinVLen (), 0U );
186
+ EXPECT_EQ (InfoRV32I.getMaxELen (), 0U );
187
+ EXPECT_EQ (InfoRV32I.getMaxELenFp (), 0U );
184
188
185
189
auto MaybeRV32E = RISCVISAInfo::parseArchString (" rv32e" , true );
186
190
ASSERT_THAT_EXPECTED (MaybeRV32E, Succeeded ());
@@ -190,6 +194,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
190
194
EXPECT_TRUE (ExtsRV32E.at (" e" ) == (RISCVISAUtils::ExtensionVersion{2 , 0 }));
191
195
EXPECT_EQ (InfoRV32E.getXLen (), 32U );
192
196
EXPECT_EQ (InfoRV32E.getFLen (), 0U );
197
+ EXPECT_EQ (InfoRV32E.getMinVLen (), 0U );
198
+ EXPECT_EQ (InfoRV32E.getMaxELen (), 0U );
199
+ EXPECT_EQ (InfoRV32E.getMaxELenFp (), 0U );
193
200
194
201
auto MaybeRV32G = RISCVISAInfo::parseArchString (" rv32g" , true );
195
202
ASSERT_THAT_EXPECTED (MaybeRV32G, Succeeded ());
@@ -206,6 +213,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
206
213
(RISCVISAUtils::ExtensionVersion{2 , 0 }));
207
214
EXPECT_EQ (InfoRV32G.getXLen (), 32U );
208
215
EXPECT_EQ (InfoRV32G.getFLen (), 64U );
216
+ EXPECT_EQ (InfoRV32G.getMinVLen (), 0U );
217
+ EXPECT_EQ (InfoRV32G.getMaxELen (), 0U );
218
+ EXPECT_EQ (InfoRV32G.getMaxELenFp (), 0U );
209
219
210
220
auto MaybeRV64I = RISCVISAInfo::parseArchString (" rv64i" , true );
211
221
ASSERT_THAT_EXPECTED (MaybeRV64I, Succeeded ());
@@ -215,6 +225,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
215
225
EXPECT_TRUE (ExtsRV64I.at (" i" ) == (RISCVISAUtils::ExtensionVersion{2 , 1 }));
216
226
EXPECT_EQ (InfoRV64I.getXLen (), 64U );
217
227
EXPECT_EQ (InfoRV64I.getFLen (), 0U );
228
+ EXPECT_EQ (InfoRV64I.getMinVLen (), 0U );
229
+ EXPECT_EQ (InfoRV64I.getMaxELen (), 0U );
230
+ EXPECT_EQ (InfoRV64I.getMaxELenFp (), 0U );
218
231
219
232
auto MaybeRV64E = RISCVISAInfo::parseArchString (" rv64e" , true );
220
233
ASSERT_THAT_EXPECTED (MaybeRV64E, Succeeded ());
@@ -224,6 +237,9 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
224
237
EXPECT_TRUE (ExtsRV64E.at (" e" ) == (RISCVISAUtils::ExtensionVersion{2 , 0 }));
225
238
EXPECT_EQ (InfoRV64E.getXLen (), 64U );
226
239
EXPECT_EQ (InfoRV64E.getFLen (), 0U );
240
+ EXPECT_EQ (InfoRV64E.getMinVLen (), 0U );
241
+ EXPECT_EQ (InfoRV64E.getMaxELen (), 0U );
242
+ EXPECT_EQ (InfoRV64E.getMaxELenFp (), 0U );
227
243
228
244
auto MaybeRV64G = RISCVISAInfo::parseArchString (" rv64g" , true );
229
245
ASSERT_THAT_EXPECTED (MaybeRV64G, Succeeded ());
@@ -240,6 +256,38 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
240
256
(RISCVISAUtils::ExtensionVersion{2 , 0 }));
241
257
EXPECT_EQ (InfoRV64G.getXLen (), 64U );
242
258
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 );
243
291
}
244
292
245
293
TEST (ParseArchString, RejectsUnrecognizedExtensionNamesByDefault) {
0 commit comments