From c7393865b4105202d74d27427dabf145c1423942 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 3 Aug 2020 10:19:50 -0700 Subject: [PATCH] Fixed issue passing a splat arg to a params parameter --- IDEHelper/Compiler/BfExprEvaluator.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index e5e502d0..2cf0eb22 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -5910,7 +5910,10 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu argValue = mModule->LoadValue(argValue); auto firstAddr = mModule->mBfIRBuilder->CreateInBoundsGEP(expandedParamsArray.mValue, 0, firstElem->mDataIdx); auto indexedAddr = mModule->CreateIndexedValue(argValue.mType, firstAddr, extendedParamIdx); - auto storeInst = mModule->mBfIRBuilder->CreateAlignedStore(argValue.mValue, indexedAddr, argValue.mType->mAlign); + if (argValue.IsSplat()) + mModule->AggregateSplatIntoAddr(argValue, indexedAddr); + else + mModule->mBfIRBuilder->CreateAlignedStore(argValue.mValue, indexedAddr, argValue.mType->mAlign); } } }