@@ -571,7 +571,7 @@ class TransposeHelperPrivateMem : public TransposeHelper
571
571
IRB.SetInsertPoint (pLoad);
572
572
if (!vectorIO && pLoad->getType ()->isVectorTy ())
573
573
{
574
- Type * scalarType = pLoad->getType ()->getScalarType ();
574
+ Type* scalarType = IGCLLVM::getNonOpaquePtrEltTy ( pLoad->getPointerOperand ()-> getType () )->getScalarType ();
575
575
IGC_ASSERT (nullptr != scalarType);
576
576
Type* scalarptrTy = PointerType::get (scalarType, pLoad->getPointerAddressSpace ());
577
577
IGC_ASSERT (scalarType->getPrimitiveSizeInBits () / 8 == elementSize);
@@ -609,7 +609,7 @@ class TransposeHelperPrivateMem : public TransposeHelper
609
609
IRB.SetInsertPoint (pStore);
610
610
if (!vectorIO && pStore->getValueOperand ()->getType ()->isVectorTy ())
611
611
{
612
- Type * scalarType = pStore->getValueOperand ()->getType ()->getScalarType ();
612
+ Type* scalarType = IGCLLVM::getNonOpaquePtrEltTy ( pStore->getPointerOperand ()->getType () )->getScalarType ();
613
613
IGC_ASSERT (nullptr != scalarType);
614
614
Type* scalarptrTy = PointerType::get (scalarType, pStore->getPointerAddressSpace ());
615
615
IGC_ASSERT (scalarType->getPrimitiveSizeInBits () / 8 == elementSize);
@@ -997,7 +997,7 @@ bool PrivateMemoryResolution::resolveAllocaInstructions(bool privateOnStack)
997
997
// possibility to use large loads/stores, so cancel the transformation.
998
998
// Currently it is only enabled by option
999
999
bool isSOABeneficial = pTypeOfAccessedObject->isVectorTy () || !allUsesAreVector;
1000
- Type * allocaType = pAI->getAllocatedType ( );
1000
+ Type* allocaType = GetBaseType ( IGCLLVM::getNonOpaquePtrEltTy ( pAI->getType ()) );
1001
1001
if (VectorType* vectorType = dyn_cast<VectorType>(allocaType))
1002
1002
{
1003
1003
bool baseTypeIsSmall = (unsigned )(vectorType->getElementType ()->getScalarSizeInBits ()) < 32 ;
@@ -1011,7 +1011,7 @@ bool PrivateMemoryResolution::resolveAllocaInstructions(bool privateOnStack)
1011
1011
{
1012
1012
auto DL = &m_currFunction->getParent ()->getDataLayout ();
1013
1013
bufferSize = (unsigned )DL->getTypeAllocSize (pTypeOfAccessedObject);
1014
- IGC_ASSERT (testTransposedMemory (pAI->getAllocatedType ( ), pTypeOfAccessedObject, bufferSize, (m_ModAllocaInfo->getConstBufferSize (pAI))));
1014
+ IGC_ASSERT (testTransposedMemory (IGCLLVM::getNonOpaquePtrEltTy ( pAI->getType () ), pTypeOfAccessedObject, bufferSize, (m_ModAllocaInfo->getConstBufferSize (pAI))));
1015
1015
}
1016
1016
else
1017
1017
{
0 commit comments