nir_ssa_def *base = entry->info->base_src >= 0 ?
intrin->src[entry->info->base_src].ssa : NULL;
uint64_t offset = 0;
- if (nir_intrinsic_infos[intrin->intrinsic].index_map[NIR_INTRINSIC_BASE])
+ if (nir_intrinsic_has_base(intrin))
offset += nir_intrinsic_base(intrin);
entry->key = create_entry_key_from_offset(entry, base, 1, &offset);
entry->offset = offset;
if (entry->info->resource_src >= 0)
entry->key->resource = intrin->src[entry->info->resource_src].ssa;
- if (nir_intrinsic_infos[intrin->intrinsic].index_map[NIR_INTRINSIC_ACCESS])
+ if (nir_intrinsic_has_access(intrin))
entry->access = nir_intrinsic_access(intrin);
else if (entry->key->var)
entry->access = entry->key->var->data.access;
best_align = gcd(best_align, entry->key->offset_defs_mul[i]);
}
- if (nir_intrinsic_infos[entry->intrin->intrinsic].index_map[NIR_INTRINSIC_ALIGN_MUL])
+ if (nir_intrinsic_has_align_mul(entry->intrin))
best_align = MAX2(best_align, nir_intrinsic_align(entry->intrin));
/* ensure the result is a power of two that fits in a int32_t */
static bool update_align(struct entry *entry)
{
- bool has_align_index =
- nir_intrinsic_infos[entry->intrin->intrinsic].index_map[NIR_INTRINSIC_ALIGN_MUL];
- if (has_align_index) {
+ if (nir_intrinsic_has_align_mul(entry->intrin)) {
unsigned align = get_best_align(entry);
if (align != nir_intrinsic_align(entry->intrin)) {
nir_intrinsic_set_align(entry->intrin, align, 0);
}
/* update base/align */
- bool has_base_index =
- nir_intrinsic_infos[first->intrin->intrinsic].index_map[NIR_INTRINSIC_BASE];
-
- if (first != low && has_base_index)
+ if (first != low && nir_intrinsic_has_base(first->intrin))
nir_intrinsic_set_base(first->intrin, nir_intrinsic_base(low->intrin));
first->key = low->key;
}
/* update base/align */
- bool has_base_index =
- nir_intrinsic_infos[second->intrin->intrinsic].index_map[NIR_INTRINSIC_BASE];
-
- if (second != low && has_base_index)
+ if (second != low && nir_intrinsic_has_base(second->intrin))
nir_intrinsic_set_base(second->intrin, nir_intrinsic_base(low->intrin));
second->key = low->key;