nir: Add explicitly sized types
v2: Fix size/type mask to properly handle 8-bit types. v3: Add helpers to get the bitsize and base type of a nir_alu_type enum. Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:

committed by
Samuel Iglesias Gonsálvez

parent
7d021cb15e
commit
78f1919429
@@ -613,9 +613,36 @@ typedef enum {
|
||||
nir_type_float,
|
||||
nir_type_int,
|
||||
nir_type_uint,
|
||||
nir_type_bool
|
||||
nir_type_bool,
|
||||
nir_type_bool32 = 32 | nir_type_bool,
|
||||
nir_type_int8 = 8 | nir_type_int,
|
||||
nir_type_int16 = 16 | nir_type_int,
|
||||
nir_type_int32 = 32 | nir_type_int,
|
||||
nir_type_int64 = 64 | nir_type_int,
|
||||
nir_type_uint8 = 8 | nir_type_uint,
|
||||
nir_type_uint16 = 16 | nir_type_uint,
|
||||
nir_type_uint32 = 32 | nir_type_uint,
|
||||
nir_type_uint64 = 64 | nir_type_uint,
|
||||
nir_type_float16 = 16 | nir_type_float,
|
||||
nir_type_float32 = 32 | nir_type_float,
|
||||
nir_type_float64 = 64 | nir_type_float,
|
||||
} nir_alu_type;
|
||||
|
||||
#define NIR_ALU_TYPE_SIZE_MASK 0xfffffff8
|
||||
#define NIR_ALU_TYPE_BASE_TYPE_MASK 0x00000007
|
||||
|
||||
static inline unsigned
|
||||
nir_alu_type_get_type_size(nir_alu_type type)
|
||||
{
|
||||
return type & NIR_ALU_TYPE_SIZE_MASK;
|
||||
}
|
||||
|
||||
static inline unsigned
|
||||
nir_alu_type_get_base_type(nir_alu_type type)
|
||||
{
|
||||
return type & NIR_ALU_TYPE_BASE_TYPE_MASK;
|
||||
}
|
||||
|
||||
typedef enum {
|
||||
NIR_OP_IS_COMMUTATIVE = (1 << 0),
|
||||
NIR_OP_IS_ASSOCIATIVE = (1 << 1),
|
||||
|
Reference in New Issue
Block a user