Lines Matching defs:phi
838 /* There are 3 types of phi instructions:
844 visit_if_merge_phi(nir_phi_instr *phi, bool if_cond_divergent)
846 if (phi->dest.ssa.divergent)
850 nir_foreach_phi_src(src, phi) {
853 phi->dest.ssa.divergent = true;
863 phi->dest.ssa.divergent = true;
870 /* There are 3 types of phi instructions:
877 visit_loop_header_phi(nir_phi_instr *phi, nir_block *preheader, bool divergent_continue)
879 if (phi->dest.ssa.divergent)
883 nir_foreach_phi_src(src, phi) {
886 phi->dest.ssa.divergent = true;
903 phi->dest.ssa.divergent = true;
911 /* There are 3 types of phi instructions:
916 * (note: there should be no phi for loop-invariant variables.) */
918 visit_loop_exit_phi(nir_phi_instr *phi, bool divergent_break)
920 if (phi->dest.ssa.divergent)
924 phi->dest.ssa.divergent = true;
929 nir_foreach_phi_src(src, phi) {
931 phi->dest.ssa.divergent = true;
990 nir_phi_instr *phi = nir_instr_as_phi(instr);
991 if (!state->first_visit && phi->dest.ssa.divergent)
994 nir_foreach_phi_src(src, phi) {
996 phi->dest.ssa.divergent = src->src.ssa->divergent;
1000 progress |= phi->dest.ssa.divergent;