@@ -16,8 +16,7 @@ using namespace llvm;
16
16
17
17
bool operator ==(const llvm::RISCVExtensionInfo &A,
18
18
const llvm::RISCVExtensionInfo &B) {
19
- return A.ExtName == B.ExtName && A.MajorVersion == B.MajorVersion &&
20
- A.MinorVersion == B.MinorVersion ;
19
+ return A.MajorVersion == B.MajorVersion && A.MinorVersion == B.MinorVersion ;
21
20
}
22
21
23
22
TEST (ParseNormalizedArchString, RejectsUpperCase) {
@@ -50,32 +49,28 @@ TEST(ParseNormalizedArchString, AcceptsValidBaseISAsAndSetsXLen) {
50
49
ASSERT_THAT_EXPECTED (MaybeRV32I, Succeeded ());
51
50
RISCVISAInfo &InfoRV32I = **MaybeRV32I;
52
51
EXPECT_EQ (InfoRV32I.getExtensions ().size (), 1UL );
53
- EXPECT_TRUE (InfoRV32I.getExtensions ().at (" i" ) ==
54
- (RISCVExtensionInfo{" i" , 2 , 0 }));
52
+ EXPECT_TRUE (InfoRV32I.getExtensions ().at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
55
53
EXPECT_EQ (InfoRV32I.getXLen (), 32U );
56
54
57
55
auto MaybeRV32E = RISCVISAInfo::parseNormalizedArchString (" rv32e2p0" );
58
56
ASSERT_THAT_EXPECTED (MaybeRV32E, Succeeded ());
59
57
RISCVISAInfo &InfoRV32E = **MaybeRV32E;
60
58
EXPECT_EQ (InfoRV32E.getExtensions ().size (), 1UL );
61
- EXPECT_TRUE (InfoRV32E.getExtensions ().at (" e" ) ==
62
- (RISCVExtensionInfo{" e" , 2 , 0 }));
59
+ EXPECT_TRUE (InfoRV32E.getExtensions ().at (" e" ) == (RISCVExtensionInfo{2 , 0 }));
63
60
EXPECT_EQ (InfoRV32E.getXLen (), 32U );
64
61
65
62
auto MaybeRV64I = RISCVISAInfo::parseNormalizedArchString (" rv64i2p0" );
66
63
ASSERT_THAT_EXPECTED (MaybeRV64I, Succeeded ());
67
64
RISCVISAInfo &InfoRV64I = **MaybeRV64I;
68
65
EXPECT_EQ (InfoRV64I.getExtensions ().size (), 1UL );
69
- EXPECT_TRUE (InfoRV64I.getExtensions ().at (" i" ) ==
70
- (RISCVExtensionInfo{" i" , 2 , 0 }));
66
+ EXPECT_TRUE (InfoRV64I.getExtensions ().at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
71
67
EXPECT_EQ (InfoRV64I.getXLen (), 64U );
72
68
73
69
auto MaybeRV64E = RISCVISAInfo::parseNormalizedArchString (" rv64e2p0" );
74
70
ASSERT_THAT_EXPECTED (MaybeRV64E, Succeeded ());
75
71
RISCVISAInfo &InfoRV64E = **MaybeRV64E;
76
72
EXPECT_EQ (InfoRV64E.getExtensions ().size (), 1UL );
77
- EXPECT_TRUE (InfoRV64E.getExtensions ().at (" e" ) ==
78
- (RISCVExtensionInfo{" e" , 2 , 0 }));
73
+ EXPECT_TRUE (InfoRV64E.getExtensions ().at (" e" ) == (RISCVExtensionInfo{2 , 0 }));
79
74
EXPECT_EQ (InfoRV64E.getXLen (), 64U );
80
75
}
81
76
@@ -85,14 +80,12 @@ TEST(ParseNormalizedArchString, AcceptsArbitraryExtensionsAndVersions) {
85
80
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
86
81
RISCVISAInfo &Info = **MaybeISAInfo;
87
82
EXPECT_EQ (Info.getExtensions ().size (), 5UL );
88
- EXPECT_TRUE (Info.getExtensions ().at (" i" ) == (RISCVExtensionInfo{" i " , 5 , 1 }));
89
- EXPECT_TRUE (Info.getExtensions ().at (" m" ) == (RISCVExtensionInfo{" m " , 3 , 2 }));
83
+ EXPECT_TRUE (Info.getExtensions ().at (" i" ) == (RISCVExtensionInfo{5 , 1 }));
84
+ EXPECT_TRUE (Info.getExtensions ().at (" m" ) == (RISCVExtensionInfo{3 , 2 }));
90
85
EXPECT_TRUE (Info.getExtensions ().at (" zmadeup" ) ==
91
- (RISCVExtensionInfo{" zmadeup" , 11 , 12 }));
92
- EXPECT_TRUE (Info.getExtensions ().at (" sfoo" ) ==
93
- (RISCVExtensionInfo{" sfoo" , 2 , 0 }));
94
- EXPECT_TRUE (Info.getExtensions ().at (" xbar" ) ==
95
- (RISCVExtensionInfo{" xbar" , 3 , 0 }));
86
+ (RISCVExtensionInfo{11 , 12 }));
87
+ EXPECT_TRUE (Info.getExtensions ().at (" sfoo" ) == (RISCVExtensionInfo{2 , 0 }));
88
+ EXPECT_TRUE (Info.getExtensions ().at (" xbar" ) == (RISCVExtensionInfo{3 , 0 }));
96
89
}
97
90
98
91
TEST (ParseNormalizedArchString, UpdatesFLenMinVLenMaxELen) {
@@ -139,7 +132,7 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
139
132
RISCVISAInfo &InfoRV32I = **MaybeRV32I;
140
133
RISCVISAInfo::OrderedExtensionMap ExtsRV32I = InfoRV32I.getExtensions ();
141
134
EXPECT_EQ (ExtsRV32I.size (), 1UL );
142
- EXPECT_TRUE (ExtsRV32I.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
135
+ EXPECT_TRUE (ExtsRV32I.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
143
136
EXPECT_EQ (InfoRV32I.getXLen (), 32U );
144
137
EXPECT_EQ (InfoRV32I.getFLen (), 0U );
145
138
@@ -148,7 +141,7 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
148
141
RISCVISAInfo &InfoRV32E = **MaybeRV32E;
149
142
RISCVISAInfo::OrderedExtensionMap ExtsRV32E = InfoRV32E.getExtensions ();
150
143
EXPECT_EQ (ExtsRV32E.size (), 1UL );
151
- EXPECT_TRUE (ExtsRV32E.at (" e" ) == (RISCVExtensionInfo{" e " , 1 , 9 }));
144
+ EXPECT_TRUE (ExtsRV32E.at (" e" ) == (RISCVExtensionInfo{1 , 9 }));
152
145
EXPECT_EQ (InfoRV32E.getXLen (), 32U );
153
146
EXPECT_EQ (InfoRV32E.getFLen (), 0U );
154
147
@@ -157,11 +150,11 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
157
150
RISCVISAInfo &InfoRV32G = **MaybeRV32G;
158
151
RISCVISAInfo::OrderedExtensionMap ExtsRV32G = InfoRV32G.getExtensions ();
159
152
EXPECT_EQ (ExtsRV32G.size (), 5UL );
160
- EXPECT_TRUE (ExtsRV32G.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
161
- EXPECT_TRUE (ExtsRV32G.at (" m" ) == (RISCVExtensionInfo{" m " , 2 , 0 }));
162
- EXPECT_TRUE (ExtsRV32G.at (" a" ) == (RISCVExtensionInfo{" a " , 2 , 0 }));
163
- EXPECT_TRUE (ExtsRV32G.at (" f" ) == (RISCVExtensionInfo{" f " , 2 , 0 }));
164
- EXPECT_TRUE (ExtsRV32G.at (" d" ) == (RISCVExtensionInfo{" d " , 2 , 0 }));
153
+ EXPECT_TRUE (ExtsRV32G.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
154
+ EXPECT_TRUE (ExtsRV32G.at (" m" ) == (RISCVExtensionInfo{2 , 0 }));
155
+ EXPECT_TRUE (ExtsRV32G.at (" a" ) == (RISCVExtensionInfo{2 , 0 }));
156
+ EXPECT_TRUE (ExtsRV32G.at (" f" ) == (RISCVExtensionInfo{2 , 0 }));
157
+ EXPECT_TRUE (ExtsRV32G.at (" d" ) == (RISCVExtensionInfo{2 , 0 }));
165
158
EXPECT_EQ (InfoRV32G.getXLen (), 32U );
166
159
EXPECT_EQ (InfoRV32G.getFLen (), 64U );
167
160
@@ -170,7 +163,7 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
170
163
RISCVISAInfo &InfoRV64I = **MaybeRV64I;
171
164
RISCVISAInfo::OrderedExtensionMap ExtsRV64I = InfoRV64I.getExtensions ();
172
165
EXPECT_EQ (ExtsRV64I.size (), 1UL );
173
- EXPECT_TRUE (ExtsRV64I.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
166
+ EXPECT_TRUE (ExtsRV64I.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
174
167
EXPECT_EQ (InfoRV64I.getXLen (), 64U );
175
168
EXPECT_EQ (InfoRV64I.getFLen (), 0U );
176
169
@@ -179,11 +172,11 @@ TEST(ParseArchString, AcceptsSupportedBaseISAsAndSetsXLenAndFLen) {
179
172
RISCVISAInfo &InfoRV64G = **MaybeRV64G;
180
173
RISCVISAInfo::OrderedExtensionMap ExtsRV64G = InfoRV64G.getExtensions ();
181
174
EXPECT_EQ (ExtsRV64G.size (), 5UL );
182
- EXPECT_TRUE (ExtsRV64G.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
183
- EXPECT_TRUE (ExtsRV64G.at (" m" ) == (RISCVExtensionInfo{" m " , 2 , 0 }));
184
- EXPECT_TRUE (ExtsRV64G.at (" a" ) == (RISCVExtensionInfo{" a " , 2 , 0 }));
185
- EXPECT_TRUE (ExtsRV64G.at (" f" ) == (RISCVExtensionInfo{" f " , 2 , 0 }));
186
- EXPECT_TRUE (ExtsRV64G.at (" d" ) == (RISCVExtensionInfo{" d " , 2 , 0 }));
175
+ EXPECT_TRUE (ExtsRV64G.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
176
+ EXPECT_TRUE (ExtsRV64G.at (" m" ) == (RISCVExtensionInfo{2 , 0 }));
177
+ EXPECT_TRUE (ExtsRV64G.at (" a" ) == (RISCVExtensionInfo{2 , 0 }));
178
+ EXPECT_TRUE (ExtsRV64G.at (" f" ) == (RISCVExtensionInfo{2 , 0 }));
179
+ EXPECT_TRUE (ExtsRV64G.at (" d" ) == (RISCVExtensionInfo{2 , 0 }));
187
180
EXPECT_EQ (InfoRV64G.getXLen (), 64U );
188
181
EXPECT_EQ (InfoRV64G.getFLen (), 64U );
189
182
}
@@ -237,7 +230,7 @@ TEST(ParseArchString, IgnoresUnrecognizedExtensionNamesWithIgnoreUnknown) {
237
230
RISCVISAInfo &Info = **MaybeISAInfo;
238
231
RISCVISAInfo::OrderedExtensionMap Exts = Info.getExtensions ();
239
232
EXPECT_EQ (Exts.size (), 1UL );
240
- EXPECT_TRUE (Exts.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
233
+ EXPECT_TRUE (Exts.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
241
234
}
242
235
243
236
// Checks that supported extensions aren't incorrectly ignored when a
@@ -246,21 +239,21 @@ TEST(ParseArchString, IgnoresUnrecognizedExtensionNamesWithIgnoreUnknown) {
246
239
RISCVISAInfo::parseArchString (" rv32i_zbc1p0_xmadeup" , true , false , true );
247
240
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
248
241
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
249
- EXPECT_TRUE (Exts.at (" zbc" ) == (RISCVExtensionInfo{" zbc " , 1 , 0 }));
242
+ EXPECT_TRUE (Exts.at (" zbc" ) == (RISCVExtensionInfo{1 , 0 }));
250
243
}
251
244
252
245
TEST (ParseArchString, AcceptsVersionInLongOrShortForm) {
253
246
for (StringRef Input : {" rv64i2" , " rv64i2p0" }) {
254
247
auto MaybeISAInfo = RISCVISAInfo::parseArchString (Input, true );
255
248
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
256
249
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
257
- EXPECT_TRUE (Exts.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
250
+ EXPECT_TRUE (Exts.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
258
251
}
259
252
for (StringRef Input : {" rv32i_zfinx1" , " rv32i_zfinx1p0" }) {
260
253
auto MaybeISAInfo = RISCVISAInfo::parseArchString (Input, true );
261
254
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
262
255
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
263
- EXPECT_TRUE (Exts.at (" zfinx" ) == (RISCVExtensionInfo{" zfinx " , 1 , 0 }));
256
+ EXPECT_TRUE (Exts.at (" zfinx" ) == (RISCVExtensionInfo{1 , 0 }));
264
257
}
265
258
}
266
259
@@ -293,7 +286,7 @@ TEST(ParseArchString,
293
286
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
294
287
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
295
288
EXPECT_EQ (Exts.size (), 1UL );
296
- EXPECT_TRUE (Exts.at (" i" ) == (RISCVExtensionInfo{" i " , 2 , 0 }));
289
+ EXPECT_TRUE (Exts.at (" i" ) == (RISCVExtensionInfo{2 , 0 }));
297
290
}
298
291
}
299
292
@@ -303,13 +296,13 @@ TEST(ParseArchString, AcceptsUnderscoreSplittingExtensions) {
303
296
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
304
297
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
305
298
EXPECT_EQ (Exts.size (), 7UL );
306
- EXPECT_EQ (Exts.at (" i" ). ExtName , " i " );
307
- EXPECT_EQ (Exts.at (" m" ). ExtName , " m " );
308
- EXPECT_EQ (Exts.at (" a" ). ExtName , " a " );
309
- EXPECT_EQ (Exts.at (" f" ). ExtName , " f " );
310
- EXPECT_EQ (Exts.at (" d" ). ExtName , " d " );
311
- EXPECT_EQ (Exts.at (" c" ). ExtName , " c " );
312
- EXPECT_EQ (Exts.at (" zifencei" ). ExtName , " zifencei " );
299
+ EXPECT_EQ (Exts.count (" i" ), 1U );
300
+ EXPECT_EQ (Exts.count (" m" ), 1U );
301
+ EXPECT_EQ (Exts.count (" a" ), 1U );
302
+ EXPECT_EQ (Exts.count (" f" ), 1U );
303
+ EXPECT_EQ (Exts.count (" d" ), 1U );
304
+ EXPECT_EQ (Exts.count (" c" ), 1U );
305
+ EXPECT_EQ (Exts.count (" zifencei" ), 1U );
313
306
}
314
307
}
315
308
@@ -359,12 +352,12 @@ TEST(ParseArchString,
359
352
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
360
353
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
361
354
EXPECT_EQ (Exts.size (), 2UL );
362
- EXPECT_EQ (Exts.at (" zihintntl" ). ExtName , " zihintntl " );
355
+ EXPECT_EQ (Exts.count (" zihintntl" ), 1U );
363
356
auto MaybeISAInfo2 = RISCVISAInfo::parseArchString (" rv64izihintntl0p2" , true );
364
357
ASSERT_THAT_EXPECTED (MaybeISAInfo2, Succeeded ());
365
358
RISCVISAInfo::OrderedExtensionMap Exts2 = (*MaybeISAInfo2)->getExtensions ();
366
359
EXPECT_EQ (Exts2.size (), 2UL );
367
- EXPECT_EQ (Exts2.at (" zihintntl" ). ExtName , " zihintntl " );
360
+ EXPECT_EQ (Exts2.count (" zihintntl" ), 1U );
368
361
}
369
362
370
363
TEST (ParseArchString,
@@ -382,7 +375,7 @@ TEST(ParseArchString,
382
375
ASSERT_THAT_EXPECTED (MaybeISAInfo, Succeeded ());
383
376
RISCVISAInfo::OrderedExtensionMap Exts = (*MaybeISAInfo)->getExtensions ();
384
377
EXPECT_EQ (Exts.size (), 2UL );
385
- EXPECT_TRUE (Exts.at (" zihintntl" ) == (RISCVExtensionInfo{" zihintntl " , 9 , 9 }));
378
+ EXPECT_TRUE (Exts.at (" zihintntl" ) == (RISCVExtensionInfo{9 , 9 }));
386
379
}
387
380
388
381
TEST (ParseArchString, RejectsUnrecognizedVersionForExperimentalExtension) {
@@ -407,23 +400,23 @@ TEST(ParseArchString, AddsImpliedExtensions) {
407
400
RISCVISAInfo::OrderedExtensionMap ExtsRV64ID =
408
401
(*MaybeRV64ID)->getExtensions ();
409
402
EXPECT_EQ (ExtsRV64ID.size (), 3UL );
410
- EXPECT_EQ (ExtsRV64ID.at (" i" ). ExtName , " i " );
411
- EXPECT_EQ (ExtsRV64ID.at (" f" ). ExtName , " f " );
412
- EXPECT_EQ (ExtsRV64ID.at (" d" ). ExtName , " d " );
403
+ EXPECT_EQ (ExtsRV64ID.count (" i" ), 1U );
404
+ EXPECT_EQ (ExtsRV64ID.count (" f" ), 1U );
405
+ EXPECT_EQ (ExtsRV64ID.count (" d" ), 1U );
413
406
414
407
auto MaybeRV32IZKN = RISCVISAInfo::parseArchString (" rv64izkn" , true );
415
408
ASSERT_THAT_EXPECTED (MaybeRV32IZKN, Succeeded ());
416
409
RISCVISAInfo::OrderedExtensionMap ExtsRV32IZKN =
417
410
(*MaybeRV32IZKN)->getExtensions ();
418
411
EXPECT_EQ (ExtsRV32IZKN.size (), 8UL );
419
- EXPECT_EQ (ExtsRV32IZKN.at (" i" ). ExtName , " i " );
420
- EXPECT_EQ (ExtsRV32IZKN.at (" zbkb" ). ExtName , " zbkb " );
421
- EXPECT_EQ (ExtsRV32IZKN.at (" zbkc" ). ExtName , " zbkc " );
422
- EXPECT_EQ (ExtsRV32IZKN.at (" zbkx" ). ExtName , " zbkx " );
423
- EXPECT_EQ (ExtsRV32IZKN.at (" zkne" ). ExtName , " zkne " );
424
- EXPECT_EQ (ExtsRV32IZKN.at (" zknd" ). ExtName , " zknd " );
425
- EXPECT_EQ (ExtsRV32IZKN.at (" zknh" ). ExtName , " zknh " );
426
- EXPECT_EQ (ExtsRV32IZKN.at (" zkn" ). ExtName , " zkn " );
412
+ EXPECT_EQ (ExtsRV32IZKN.count (" i" ), 1U );
413
+ EXPECT_EQ (ExtsRV32IZKN.count (" zbkb" ), 1U );
414
+ EXPECT_EQ (ExtsRV32IZKN.count (" zbkc" ), 1U );
415
+ EXPECT_EQ (ExtsRV32IZKN.count (" zbkx" ), 1U );
416
+ EXPECT_EQ (ExtsRV32IZKN.count (" zkne" ), 1U );
417
+ EXPECT_EQ (ExtsRV32IZKN.count (" zknd" ), 1U );
418
+ EXPECT_EQ (ExtsRV32IZKN.count (" zknh" ), 1U );
419
+ EXPECT_EQ (ExtsRV32IZKN.count (" zkn" ), 1U );
427
420
}
428
421
429
422
TEST (ParseArchString, RejectsConflictingExtensions) {
0 commit comments