Lines Matching defs:intrin
1449 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
1450 if (nir_intrinsic_infos[intrin->intrinsic].has_dest) {
1451 assert(intrin->dest.is_ssa);
1452 return &intrin->dest.ssa;
1493 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
1494 return nir_intrinsic_infos[intrin->intrinsic].has_dest &&
1495 !intrin->dest.is_ssa;
1850 get_store_value(nir_intrinsic_instr *intrin)
1852 assert(nir_intrinsic_has_write_mask(intrin));
1854 if (intrin->intrinsic == nir_intrinsic_store_deref ||
1855 intrin->intrinsic == nir_intrinsic_store_deref_block_intel)
1856 return intrin->src[1].ssa;
1859 return intrin->src[0].ssa;
1874 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(src->parent_instr);
1875 if (nir_intrinsic_has_write_mask(intrin) && src->ssa == get_store_value(intrin))
1876 return nir_intrinsic_write_mask(intrin);
2522 nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
2524 switch (intrin) {
2713 nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin, nir_ssa_def *src,
2716 enum gl_access_qualifier access = nir_intrinsic_access(intrin);
2719 assert(!nir_intrinsic_has_src_type(intrin) ||
2720 !nir_intrinsic_has_dest_type(intrin));
2723 if (nir_intrinsic_has_src_type(intrin))
2724 data_type = nir_intrinsic_src_type(intrin);
2725 if (nir_intrinsic_has_dest_type(intrin))
2726 data_type = nir_intrinsic_dest_type(intrin);
2728 switch (intrin->intrinsic) {
2731 intrin->intrinsic = bindless ? nir_intrinsic_bindless_image_##op \
2761 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]);
2765 if (nir_intrinsic_format(intrin) == PIPE_FORMAT_NONE)
2766 nir_intrinsic_set_format(intrin, var->data.image.format);
2768 nir_intrinsic_set_access(intrin, access | var->data.access);
2769 if (nir_intrinsic_has_src_type(intrin))
2770 nir_intrinsic_set_src_type(intrin, data_type);
2771 if (nir_intrinsic_has_dest_type(intrin))
2772 nir_intrinsic_set_dest_type(intrin, data_type);
2774 nir_instr_rewrite_src(&intrin->instr, &intrin->src[0],
2837 nir_intrinsic_instr *intrin = nir_src_as_intrinsic(rsrc);
2850 } else if (intrin && intrin->intrinsic == nir_intrinsic_read_first_invocation) {
2855 rsrc = intrin->src[0];
2874 nir_intrinsic_instr *intrin = nir_src_as_intrinsic(rsrc);
2875 if (!intrin)
2879 if (intrin->intrinsic == nir_intrinsic_load_vulkan_descriptor) {
2880 intrin = nir_src_as_intrinsic(intrin->src[0]);
2881 if (!intrin)
2885 if (intrin->intrinsic != nir_intrinsic_vulkan_resource_index)
2890 res.desc_set = nir_intrinsic_desc_set(intrin);
2891 res.binding = nir_intrinsic_binding(intrin);
2893 res.indices[0] = intrin->src[0];