nir+drivers: add helpers to get # of src/dest components

Add helpers to get the number of src/dest components for an intrinsic,
and update spots that were open-coding this logic to use the helpers
instead.

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Rob Clark
2018-03-28 08:32:10 -04:00
parent 91f9450b32
commit 51888bf07d
6 changed files with 32 additions and 25 deletions

View File

@@ -1146,6 +1146,28 @@ typedef struct {
extern const nir_intrinsic_info nir_intrinsic_infos[nir_num_intrinsics];
static inline unsigned
nir_intrinsic_src_components(nir_intrinsic_instr *intr, unsigned srcn)
{
const nir_intrinsic_info *info = &nir_intrinsic_infos[intr->intrinsic];
assert(srcn < info->num_srcs);
if (info->src_components[srcn])
return info->src_components[srcn];
else
return intr->num_components;
}
static inline unsigned
nir_intrinsic_dest_components(nir_intrinsic_instr *intr)
{
const nir_intrinsic_info *info = &nir_intrinsic_infos[intr->intrinsic];
if (!info->has_dest)
return 0;
else if (info->dest_components)
return info->dest_components;
else
return intr->num_components;
}
#define INTRINSIC_IDX_ACCESSORS(name, flag, type) \
static inline type \