summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir.cpp')
-rw-r--r--source/slang/slang-ir.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index bd2271953..e624ef1fd 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -2809,6 +2809,13 @@ namespace Slang
operands);
}
+ IRVectorType* IRBuilder::getVectorType(
+ IRType* elementType,
+ IRIntegerValue elementCount)
+ {
+ return getVectorType(elementType, getIntValue(getIntType(), elementCount));
+ }
+
IRMatrixType* IRBuilder::getMatrixType(
IRType* elementType,
IRInst* rowCount,
@@ -4607,6 +4614,13 @@ namespace Slang
IRInst* IRBuilder::emitElementExtract(
IRInst* base,
+ IRIntegerValue index)
+ {
+ return emitElementExtract(base, getIntValue(getIntType(), index));
+ }
+
+ IRInst* IRBuilder::emitElementExtract(
+ IRInst* base,
const ArrayView<IRInst*>& accessChain)
{
for (auto access : accessChain)
@@ -4653,6 +4667,13 @@ namespace Slang
IRInst* IRBuilder::emitElementAddress(
IRInst* basePtr,
+ IRIntegerValue index)
+ {
+ return emitElementAddress(basePtr, getIntValue(getIntType(), index));
+ }
+
+ IRInst* IRBuilder::emitElementAddress(
+ IRInst* basePtr,
IRInst* index)
{
IRType* type = nullptr;
@@ -4726,6 +4747,11 @@ namespace Slang
return inst;
}
+ IRInst* IRBuilder::emitUpdateElement(IRInst* base, IRIntegerValue index, IRInst* newElement)
+ {
+ return emitUpdateElement(base, getIntValue(getIntType(), index), newElement);
+ }
+
IRInst* IRBuilder::emitUpdateElement(IRInst* base, const List<IRInst*>& accessChain, IRInst* newElement)
{
List<IRInst*> args;