intel/eu/reg: Add a subscript() helper
This is similar to the identically named fs_reg helper. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
@@ -896,6 +896,22 @@ spread(struct brw_reg reg, unsigned s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reinterpret each channel of register \p reg as a vector of values of the
|
||||||
|
* given smaller type and take the i-th subcomponent from each.
|
||||||
|
*/
|
||||||
|
static inline struct brw_reg
|
||||||
|
subscript(struct brw_reg reg, enum brw_reg_type type, unsigned i)
|
||||||
|
{
|
||||||
|
if (reg.file == IMM)
|
||||||
|
return reg;
|
||||||
|
|
||||||
|
unsigned scale = type_sz(reg.type) / type_sz(type);
|
||||||
|
assert(scale >= 1 && i < scale);
|
||||||
|
|
||||||
|
return suboffset(retype(spread(reg, scale), type), i);
|
||||||
|
}
|
||||||
|
|
||||||
static inline struct brw_reg
|
static inline struct brw_reg
|
||||||
vec16(struct brw_reg reg)
|
vec16(struct brw_reg reg)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user