nir: add legal bit_sizes to intrinsics

With OpenCL some system values match the address bits, but in GLSL we also
have some system values being 64 bit like subgroup masks.

With this it is possible to adjust the builder functions so that depending
on the bit_sizes the correct bit_size is used or an additional argument is
added in case of multiple possible values.

v2: validate dest bit_size
v3: generate hex values in python code
    remove useless imports
    rename and move bit_sizes
v4: add 1 to legal bit_sizes for front_face

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Karol Herbst
2018-07-19 13:04:43 +02:00
parent 27bd07e230
commit 4125211e9c
4 changed files with 30 additions and 13 deletions

View File

@@ -1313,6 +1313,9 @@ typedef struct {
*/
unsigned dest_components;
/** bitfield of legal bit sizes */
unsigned dest_bit_sizes;
/** the number of constant indices used by the intrinsic */
unsigned num_indices;