From 05f403be96f0d991a3ef949e5a6a6fb3b416e1ff Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 19 Mar 2024 17:02:02 -0700 Subject: Fix regression on pointer address space handling. (#3797) --- source/slang/slang-ir-lower-buffer-element-type.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source') diff --git a/source/slang/slang-ir-lower-buffer-element-type.cpp b/source/slang/slang-ir-lower-buffer-element-type.cpp index eb5fba6a9..7deb5f151 100644 --- a/source/slang/slang-ir-lower-buffer-element-type.cpp +++ b/source/slang/slang-ir-lower-buffer-element-type.cpp @@ -651,7 +651,7 @@ namespace Slang for (UInt i = 0; i < user->getOperandCount(); i++) args.add(user->getOperand(i)); auto newArrayPtrVal = builder.emitFieldAddress( - builder.getPtrType(loweredElementTypeInfo.loweredInnerArrayType), + getLoweredPtrLikeType(ptrVal->getDataType(), loweredElementTypeInfo.loweredInnerArrayType), ptrVal, loweredElementTypeInfo.loweredInnerStructKey); builder.replaceOperand(use, newArrayPtrVal); @@ -745,7 +745,7 @@ namespace Slang { IRInst* resultInst = nullptr; auto dataPtr = builder.emitFieldAddress( - builder.getPtrType(matrixTypeInfo->loweredInnerArrayType), + getLoweredPtrLikeType(majorAddr->getDataType(), matrixTypeInfo->loweredInnerArrayType), majorGEP->getBase(), matrixTypeInfo->loweredInnerStructKey); if (getIntVal(matrixType->getLayout()) == SLANG_MATRIX_LAYOUT_COLUMN_MAJOR) @@ -774,7 +774,7 @@ namespace Slang if (storeInst->getOperand(0) != majorAddr) break; auto dataPtr = builder.emitFieldAddress( - builder.getPtrType(matrixTypeInfo->loweredInnerArrayType), + getLoweredPtrLikeType(majorAddr->getDataType(), matrixTypeInfo->loweredInnerArrayType), majorGEP->getBase(), matrixTypeInfo->loweredInnerStructKey); if (getIntVal(matrixType->getLayout()) == SLANG_MATRIX_LAYOUT_COLUMN_MAJOR) @@ -804,7 +804,7 @@ namespace Slang Swap(rowIndex, colIndex); } auto dataPtr = builder.emitFieldAddress( - builder.getPtrType(matrixTypeInfo->loweredInnerArrayType), + getLoweredPtrLikeType(majorAddr->getDataType(), matrixTypeInfo->loweredInnerArrayType), majorGEP->getBase(), matrixTypeInfo->loweredInnerStructKey); auto vectorAddr = builder.emitElementAddress(dataPtr, rowIndex); -- cgit v1.2.3