From 05903f708856a70d68bf41bbfb2b06620508dee0 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 15 Nov 2024 00:37:58 -0800 Subject: Embed core module in wasm build. (#5569) * Embed core module in wasm build. * format code * add uintptr_t case. --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --- source/slang/slang-ir.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) (limited to 'source/slang/slang-ir.cpp') diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp index 5e4db43b2..e7f82f5ad 100644 --- a/source/slang/slang-ir.cpp +++ b/source/slang/slang-ir.cpp @@ -5311,7 +5311,24 @@ IRInst* IRBuilder::emitSwizzle( IRType* type, IRInst* base, UInt elementCount, - UInt const* elementIndices) + uint64_t const* elementIndices) +{ + auto intType = getBasicType(BaseType::Int); + + IRInst* irElementIndices[4]; + for (UInt ii = 0; ii < elementCount; ++ii) + { + irElementIndices[ii] = getIntValue(intType, elementIndices[ii]); + } + + return emitSwizzle(type, base, elementCount, irElementIndices); +} + +IRInst* IRBuilder::emitSwizzle( + IRType* type, + IRInst* base, + UInt elementCount, + uint32_t const* elementIndices) { auto intType = getBasicType(BaseType::Int); @@ -5380,7 +5397,25 @@ IRInst* IRBuilder::emitSwizzleSet( IRInst* base, IRInst* source, UInt elementCount, - UInt const* elementIndices) + uint32_t const* elementIndices) +{ + auto intType = getBasicType(BaseType::Int); + + IRInst* irElementIndices[4]; + for (UInt ii = 0; ii < elementCount; ++ii) + { + irElementIndices[ii] = getIntValue(intType, elementIndices[ii]); + } + + return emitSwizzleSet(type, base, source, elementCount, irElementIndices); +} + +IRInst* IRBuilder::emitSwizzleSet( + IRType* type, + IRInst* base, + IRInst* source, + UInt elementCount, + uint64_t const* elementIndices) { auto intType = getBasicType(BaseType::Int); @@ -5419,7 +5454,24 @@ IRInst* IRBuilder::emitSwizzledStore( IRInst* dest, IRInst* source, UInt elementCount, - UInt const* elementIndices) + uint32_t const* elementIndices) +{ + auto intType = getBasicType(BaseType::Int); + + IRInst* irElementIndices[4]; + for (UInt ii = 0; ii < elementCount; ++ii) + { + irElementIndices[ii] = getIntValue(intType, elementIndices[ii]); + } + + return emitSwizzledStore(dest, source, elementCount, irElementIndices); +} + +IRInst* IRBuilder::emitSwizzledStore( + IRInst* dest, + IRInst* source, + UInt elementCount, + uint64_t const* elementIndices) { auto intType = getBasicType(BaseType::Int); -- cgit v1.2.3