On 12/13/21 12:03, Giovanni Mascellani wrote:
Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com
For the record, add_unary_arithmetic_expr is not completely correct here, because, for example, it produces an int4 output type when input is int4, while native would convert to float4.
However, integer floor is not implemented anyway, and other intrinsics are broken in the same way, so there's not reason to delay this patch.
Eventually I think it would make sense to have another helper called something like "add_unary_float_arithmetic_expr" that always converts its input to half4 or float4.
I don't think it needs to convert anything. For integer input it simply should returns it as a result, for floor()/round()/trunc()/ceil(). After that normal cast should happen, resulting in ftoi/itof. Or maybe for integer case it's enough to return cast node to arg type.
By the way, is it possible to get textual output right away, without going through dxbc -> disasm?