ieee_mode specificaly governs behaviour of SNaNs.
OpenCL does not want this, OpenGL does not care.
Let's just disable it for everything but HSA compute.
IEEE mode disables output modifiers, which is good since output modifiers are not IEEE compatible and do not support output subnormal values.
I suppose if we have some other mechanism to ensure output modifiers are never used, then we could consider running with IEEE=0, but I think we need to continue running with IEEE=1 for compute. There may be users counting on current behavior.
"fmin and fmax behave as defined by C99 and may not match the IEEE 754-2008 definition for minNum and
maxNum with regard to signaling NaNs. Specifically, signaling NaNs may behave as quiet NaNs." -- OpenCL 1.2 specs
the CL CTS checks this behaviour, so we either need to flush SNaNs before calling v_min/v_max or disable the ieee_mode for CL. this patch does the latter.
as for GL compute I'd expect the behaviour to follow that of graphics GLSL, which is currently not the case
AFAIK this just enables sNaN handling (which won't work correctly anyway). The cost is is extra canonicalize instructions for min/max, and then prevents us from using omod when denormals are disabled.