From a09d554721ecf0c6d967d5f55b3416e3284e71f2 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 27 Feb 2025 22:22:46 -0800 Subject: Fix regression in float to bool conversion. (#6497) --- source/slang/slang-ir.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source') 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) { -- cgit v1.2.3