summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-10-09 11:29:11 -0700
committerGitHub <noreply@github.com>2020-10-09 11:29:11 -0700
commitfab1c9f4c745ba84983c2448646376799d461e96 (patch)
tree3176c03987417c01b7220aaf13c35b665813c876 /source/slang/slang-ir.cpp
parent11f331771a8d5d80bc1dd317dcad5eb815e9cb55 (diff)
Support CUDA bindless texture in dynamic dispatch code. (#1575)
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 3820119d2..6f0cc43e2 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -2230,6 +2230,11 @@ namespace Slang
return (IRBasicType*)getType(kIROp_UIntType);
}
+ IRBasicType* IRBuilder::getUInt64Type()
+ {
+ return (IRBasicType*)getType(kIROp_UInt64Type);
+ }
+
IRStringType* IRBuilder::getStringType()
{
return (IRStringType*)getType(kIROp_StringType);
@@ -2750,6 +2755,12 @@ namespace Slang
return inst;
}
+ IRInst* IRBuilder::emitMakeUInt64(IRInst* low, IRInst* high)
+ {
+ IRInst* args[2] = {low, high};
+ return emitIntrinsicInst(getUInt64Type(), kIROp_makeUInt64, 2, args);
+ }
+
IRInst* IRBuilder::emitMakeRTTIObject(IRInst* typeInst)
{
auto inst = createInst<IRRTTIObject>(
@@ -3786,6 +3797,20 @@ namespace Slang
return inst;
}
+ IRInst* IRBuilder::emitShr(IRType* type, IRInst* left, IRInst* right)
+ {
+ auto inst = createInst<IRInst>(this, kIROp_Rsh, type, left, right);
+ addInst(inst);
+ return inst;
+ }
+
+ IRInst* IRBuilder::emitShl(IRType* type, IRInst* left, IRInst* right)
+ {
+ auto inst = createInst<IRInst>(this, kIROp_Lsh, type, left, right);
+ addInst(inst);
+ return inst;
+ }
+
IRInst* IRBuilder::emitGpuForeach(List<IRInst*> args)
{
auto inst = createInst<IRInst>(
@@ -5300,6 +5325,7 @@ namespace Slang
case kIROp_getAddr:
case kIROp_GetValueFromExistentialBox:
case kIROp_Construct:
+ case kIROp_makeUInt64:
case kIROp_makeVector:
case kIROp_MakeMatrix:
case kIROp_makeArray: