glsl: Simplify FCMP emission
This commit is contained in:
		| @@ -13,12 +13,10 @@ namespace Shader::Backend::GLSL { | |||||||
| namespace { | namespace { | ||||||
| void Compare(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, std::string_view rhs, | void Compare(EmitContext& ctx, IR::Inst& inst, std::string_view lhs, std::string_view rhs, | ||||||
|              std::string_view op, bool ordered) { |              std::string_view op, bool ordered) { | ||||||
|     ctx.AddU1("{}={}{}{}", inst, lhs, op, rhs, lhs, rhs); |     const auto nan_op{ordered ? "&&!" : "||"}; | ||||||
|     if (ordered) { |     ctx.AddU1("{}={}{}{}" | ||||||
|         ctx.Add("&&!isnan({})&&!isnan({});", lhs, rhs); |               "{}isnan({}){}isnan({});", | ||||||
|     } else { |               inst, lhs, op, rhs, nan_op, lhs, nan_op, rhs); | ||||||
|         ctx.Add("||isnan({})||isnan({});", lhs, rhs); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
| bool IsPrecise(const IR::Inst& inst) { | bool IsPrecise(const IR::Inst& inst) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user