Lines Matching refs:iv1
507 iv_add (struct rtx_iv *iv0, struct rtx_iv *iv1, enum rtx_code op) in iv_add() argument
516 && GET_MODE_SIZE (iv0->extend_mode) < GET_MODE_SIZE (iv1->extend_mode)) in iv_add()
518 iv0->extend_mode = iv1->extend_mode; in iv_add()
522 if (iv1->extend == IV_UNKNOWN_EXTEND in iv_add()
523 && iv1->mode == iv1->extend_mode in iv_add()
524 && iv1->step == const0_rtx in iv_add()
525 && GET_MODE_SIZE (iv1->extend_mode) < GET_MODE_SIZE (iv0->extend_mode)) in iv_add()
527 iv1->extend_mode = iv0->extend_mode; in iv_add()
528 iv1->base = simplify_gen_unary (ZERO_EXTEND, iv1->extend_mode, in iv_add()
529 iv1->base, iv1->mode); in iv_add()
533 if (mode != iv1->extend_mode) in iv_add()
537 && iv1->extend == IV_UNKNOWN_EXTEND) in iv_add()
539 if (iv0->mode != iv1->mode) in iv_add()
542 iv0->base = simplify_gen_binary (op, mode, iv0->base, iv1->base); in iv_add()
543 iv0->step = simplify_gen_binary (op, mode, iv0->step, iv1->step); in iv_add()
549 if (iv1->extend == IV_UNKNOWN_EXTEND in iv_add()
550 && iv1->mode == mode in iv_add()
551 && iv1->step == const0_rtx) in iv_add()
553 iv0->delta = simplify_gen_binary (op, mode, iv0->delta, iv1->base); in iv_add()
562 *iv0 = *iv1; in iv_add()
934 struct rtx_iv iv0, iv1; in iv_analyze_expr() local
994 && !iv_analyze_expr (insn, omode, op1, &iv1)) in iv_analyze_expr()
1016 if (!iv_add (&iv0, &iv1, code)) in iv_analyze_expr()
2132 canonicalize_iv_subregs (struct rtx_iv *iv0, struct rtx_iv *iv1, in canonicalize_iv_subregs() argument
2142 if (iv1->first_special || iv1->mult != const1_rtx || iv1->delta != const0_rtx) in canonicalize_iv_subregs()
2151 || iv1->extend == IV_ZERO_EXTEND) in canonicalize_iv_subregs()
2159 || iv1->extend == IV_SIGN_EXTEND) in canonicalize_iv_subregs()
2166 && iv1->extend != IV_UNKNOWN_EXTEND in canonicalize_iv_subregs()
2167 && iv0->extend != iv1->extend) in canonicalize_iv_subregs()
2173 if (iv1->extend != IV_UNKNOWN_EXTEND) in canonicalize_iv_subregs()
2174 signed_p = iv1->extend == IV_SIGN_EXTEND; in canonicalize_iv_subregs()
2195 if (GET_MODE_BITSIZE (comp_mode) < GET_MODE_BITSIZE (iv1->extend_mode)) in canonicalize_iv_subregs()
2196 comp_mode = iv1->extend_mode; in canonicalize_iv_subregs()
2209 if (iv1->extend_mode != comp_mode) in canonicalize_iv_subregs()
2211 if (iv1->mode != iv1->extend_mode in canonicalize_iv_subregs()
2212 || iv1->step != const0_rtx) in canonicalize_iv_subregs()
2215 iv1->base = simplify_gen_unary (signed_p ? SIGN_EXTEND : ZERO_EXTEND, in canonicalize_iv_subregs()
2216 comp_mode, iv1->base, iv1->mode); in canonicalize_iv_subregs()
2217 iv1->extend_mode = comp_mode; in canonicalize_iv_subregs()
2225 && iv0->mode != iv1->mode) in canonicalize_iv_subregs()
2226 shorten_into_mode (iv0, iv1->mode, cond, signed_p, desc); in canonicalize_iv_subregs()
2228 if (iv1->mode == iv1->extend_mode in canonicalize_iv_subregs()
2229 && iv1->step == const0_rtx in canonicalize_iv_subregs()
2230 && iv0->mode != iv1->mode) in canonicalize_iv_subregs()
2231 shorten_into_mode (iv1, iv0->mode, swap_condition (cond), signed_p, desc); in canonicalize_iv_subregs()
2233 if (iv0->mode != iv1->mode) in canonicalize_iv_subregs()
2310 struct rtx_iv iv0, iv1; in iv_number_of_iterations() local
2355 if (!iv_analyze (insn, mode, op1, &iv1)) in iv_number_of_iterations()
2359 || GET_MODE_BITSIZE (iv1.extend_mode) > HOST_BITS_PER_WIDE_INT) in iv_number_of_iterations()
2370 std::swap (iv0, iv1); in iv_number_of_iterations()
2388 if (!canonicalize_iv_subregs (&iv0, &iv1, cond, desc)) in iv_number_of_iterations()
2398 if (!CONST_INT_P (iv0.step) || !CONST_INT_P (iv1.step)) in iv_number_of_iterations()
2404 if (iv0.step != const0_rtx && iv1.step != const0_rtx) in iv_number_of_iterations()
2409 iv0.step = simplify_gen_binary (MINUS, comp_mode, iv0.step, iv1.step); in iv_number_of_iterations()
2410 iv1.step = const0_rtx; in iv_number_of_iterations()
2414 iv1.step = lowpart_subreg (mode, iv1.step, comp_mode); in iv_number_of_iterations()
2418 if (iv0.step == const0_rtx && iv1.step == const0_rtx) in iv_number_of_iterations()
2424 step_val = -INTVAL (iv1.step); in iv_number_of_iterations()
2466 tmp = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2471 iv1.base = simplify_gen_binary (PLUS, comp_mode, in iv_number_of_iterations()
2472 iv1.base, constm1_rtx); in iv_number_of_iterations()
2503 tmp = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2523 step = simplify_gen_unary (NEG, comp_mode, iv1.step, comp_mode); in iv_number_of_iterations()
2527 delta = simplify_gen_binary (MINUS, comp_mode, iv1.base, iv0.base); in iv_number_of_iterations()
2565 tmp = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2595 inc = INTVAL (iv0.step) - INTVAL (iv1.step); in iv_number_of_iterations()
2596 if (CONST_INT_P (iv1.base)) in iv_number_of_iterations()
2597 up = INTVAL (iv1.base); in iv_number_of_iterations()
2615 iv1.base = simplify_gen_binary (MINUS, comp_mode, iv1.base, delta); in iv_number_of_iterations()
2616 iv1.base = simplify_gen_binary (PLUS, comp_mode, iv1.base, step); in iv_number_of_iterations()
2620 tmp1 = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2639 iv1.base = simplify_gen_binary (MINUS, comp_mode, iv1.base, iv0.base); in iv_number_of_iterations()
2641 iv0.step = simplify_gen_binary (MINUS, comp_mode, iv0.step, iv1.step); in iv_number_of_iterations()
2642 iv1.step = const0_rtx; in iv_number_of_iterations()
2646 iv1.base = simplify_gen_unary (NEG, comp_mode, iv1.base, comp_mode); in iv_number_of_iterations()
2662 tmp1 = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2674 if (iv1.step == const0_rtx) in iv_number_of_iterations()
2684 tmp1 = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2714 tmp = simplify_gen_binary (PLUS, comp_mode, iv1.base, iv0.step); in iv_number_of_iterations()
2727 step = simplify_gen_unary (NEG, mode, iv1.step, mode); in iv_number_of_iterations()
2729 tmp1 = lowpart_subreg (mode, iv1.base, comp_mode); in iv_number_of_iterations()
2758 tmp = simplify_gen_binary (PLUS, comp_mode, iv0.base, iv1.step); in iv_number_of_iterations()