nir s/nir_get_ssa_scalar/nir_get_scalar/
Generated with sed: sed -i -e 's/nir_get_ssa_scalar/nir_get_scalar/g' src/**/*.h src/**/*.c src/**/*.cpp Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24703>
This commit is contained in:

committed by
Marge Bot

parent
65b6ac8aa4
commit
b781dd6200
@@ -876,8 +876,8 @@ ac_nir_gs_shader_query(nir_builder *b,
|
|||||||
u_foreach_bit (i, b->shader->info.gs.active_stream_mask) {
|
u_foreach_bit (i, b->shader->info.gs.active_stream_mask) {
|
||||||
assert(vertex_count[i] && primitive_count[i]);
|
assert(vertex_count[i] && primitive_count[i]);
|
||||||
|
|
||||||
nir_scalar vtx_cnt = nir_get_ssa_scalar(vertex_count[i], 0);
|
nir_scalar vtx_cnt = nir_get_scalar(vertex_count[i], 0);
|
||||||
nir_scalar prm_cnt = nir_get_ssa_scalar(primitive_count[i], 0);
|
nir_scalar prm_cnt = nir_get_scalar(primitive_count[i], 0);
|
||||||
|
|
||||||
if (nir_scalar_is_const(vtx_cnt) && nir_scalar_is_const(prm_cnt)) {
|
if (nir_scalar_is_const(vtx_cnt) && nir_scalar_is_const(prm_cnt)) {
|
||||||
unsigned gs_vtx_cnt = nir_scalar_as_uint(vtx_cnt);
|
unsigned gs_vtx_cnt = nir_scalar_as_uint(vtx_cnt);
|
||||||
|
@@ -384,7 +384,7 @@ move_tex_coords(struct move_tex_coords_state *state, nir_function_impl *impl, ni
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
for (unsigned i = 0; i < tex->coord_components; i++)
|
for (unsigned i = 0; i < tex->coord_components; i++)
|
||||||
components[i] = nir_get_ssa_scalar(build_coordinate(state, components[i], infos[i]), 0);
|
components[i] = nir_get_scalar(build_coordinate(state, components[i], infos[i]), 0);
|
||||||
|
|
||||||
nir_def *linear_vgpr = nir_vec_scalars(&state->toplevel_b, components, tex->coord_components);
|
nir_def *linear_vgpr = nir_vec_scalars(&state->toplevel_b, components, tex->coord_components);
|
||||||
lower_tex_coords(&state->toplevel_b, tex, &linear_vgpr, state->options);
|
lower_tex_coords(&state->toplevel_b, tex, &linear_vgpr, state->options);
|
||||||
@@ -425,7 +425,7 @@ move_fddxy(struct move_tex_coords_state *state, nir_function_impl *impl, nir_alu
|
|||||||
coord_info infos[NIR_MAX_VEC_COMPONENTS];
|
coord_info infos[NIR_MAX_VEC_COMPONENTS];
|
||||||
bool can_move_all = true;
|
bool can_move_all = true;
|
||||||
for (unsigned i = 0; i < num_components; i++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
components[i] = nir_scalar_chase_alu_src(nir_get_ssa_scalar(&instr->def, i), 0);
|
components[i] = nir_scalar_chase_alu_src(nir_get_scalar(&instr->def, i), 0);
|
||||||
components[i] = nir_scalar_chase_movs(components[i]);
|
components[i] = nir_scalar_chase_movs(components[i]);
|
||||||
can_move_all &= can_move_coord(components[i], &infos[i]);
|
can_move_all &= can_move_coord(components[i], &infos[i]);
|
||||||
}
|
}
|
||||||
@@ -434,7 +434,7 @@ move_fddxy(struct move_tex_coords_state *state, nir_function_impl *impl, nir_alu
|
|||||||
|
|
||||||
for (unsigned i = 0; i < num_components; i++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
nir_def *def = build_coordinate(state, components[i], infos[i]);
|
nir_def *def = build_coordinate(state, components[i], infos[i]);
|
||||||
components[i] = nir_get_ssa_scalar(def, 0);
|
components[i] = nir_get_scalar(def, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
nir_def *def = nir_vec_scalars(&state->toplevel_b, components, num_components);
|
nir_def *def = nir_vec_scalars(&state->toplevel_b, components, num_components);
|
||||||
|
@@ -128,7 +128,7 @@ match_soa(nir_builder *b, struct match *match, unsigned format_shift)
|
|||||||
nir_def *rewrite = nir_iadd_imm(
|
nir_def *rewrite = nir_iadd_imm(
|
||||||
b, nir_imul_imm(b, unmultiplied, multiplier_shifted), offset_shifted);
|
b, nir_imul_imm(b, unmultiplied, multiplier_shifted), offset_shifted);
|
||||||
|
|
||||||
match->offset = nir_get_ssa_scalar(rewrite, 0);
|
match->offset = nir_get_scalar(rewrite, 0);
|
||||||
match->shift = 0;
|
match->shift = 0;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -161,7 +161,7 @@ match_address(nir_builder *b, nir_scalar base, int8_t format_shift)
|
|||||||
|
|
||||||
return (struct match){
|
return (struct match){
|
||||||
.base = summands[1 - i],
|
.base = summands[1 - i],
|
||||||
.offset = nir_get_ssa_scalar(nir_imm_int(b, value), 0),
|
.offset = nir_get_scalar(nir_imm_int(b, value), 0),
|
||||||
.shift = -format_shift,
|
.shift = -format_shift,
|
||||||
.sign_extend = false,
|
.sign_extend = false,
|
||||||
};
|
};
|
||||||
@@ -215,7 +215,7 @@ match_address(nir_builder *b, nir_scalar base, int8_t format_shift)
|
|||||||
/* Only fold in if we wouldn't overflow the lsl field */
|
/* Only fold in if we wouldn't overflow the lsl field */
|
||||||
if (new_shift <= 2) {
|
if (new_shift <= 2) {
|
||||||
match.offset =
|
match.offset =
|
||||||
nir_get_ssa_scalar(nir_imul_imm(b, multiplied_ssa, multiplier), 0);
|
nir_get_scalar(nir_imul_imm(b, multiplied_ssa, multiplier), 0);
|
||||||
match.shift = new_shift;
|
match.shift = new_shift;
|
||||||
} else if (new_shift > 0) {
|
} else if (new_shift > 0) {
|
||||||
/* For large shifts, we do need a multiply, but we can
|
/* For large shifts, we do need a multiply, but we can
|
||||||
@@ -226,7 +226,7 @@ match_address(nir_builder *b, nir_scalar base, int8_t format_shift)
|
|||||||
nir_def *rewrite =
|
nir_def *rewrite =
|
||||||
nir_imul_imm(b, multiplied_ssa, multiplier << new_shift);
|
nir_imul_imm(b, multiplied_ssa, multiplier << new_shift);
|
||||||
|
|
||||||
match.offset = nir_get_ssa_scalar(rewrite, 0);
|
match.offset = nir_get_scalar(rewrite, 0);
|
||||||
match.shift = 0;
|
match.shift = 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@@ -2638,7 +2638,7 @@ nir_scalar_chase_alu_src(nir_scalar s, unsigned alu_src_idx)
|
|||||||
nir_scalar nir_scalar_chase_movs(nir_scalar s);
|
nir_scalar nir_scalar_chase_movs(nir_scalar s);
|
||||||
|
|
||||||
static inline nir_scalar
|
static inline nir_scalar
|
||||||
nir_get_ssa_scalar(nir_def *def, unsigned channel)
|
nir_get_scalar(nir_def *def, unsigned channel)
|
||||||
{
|
{
|
||||||
nir_scalar s = { def, channel };
|
nir_scalar s = { def, channel };
|
||||||
return s;
|
return s;
|
||||||
@@ -2648,13 +2648,13 @@ nir_get_ssa_scalar(nir_def *def, unsigned channel)
|
|||||||
static inline nir_scalar
|
static inline nir_scalar
|
||||||
nir_scalar_resolved(nir_def *def, unsigned channel)
|
nir_scalar_resolved(nir_def *def, unsigned channel)
|
||||||
{
|
{
|
||||||
return nir_scalar_chase_movs(nir_get_ssa_scalar(def, channel));
|
return nir_scalar_chase_movs(nir_get_scalar(def, channel));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint64_t
|
static inline uint64_t
|
||||||
nir_alu_src_as_uint(nir_alu_src src)
|
nir_alu_src_as_uint(nir_alu_src src)
|
||||||
{
|
{
|
||||||
nir_scalar scalar = nir_get_ssa_scalar(src.src.ssa, src.swizzle[0]);
|
nir_scalar scalar = nir_get_scalar(src.src.ssa, src.swizzle[0]);
|
||||||
return nir_scalar_as_uint(scalar);
|
return nir_scalar_as_uint(scalar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1215,10 +1215,10 @@ nir_pad_vector(nir_builder *b, nir_def *src, unsigned num_components)
|
|||||||
return src;
|
return src;
|
||||||
|
|
||||||
nir_scalar components[NIR_MAX_VEC_COMPONENTS];
|
nir_scalar components[NIR_MAX_VEC_COMPONENTS];
|
||||||
nir_scalar undef = nir_get_ssa_scalar(nir_undef(b, 1, src->bit_size), 0);
|
nir_scalar undef = nir_get_scalar(nir_undef(b, 1, src->bit_size), 0);
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
for (; i < src->num_components; i++)
|
for (; i < src->num_components; i++)
|
||||||
components[i] = nir_get_ssa_scalar(src, i);
|
components[i] = nir_get_scalar(src, i);
|
||||||
for (; i < num_components; i++)
|
for (; i < num_components; i++)
|
||||||
components[i] = undef;
|
components[i] = undef;
|
||||||
|
|
||||||
@@ -1239,10 +1239,10 @@ nir_pad_vector_imm_int(nir_builder *b, nir_def *src, uint64_t imm_val,
|
|||||||
return src;
|
return src;
|
||||||
|
|
||||||
nir_scalar components[NIR_MAX_VEC_COMPONENTS];
|
nir_scalar components[NIR_MAX_VEC_COMPONENTS];
|
||||||
nir_scalar imm = nir_get_ssa_scalar(nir_imm_intN_t(b, imm_val, src->bit_size), 0);
|
nir_scalar imm = nir_get_scalar(nir_imm_intN_t(b, imm_val, src->bit_size), 0);
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
for (; i < src->num_components; i++)
|
for (; i < src->num_components; i++)
|
||||||
components[i] = nir_get_ssa_scalar(src, i);
|
components[i] = nir_get_scalar(src, i);
|
||||||
for (; i < num_components; i++)
|
for (; i < num_components; i++)
|
||||||
components[i] = imm;
|
components[i] = imm;
|
||||||
|
|
||||||
|
@@ -49,9 +49,9 @@ lower_cube_size(nir_builder *b, nir_intrinsic_instr *intrin)
|
|||||||
unsigned coord_comps = intrin->def.num_components;
|
unsigned coord_comps = intrin->def.num_components;
|
||||||
for (unsigned c = 0; c < coord_comps; c++) {
|
for (unsigned c = 0; c < coord_comps; c++) {
|
||||||
if (c == 2) {
|
if (c == 2) {
|
||||||
comps[2] = nir_get_ssa_scalar(nir_idiv(b, nir_channel(b, size, 2), nir_imm_int(b, 6)), 0);
|
comps[2] = nir_get_scalar(nir_idiv(b, nir_channel(b, size, 2), nir_imm_int(b, 6)), 0);
|
||||||
} else {
|
} else {
|
||||||
comps[c] = nir_get_ssa_scalar(size, c);
|
comps[c] = nir_get_scalar(size, c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -564,10 +564,10 @@ nir_lower_io_to_vector_impl(nir_function_impl *impl, nir_variable_mode modes)
|
|||||||
for (unsigned c = 0; c < intrin->num_components; c++) {
|
for (unsigned c = 0; c < intrin->num_components; c++) {
|
||||||
if (new_frac + c >= old_frac &&
|
if (new_frac + c >= old_frac &&
|
||||||
(old_wrmask & 1 << (new_frac + c - old_frac))) {
|
(old_wrmask & 1 << (new_frac + c - old_frac))) {
|
||||||
comps[c] = nir_get_ssa_scalar(old_value,
|
comps[c] = nir_get_scalar(old_value,
|
||||||
new_frac + c - old_frac);
|
new_frac + c - old_frac);
|
||||||
} else {
|
} else {
|
||||||
comps[c] = nir_get_ssa_scalar(nir_undef(&b, old_value->num_components,
|
comps[c] = nir_get_scalar(nir_undef(&b, old_value->num_components,
|
||||||
old_value->bit_size),
|
old_value->bit_size),
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
@@ -178,7 +178,7 @@ get_deref_reg_location(nir_deref_instr *deref,
|
|||||||
/* Avoid emitting iadd with 0, which is otherwise common, since this
|
/* Avoid emitting iadd with 0, which is otherwise common, since this
|
||||||
* pass runs late enough that nothing will clean it up.
|
* pass runs late enough that nothing will clean it up.
|
||||||
*/
|
*/
|
||||||
nir_scalar scal = nir_get_ssa_scalar(indirect, 0);
|
nir_scalar scal = nir_get_scalar(indirect, 0);
|
||||||
if (nir_scalar_is_const(scal))
|
if (nir_scalar_is_const(scal))
|
||||||
indirect = nir_iadd_imm(b, offset, nir_scalar_as_uint(scal));
|
indirect = nir_iadd_imm(b, offset, nir_scalar_as_uint(scal));
|
||||||
else
|
else
|
||||||
|
@@ -803,14 +803,14 @@ fold_16bit_src(nir_builder *b, nir_instr *instr, nir_src *src, nir_alu_type src_
|
|||||||
nir_scalar comp = nir_scalar_resolved(src->ssa, i);
|
nir_scalar comp = nir_scalar_resolved(src->ssa, i);
|
||||||
|
|
||||||
if (nir_scalar_is_undef(comp))
|
if (nir_scalar_is_undef(comp))
|
||||||
new_comps[i] = nir_get_ssa_scalar(nir_undef(b, 1, 16), 0);
|
new_comps[i] = nir_get_scalar(nir_undef(b, 1, 16), 0);
|
||||||
else if (nir_scalar_is_const(comp)) {
|
else if (nir_scalar_is_const(comp)) {
|
||||||
nir_def *constant;
|
nir_def *constant;
|
||||||
if (src_type == nir_type_float32)
|
if (src_type == nir_type_float32)
|
||||||
constant = nir_imm_float16(b, nir_scalar_as_float(comp));
|
constant = nir_imm_float16(b, nir_scalar_as_float(comp));
|
||||||
else
|
else
|
||||||
constant = nir_imm_intN_t(b, nir_scalar_as_uint(comp), 16);
|
constant = nir_imm_intN_t(b, nir_scalar_as_uint(comp), 16);
|
||||||
new_comps[i] = nir_get_ssa_scalar(constant, 0);
|
new_comps[i] = nir_get_scalar(constant, 0);
|
||||||
} else {
|
} else {
|
||||||
/* conversion instruction */
|
/* conversion instruction */
|
||||||
new_comps[i] = nir_scalar_chase_alu_src(comp, 0);
|
new_comps[i] = nir_scalar_chase_alu_src(comp, 0);
|
||||||
|
@@ -604,7 +604,7 @@ lower_compute_system_value_instr(nir_builder *b,
|
|||||||
if (!b->shader->info.workgroup_size_variable && is_zero) {
|
if (!b->shader->info.workgroup_size_variable && is_zero) {
|
||||||
nir_scalar defs[3];
|
nir_scalar defs[3];
|
||||||
for (unsigned i = 0; i < 3; i++) {
|
for (unsigned i = 0; i < 3; i++) {
|
||||||
defs[i] = is_zero & (1 << i) ? nir_get_ssa_scalar(nir_imm_zero(b, 1, 32), 0) : nir_get_ssa_scalar(&intrin->def, i);
|
defs[i] = is_zero & (1 << i) ? nir_get_scalar(nir_imm_zero(b, 1, 32), 0) : nir_get_scalar(&intrin->def, i);
|
||||||
}
|
}
|
||||||
return nir_vec_scalars(b, defs, 3);
|
return nir_vec_scalars(b, defs, 3);
|
||||||
}
|
}
|
||||||
|
@@ -1046,9 +1046,9 @@ swizzle_result(nir_builder *b, nir_tex_instr *tex, const uint8_t swizzle[4])
|
|||||||
nir_scalar srcs[4];
|
nir_scalar srcs[4];
|
||||||
for (unsigned i = 0; i < 4; i++) {
|
for (unsigned i = 0; i < 4; i++) {
|
||||||
if (swizzle[i] < 4) {
|
if (swizzle[i] < 4) {
|
||||||
srcs[i] = nir_get_ssa_scalar(&tex->def, swizzle[i]);
|
srcs[i] = nir_get_scalar(&tex->def, swizzle[i]);
|
||||||
} else {
|
} else {
|
||||||
srcs[i] = nir_get_ssa_scalar(get_zero_or_one(b, tex->dest_type, swizzle[i]), 0);
|
srcs[i] = nir_get_scalar(get_zero_or_one(b, tex->dest_type, swizzle[i]), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
swizzled = nir_vec_scalars(b, srcs, 4);
|
swizzled = nir_vec_scalars(b, srcs, 4);
|
||||||
@@ -1224,7 +1224,7 @@ lower_tg4_offsets(nir_builder *b, nir_tex_instr *tex)
|
|||||||
|
|
||||||
nir_builder_instr_insert(b, &tex_copy->instr);
|
nir_builder_instr_insert(b, &tex_copy->instr);
|
||||||
|
|
||||||
dest[i] = nir_get_ssa_scalar(&tex_copy->def, 3);
|
dest[i] = nir_get_scalar(&tex_copy->def, 3);
|
||||||
if (tex->is_sparse) {
|
if (tex->is_sparse) {
|
||||||
nir_def *code = nir_channel(b, &tex_copy->def, 4);
|
nir_def *code = nir_channel(b, &tex_copy->def, 4);
|
||||||
if (residency)
|
if (residency)
|
||||||
@@ -1233,7 +1233,7 @@ lower_tg4_offsets(nir_builder *b, nir_tex_instr *tex)
|
|||||||
residency = code;
|
residency = code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dest[4] = nir_get_ssa_scalar(residency, 0);
|
dest[4] = nir_get_scalar(residency, 0);
|
||||||
|
|
||||||
nir_def *res = nir_vec_scalars(b, dest, tex->def.num_components);
|
nir_def *res = nir_vec_scalars(b, dest, tex->def.num_components);
|
||||||
nir_def_rewrite_uses(&tex->def, res);
|
nir_def_rewrite_uses(&tex->def, res);
|
||||||
|
@@ -658,9 +658,9 @@ rename_variables(struct lower_variables_state *state)
|
|||||||
nir_scalar srcs[NIR_MAX_VEC_COMPONENTS];
|
nir_scalar srcs[NIR_MAX_VEC_COMPONENTS];
|
||||||
for (unsigned i = 0; i < intrin->num_components; i++) {
|
for (unsigned i = 0; i < intrin->num_components; i++) {
|
||||||
if (wrmask & (1 << i)) {
|
if (wrmask & (1 << i)) {
|
||||||
srcs[i] = nir_get_ssa_scalar(value, i);
|
srcs[i] = nir_get_scalar(value, i);
|
||||||
} else {
|
} else {
|
||||||
srcs[i] = nir_get_ssa_scalar(old_def, i);
|
srcs[i] = nir_get_scalar(old_def, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
new_def = nir_vec_scalars(&b, srcs, intrin->num_components);
|
new_def = nir_vec_scalars(&b, srcs, intrin->num_components);
|
||||||
|
@@ -34,7 +34,7 @@ static nir_scalar
|
|||||||
nir_alu_arg(const nir_alu_instr *alu, unsigned arg, unsigned comp)
|
nir_alu_arg(const nir_alu_instr *alu, unsigned arg, unsigned comp)
|
||||||
{
|
{
|
||||||
const nir_alu_src *src = &alu->src[arg];
|
const nir_alu_src *src = &alu->src[arg];
|
||||||
return nir_get_ssa_scalar(src->src.ssa, src->swizzle[comp]);
|
return nir_get_scalar(src->src.ssa, src->swizzle[comp]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tries to determine the value of expression "val % div", assuming that val
|
/* Tries to determine the value of expression "val % div", assuming that val
|
||||||
|
@@ -135,13 +135,13 @@ combine_stores(struct combine_stores_state *state,
|
|||||||
* and store->src[1] is a scalar. Otherwise, we're a regular vector
|
* and store->src[1] is a scalar. Otherwise, we're a regular vector
|
||||||
* load and we have to pick off a component.
|
* load and we have to pick off a component.
|
||||||
*/
|
*/
|
||||||
comps[i] = nir_get_ssa_scalar(store->src[1].ssa, store->num_components == 1 ? 0 : i);
|
comps[i] = nir_get_scalar(store->src[1].ssa, store->num_components == 1 ? 0 : i);
|
||||||
|
|
||||||
assert(store->instr.pass_flags > 0);
|
assert(store->instr.pass_flags > 0);
|
||||||
if (--store->instr.pass_flags == 0 && store != combo->latest)
|
if (--store->instr.pass_flags == 0 && store != combo->latest)
|
||||||
nir_instr_remove(&store->instr);
|
nir_instr_remove(&store->instr);
|
||||||
} else {
|
} else {
|
||||||
comps[i] = nir_get_ssa_scalar(nir_undef(&state->b, 1, bit_size), 0);
|
comps[i] = nir_get_scalar(nir_undef(&state->b, 1, bit_size), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert(combo->latest->instr.pass_flags == 0);
|
assert(combo->latest->instr.pass_flags == 0);
|
||||||
|
@@ -744,7 +744,7 @@ load_from_ssa_entry_value(struct copy_prop_var_state *state,
|
|||||||
nir_scalar comps[NIR_MAX_VEC_COMPONENTS];
|
nir_scalar comps[NIR_MAX_VEC_COMPONENTS];
|
||||||
for (unsigned i = 0; i < num_components; i++) {
|
for (unsigned i = 0; i < num_components; i++) {
|
||||||
if (value->ssa.def[i]) {
|
if (value->ssa.def[i]) {
|
||||||
comps[i] = nir_get_ssa_scalar(value->ssa.def[i], value->ssa.component[i]);
|
comps[i] = nir_get_scalar(value->ssa.def[i], value->ssa.component[i]);
|
||||||
} else {
|
} else {
|
||||||
/* We don't have anything for this component in our
|
/* We don't have anything for this component in our
|
||||||
* list. Just re-use a channel from the load.
|
* list. Just re-use a channel from the load.
|
||||||
@@ -755,7 +755,7 @@ load_from_ssa_entry_value(struct copy_prop_var_state *state,
|
|||||||
if (load_def->parent_instr == &intrin->instr)
|
if (load_def->parent_instr == &intrin->instr)
|
||||||
keep_intrin = true;
|
keep_intrin = true;
|
||||||
|
|
||||||
comps[i] = nir_get_ssa_scalar(load_def, i);
|
comps[i] = nir_get_scalar(load_def, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -94,7 +94,7 @@ try_extract_const_addition(nir_builder *b, nir_scalar val, opt_offsets_state *st
|
|||||||
nir_def *r =
|
nir_def *r =
|
||||||
nir_iadd(b, nir_channel(b, src[0].def, src[0].comp),
|
nir_iadd(b, nir_channel(b, src[0].def, src[0].comp),
|
||||||
nir_channel(b, src[1].def, src[1].comp));
|
nir_channel(b, src[1].def, src[1].comp));
|
||||||
return nir_get_ssa_scalar(r, 0);
|
return nir_get_scalar(r, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@@ -167,7 +167,7 @@ opt_shrink_vector(nir_builder *b, nir_alu_instr *instr)
|
|||||||
if (!((mask >> i) & 0x1))
|
if (!((mask >> i) & 0x1))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
nir_scalar scalar = nir_get_ssa_scalar(instr->src[i].src.ssa, instr->src[i].swizzle[0]);
|
nir_scalar scalar = nir_get_scalar(instr->src[i].src.ssa, instr->src[i].swizzle[0]);
|
||||||
|
|
||||||
/* Try reuse a component with the same value */
|
/* Try reuse a component with the same value */
|
||||||
unsigned j;
|
unsigned j;
|
||||||
|
@@ -1406,7 +1406,7 @@ search_phi_bcsel(nir_scalar scalar, nir_scalar *buf, unsigned buf_size, struct s
|
|||||||
unsigned total_added = 0;
|
unsigned total_added = 0;
|
||||||
nir_foreach_phi_src(src, phi) {
|
nir_foreach_phi_src(src, phi) {
|
||||||
num_sources_left--;
|
num_sources_left--;
|
||||||
unsigned added = search_phi_bcsel(nir_get_ssa_scalar(src->src.ssa, scalar.comp),
|
unsigned added = search_phi_bcsel(nir_get_scalar(src->src.ssa, scalar.comp),
|
||||||
buf + total_added, buf_size - num_sources_left, visited);
|
buf + total_added, buf_size - num_sources_left, visited);
|
||||||
assert(added <= buf_size);
|
assert(added <= buf_size);
|
||||||
buf_size -= added;
|
buf_size -= added;
|
||||||
@@ -1580,7 +1580,7 @@ get_intrinsic_uub(struct analysis_state *state, struct uub_query q, uint32_t *re
|
|||||||
break;
|
break;
|
||||||
case nir_intrinsic_mbcnt_amd: {
|
case nir_intrinsic_mbcnt_amd: {
|
||||||
if (!q.head.pushed_queries) {
|
if (!q.head.pushed_queries) {
|
||||||
push_uub_query(state, nir_get_ssa_scalar(intrin->src[1].ssa, 0));
|
push_uub_query(state, nir_get_scalar(intrin->src[1].ssa, 0));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
uint32_t src0 = config->max_subgroup_size - 1;
|
uint32_t src0 = config->max_subgroup_size - 1;
|
||||||
@@ -1624,7 +1624,7 @@ get_intrinsic_uub(struct analysis_state *state, struct uub_query q, uint32_t *re
|
|||||||
nir_op op = nir_intrinsic_reduction_op(intrin);
|
nir_op op = nir_intrinsic_reduction_op(intrin);
|
||||||
if (op == nir_op_umin || op == nir_op_umax || op == nir_op_imin || op == nir_op_imax) {
|
if (op == nir_op_umin || op == nir_op_umax || op == nir_op_imin || op == nir_op_imax) {
|
||||||
if (!q.head.pushed_queries) {
|
if (!q.head.pushed_queries) {
|
||||||
push_uub_query(state, nir_get_ssa_scalar(intrin->src[0].ssa, q.scalar.comp));
|
push_uub_query(state, nir_get_scalar(intrin->src[0].ssa, q.scalar.comp));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
*result = src[0];
|
*result = src[0];
|
||||||
@@ -1645,7 +1645,7 @@ get_intrinsic_uub(struct analysis_state *state, struct uub_query q, uint32_t *re
|
|||||||
case nir_intrinsic_quad_swizzle_amd:
|
case nir_intrinsic_quad_swizzle_amd:
|
||||||
case nir_intrinsic_masked_swizzle_amd:
|
case nir_intrinsic_masked_swizzle_amd:
|
||||||
if (!q.head.pushed_queries) {
|
if (!q.head.pushed_queries) {
|
||||||
push_uub_query(state, nir_get_ssa_scalar(intrin->src[0].ssa, q.scalar.comp));
|
push_uub_query(state, nir_get_scalar(intrin->src[0].ssa, q.scalar.comp));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
*result = src[0];
|
*result = src[0];
|
||||||
@@ -1653,8 +1653,8 @@ get_intrinsic_uub(struct analysis_state *state, struct uub_query q, uint32_t *re
|
|||||||
break;
|
break;
|
||||||
case nir_intrinsic_write_invocation_amd:
|
case nir_intrinsic_write_invocation_amd:
|
||||||
if (!q.head.pushed_queries) {
|
if (!q.head.pushed_queries) {
|
||||||
push_uub_query(state, nir_get_ssa_scalar(intrin->src[0].ssa, q.scalar.comp));
|
push_uub_query(state, nir_get_scalar(intrin->src[0].ssa, q.scalar.comp));
|
||||||
push_uub_query(state, nir_get_ssa_scalar(intrin->src[1].ssa, q.scalar.comp));
|
push_uub_query(state, nir_get_scalar(intrin->src[1].ssa, q.scalar.comp));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
*result = MAX2(src[0], src[1]);
|
*result = MAX2(src[0], src[1]);
|
||||||
@@ -1914,7 +1914,7 @@ get_phi_uub(struct analysis_state *state, struct uub_query q, uint32_t *result,
|
|||||||
push_uub_query(state, defs[i]);
|
push_uub_query(state, defs[i]);
|
||||||
} else {
|
} else {
|
||||||
nir_foreach_phi_src(src, phi)
|
nir_foreach_phi_src(src, phi)
|
||||||
push_uub_query(state, nir_get_ssa_scalar(src->src.ssa, q.scalar.comp));
|
push_uub_query(state, nir_get_scalar(src->src.ssa, q.scalar.comp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
static inline bool
|
static inline bool
|
||||||
nir_mod_analysis_comp0(nir_def *val, nir_alu_type val_type, unsigned div, unsigned *mod)
|
nir_mod_analysis_comp0(nir_def *val, nir_alu_type val_type, unsigned div, unsigned *mod)
|
||||||
{
|
{
|
||||||
return nir_mod_analysis(nir_get_ssa_scalar(val, 0), val_type, div, mod);
|
return nir_mod_analysis(nir_get_scalar(val, 0), val_type, div, mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
class nir_mod_analysis_test : public nir_test {
|
class nir_mod_analysis_test : public nir_test {
|
||||||
|
@@ -304,9 +304,9 @@ TEST_F(nir_opt_shrink_vectors_test, opt_shrink_phis_loop_simple)
|
|||||||
|
|
||||||
nir_scalar srcs[4] = {{0}};
|
nir_scalar srcs[4] = {{0}};
|
||||||
for (unsigned i = 0; i < 4; i++) {
|
for (unsigned i = 0; i < 4; i++) {
|
||||||
srcs[i] = nir_get_ssa_scalar(phi_def, i);
|
srcs[i] = nir_get_scalar(phi_def, i);
|
||||||
}
|
}
|
||||||
srcs[1] = nir_get_ssa_scalar(fadd, 0);
|
srcs[1] = nir_get_scalar(fadd, 0);
|
||||||
nir_def *vec = nir_vec_scalars(b, srcs, 4);
|
nir_def *vec = nir_vec_scalars(b, srcs, 4);
|
||||||
|
|
||||||
nir_phi_instr_add_src(phi, vec->parent_instr->block,
|
nir_phi_instr_add_src(phi, vec->parent_instr->block,
|
||||||
@@ -409,10 +409,10 @@ TEST_F(nir_opt_shrink_vectors_test, opt_shrink_phis_loop_swizzle)
|
|||||||
fadd_alu_instr->src[0].swizzle[0] = 2;
|
fadd_alu_instr->src[0].swizzle[0] = 2;
|
||||||
|
|
||||||
nir_scalar srcs[4] = {{0}};
|
nir_scalar srcs[4] = {{0}};
|
||||||
srcs[0] = nir_get_ssa_scalar(phi_def, 0);
|
srcs[0] = nir_get_scalar(phi_def, 0);
|
||||||
srcs[1] = nir_get_ssa_scalar(fadd, 0);
|
srcs[1] = nir_get_scalar(fadd, 0);
|
||||||
srcs[2] = nir_get_ssa_scalar(phi_def, 1);
|
srcs[2] = nir_get_scalar(phi_def, 1);
|
||||||
srcs[3] = nir_get_ssa_scalar(phi_def, 3);
|
srcs[3] = nir_get_scalar(phi_def, 3);
|
||||||
nir_def *vec = nir_vec_scalars(b, srcs, 4);
|
nir_def *vec = nir_vec_scalars(b, srcs, 4);
|
||||||
|
|
||||||
nir_phi_instr_add_src(phi, vec->parent_instr->block,
|
nir_phi_instr_add_src(phi, vec->parent_instr->block,
|
||||||
@@ -517,9 +517,9 @@ TEST_F(nir_opt_shrink_vectors_test, opt_shrink_phis_loop_phi_out)
|
|||||||
|
|
||||||
nir_scalar srcs[4] = {{0}};
|
nir_scalar srcs[4] = {{0}};
|
||||||
for (unsigned i = 0; i < 4; i++) {
|
for (unsigned i = 0; i < 4; i++) {
|
||||||
srcs[i] = nir_get_ssa_scalar(phi_def, i);
|
srcs[i] = nir_get_scalar(phi_def, i);
|
||||||
}
|
}
|
||||||
srcs[1] = nir_get_ssa_scalar(fadd, 0);
|
srcs[1] = nir_get_scalar(fadd, 0);
|
||||||
nir_def *vec = nir_vec_scalars(b, srcs, 4);
|
nir_def *vec = nir_vec_scalars(b, srcs, 4);
|
||||||
|
|
||||||
nir_phi_instr_add_src(phi, vec->parent_instr->block,
|
nir_phi_instr_add_src(phi, vec->parent_instr->block,
|
||||||
|
@@ -289,7 +289,7 @@ TEST_F(unsigned_upper_bound_test, loop_phi_bcsel)
|
|||||||
nir_validate_shader(b->shader, NULL);
|
nir_validate_shader(b->shader, NULL);
|
||||||
|
|
||||||
struct hash_table *range_ht = _mesa_pointer_hash_table_create(NULL);
|
struct hash_table *range_ht = _mesa_pointer_hash_table_create(NULL);
|
||||||
nir_scalar scalar = nir_get_ssa_scalar(&phi->def, 0);
|
nir_scalar scalar = nir_get_scalar(&phi->def, 0);
|
||||||
EXPECT_EQ(nir_unsigned_upper_bound(b->shader, range_ht, scalar, NULL), 2);
|
EXPECT_EQ(nir_unsigned_upper_bound(b->shader, range_ht, scalar, NULL), 2);
|
||||||
_mesa_hash_table_destroy(range_ht, NULL);
|
_mesa_hash_table_destroy(range_ht, NULL);
|
||||||
}
|
}
|
||||||
|
@@ -4087,7 +4087,7 @@ vtn_ssa_transpose(struct vtn_builder *b, struct vtn_ssa_value *src)
|
|||||||
unsigned cols = glsl_get_matrix_columns(src->type);
|
unsigned cols = glsl_get_matrix_columns(src->type);
|
||||||
nir_scalar srcs[NIR_MAX_MATRIX_COLUMNS];
|
nir_scalar srcs[NIR_MAX_MATRIX_COLUMNS];
|
||||||
for (unsigned j = 0; j < cols; j++) {
|
for (unsigned j = 0; j < cols; j++) {
|
||||||
srcs[j] = nir_get_ssa_scalar(src->elems[j]->def, i);
|
srcs[j] = nir_get_scalar(src->elems[j]->def, i);
|
||||||
}
|
}
|
||||||
dest->elems[i]->def = nir_vec_scalars(&b->nb, srcs, cols);
|
dest->elems[i]->def = nir_vec_scalars(&b->nb, srcs, cols);
|
||||||
}
|
}
|
||||||
|
@@ -550,7 +550,7 @@ ntt_allocate_regs_unoptimized(struct ntt_compile *c, nir_function_impl *impl)
|
|||||||
static const uint32_t
|
static const uint32_t
|
||||||
ntt_extract_const_src_offset(nir_src *src)
|
ntt_extract_const_src_offset(nir_src *src)
|
||||||
{
|
{
|
||||||
nir_scalar s = nir_get_ssa_scalar(src->ssa, 0);
|
nir_scalar s = nir_get_scalar(src->ssa, 0);
|
||||||
|
|
||||||
while (nir_scalar_is_alu(s)) {
|
while (nir_scalar_is_alu(s)) {
|
||||||
nir_alu_instr *alu = nir_instr_as_alu(s.def->parent_instr);
|
nir_alu_instr *alu = nir_instr_as_alu(s.def->parent_instr);
|
||||||
@@ -3438,10 +3438,10 @@ nir_to_tgsi_lower_64bit_intrinsic(nir_builder *b, nir_intrinsic_instr *instr)
|
|||||||
if (has_dest) {
|
if (has_dest) {
|
||||||
/* Merge the two loads' results back into a vector. */
|
/* Merge the two loads' results back into a vector. */
|
||||||
nir_scalar channels[4] = {
|
nir_scalar channels[4] = {
|
||||||
nir_get_ssa_scalar(&first->def, 0),
|
nir_get_scalar(&first->def, 0),
|
||||||
nir_get_ssa_scalar(&first->def, 1),
|
nir_get_scalar(&first->def, 1),
|
||||||
nir_get_ssa_scalar(&second->def, 0),
|
nir_get_scalar(&second->def, 0),
|
||||||
nir_get_ssa_scalar(&second->def, second->num_components > 1 ? 1 : 0),
|
nir_get_scalar(&second->def, second->num_components > 1 ? 1 : 0),
|
||||||
};
|
};
|
||||||
nir_def *new = nir_vec_scalars(b, channels, instr->num_components);
|
nir_def *new = nir_vec_scalars(b, channels, instr->num_components);
|
||||||
nir_def_rewrite_uses(&instr->def, new);
|
nir_def_rewrite_uses(&instr->def, new);
|
||||||
@@ -3452,7 +3452,7 @@ nir_to_tgsi_lower_64bit_intrinsic(nir_builder *b, nir_intrinsic_instr *instr)
|
|||||||
nir_def *src0 = instr->src[0].ssa;
|
nir_def *src0 = instr->src[0].ssa;
|
||||||
nir_scalar channels[4] = { 0 };
|
nir_scalar channels[4] = { 0 };
|
||||||
for (int i = 0; i < instr->num_components; i++)
|
for (int i = 0; i < instr->num_components; i++)
|
||||||
channels[i] = nir_get_ssa_scalar(src0, i);
|
channels[i] = nir_get_scalar(src0, i);
|
||||||
|
|
||||||
nir_intrinsic_set_write_mask(first, nir_intrinsic_write_mask(instr) & 3);
|
nir_intrinsic_set_write_mask(first, nir_intrinsic_write_mask(instr) & 3);
|
||||||
nir_intrinsic_set_write_mask(second, nir_intrinsic_write_mask(instr) >> 2);
|
nir_intrinsic_set_write_mask(second, nir_intrinsic_write_mask(instr) >> 2);
|
||||||
@@ -3584,7 +3584,7 @@ nir_to_tgsi_lower_tex_instr_arg(nir_builder *b,
|
|||||||
|
|
||||||
nir_def *def = instr->src[tex_src].src.ssa;
|
nir_def *def = instr->src[tex_src].src.ssa;
|
||||||
for (int i = 0; i < def->num_components; i++) {
|
for (int i = 0; i < def->num_components; i++) {
|
||||||
s->channels[s->i++] = nir_get_ssa_scalar(def, i);
|
s->channels[s->i++] = nir_get_scalar(def, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
nir_tex_instr_remove_src(instr, tex_src);
|
nir_tex_instr_remove_src(instr, tex_src);
|
||||||
|
@@ -1330,10 +1330,10 @@ r600_lower_64bit_intrinsic(nir_builder *b, nir_intrinsic_instr *instr)
|
|||||||
if (has_dest) {
|
if (has_dest) {
|
||||||
/* Merge the two loads' results back into a vector. */
|
/* Merge the two loads' results back into a vector. */
|
||||||
nir_scalar channels[4] = {
|
nir_scalar channels[4] = {
|
||||||
nir_get_ssa_scalar(&first->def, 0),
|
nir_get_scalar(&first->def, 0),
|
||||||
nir_get_ssa_scalar(&first->def, 1),
|
nir_get_scalar(&first->def, 1),
|
||||||
nir_get_ssa_scalar(&second->def, 0),
|
nir_get_scalar(&second->def, 0),
|
||||||
nir_get_ssa_scalar(&second->def, second->num_components > 1 ? 1 : 0),
|
nir_get_scalar(&second->def, second->num_components > 1 ? 1 : 0),
|
||||||
};
|
};
|
||||||
nir_def *new_ir = nir_vec_scalars(b, channels, instr->num_components);
|
nir_def *new_ir = nir_vec_scalars(b, channels, instr->num_components);
|
||||||
nir_def_rewrite_uses(&instr->def, new_ir);
|
nir_def_rewrite_uses(&instr->def, new_ir);
|
||||||
@@ -1344,7 +1344,7 @@ r600_lower_64bit_intrinsic(nir_builder *b, nir_intrinsic_instr *instr)
|
|||||||
nir_def *src0 = instr->src[0].ssa;
|
nir_def *src0 = instr->src[0].ssa;
|
||||||
nir_scalar channels[4] = {{0}};
|
nir_scalar channels[4] = {{0}};
|
||||||
for (int i = 0; i < instr->num_components; i++)
|
for (int i = 0; i < instr->num_components; i++)
|
||||||
channels[i] = nir_get_ssa_scalar(src0, i);
|
channels[i] = nir_get_scalar(src0, i);
|
||||||
|
|
||||||
nir_intrinsic_set_write_mask(first, nir_intrinsic_write_mask(instr) & 3);
|
nir_intrinsic_set_write_mask(first, nir_intrinsic_write_mask(instr) & 3);
|
||||||
nir_intrinsic_set_write_mask(second, nir_intrinsic_write_mask(instr) >> 2);
|
nir_intrinsic_set_write_mask(second, nir_intrinsic_write_mask(instr) >> 2);
|
||||||
|
@@ -1896,7 +1896,7 @@ fs_visitor::emit_task_mesh_store(const fs_builder &bld, nir_intrinsic_instr *ins
|
|||||||
/* Try to calculate the value of (offset + base) % 4. If we can do
|
/* Try to calculate the value of (offset + base) % 4. If we can do
|
||||||
* this, then we can do indirect writes using only 1 URB write.
|
* this, then we can do indirect writes using only 1 URB write.
|
||||||
*/
|
*/
|
||||||
use_mod = nir_mod_analysis(nir_get_ssa_scalar(offset_nir_src->ssa, 0), nir_type_uint, 4, &mod);
|
use_mod = nir_mod_analysis(nir_get_scalar(offset_nir_src->ssa, 0), nir_type_uint, 4, &mod);
|
||||||
if (use_mod) {
|
if (use_mod) {
|
||||||
mod += nir_intrinsic_base(instr) + component_from_intrinsic(instr);
|
mod += nir_intrinsic_base(instr) + component_from_intrinsic(instr);
|
||||||
mod %= 4;
|
mod %= 4;
|
||||||
|
@@ -2291,7 +2291,7 @@ emit_shift(struct ntd_context *ctx, nir_alu_instr *alu,
|
|||||||
0);
|
0);
|
||||||
} else {
|
} else {
|
||||||
uint64_t val = nir_scalar_as_uint(
|
uint64_t val = nir_scalar_as_uint(
|
||||||
nir_scalar_chase_alu_src(nir_get_ssa_scalar(&alu->def, 0), 1));
|
nir_scalar_chase_alu_src(nir_get_scalar(&alu->def, 0), 1));
|
||||||
op1 = dxil_module_get_int_const(&ctx->mod, val & shift_mask, op0_bit_size);
|
op1 = dxil_module_get_int_const(&ctx->mod, val & shift_mask, op0_bit_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2898,7 +2898,7 @@ emit_alu(struct ntd_context *ctx, nir_alu_instr *alu)
|
|||||||
case nir_op_udiv:
|
case nir_op_udiv:
|
||||||
if (nir_src_is_const(alu->src[1].src)) {
|
if (nir_src_is_const(alu->src[1].src)) {
|
||||||
/* It's illegal to emit a literal divide by 0 in DXIL */
|
/* It's illegal to emit a literal divide by 0 in DXIL */
|
||||||
nir_scalar divisor = nir_scalar_chase_alu_src(nir_get_ssa_scalar(&alu->def, 0), 1);
|
nir_scalar divisor = nir_scalar_chase_alu_src(nir_get_scalar(&alu->def, 0), 1);
|
||||||
if (nir_scalar_as_int(divisor) == 0) {
|
if (nir_scalar_as_int(divisor) == 0) {
|
||||||
store_alu_dest(ctx, alu, 0,
|
store_alu_dest(ctx, alu, 0,
|
||||||
dxil_module_get_int_const(&ctx->mod, 0, alu->def.bit_size));
|
dxil_module_get_int_const(&ctx->mod, 0, alu->def.bit_size));
|
||||||
|
Reference in New Issue
Block a user