CL: Fix IsNormal support and add IsFinite
Not sure why I didn't hit this when adding isnormal
support, but there's a few flaws:
- The assert in emit_unary_intin` was too aggressive, and keying off the dest type for overloads was wrong, it should be the source for all unary ops.
- The special float queries don't go to
dx.op.unary
ordx.op.unaryBits
, they go todx.op.isSpecialFloat
(unary which returns a bool, rather than overload type or i32).
After that, hook up a nir intrinsic to vtn and to DXIL for isfinite
as well. Both are needed by the bruteforce test.
Edited by Jesse Natalie