Spec mentions that implementation may assume arguments are not
Inf if the entrypoint is not declared with SignedZeroInfNanPreserve
and can perform optimizations.
Components: Vulkan
VK-GL-CTS Issue: 3073
Affected tests:
dEQP-VK.spirv_assembly.instruction.compute.float16.*.atan2
dEQP-VK.spirv_assembly.instruction.graphics.float16.*.atan2*
dEQP-VK.glsl.builtin.precision.atan2.*
Change-Id: I6e1fbc14a5654422cf88e1453fae0774bfce0bb6
ret |= ctx.format.roundOut(Interval(-DE_PI_DOUBLE, DE_PI_DOUBLE), true);
}
- if (ctx.format.hasInf() != YES && (!yi.isFinite() || !xi.isFinite()))
+ if (!yi.isFinite() || !xi.isFinite())
{
// Infinities may not be supported, allow anything, including NaN
ret |= TCU_NAN;
const double yd (y.asDouble());
double result (0.0);
- if (x.isZero() && y.isZero())
+ if ((x.isZero() && y.isZero())||(x.isInf() && y.isInf()))
return false;
if (getFlavor() == 0)