nir: rework and fix rotate lowering
No driver supports urol/uror on all bit sizes. Intel gen11+ only for 16 and 32 bit, Nvidia GV100+ only for 32 bit.
Also turn the lower
into a has
option as only two drivers actually
support uror
and urol
.
Fixes crashes with CL integer_rotate on iris and nouveau since we emit
urol for rotate
.
Fixes: fe0965af ("spirv: Don't use libclc for rotate")
Note: this might also allow more drivers to implement urol
and uror
now that it's not a all or nothing thing.
Edited by Karol Herbst