turnip: 16-bit float/storage v2
It is a rebased version of !4695 (closed) with additional fixes to make all tests pass.
dEQP-VK.spirv_assembly.instruction.*.16bit_storage.* dEQP-VK.spirv_assembly.instruction.*.float16.* dEQP-VK.spirv_assembly.*.float_controls.*
Additional things that were done:
- Changed "freedreno/ir3: invert IR3_REG_EVEN" to have
IR3_REG_RTZon all cat1 except
- Fixed shift for 16b integers which are used after lowering of frexp_exp;
- Found a toggle to enable/disable infinities for float16;
This MR is ready for review with few caveats:
- The "TEST: clamp branchstack to 32" is necessary to pass all tests, however it is not related to float16. It could be removed.
I'll look into how blob deals with bigger branch depths in a general case, but that would be a matter of another MR.Would be resolved by !9859 (merged)
TheFixed asserts for 16b STIB
VK_KHR_16bit_storageis WIP because I just commented out two asserts instead of changing them to be correct.