intel/compiler: add setup_imm_(u)b helpers
The hardware doesn't support byte immediates, so similar to setup_imm_df() for doubles, these helpers work by loading the constant value into a VGRF. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -540,6 +540,12 @@ fs_reg shuffle_for_32bit_write(const brw::fs_builder &bld,
|
||||
fs_reg setup_imm_df(const brw::fs_builder &bld,
|
||||
double v);
|
||||
|
||||
fs_reg setup_imm_b(const brw::fs_builder &bld,
|
||||
int8_t v);
|
||||
|
||||
fs_reg setup_imm_ub(const brw::fs_builder &bld,
|
||||
uint8_t v);
|
||||
|
||||
enum brw_barycentric_mode brw_barycentric_mode(enum glsl_interp_mode mode,
|
||||
nir_intrinsic_op op);
|
||||
|
||||
|
@@ -5396,3 +5396,19 @@ setup_imm_df(const fs_builder &bld, double v)
|
||||
|
||||
return component(retype(tmp, BRW_REGISTER_TYPE_DF), 0);
|
||||
}
|
||||
|
||||
fs_reg
|
||||
setup_imm_b(const fs_builder &bld, int8_t v)
|
||||
{
|
||||
const fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_B);
|
||||
bld.MOV(tmp, brw_imm_w(v));
|
||||
return tmp;
|
||||
}
|
||||
|
||||
fs_reg
|
||||
setup_imm_ub(const fs_builder &bld, uint8_t v)
|
||||
{
|
||||
const fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UB);
|
||||
bld.MOV(tmp, brw_imm_uw(v));
|
||||
return tmp;
|
||||
}
|
||||
|
Reference in New Issue
Block a user