@@ -1324,6 +1324,7 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
1324
1324
1325
1325
auto *VecTy = cast<VectorType>(U->getType ());
1326
1326
auto *VecSrcTy = cast<VectorType>(Operands[0 ]->getType ());
1327
+ ArrayRef<int > Mask = Shuffle->getShuffleMask ();
1327
1328
int NumSubElts, SubIndex;
1328
1329
1329
1330
if (Shuffle->changesLength ()) {
@@ -1333,21 +1334,19 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
1333
1334
1334
1335
if (Shuffle->isExtractSubvectorMask (SubIndex))
1335
1336
return TargetTTI->getShuffleCost (TTI::SK_ExtractSubvector, VecSrcTy,
1336
- Shuffle-> getShuffleMask () , CostKind,
1337
- SubIndex, VecTy, Operands);
1337
+ Mask , CostKind, SubIndex, VecTy ,
1338
+ Operands);
1338
1339
1339
1340
if (Shuffle->isInsertSubvectorMask (NumSubElts, SubIndex))
1340
1341
return TargetTTI->getShuffleCost (
1341
- TTI::SK_InsertSubvector, VecTy, Shuffle->getShuffleMask (),
1342
- CostKind, SubIndex,
1342
+ TTI::SK_InsertSubvector, VecTy, Mask, CostKind, SubIndex,
1343
1343
FixedVectorType::get (VecTy->getScalarType (), NumSubElts),
1344
1344
Operands);
1345
1345
1346
1346
int ReplicationFactor, VF;
1347
1347
if (Shuffle->isReplicationMask (ReplicationFactor, VF)) {
1348
- APInt DemandedDstElts =
1349
- APInt::getZero (Shuffle->getShuffleMask ().size ());
1350
- for (auto I : enumerate(Shuffle->getShuffleMask ())) {
1348
+ APInt DemandedDstElts = APInt::getZero (Mask.size ());
1349
+ for (auto I : enumerate(Mask)) {
1351
1350
if (I.value () != PoisonMaskElem)
1352
1351
DemandedDstElts.setBit (I.index ());
1353
1352
}
@@ -1363,44 +1362,36 @@ class TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {
1363
1362
return 0 ;
1364
1363
1365
1364
if (Shuffle->isReverse ())
1366
- return TargetTTI->getShuffleCost (TTI::SK_Reverse, VecTy,
1367
- Shuffle->getShuffleMask (), CostKind, 0 ,
1368
- nullptr , Operands);
1365
+ return TargetTTI->getShuffleCost (TTI::SK_Reverse, VecTy, Mask, CostKind,
1366
+ 0 , nullptr , Operands);
1369
1367
1370
1368
if (Shuffle->isSelect ())
1371
- return TargetTTI->getShuffleCost (TTI::SK_Select, VecTy,
1372
- Shuffle->getShuffleMask (), CostKind, 0 ,
1373
- nullptr , Operands);
1369
+ return TargetTTI->getShuffleCost (TTI::SK_Select, VecTy, Mask, CostKind,
1370
+ 0 , nullptr , Operands);
1374
1371
1375
1372
if (Shuffle->isTranspose ())
1376
- return TargetTTI->getShuffleCost (TTI::SK_Transpose, VecTy,
1377
- Shuffle->getShuffleMask (), CostKind, 0 ,
1378
- nullptr , Operands);
1373
+ return TargetTTI->getShuffleCost (TTI::SK_Transpose, VecTy, Mask,
1374
+ CostKind, 0 , nullptr , Operands);
1379
1375
1380
1376
if (Shuffle->isZeroEltSplat ())
1381
- return TargetTTI->getShuffleCost (TTI::SK_Broadcast, VecTy,
1382
- Shuffle->getShuffleMask (), CostKind, 0 ,
1383
- nullptr , Operands);
1377
+ return TargetTTI->getShuffleCost (TTI::SK_Broadcast, VecTy, Mask,
1378
+ CostKind, 0 , nullptr , Operands);
1384
1379
1385
1380
if (Shuffle->isSingleSource ())
1386
- return TargetTTI->getShuffleCost (TTI::SK_PermuteSingleSrc, VecTy,
1387
- Shuffle->getShuffleMask (), CostKind, 0 ,
1388
- nullptr , Operands);
1381
+ return TargetTTI->getShuffleCost (TTI::SK_PermuteSingleSrc, VecTy, Mask,
1382
+ CostKind, 0 , nullptr , Operands);
1389
1383
1390
1384
if (Shuffle->isInsertSubvectorMask (NumSubElts, SubIndex))
1391
1385
return TargetTTI->getShuffleCost (
1392
- TTI::SK_InsertSubvector, VecTy, Shuffle->getShuffleMask (), CostKind,
1393
- SubIndex, FixedVectorType::get (VecTy->getScalarType (), NumSubElts),
1394
- Operands);
1386
+ TTI::SK_InsertSubvector, VecTy, Mask, CostKind, SubIndex,
1387
+ FixedVectorType::get (VecTy->getScalarType (), NumSubElts), Operands);
1395
1388
1396
1389
if (Shuffle->isSplice (SubIndex))
1397
- return TargetTTI->getShuffleCost (TTI::SK_Splice, VecTy,
1398
- Shuffle->getShuffleMask (), CostKind,
1390
+ return TargetTTI->getShuffleCost (TTI::SK_Splice, VecTy, Mask, CostKind,
1399
1391
SubIndex, nullptr , Operands);
1400
1392
1401
- return TargetTTI->getShuffleCost (TTI::SK_PermuteTwoSrc, VecTy,
1402
- Shuffle->getShuffleMask (), CostKind, 0 ,
1403
- nullptr , Operands);
1393
+ return TargetTTI->getShuffleCost (TTI::SK_PermuteTwoSrc, VecTy, Mask,
1394
+ CostKind, 0 , nullptr , Operands);
1404
1395
}
1405
1396
case Instruction::ExtractElement: {
1406
1397
auto *EEI = dyn_cast<ExtractElementInst>(U);
0 commit comments