diff options
| author | Yong He <yonghe@outlook.com> | 2020-10-09 11:29:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-09 11:29:11 -0700 |
| commit | fab1c9f4c745ba84983c2448646376799d461e96 (patch) | |
| tree | 3176c03987417c01b7220aaf13c35b665813c876 /source/slang/slang-ir.cpp | |
| parent | 11f331771a8d5d80bc1dd317dcad5eb815e9cb55 (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.cpp | 26 |
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: |
