Home | History | Annotate | Download | only in nir

Lines Matching refs:intr

34 lower_load_input_to_scalar(nir_builder *b, nir_intrinsic_instr *intr)
36 b->cursor = nir_before_instr(&intr->instr);
38 assert(intr->dest.is_ssa);
42 for (unsigned i = 0; i < intr->num_components; i++) {
44 nir_intrinsic_instr_create(b->shader, intr->intrinsic);
46 1, intr->dest.ssa.bit_size, NULL);
49 nir_intrinsic_set_base(chan_intr, nir_intrinsic_base(intr));
50 nir_intrinsic_set_component(chan_intr, nir_intrinsic_component(intr) + i);
52 chan_intr->src[0] = intr->src[0];
59 nir_ssa_def_rewrite_uses(&intr->dest.ssa,
61 intr->num_components)));
62 nir_instr_remove(&intr->instr);
66 lower_store_output_to_scalar(nir_builder *b, nir_intrinsic_instr *intr)
68 b->cursor = nir_before_instr(&intr->instr);
70 nir_ssa_def *value = nir_ssa_for_src(b, intr->src[0], intr->num_components);
72 for (unsigned i = 0; i < intr->num_components; i++) {
73 if (!(nir_intrinsic_write_mask(intr) & (1 << i)))
77 nir_intrinsic_instr_create(b->shader, intr->intrinsic);
80 nir_intrinsic_set_base(chan_intr, nir_intrinsic_base(intr));
82 nir_intrinsic_set_component(chan_intr, nir_intrinsic_component(intr) + i);
87 chan_intr->src[1] = intr->src[1];
92 nir_instr_remove(&intr->instr);
108 nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
110 if (intr->num_components == 1)
113 switch (intr->intrinsic) {
116 lower_load_input_to_scalar(&b, intr);
120 lower_store_output_to_scalar(&b, intr);