summaryrefslogtreecommitdiffstats
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.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index 9c4cb98c0..c44196bc5 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -1821,7 +1821,7 @@ IRInst* IRBuilder::_createInst(
m_dedupContext->getInstReplacementMap().tryGetValue(type, instReplacement);
type = (IRType*)instReplacement;
- if (getIROpInfo(op).flags & kIROpFlag_Hoistable)
+ if (isInstHoistable(op, type))
{
return _findOrEmitHoistableInst(
type,
@@ -2527,7 +2527,8 @@ static void addGlobalValue(IRBuilder* builder, IRInst* value)
//
if (value->parent)
{
- SLANG_ASSERT(getIROpInfo(value->getOp()).isHoistable());
+ SLANG_ASSERT(
+ getIROpInfo(value->getOp()).isHoistable() || isSpecConstRateType(value->getFullType()));
return;
}