Home | History | Annotate | Download | only in nir

Lines Matching refs:intrin

414       nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
416 switch (intrin->intrinsic) {
418 register_load_instr(intrin, state);
422 register_store_instr(intrin, state);
426 register_copy_instr(intrin, state);
492 nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
494 switch (intrin->intrinsic) {
497 get_deref_node(intrin->variables[0], state);
507 intrin->num_components,
508 intrin->dest.ssa.bit_size);
510 nir_instr_insert_before(&intrin->instr, &undef->instr);
511 nir_instr_remove(&intrin->instr);
513 nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
525 for (unsigned i = intrin->num_components; i < 4; i++)
528 assert(intrin->dest.is_ssa);
530 mov->dest.write_mask = (1 << intrin->num_components) - 1;
532 intrin->num_components,
533 intrin->dest.ssa.bit_size, NULL);
535 nir_instr_insert_before(&intrin->instr, &mov->instr);
536 nir_instr_remove(&intrin->instr);
538 nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
545 get_deref_node(intrin->variables[0], state);
550 nir_instr_remove(&intrin->instr);
557 assert(intrin->num_components ==
560 assert(intrin->src[0].is_ssa);
563 b.cursor = nir_before_instr(&intrin->instr);
565 unsigned wrmask = nir_intrinsic_write_mask(intrin);
566 if (wrmask == (1 << intrin->num_components) - 1) {
568 * intrin->num_components and intrin->src[0].ssa->num_components
573 swiz[i] = i < intrin->num_components ? i : 0;
575 new_def = nir_swizzle(&b, intrin->src[0].ssa, swiz,
576 intrin->num_components, false);
585 for (unsigned i = 0; i < intrin->num_components; i++) {
587 srcs[i] = nir_channel(&b, intrin->src[0].ssa, i);
592 new_def = nir_vec(&b, srcs, intrin->num_components);
595 assert(new_def->num_components == intrin->num_components);
598 nir_instr_remove(&intrin->instr);