mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 04:30:10 +01:00
nir: add and use nir_imod_imm
Just a short-hand, really. Makes the code a bit easier to read. Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23461>
This commit is contained in:
parent
e1f4c79288
commit
3a64e3425f
7 changed files with 16 additions and 10 deletions
|
|
@ -223,8 +223,8 @@ intersect_ray_amd_software_tri(struct radv_device *device, nir_builder *b, nir_s
|
|||
b, nir_fge(b, abs_dirs[0], abs_dirs[1]),
|
||||
nir_bcsel(b, nir_fge(b, abs_dirs[0], abs_dirs[2]), nir_imm_int(b, 0), nir_imm_int(b, 2)),
|
||||
nir_bcsel(b, nir_fge(b, abs_dirs[1], abs_dirs[2]), nir_imm_int(b, 1), nir_imm_int(b, 2)));
|
||||
nir_ssa_def *kx = nir_imod(b, nir_iadd_imm(b, kz, 1), nir_imm_int(b, 3));
|
||||
nir_ssa_def *ky = nir_imod(b, nir_iadd_imm(b, kx, 1), nir_imm_int(b, 3));
|
||||
nir_ssa_def *kx = nir_imod_imm(b, nir_iadd_imm(b, kz, 1), 3);
|
||||
nir_ssa_def *ky = nir_imod_imm(b, nir_iadd_imm(b, kx, 1), 3);
|
||||
nir_ssa_def *k_indices[3] = {kx, ky, kz};
|
||||
nir_ssa_def *k = nir_vec(b, k_indices, 3);
|
||||
|
||||
|
|
|
|||
|
|
@ -892,6 +892,12 @@ nir_ushr_imm(nir_builder *build, nir_ssa_def *x, uint32_t y)
|
|||
}
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
nir_imod_imm(nir_builder *build, nir_ssa_def *x, uint64_t y)
|
||||
{
|
||||
return nir_imod(build, x, nir_imm_intN_t(build, y, x->bit_size));
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
nir_udiv_imm(nir_builder *build, nir_ssa_def *x, uint64_t y)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ d3d12_emit_lines(struct d3d12_context *ctx, struct d3d12_gs_variant_key *key)
|
|||
|
||||
d3d12_begin_emit_primitives_gs(&emit_ctx, ctx, key, GL_LINE_STRIP, 6);
|
||||
|
||||
nir_ssa_def *next_index = nir_imod(b, nir_iadd_imm(b, emit_ctx.loop_index, 1), nir_imm_int(b, 3));
|
||||
nir_ssa_def *next_index = nir_imod_imm(b, nir_iadd_imm(b, emit_ctx.loop_index, 1), 3);
|
||||
|
||||
/* First vertex */
|
||||
for (unsigned i = 0; i < emit_ctx.num_vars; ++i) {
|
||||
|
|
@ -436,12 +436,12 @@ d3d12_emit_triangles(struct d3d12_context *ctx, struct d3d12_gs_variant_key *key
|
|||
incr = nir_imm_int(b, 3);
|
||||
|
||||
if (key->alternate_tri) {
|
||||
nir_ssa_def *odd = nir_imod(b, nir_load_primitive_id(b), nir_imm_int(b, 2));
|
||||
nir_ssa_def *odd = nir_imod_imm(b, nir_load_primitive_id(b), 2);
|
||||
incr = nir_isub(b, incr, odd);
|
||||
}
|
||||
|
||||
assert(incr != NULL);
|
||||
nir_ssa_def *index = nir_imod(b, nir_iadd(b, emit_ctx.loop_index, incr), nir_imm_int(b, 3));
|
||||
nir_ssa_def *index = nir_imod_imm(b, nir_iadd(b, emit_ctx.loop_index, incr), 3);
|
||||
for (unsigned i = 0; i < emit_ctx.num_vars; ++i) {
|
||||
nir_deref_instr *in_value = nir_build_deref_array(b, nir_build_deref_var(b, emit_ctx.in[i]), index);
|
||||
copy_vars(b, nir_build_deref_var(b, emit_ctx.out[i]), in_value);
|
||||
|
|
|
|||
|
|
@ -421,8 +421,8 @@ lower_pv_mode_gs_ring_index(nir_builder *b,
|
|||
nir_ssa_def *index)
|
||||
{
|
||||
nir_ssa_def *ring_offset = nir_load_var(b, state->ring_offset);
|
||||
return nir_imod(b, nir_iadd(b, index, ring_offset),
|
||||
nir_imm_int(b, state->ring_size));
|
||||
return nir_imod_imm(b, nir_iadd(b, index, ring_offset),
|
||||
state->ring_size);
|
||||
}
|
||||
|
||||
/* Given the final deref of chain of derefs this function will walk up the chain
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ handle_cube_gather(nir_builder *b, nir_tex_instr *tex, nir_ssa_def *coord)
|
|||
};
|
||||
|
||||
nir_ssa_def *array_slice_2d = nir_f2i32(b, nir_channel(b, coord, 2));
|
||||
nir_ssa_def *face = nir_imod(b, array_slice_2d, nir_imm_int(b, 6));
|
||||
nir_ssa_def *face = nir_imod_imm(b, array_slice_2d, 6);
|
||||
nir_ssa_def *array_slice_cube_base = nir_isub(b, array_slice_2d, face);
|
||||
|
||||
nir_ssa_def *channels[4];
|
||||
|
|
|
|||
|
|
@ -493,7 +493,7 @@ check_for_weird_packing(nir_builder *b, struct pbo_shader_data *sd, unsigned com
|
|||
nir_ige_imm(b, sd->channels, component),
|
||||
nir_ior(b,
|
||||
nir_ine(b, c, sd->bits1),
|
||||
nir_ine_imm(b, nir_imod(b, c, nir_imm_int(b, 8)), 0)),
|
||||
nir_ine_imm(b, nir_imod_imm(b, c, 8), 0)),
|
||||
nir_imm_false(b));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ handle_cube_gather(nir_builder *b, nir_tex_instr *tex, nir_ssa_def *coord)
|
|||
};
|
||||
|
||||
nir_ssa_def *array_slice_2d = nir_f2i32(b, nir_channel(b, coord, 2));
|
||||
nir_ssa_def *face = nir_imod(b, array_slice_2d, nir_imm_int(b, 6));
|
||||
nir_ssa_def *face = nir_imod_imm(b, array_slice_2d, 6);
|
||||
nir_ssa_def *array_slice_cube_base = nir_isub(b, array_slice_2d, face);
|
||||
|
||||
nir_ssa_def *channels[4];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue