Lines Matching refs:instr

34 brw_nir_lower_load_uniforms_filter(const nir_instr *instr,
37 if (instr->type != nir_instr_type_intrinsic)
39 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
44 brw_nir_lower_load_uniforms_impl(nir_builder *b, nir_instr *instr,
47 assert(instr->type == nir_instr_type_intrinsic);
48 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
140 nir_instr *instr, void *data)
142 if (instr->type != nir_instr_type_intrinsic)
145 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
154 b->cursor = nir_before_instr(&intrin->instr);
164 nir_instr_rewrite_src(&intrin->instr, offset_src, nir_src_for_ssa(offset));
623 brw_nir_adjust_offset_for_arrayed_indices_instr(nir_builder *b, nir_instr *instr, void *data)
625 if (instr->type != nir_instr_type_intrinsic)
628 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
643 b->cursor = nir_before_instr(&intrin->instr);
648 nir_instr_rewrite_src(&intrin->instr, offset_src, nir_src_for_ssa(offset));
659 b->cursor = nir_before_instr(&intrin->instr);
666 nir_instr_rewrite_src(&intrin->instr, offset_src, nir_src_for_ssa(offset));
833 component_from_intrinsic(nir_intrinsic_instr *instr)
835 if (nir_intrinsic_has_component(instr))
836 return nir_intrinsic_component(instr);
859 emit_urb_direct_writes(const fs_builder &bld, nir_intrinsic_instr *instr,
862 assert(nir_src_bit_size(instr->src[0]) == 32);
864 nir_src *offset_nir_src = nir_get_io_offset_src(instr);
867 fs_reg urb_handle = get_mesh_urb_handle(bld, instr->intrinsic);
869 const unsigned comps = nir_src_num_components(instr->src[0]);
872 const unsigned mask = nir_intrinsic_write_mask(instr);
873 const unsigned offset_in_dwords = nir_intrinsic_base(instr) +
875 component_from_intrinsic(instr);
952 emit_urb_indirect_writes(const fs_builder &bld, nir_intrinsic_instr *instr,
955 assert(nir_src_bit_size(instr->src[0]) == 32);
957 const unsigned comps = nir_src_num_components(instr->src[0]);
960 fs_reg urb_handle = get_mesh_urb_handle(bld, instr->intrinsic);
962 const unsigned base_in_dwords = nir_intrinsic_base(instr) +
963 component_from_intrinsic(instr);
972 if (((1 << c) & nir_intrinsic_write_mask(instr)) == 0)
1017 emit_urb_direct_reads(const fs_builder &bld, nir_intrinsic_instr *instr,
1020 assert(nir_dest_bit_size(instr->dest) == 32);
1022 unsigned comps = nir_dest_num_components(instr->dest);
1026 nir_src *offset_nir_src = nir_get_io_offset_src(instr);
1029 fs_reg urb_handle = get_mesh_urb_handle(bld, instr->intrinsic);
1031 const unsigned offset_in_dwords = nir_intrinsic_base(instr) +
1033 component_from_intrinsic(instr);
1061 emit_urb_indirect_reads(const fs_builder &bld, nir_intrinsic_instr *instr,
1064 assert(nir_dest_bit_size(instr->dest) == 32);
1066 unsigned comps = nir_dest_num_components(instr->dest);
1080 fs_reg urb_handle = get_mesh_urb_handle(bld, instr->intrinsic);
1082 const unsigned base_in_dwords = nir_intrinsic_base(instr) +
1083 component_from_intrinsic(instr);
1125 fs_visitor::emit_task_mesh_store(const fs_builder &bld, nir_intrinsic_instr *instr)
1127 fs_reg src = get_nir_src(instr->src[0]);
1128 nir_src *offset_nir_src = nir_get_io_offset_src(instr);
1136 emit_urb_direct_writes(bld, instr, src);
1138 emit_urb_indirect_writes(bld, instr, src, get_nir_src(*offset_nir_src));
1142 fs_visitor::emit_task_mesh_load(const fs_builder &bld, nir_intrinsic_instr *instr)
1144 fs_reg dest = get_nir_dest(instr->dest);
1145 nir_src *offset_nir_src = nir_get_io_offset_src(instr);
1153 emit_urb_direct_reads(bld, instr, dest);
1155 emit_urb_indirect_reads(bld, instr, dest, get_nir_src(*offset_nir_src));
1160 nir_intrinsic_instr *instr)
1164 switch (instr->intrinsic) {
1167 emit_task_mesh_store(bld, instr);
1172 emit_task_mesh_load(bld, instr);
1176 nir_emit_task_mesh_intrinsic(bld, instr);
1183 nir_intrinsic_instr *instr)
1187 switch (instr->intrinsic) {
1191 emit_task_mesh_store(bld, instr);
1198 emit_task_mesh_load(bld, instr);
1202 nir_emit_task_mesh_intrinsic(bld, instr);
1209 nir_intrinsic_instr *instr)
1214 if (nir_intrinsic_infos[instr->intrinsic].has_dest)
1215 dest = get_nir_dest(instr->dest);
1217 switch (instr->intrinsic) {
1222 nir_intrinsic_align_offset(instr)),
1237 if (instr->intrinsic == nir_intrinsic_load_local_invocation_id) {
1244 nir_emit_cs_intrinsic(bld, instr);