nir: replace .lower_negate with .lower_ineg and .lower_sub with .has_fsub and .has_isub
These changes allow a more fine-grained control about the backends supporting these instructions.
The previous lower_negate option lowered both ineg and fneg. The fneg semantics have been clarified as of Version 1.5, Revision 1 of the SPIR-V specification, which means that the previous lowering to fsub is not a viable solution anymore. (I added the lowering manually to vc4, but eventually it should be changed.)
In a second step, the goal is to introduce an alternative fsub lowering using fmul(x, -1.0)
. (see !5523 (merged))