Lines Matching defs:instr

32 get_io_intrinsic(nir_instr *instr, nir_variable_mode modes,
35 if (instr->type != nir_instr_type_intrinsic)
38 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
76 nir_foreach_instr_safe (instr, block) {
78 nir_intrinsic_instr *intr = get_io_intrinsic(instr, modes, &mode);
101 nir_foreach_instr_safe (instr, block) {
103 nir_intrinsic_instr *intr = get_io_intrinsic(instr, modes, &mode);
156 nir_foreach_instr_safe (instr, block) {
158 nir_intrinsic_instr *intr = get_io_intrinsic(instr, modes, &mode);
191 b.cursor = nir_before_instr(&intr->instr);
192 nir_instr_rewrite_src_ssa(&intr->instr, &intr->src[0],
214 b.cursor = nir_after_instr(&intr->instr);
265 nir_foreach_instr_safe (instr, block) {
267 nir_intrinsic_instr *intr = get_io_intrinsic(instr, modes, &mode);
325 nir_foreach_instr_safe (instr, block) {
327 nir_intrinsic_instr *intr = get_io_intrinsic(instr, modes, &mode);
360 is_n_to_m_conversion(nir_instr *instr, unsigned n, nir_op m)
362 if (instr->type != nir_instr_type_alu)
365 nir_alu_instr *alu = nir_instr_as_alu(instr);
370 is_f16_to_f32_conversion(nir_instr *instr)
372 return is_n_to_m_conversion(instr, 16, nir_op_f2f32);
376 is_f32_to_f16_conversion(nir_instr *instr)
378 return is_n_to_m_conversion(instr, 32, nir_op_f2f16) ||
379 is_n_to_m_conversion(instr, 32, nir_op_f2fmp);
383 is_i16_to_i32_conversion(nir_instr *instr)
385 return is_n_to_m_conversion(instr, 16, nir_op_i2i32);
389 is_u16_to_u32_conversion(nir_instr *instr)
391 return is_n_to_m_conversion(instr, 16, nir_op_u2u32);
395 is_i32_to_i16_conversion(nir_instr *instr)
397 return is_n_to_m_conversion(instr, 32, nir_op_i2i16) ||
398 is_n_to_m_conversion(instr, 32, nir_op_u2u16) ||
399 is_n_to_m_conversion(instr, 32, nir_op_i2imp);
422 nir_foreach_instr_safe (instr, block) {
423 if (instr->type != nir_instr_type_tex)
426 nir_tex_instr *tex = nir_instr_as_tex(instr);
475 b.cursor = nir_before_instr(&tex->instr);
479 nir_instr_rewrite_src_ssa(&tex->instr, &tex->src[i].src, conv);
555 fold_16bit_src(nir_builder *b, nir_instr *instr, nir_src *src, nir_alu_type src_type)
557 b->cursor = nir_before_instr(instr);
580 nir_instr_rewrite_src_ssa(instr, src, new_vec);
584 fold_16bit_store_data(nir_builder *b, nir_intrinsic_instr *instr)
586 nir_alu_type src_type = nir_intrinsic_src_type(instr);
587 nir_src *data_src = &instr->src[3];
589 b->cursor = nir_before_instr(&instr->instr);
594 fold_16bit_src(b, &instr->instr, data_src, src_type);
596 nir_intrinsic_set_src_type(instr, (src_type & ~32) | 16);
615 nir_instr *instr = use->parent_instr;
616 is_f32_to_f16 &= (allow_standard && is_f32_to_f16_conversion(instr)) ||
617 (allow_rtz && is_n_to_m_conversion(instr, 32, nir_op_f2f16_rtz)) ||
618 (allow_rtne && is_n_to_m_conversion(instr, 32, nir_op_f2f16_rtne));
619 is_i32_to_i16 &= is_i32_to_i16_conversion(instr);
636 fold_16bit_load_data(nir_builder *b, nir_intrinsic_instr *instr,
639 nir_alu_type dest_type = nir_intrinsic_dest_type(instr);
641 if (!fold_16bit_destination(&instr->dest.ssa, dest_type, exec_mode, rdm))
644 nir_intrinsic_set_dest_type(instr, (dest_type & ~32) | 16);
719 fold_16bit_src(b, &tex->instr, src, src_type);
726 fold_16bit_tex_image(nir_builder *b, nir_instr *instr, void *params)
732 if (instr->type == nir_instr_type_intrinsic) {
733 nir_intrinsic_instr *intrinsic = nir_instr_as_intrinsic(instr);
751 } else if (instr->type == nir_instr_type_tex) {
752 nir_tex_instr *tex = nir_instr_as_tex(instr);