Lines Matching defs:instr

90    nir_intrinsic_instr *instr = nir_instr_as_intrinsic(in);
91 if (instr->intrinsic != nir_intrinsic_load_work_dim)
94 if (instr->intrinsic == nir_intrinsic_load_work_dim) {
95 b->cursor = nir_after_instr(&instr->instr);
100 nir_ssa_dest_init(&load->instr, &load->dest, 1, 32, "work_dim");
101 nir_builder_instr_insert(b, &load->instr);
103 nir_ssa_def_rewrite_uses(&instr->dest.ssa, &load->dest.ssa);
122 lower_64bit_vertex_attribs_instr(nir_builder *b, nir_instr *instr, void *data)
124 if (instr->type != nir_instr_type_intrinsic)
126 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
147 b->cursor = nir_after_instr(instr);
166 /* remove the original instr and its deref chain */
168 nir_instr_remove(instr);
179 lower_64bit_uint_attribs_instr(nir_builder *b, nir_instr *instr, void *data)
181 if (instr->type != nir_instr_type_intrinsic)
183 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
209 b->cursor = nir_after_instr(instr);
217 /* remove the original instr and its deref chain */
219 nir_instr_remove(instr);
248 nir_intrinsic_instr *instr = nir_instr_as_intrinsic(in);
249 if (instr->intrinsic != nir_intrinsic_load_base_vertex)
252 b->cursor = nir_after_instr(&instr->instr);
257 nir_ssa_dest_init(&load->instr, &load->dest, 1, 32, "draw_mode_is_indexed");
258 nir_builder_instr_insert(b, &load->instr);
262 &instr->dest.ssa,
266 nir_ssa_def_rewrite_uses_after(&instr->dest.ssa, composite,
289 nir_intrinsic_instr *instr = nir_instr_as_intrinsic(in);
290 if (instr->intrinsic != nir_intrinsic_load_draw_id)
293 b->cursor = nir_before_instr(&instr->instr);
298 nir_ssa_dest_init(&load->instr, &load->dest, 1, 32, "draw_id");
299 nir_builder_instr_insert(b, &load->instr);
301 nir_ssa_def_rewrite_uses(&instr->dest.ssa, &load->dest.ssa);
442 nir_instr *instr = (nir_instr *)const_instr;
444 nir_foreach_dest(instr, dest_is_64bit, &lower);
447 nir_foreach_src(instr, src_is_64bit, &lower);
454 nir_instr *instr = (nir_instr *)const_instr;
455 nir_alu_instr *alu = nir_instr_as_alu(instr);
509 bound_bo_access_instr(nir_builder *b, nir_instr *instr, void *data)
512 if (instr->type != nir_instr_type_intrinsic)
514 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
518 b->cursor = nir_before_instr(instr);
565 nir_instr_remove(instr);
623 lower_fbfetch_instr(nir_builder *b, nir_instr *instr, void *data)
626 if (instr->type != nir_instr_type_intrinsic)
628 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
634 b->cursor = nir_after_instr(instr);
977 lower_attrib(nir_builder *b, nir_instr *instr, void *data)
981 if (instr->type != nir_instr_type_intrinsic)
983 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
991 b->cursor = nir_after_instr(instr);
1002 nir_instr_remove_v(instr);
1045 rewrite_bo_access_instr(nir_builder *b, nir_instr *instr, void *data)
1049 if (instr->type != nir_instr_type_intrinsic)
1051 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
1052 b->cursor = nir_before_instr(instr);
1067 nir_instr_rewrite_src_ssa(instr, &intr->src[1], offset);
1080 nir_instr_rewrite_src_ssa(instr, &intr->src[1], offset);
1097 nir_instr_remove(instr);
1102 b->cursor = nir_before_instr(instr);
1105 nir_instr_rewrite_src_ssa(instr, &intr->src[0], offset);
1117 nir_instr_remove(instr);
1122 b->cursor = nir_before_instr(instr);
1125 nir_instr_rewrite_src_ssa(instr, &intr->src[2], offset);
1133 nir_instr_remove(instr);
1138 b->cursor = nir_before_instr(instr);
1141 nir_instr_rewrite_src_ssa(instr, &intr->src[1], offset);
1149 nir_instr_remove(instr);
1217 rewrite_atomic_ssbo_instr(nir_builder *b, nir_instr *instr, struct bo_vars *bo)
1220 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
1271 nir_ssa_dest_init(&new_instr->instr, &new_instr->dest, 1, nir_dest_bit_size(intr->dest), "");
1276 nir_builder_instr_insert(b, &new_instr->instr);
1284 nir_instr_remove(instr);
1288 remove_bo_access_instr(nir_builder *b, nir_instr *instr, void *data)
1291 if (instr->type != nir_instr_type_intrinsic)
1293 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
1297 b->cursor = nir_before_instr(instr);
1311 rewrite_atomic_ssbo_instr(b, instr, bo);
1359 nir_instr_remove(instr);
1462 rewrite_and_discard_read(nir_builder *b, nir_instr *instr, void *data)
1465 if (instr->type != nir_instr_type_intrinsic)
1468 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
1626 nir_foreach_instr_safe(instr, block) {
1627 switch (instr->type) {
1629 nir_deref_instr *deref = nir_instr_as_deref(instr);
1655 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
1664 b.cursor = nir_before_instr(instr);
1726 _mesa_set_add(deletes, &deref->instr);
1794 _mesa_set_add(deletes, &deref->instr);
1814 nir_ssa_def_rewrite_uses_after(&intr->dest.ssa, dest, instr);
1816 _mesa_set_add(deletes, instr);
1875 nir_foreach_instr_safe(instr, block) {
1876 switch (instr->type) {
1878 nir_deref_instr *deref = nir_instr_as_deref(instr);
1890 b.cursor = nir_before_instr(instr);
1892 nir_ssa_def_rewrite_uses_after(&deref->dest.ssa, dest, &deref->instr);
1893 nir_instr_remove(&deref->instr);
2031 nir_foreach_instr(instr, block) {
2032 if (instr->type != nir_instr_type_deref)
2034 nir_deref_instr *deref = nir_instr_as_deref(instr);
2194 lower_baseinstance_instr(nir_builder *b, nir_instr *instr, void *data)
2196 if (instr->type != nir_instr_type_intrinsic)
2198 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
2201 b->cursor = nir_after_instr(instr);
2332 nir_foreach_instr(instr, block) {
2333 if (instr->type != nir_instr_type_intrinsic)
2336 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
2431 /* bindless sampling uses the variable type directly, which means the tex instr has to exactly
2433 * this results in cases where a shader is passed with sampler2DArray but the tex instr only has
2436 * to fix this, pad the coord src here and fix the tex instr so that ntv will do the "right" thing
2451 nir_intrinsic_instr *instr = nir_instr_as_intrinsic(in);
2461 switch (instr->intrinsic) {
2487 enum glsl_sampler_dim dim = nir_intrinsic_image_dim(instr);
2491 instr->intrinsic = op;
2495 deref = nir_build_deref_array(b, deref, nir_u2uN(b, instr->src[0].ssa, 32));
2496 nir_instr_rewrite_src_ssa(in, &instr->src[0], &deref->dest.ssa);
2517 nir_intrinsic_instr *instr = nir_instr_as_intrinsic(in);
2518 if (instr->intrinsic != nir_intrinsic_load_deref &&
2519 instr->intrinsic != nir_intrinsic_store_deref)
2522 nir_deref_instr *src_deref = nir_src_as_deref(instr->src[0]);
2535 if (instr->intrinsic == nir_intrinsic_load_deref) {
2537 nir_instr_rewrite_src_ssa(in, &instr->src[0], def);
2538 nir_ssa_def_rewrite_uses(&instr->dest.ssa, def);
2540 nir_store_deref(b, deref, instr->src[1].ssa, nir_intrinsic_write_mask(instr));
2543 nir_instr_remove(&src_deref->instr);
2672 convert_1d_shadow_tex(nir_builder *b, nir_instr *instr, void *data)
2675 if (instr->type != nir_instr_type_tex)
2677 nir_tex_instr *tex = nir_instr_as_tex(instr);
2686 b->cursor = nir_before_instr(instr);
2706 nir_instr_rewrite_src_ssa(instr, &tex->src[c].src, def);
2708 b->cursor = nir_after_instr(instr);
2748 nir_foreach_instr_safe(instr, block) {
2749 if (instr->type == nir_instr_type_tex) {
2750 nir_tex_instr *tex = nir_instr_as_tex(instr);
2753 if (instr->type != nir_instr_type_intrinsic)
2755 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
2829 nir_intrinsic_instr *instr = nir_instr_as_intrinsic(in);
2830 if (instr->intrinsic == nir_intrinsic_sparse_residency_code_and) {
2831 b->cursor = nir_before_instr(&instr->instr);
2833 if (is_residency_code(instr->src[0].ssa))
2834 src0 = nir_is_sparse_texels_resident(b, 1, instr->src[0].ssa);
2836 src0 = instr->src[0].ssa;
2838 if (is_residency_code(instr->src[1].ssa))
2839 src1 = nir_is_sparse_texels_resident(b, 1, instr->src[1].ssa);
2841 src1 = instr->src[1].ssa;
2843 nir_ssa_def_rewrite_uses_after(&instr->dest.ssa, def, in);
2847 if (instr->intrinsic != nir_intrinsic_is_sparse_texels_resident)
2854 b->cursor = nir_before_instr(&instr->instr);
2855 nir_instr *parent = instr->src[0].ssa->parent_instr;
2856 if (is_residency_code(instr->src[0].ssa)) {
2859 nir_ssa_def_rewrite_uses_after(instr->src[0].ssa, nir_channel(b, alu->src[0].src.ssa, 0), parent);
2872 if (instr->dest.ssa.bit_size != 32) {
2873 if (instr->dest.ssa.bit_size == 1)
2876 src = nir_u2uN(b, src, instr->dest.ssa.bit_size);
2878 nir_ssa_def_rewrite_uses(&instr->dest.ssa, src);