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.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index 0a52561c0..57dac80b6 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -3464,6 +3464,55 @@ namespace Slang
return inst;
}
+ IRInst* IRBuilder::emitWaveMaskBallot(IRType* type, IRInst* mask, IRInst* condition)
+ {
+ auto inst = createInst<IRInst>(
+ this,
+ kIROp_WaveMaskBallot,
+ type,
+ mask,
+ condition);
+ addInst(inst);
+ return inst;
+ }
+
+ IRInst* IRBuilder::emitWaveMaskMatch(IRType* type, IRInst* mask, IRInst* value)
+ {
+ auto inst = createInst<IRInst>(
+ this,
+ kIROp_WaveMaskMatch,
+ type,
+ mask,
+ value);
+ addInst(inst);
+ return inst;
+ }
+
+ IRInst* IRBuilder::emitBitAnd(IRType* type, IRInst* left, IRInst* right)
+ {
+ auto inst = createInst<IRInst>(
+ this,
+ kIROp_BitAnd,
+ type,
+ left,
+ right);
+ addInst(inst);
+ return inst;
+ }
+
+ IRInst* IRBuilder::emitBitNot(IRType* type, IRInst* value)
+ {
+ auto inst = createInst<IRInst>(
+ this,
+ kIROp_BitNot,
+ type,
+ value);
+ addInst(inst);
+ return inst;
+ }
+
+
+
//
// Decorations
//