Lines Matching refs:instr

66 nir_builder_alu_instr_finish_and_insert(nir_builder *build, nir_alu_instr *instr)
68 const nir_op_info *op_info = &nir_op_infos[instr->op];
70 instr->exact = build->exact;
80 instr->src[i].src.ssa->num_components);
91 unsigned src_bit_size = instr->src[i].src.ssa->bit_size;
112 for (unsigned j = instr->src[i].src.ssa->num_components;
114 instr->src[i].swizzle[j] = instr->src[i].src.ssa->num_components - 1;
118 nir_ssa_dest_init(&instr->instr, &instr->dest.dest, num_components,
120 instr->dest.write_mask = (1 << num_components) - 1;
122 nir_builder_instr_insert(build, &instr->instr);
124 return &instr->dest.dest.ssa;
131 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
132 if (!instr)
135 instr->src[0].src = nir_src_for_ssa(src0);
137 instr->src[1].src = nir_src_for_ssa(src1);
139 instr->src[2].src = nir_src_for_ssa(src2);
141 instr->src[3].src = nir_src_for_ssa(src3);
143 return nir_builder_alu_instr_finish_and_insert(build, instr);
149 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
150 if (!instr)
153 instr->src[0].src = nir_src_for_ssa(src0);
155 return nir_builder_alu_instr_finish_and_insert(build, instr);
162 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
163 if (!instr)
166 instr->src[0].src = nir_src_for_ssa(src0);
167 instr->src[1].src = nir_src_for_ssa(src1);
169 return nir_builder_alu_instr_finish_and_insert(build, instr);
176 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
177 if (!instr)
180 instr->src[0].src = nir_src_for_ssa(src0);
181 instr->src[1].src = nir_src_for_ssa(src1);
182 instr->src[2].src = nir_src_for_ssa(src2);
184 return nir_builder_alu_instr_finish_and_insert(build, instr);
191 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
192 if (!instr)
195 instr->src[0].src = nir_src_for_ssa(src0);
196 instr->src[1].src = nir_src_for_ssa(src1);
197 instr->src[2].src = nir_src_for_ssa(src2);
198 instr->src[3].src = nir_src_for_ssa(src3);
200 return nir_builder_alu_instr_finish_and_insert(build, instr);
208 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
209 if (!instr)
213 instr->src[i].src = nir_src_for_ssa(srcs[i]);
215 return nir_builder_alu_instr_finish_and_insert(build, instr);
222 nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
223 if (!instr)
227 instr->src[i].src = nir_src_for_ssa(comp[i].def);
228 instr->src[i].swizzle[0] = comp[i].comp;
230 instr->exact = build->exact;
235 nir_ssa_dest_init(&instr->instr, &instr->dest.dest, num_components,
237 instr->dest.write_mask = (1 << num_components) - 1;
239 nir_builder_instr_insert(build, &instr->instr);
241 return &instr->dest.dest.ssa;
271 nir_ssa_for_alu_src(nir_builder *build, nir_alu_instr *instr, unsigned srcn)
273 if (nir_alu_src_is_trivial_ssa(instr, srcn))
274 return instr->src[srcn].src.ssa;
276 nir_alu_src *src = &instr->src[srcn];
277 unsigned num_components = nir_ssa_alu_instr_src_components(instr, srcn);
293 nir_ssa_dest_init(&load->instr, &load->dest,
295 nir_builder_instr_insert(build, &load->instr);
300 nir_builder_instr_insert(nir_builder *build, nir_instr *instr)
302 nir_instr_insert(build->cursor, instr);
305 nir_update_instr_divergence(build->shader, instr);
308 build->cursor = nir_after_instr(instr);
381 nir_ssa_dest_init(&phi->instr, &phi->dest,
384 nir_builder_instr_insert(build, &phi->instr);