From fab1c9f4c745ba84983c2448646376799d461e96 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 9 Oct 2020 11:29:11 -0700 Subject: Support CUDA bindless texture in dynamic dispatch code. (#1575) --- source/slang/slang-ir.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'source/slang/slang-ir.cpp') 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( @@ -3786,6 +3797,20 @@ namespace Slang return inst; } + IRInst* IRBuilder::emitShr(IRType* type, IRInst* left, IRInst* right) + { + auto inst = createInst(this, kIROp_Rsh, type, left, right); + addInst(inst); + return inst; + } + + IRInst* IRBuilder::emitShl(IRType* type, IRInst* left, IRInst* right) + { + auto inst = createInst(this, kIROp_Lsh, type, left, right); + addInst(inst); + return inst; + } + IRInst* IRBuilder::emitGpuForeach(List args) { auto inst = createInst( @@ -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: -- cgit v1.2.3