summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-ir.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index 3a7ace37d..1b0f99cd3 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -4047,7 +4047,7 @@ IRInst* IRBuilder::emitCast(IRType* type, IRInst* value, bool fallbackToBuiltinC
/* From Float */
{kIROp_CastFloatToInt,
kIROp_FloatCast,
- {kIROp_CastFloatToInt, kIROp_IntCast},
+ {kIROp_Neq},
{kIROp_CastFloatToInt, kIROp_CastIntToPtr},
kIROp_CastToVoid},
/* From Bool */
@@ -4079,6 +4079,13 @@ IRInst* IRBuilder::emitCast(IRType* type, IRInst* value, bool fallbackToBuiltinC
matType->getColumnCount(),
matType->getLayout());
}
+
+ if (op.op0 == kIROp_Neq)
+ {
+ IRInst* args[2] = {value, emitDefaultConstruct(value->getDataType())};
+ return emitIntrinsicInst(type, op.op0, 2, args);
+ }
+
auto result = emitIntrinsicInst(t, op.op0, 1, &value);
if (op.op1 != kIROp_Nop)
{