@@ -88,14 +88,6 @@ class VFABIParserTest : public ::testing::Test {
88
88
// / Returns whether the parsed function contains a mask.
89
89
bool isMasked () const { return Info.isMasked (); }
90
90
91
- // / Check if the number of vectorized parameters matches the scalar ones. This
92
- // / requires a correct scalar FunctionType string to be fed to the
93
- // / 'invokeParser'. Mask parameters that are only required by the vector
94
- // / function call are ignored.
95
- bool matchParametersNum () {
96
- return (Parameters.size () - isMasked ()) == ScalarFTy->getNumParams ();
97
- }
98
-
99
91
FunctionType *getFunctionType () {
100
92
return VFABI::createFunctionType (Info, ScalarFTy);
101
93
}
@@ -162,7 +154,6 @@ TEST_F(VFABIParserTest, ParamListParsing) {
162
154
invokeParser (" _ZGVnN2vl16Ls32R3l_foo" , " void(i32, i32, i32, ptr, i32)" ));
163
155
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
164
156
EXPECT_EQ (false , isMasked ());
165
- EXPECT_TRUE (matchParametersNum ());
166
157
FunctionType *FTy = FunctionType::get (
167
158
Type::getVoidTy (Ctx),
168
159
{VectorType::get (Type::getInt32Ty (Ctx), ElementCount::getFixed (2 )),
@@ -184,7 +175,6 @@ TEST_F(VFABIParserTest, ScalarNameAndVectorName_01) {
184
175
EXPECT_TRUE (invokeParser (" _ZGVnM2v_foo(vector_foo)" , " void(i32)" ));
185
176
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
186
177
EXPECT_EQ (true , isMasked ());
187
- EXPECT_TRUE (matchParametersNum ());
188
178
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
189
179
EXPECT_EQ (ScalarName, " foo" );
190
180
EXPECT_EQ (VectorName, " vector_foo" );
@@ -194,7 +184,6 @@ TEST_F(VFABIParserTest, ScalarNameAndVectorName_02) {
194
184
EXPECT_TRUE (invokeParser (" _ZGVnM2v_foo(vector_foo)" , " void(i32)" ));
195
185
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
196
186
EXPECT_EQ (true , isMasked ());
197
- EXPECT_TRUE (matchParametersNum ());
198
187
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
199
188
EXPECT_EQ (ScalarName, " foo" );
200
189
EXPECT_EQ (VectorName, " vector_foo" );
@@ -205,14 +194,13 @@ TEST_F(VFABIParserTest, ScalarNameAndVectorName_03) {
205
194
invokeParser (" _ZGVnM2v___foo_bar_abc(fooBarAbcVec)" , " void(i32)" ));
206
195
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
207
196
EXPECT_EQ (true , isMasked ());
208
- EXPECT_TRUE (matchParametersNum ());
209
197
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
210
198
EXPECT_EQ (ScalarName, " __foo_bar_abc" );
211
199
EXPECT_EQ (VectorName, " fooBarAbcVec" );
212
200
}
213
201
214
202
TEST_F (VFABIParserTest, ScalarNameOnly) {
215
- EXPECT_TRUE (invokeParser (" _ZGVnM2v___foo_bar_abc" ));
203
+ EXPECT_TRUE (invokeParser (" _ZGVnM2v___foo_bar_abc" , " void(i32) " ));
216
204
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
217
205
EXPECT_EQ (true , isMasked ());
218
206
EXPECT_EQ (ScalarName, " __foo_bar_abc" );
@@ -227,7 +215,6 @@ TEST_F(VFABIParserTest, Parse) {
227
215
" void(i32, i32, i32, i32, ptr, i32, i32, i32, ptr)" ));
228
216
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
229
217
EXPECT_FALSE (isMasked ());
230
- EXPECT_TRUE (matchParametersNum ());
231
218
FunctionType *FTy = FunctionType::get (
232
219
Type::getVoidTy (Ctx),
233
220
{
@@ -262,7 +249,6 @@ TEST_F(VFABIParserTest, ParseVectorName) {
262
249
EXPECT_TRUE (invokeParser (" _ZGVnN2v_foo(vector_foo)" , " void(i32)" ));
263
250
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
264
251
EXPECT_FALSE (isMasked ());
265
- EXPECT_TRUE (matchParametersNum ());
266
252
EXPECT_EQ (getFunctionType (), FTyNoMaskVLen2_i32);
267
253
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
268
254
EXPECT_EQ (Parameters.size (), (unsigned )1 );
@@ -276,7 +262,6 @@ TEST_F(VFABIParserTest, LinearWithCompileTimeNegativeStep) {
276
262
" void(i32, i32, i32, ptr)" ));
277
263
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
278
264
EXPECT_FALSE (isMasked ());
279
- EXPECT_TRUE (matchParametersNum ());
280
265
FunctionType *FTy = FunctionType::get (
281
266
Type::getVoidTy (Ctx),
282
267
{Type::getInt32Ty (Ctx), Type::getInt32Ty (Ctx), Type::getInt32Ty (Ctx),
@@ -297,7 +282,6 @@ TEST_F(VFABIParserTest, ParseScalableSVE) {
297
282
EXPECT_TRUE (invokeParser (" _ZGVsMxv_foo(vector_foo)" , " void(i32)" ));
298
283
EXPECT_EQ (ISA, VFISAKind::SVE);
299
284
EXPECT_TRUE (isMasked ());
300
- EXPECT_TRUE (matchParametersNum ());
301
285
EXPECT_EQ (getFunctionType (), FTyMaskedVLA_i32);
302
286
EXPECT_EQ (VF, ElementCount::getScalable (4 ));
303
287
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -311,7 +295,6 @@ TEST_F(VFABIParserTest, ParseFixedWidthSVE) {
311
295
EXPECT_TRUE (invokeParser (" _ZGVsM2v_foo(vector_foo)" , " void(i32)" ));
312
296
EXPECT_EQ (ISA, VFISAKind::SVE);
313
297
EXPECT_TRUE (isMasked ());
314
- EXPECT_TRUE (matchParametersNum ());
315
298
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
316
299
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
317
300
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -329,24 +312,23 @@ TEST_F(VFABIParserTest, NotAVectorFunctionABIName) {
329
312
TEST_F (VFABIParserTest, LinearWithRuntimeStep) {
330
313
EXPECT_FALSE (invokeParser (" _ZGVnN2ls_foo" ))
331
314
<< " A number should be present after \" ls\" ." ;
332
- EXPECT_TRUE (invokeParser (" _ZGVnN2ls2_foo" ));
315
+ EXPECT_TRUE (invokeParser (" _ZGVnN2ls2_foo" , " void(i32) " ));
333
316
EXPECT_FALSE (invokeParser (" _ZGVnN2Rs_foo" ))
334
317
<< " A number should be present after \" Rs\" ." ;
335
- EXPECT_TRUE (invokeParser (" _ZGVnN2Rs4_foo" ));
318
+ EXPECT_TRUE (invokeParser (" _ZGVnN2Rs4_foo" , " void(i32) " ));
336
319
EXPECT_FALSE (invokeParser (" _ZGVnN2Ls_foo" ))
337
320
<< " A number should be present after \" Ls\" ." ;
338
- EXPECT_TRUE (invokeParser (" _ZGVnN2Ls6_foo" ));
321
+ EXPECT_TRUE (invokeParser (" _ZGVnN2Ls6_foo" , " void(i32) " ));
339
322
EXPECT_FALSE (invokeParser (" _ZGVnN2Us_foo" ))
340
323
<< " A number should be present after \" Us\" ." ;
341
- EXPECT_TRUE (invokeParser (" _ZGVnN2Us8_foo" ));
324
+ EXPECT_TRUE (invokeParser (" _ZGVnN2Us8_foo" , " void(i32) " ));
342
325
}
343
326
344
327
TEST_F (VFABIParserTest, LinearWithoutCompileTime) {
345
328
EXPECT_TRUE (invokeParser (" _ZGVnN3lLRUlnLnRnUn_foo(vector_foo)" ,
346
329
" void(i32, i32, ptr, i32, i32, i32, ptr, i32)" ));
347
330
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
348
331
EXPECT_FALSE (isMasked ());
349
- EXPECT_TRUE (matchParametersNum ());
350
332
FunctionType *FTy = FunctionType::get (
351
333
Type::getVoidTy (Ctx),
352
334
{Type::getInt32Ty (Ctx), Type::getInt32Ty (Ctx),
@@ -373,7 +355,6 @@ TEST_F(VFABIParserTest, LLVM_ISA) {
373
355
EXPECT_TRUE (invokeParser (" _ZGV_LLVM_N2v_foo(vector_foo)" , " void(i32)" ));
374
356
EXPECT_EQ (ISA, VFISAKind::LLVM);
375
357
EXPECT_FALSE (isMasked ());
376
- EXPECT_TRUE (matchParametersNum ());
377
358
EXPECT_EQ (getFunctionType (), FTyNoMaskVLen2_i32);
378
359
EXPECT_EQ (Parameters.size (), (unsigned )1 );
379
360
EXPECT_EQ (Parameters[0 ], VFParameter ({0 , VFParamKind::Vector}));
@@ -393,7 +374,6 @@ TEST_F(VFABIParserTest, Align) {
393
374
EXPECT_TRUE (invokeParser (" _ZGVsN2l2a2_foo(vector_foo)" , " void(i32)" ));
394
375
EXPECT_EQ (ISA, VFISAKind::SVE);
395
376
EXPECT_FALSE (isMasked ());
396
- EXPECT_TRUE (matchParametersNum ());
397
377
EXPECT_EQ (Parameters.size (), (unsigned )1 );
398
378
EXPECT_EQ (Parameters[0 ].Alignment , Align (2 ));
399
379
EXPECT_EQ (ScalarName, " foo" );
@@ -409,7 +389,7 @@ TEST_F(VFABIParserTest, Align) {
409
389
EXPECT_FALSE (invokeParser (" _ZGVsM2a2_foo" ));
410
390
// Alignment must be a power of 2.
411
391
EXPECT_FALSE (invokeParser (" _ZGVsN2l2a0_foo" ));
412
- EXPECT_TRUE (invokeParser (" _ZGVsN2l2a1_foo" ));
392
+ EXPECT_TRUE (invokeParser (" _ZGVsN2l2a1_foo" , " void(i32) " ));
413
393
EXPECT_FALSE (invokeParser (" _ZGVsN2l2a3_foo" ));
414
394
EXPECT_FALSE (invokeParser (" _ZGVsN2l2a6_foo" ));
415
395
}
@@ -418,7 +398,6 @@ TEST_F(VFABIParserTest, ParseUniform) {
418
398
EXPECT_TRUE (invokeParser (" _ZGVnN2u_foo(vector_foo)" , " void(i32)" ));
419
399
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
420
400
EXPECT_FALSE (isMasked ());
421
- EXPECT_TRUE (matchParametersNum ());
422
401
FunctionType *FTy =
423
402
FunctionType::get (Type::getVoidTy (Ctx), {Type::getInt32Ty (Ctx)}, false );
424
403
EXPECT_EQ (getFunctionType (), FTy);
@@ -463,7 +442,6 @@ TEST_F(VFABIParserTest, ISAIndependentMangling) {
463
442
do { \
464
443
EXPECT_EQ (VF, ElementCount::getFixed (2 )); \
465
444
EXPECT_FALSE (isMasked ()); \
466
- EXPECT_TRUE (matchParametersNum ()); \
467
445
EXPECT_EQ (getFunctionType (), FTy); \
468
446
EXPECT_EQ (Parameters.size (), (unsigned )10 ); \
469
447
EXPECT_EQ (Parameters, ExpectedParams); \
@@ -539,7 +517,6 @@ TEST_F(VFABIParserTest, ParseMaskingNEON) {
539
517
EXPECT_TRUE (invokeParser (" _ZGVnM2v_foo(vector_foo)" , " void(i32)" ));
540
518
EXPECT_EQ (ISA, VFISAKind::AdvancedSIMD);
541
519
EXPECT_TRUE (isMasked ());
542
- EXPECT_TRUE (matchParametersNum ());
543
520
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
544
521
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
545
522
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -553,7 +530,6 @@ TEST_F(VFABIParserTest, ParseMaskingSVE) {
553
530
EXPECT_TRUE (invokeParser (" _ZGVsM2v_foo(vector_foo)" , " void(i32)" ));
554
531
EXPECT_EQ (ISA, VFISAKind::SVE);
555
532
EXPECT_TRUE (isMasked ());
556
- EXPECT_TRUE (matchParametersNum ());
557
533
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
558
534
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
559
535
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -567,7 +543,6 @@ TEST_F(VFABIParserTest, ParseMaskingSSE) {
567
543
EXPECT_TRUE (invokeParser (" _ZGVbM2v_foo(vector_foo)" , " void(i32)" ));
568
544
EXPECT_EQ (ISA, VFISAKind::SSE);
569
545
EXPECT_TRUE (isMasked ());
570
- EXPECT_TRUE (matchParametersNum ());
571
546
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
572
547
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
573
548
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -581,7 +556,6 @@ TEST_F(VFABIParserTest, ParseMaskingAVX) {
581
556
EXPECT_TRUE (invokeParser (" _ZGVcM2v_foo(vector_foo)" , " void(i32)" ));
582
557
EXPECT_EQ (ISA, VFISAKind::AVX);
583
558
EXPECT_TRUE (isMasked ());
584
- EXPECT_TRUE (matchParametersNum ());
585
559
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
586
560
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
587
561
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -595,7 +569,6 @@ TEST_F(VFABIParserTest, ParseMaskingAVX2) {
595
569
EXPECT_TRUE (invokeParser (" _ZGVdM2v_foo(vector_foo)" , " void(i32)" ));
596
570
EXPECT_EQ (ISA, VFISAKind::AVX2);
597
571
EXPECT_TRUE (isMasked ());
598
- EXPECT_TRUE (matchParametersNum ());
599
572
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
600
573
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
601
574
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -609,7 +582,6 @@ TEST_F(VFABIParserTest, ParseMaskingAVX512) {
609
582
EXPECT_TRUE (invokeParser (" _ZGVeM2v_foo(vector_foo)" , " void(i32)" ));
610
583
EXPECT_EQ (ISA, VFISAKind::AVX512);
611
584
EXPECT_TRUE (isMasked ());
612
- EXPECT_TRUE (matchParametersNum ());
613
585
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
614
586
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
615
587
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -623,7 +595,6 @@ TEST_F(VFABIParserTest, ParseMaskingLLVM) {
623
595
EXPECT_TRUE (invokeParser (" _ZGV_LLVM_M2v_foo(vector_foo)" , " void(i32)" ));
624
596
EXPECT_EQ (ISA, VFISAKind::LLVM);
625
597
EXPECT_TRUE (isMasked ());
626
- EXPECT_TRUE (matchParametersNum ());
627
598
EXPECT_EQ (getFunctionType (), FTyMaskVLen2_i32);
628
599
EXPECT_EQ (VF, ElementCount::getFixed (2 ));
629
600
EXPECT_EQ (Parameters.size (), (unsigned )2 );
@@ -642,7 +613,6 @@ TEST_F(VFABIParserTest, LLVM_InternalISA) {
642
613
EXPECT_TRUE (invokeParser (" _ZGV_LLVM_N2v_foo(vector_foo)" , " void(i32)" ));
643
614
EXPECT_EQ (ISA, VFISAKind::LLVM);
644
615
EXPECT_FALSE (isMasked ());
645
- EXPECT_TRUE (matchParametersNum ());
646
616
EXPECT_EQ (getFunctionType (), FTyNoMaskVLen2_i32);
647
617
EXPECT_EQ (Parameters.size (), (unsigned )1 );
648
618
EXPECT_EQ (Parameters[0 ], VFParameter ({0 , VFParamKind::Vector}));
@@ -655,7 +625,6 @@ TEST_F(VFABIParserTest, LLVM_Intrinsics) {
655
625
" void(float, float)" ));
656
626
EXPECT_EQ (ISA, VFISAKind::LLVM);
657
627
EXPECT_FALSE (isMasked ());
658
- EXPECT_TRUE (matchParametersNum ());
659
628
FunctionType *FTy = FunctionType::get (
660
629
Type::getVoidTy (Ctx),
661
630
{
@@ -678,7 +647,6 @@ TEST_F(VFABIParserTest, ParseScalableRequiresDeclaration) {
678
647
EXPECT_TRUE (invokeParser (MangledName, " void(i32)" ));
679
648
EXPECT_EQ (ISA, VFISAKind::SVE);
680
649
EXPECT_TRUE (isMasked ());
681
- EXPECT_TRUE (matchParametersNum ());
682
650
EXPECT_EQ (getFunctionType (), FTyMaskedVLA_i32);
683
651
EXPECT_EQ (Parameters.size (), (unsigned )2 );
684
652
EXPECT_EQ (Parameters[0 ], VFParameter ({0 , VFParamKind::Vector}));
@@ -698,7 +666,6 @@ TEST_F(VFABIParserTest, ParseScalableMaskingSVE) {
698
666
EXPECT_TRUE (invokeParser (" _ZGVsMxv_foo(vector_foo)" , " i32(i32)" ));
699
667
EXPECT_EQ (ISA, VFISAKind::SVE);
700
668
EXPECT_TRUE (isMasked ());
701
- EXPECT_TRUE (matchParametersNum ());
702
669
FunctionType *FTy = FunctionType::get (
703
670
VectorType::get (Type::getInt32Ty (Ctx), ElementCount::getScalable (4 )),
704
671
{VectorType::get (Type::getInt32Ty (Ctx), ElementCount::getScalable (4 )),
@@ -718,7 +685,6 @@ TEST_F(VFABIParserTest, ParseScalableMaskingSVESincos) {
718
685
" void(double, ptr, ptr)" ));
719
686
EXPECT_EQ (ISA, VFISAKind::SVE);
720
687
EXPECT_TRUE (isMasked ());
721
- EXPECT_TRUE (matchParametersNum ());
722
688
FunctionType *FTy = FunctionType::get (
723
689
Type::getVoidTy (Ctx),
724
690
{
@@ -745,7 +711,6 @@ TEST_F(VFABIParserTest, ParseWiderReturnTypeSVE) {
745
711
EXPECT_TRUE (invokeParser (" _ZGVsMxvv_foo(vector_foo)" , " i64(i32, i32)" ));
746
712
EXPECT_EQ (ISA, VFISAKind::SVE);
747
713
EXPECT_TRUE (isMasked ());
748
- EXPECT_TRUE (matchParametersNum ());
749
714
FunctionType *FTy = FunctionType::get (
750
715
VectorType::get (Type::getInt64Ty (Ctx), ElementCount::getScalable (2 )),
751
716
{
@@ -769,7 +734,6 @@ TEST_F(VFABIParserTest, ParseVoidReturnTypeSVE) {
769
734
EXPECT_TRUE (invokeParser (" _ZGVsMxv_foo(vector_foo)" , " void(i16)" ));
770
735
EXPECT_EQ (ISA, VFISAKind::SVE);
771
736
EXPECT_TRUE (isMasked ());
772
- EXPECT_TRUE (matchParametersNum ());
773
737
FunctionType *FTy = FunctionType::get (
774
738
Type::getVoidTy (Ctx),
775
739
{
0 commit comments