Skip to content

Commit

Permalink
Merge pull request #5309 from R-Santhir/SIMD_fix_on_Z
Browse files Browse the repository at this point in the history
Missing Symref for SIMD duplicated Node
  • Loading branch information
pshipton committed Apr 1, 2019
2 parents 4789ac9 + aa5a5a4 commit 36b5de9
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions runtime/compiler/optimizer/SPMDParallelizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -400,9 +400,16 @@ bool TR_SPMDKernelParallelizer::visitTreeTopToSIMDize(TR::TreeTop *tt, TR_SPMDKe
prevTree->join(dupTree);
dupTree->join(currTree);

TR::SymbolReference *symRef = dupNode->getSymbolReference();
TR::SymbolReference *symRef = node->getSymbolReference();
TR::SymbolReference *vecSymRef = pSPMDInfo->getVectorSymRef(symRef);
TR_ASSERT(vecSymRef != NULL, "Vector PIV SymRef is NULL during SIMD transformation");
if (vecSymRef == NULL)
{
vecSymRef = comp->cg()->allocateLocalTemp(node->getDataType().scalarToVector()); // need to handle alignment?
pSPMDInfo->addVectorSymRef(symRef, vecSymRef);

if (trace)
traceMsg(comp, " created new symRef #%d for #%d\n", vecSymRef->getReferenceNumber(), symRef->getReferenceNumber());
}

TR::ILOpCode scalarOp = node->getOpCode();
TR::ILOpCodes vectorOpCode = TR::ILOpCode::convertScalarToVector(scalarOp.getOpCodeValue());
Expand Down

0 comments on commit 36b5de9

Please sign in to comment.