Lines Matching refs:intr
95 split_wrmask(nir_builder *b, nir_intrinsic_instr *intr)
97 const nir_intrinsic_info *info = &nir_intrinsic_infos[intr->intrinsic];
99 b->cursor = nir_before_instr(&intr->instr);
104 unsigned value_idx = value_src(intr->intrinsic);
105 unsigned offset_idx = offset_src(intr->intrinsic);
106 unsigned num_comp = nir_intrinsic_src_components(intr, value_idx);
108 unsigned wrmask = nir_intrinsic_write_mask(intr);
113 nir_ssa_def *value = nir_ssa_for_src(b, intr->src[value_idx], num_comp);
114 nir_ssa_def *offset = nir_ssa_for_src(b, intr->src[offset_idx], 1);
124 nir_intrinsic_instr_create(b->shader, intr->intrinsic);
126 nir_intrinsic_copy_const_indices(new_intr, intr);
131 if (nir_intrinsic_has_align_mul(intr)) {
132 assert(nir_intrinsic_has_align_offset(intr));
133 unsigned align_mul = nir_intrinsic_align_mul(intr);
134 unsigned align_off = nir_intrinsic_align_offset(intr);
147 if (nir_intrinsic_has_base(intr)) {
149 nir_intrinsic_base(intr) + offset_adj);
166 new_intr->src[i] = intr->src[i];
179 nir_instr_remove(&intr->instr);
195 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
198 if (!nir_intrinsic_has_write_mask(intr))
202 if (nir_intrinsic_write_mask(intr) == BITFIELD_MASK(intr->num_components))
206 if (value_src(intr->intrinsic) < 0)
209 assert(offset_src(intr->intrinsic) >= 0);
215 split_wrmask(b, intr);