Lines Matching defs:newpat

301 /* This contains any hard registers that are used in newpat; reg_dead_at_p
602 combine_validate_cost (rtx i1, rtx i2, rtx i3, rtx newpat, rtx newi2pat)
628 new_i3_cost = insn_rtx_cost (newpat);
1824 rtx newpat, newi2pat = 0;
1962 newpat = p2;
2097 newpat = PATTERN (i2);
2286 newpat = PATTERN (i3);
2287 SUBST (XEXP (SET_SRC (newpat), 0), i2src);
2298 && (cc_use = find_single_use (SET_DEST (newpat), i3,
2302 != GET_MODE (SET_DEST (newpat))))
2304 if (can_change_dest_mode(SET_DEST (newpat), added_sets_2,
2307 unsigned int regno = REGNO (SET_DEST (newpat));
2318 SUBST (SET_DEST (newpat), new_dest);
2320 SUBST (SET_SRC (newpat),
2373 newpat = subst (PATTERN (i3), i2dest, i2src, 0,
2384 if (i1 && GET_CODE (newpat) != CLOBBER)
2392 && !reg_overlap_mentioned_p (i1dest, newpat))
2396 || !combinable_i3pat (NULL_RTX, &newpat, i1dest, NULL_RTX, 0, 0))
2404 newpat = subst (newpat, i1dest, i1src, 0, 0);
2418 || GET_CODE (newpat) == CLOBBER
2421 || (GET_CODE (newpat) == SET && GET_CODE (SET_SRC (newpat)) == MULT
2437 if (GET_CODE (newpat) == PARALLEL)
2439 rtvec old = XVEC (newpat, 0);
2440 total_sets = XVECLEN (newpat, 0) + added_sets_1 + added_sets_2;
2441 newpat = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (total_sets));
2442 memcpy (XVEC (newpat, 0)->elem, &old->elem[0],
2447 rtx old = newpat;
2449 newpat = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (total_sets));
2450 XVECEXP (newpat, 0, 0) = old;
2454 XVECEXP (newpat, 0, --total_sets) = i1pat;
2462 XVECEXP (newpat, 0, --total_sets) = i2pat;
2465 XVECEXP (newpat, 0, --total_sets)
2475 mark_used_regs_combine (newpat);
2479 if (i1 && GET_CODE (newpat) == PARALLEL
2480 && GET_CODE (XVECEXP (newpat, 0, XVECLEN (newpat, 0) - 1)) == CLOBBER)
2482 int len = XVECLEN (newpat, 0);
2486 RTVEC_ELT (newpat_vec_with_clobbers, i) = XVECEXP (newpat, 0, i);
2490 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2512 && GET_CODE (newpat) == PARALLEL
2513 && XVECLEN (newpat, 0) == 2
2514 && GET_CODE (XVECEXP (newpat, 0, 0)) == SET
2515 && GET_CODE (XVECEXP (newpat, 0, 1)) == SET
2516 && asm_noperands (newpat) < 0)
2518 rtx set0 = XVECEXP (newpat, 0, 0);
2519 rtx set1 = XVECEXP (newpat, 0, 1);
2530 newpat = set0;
2531 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2543 newpat = set1;
2544 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2552 PATTERN (i3) = newpat;
2564 if (i1 && insn_code_number < 0 && GET_CODE (newpat) == SET
2565 && asm_noperands (newpat) < 0)
2573 m_split = split_insns (newpat, i3);
2582 if (m_split == 0 && ! reg_overlap_mentioned_p (i2dest, newpat))
2584 enum machine_mode new_mode = GET_MODE (SET_DEST (newpat));
2590 gen_rtvec (2, newpat,
2615 gen_rtvec (2, newpat,
2646 newpat = m_split;
2671 newpat = newi3pat;
2701 if (insn_code_number < 0 && (split = find_split_point (&newpat, i3)) != 0
2717 && ! reg_referenced_p (i2dest, newpat))
2773 if (BINARY_P (SET_SRC (newpat))
2774 && split_mode == GET_MODE (SET_SRC (newpat))
2775 && ! side_effects_p (SET_SRC (newpat)))
2777 rtx setsrc = SET_SRC (newpat);
2844 if (reg_overlap_mentioned_p (reg, newpat))
2854 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2873 else if (i1 && insn_code_number < 0 && asm_noperands (newpat) < 0
2874 && GET_CODE (newpat) == PARALLEL
2875 && XVECLEN (newpat, 0) == 2
2876 && GET_CODE (XVECEXP (newpat, 0, 0)) == SET
2877 && GET_CODE (SET_SRC (XVECEXP (newpat, 0, 0))) == SIGN_EXTEND
2878 && (GET_MODE (SET_DEST (XVECEXP (newpat, 0, 0)))
2879 == GET_MODE (SET_SRC (XVECEXP (newpat, 0, 0))))
2880 && GET_CODE (XVECEXP (newpat, 0, 1)) == SET
2881 && rtx_equal_p (SET_SRC (XVECEXP (newpat, 0, 1)),
2882 XEXP (SET_SRC (XVECEXP (newpat, 0, 0)), 0))
2883 && ! use_crosses_set_p (SET_SRC (XVECEXP (newpat, 0, 1)),
2885 && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) != ZERO_EXTRACT
2886 && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) != STRICT_LOW_PART
2887 && ! (temp = SET_DEST (XVECEXP (newpat, 0, 1)),
2894 && ! (GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) == SUBREG
2895 && (temp = SUBREG_REG (SET_DEST (XVECEXP (newpat, 0, 1))),
2902 && ! reg_overlap_mentioned_p (SET_DEST (XVECEXP (newpat, 0, 1)),
2903 SET_SRC (XVECEXP (newpat, 0, 1)))
2905 SET_DEST (XVECEXP (newpat, 0, 0))))
2909 newi2pat = XVECEXP (newpat, 0, 0);
2910 ni2dest = SET_DEST (XVECEXP (newpat, 0, 0));
2911 newpat = XVECEXP (newpat, 0, 1);
2912 SUBST (SET_SRC (newpat),
2913 gen_lowpart (GET_MODE (SET_SRC (newpat)), ni2dest));
2917 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2928 else if (i1 && insn_code_number < 0 && asm_noperands (newpat) < 0
2929 && GET_CODE (newpat) == PARALLEL
2930 && XVECLEN (newpat, 0) == 2
2931 && GET_CODE (XVECEXP (newpat, 0, 0)) == SET
2932 && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 0))) != ZERO_EXTRACT
2933 && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 0))) != STRICT_LOW_PART
2934 && GET_CODE (XVECEXP (newpat, 0, 1)) == SET
2935 && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) != ZERO_EXTRACT
2936 && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) != STRICT_LOW_PART
2937 && ! use_crosses_set_p (SET_SRC (XVECEXP (newpat, 0, 1)),
2939 && ! reg_referenced_p (SET_DEST (XVECEXP (newpat, 0, 1)),
2940 XVECEXP (newpat, 0, 0))
2941 && ! reg_referenced_p (SET_DEST (XVECEXP (newpat, 0, 0)),
2942 XVECEXP (newpat, 0, 1))
2943 && ! (contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 0)))
2944 && contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 1))))
2948 && ! (reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 0))
2949 && reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 1)))
2957 if (reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 0)))
2959 newi2pat = XVECEXP (newpat, 0, 0);
2960 newpat = XVECEXP (newpat, 0, 1);
2965 newi2pat = XVECEXP (newpat, 0, 1);
2966 newpat = XVECEXP (newpat, 0, 0);
2972 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2979 && (! check_asm_operands (newpat) || added_sets_1 || added_sets_2)))
3045 if (!combine_validate_cost (i1, i2, i3, newpat, newi2pat))
3062 PATTERN (i3) = newpat;
3128 reset_used_flags (newpat);
3136 newpat = copy_rtx_if_shared (newpat);
3142 PATTERN (i3) = newpat;
3230 move_deaths (newpat, newi2pat, INSN_CUID (i1), i3, &midnotes);
3233 move_deaths (newpat, NULL_RTX, i1 ? INSN_CUID (i1) : INSN_CUID (i2),
3379 can affect nonzero_bits of newpat */
3382 note_stores (newpat, set_nonzero_bits_and_sign_copies, NULL);
3414 if (GET_CODE (newpat) == SET
3415 && SET_SRC (newpat) == pc_rtx
3416 && SET_DEST (newpat) == pc_rtx)
9406 rtx newpat = gen_rtx_PARALLEL (VOIDmode,
9414 XVECEXP (newpat, 0, i) = XVECEXP (pat, 0, i);
9416 XVECEXP (newpat, 0, 0) = pat;
9418 add_clobbers (newpat, insn_code_number);
9420 for (i = XVECLEN (newpat, 0) - num_clobbers_to_add;
9421 i < XVECLEN (newpat, 0); i++)
9423 if (REG_P (XEXP (XVECEXP (newpat, 0, i), 0))
9424 && ! reg_dead_at_p (XEXP (XVECEXP (newpat, 0, i), 0), insn))
9427 XEXP (XVECEXP (newpat, 0, i), 0), notes);
9429 pat = newpat;