Lines Matching refs:compute_mode

3831   enum machine_mode compute_mode;
3938 for (compute_mode = mode; compute_mode != VOIDmode;
3939 compute_mode = GET_MODE_WIDER_MODE (compute_mode))
3940 if (optab1->handlers[compute_mode].insn_code != CODE_FOR_nothing
3941 || optab2->handlers[compute_mode].insn_code != CODE_FOR_nothing)
3944 if (compute_mode == VOIDmode)
3945 for (compute_mode = mode; compute_mode != VOIDmode;
3946 compute_mode = GET_MODE_WIDER_MODE (compute_mode))
3947 if (optab1->handlers[compute_mode].libfunc
3948 || optab2->handlers[compute_mode].libfunc)
3953 if (compute_mode == VOIDmode)
3954 compute_mode = mode;
3956 if (target && GET_MODE (target) == compute_mode)
3959 tquotient = gen_reg_rtx (compute_mode);
3961 size = GET_MODE_BITSIZE (compute_mode);
3972 max_cost = unsignedp ? udiv_cost[compute_mode] : sdiv_cost[compute_mode];
3975 max_cost -= mul_cost[compute_mode] + add_cost[compute_mode];
3980 if (compute_mode != mode)
3982 op0 = convert_modes (compute_mode, mode, op0, unsignedp);
3983 op1 = convert_modes (compute_mode, mode, op1, unsignedp);
3997 op0 = force_reg (compute_mode, op0);
3999 op1 = force_reg (compute_mode, op1);
4004 op0 = force_reg (compute_mode, op0);
4033 & GET_MODE_MASK (compute_mode));
4041 = expand_binop (compute_mode, and_optab, op0,
4048 quotient = expand_shift (RSHIFT_EXPR, compute_mode, op0,
4060 compute_mode, 1, 1);
4094 = (shift_cost[compute_mode][post_shift - 1]
4095 + shift_cost[compute_mode][1]
4096 + 2 * add_cost[compute_mode]);
4097 t1 = expand_mult_highpart (compute_mode, op0, ml,
4102 t2 = force_operand (gen_rtx_MINUS (compute_mode,
4106 (RSHIFT_EXPR, compute_mode, t2,
4109 t4 = force_operand (gen_rtx_PLUS (compute_mode,
4113 (RSHIFT_EXPR, compute_mode, t4,
4126 (RSHIFT_EXPR, compute_mode, op0,
4130 = (shift_cost[compute_mode][pre_shift]
4131 + shift_cost[compute_mode][post_shift]);
4132 t2 = expand_mult_highpart (compute_mode, t1, ml,
4138 (RSHIFT_EXPR, compute_mode, t2,
4153 gen_rtx_UDIV (compute_mode, op0, op1));
4167 op1 = gen_int_mode (abs_d, compute_mode);
4173 quotient = expand_unop (compute_mode, neg_optab, op0,
4179 compute_mode, 1, 1);
4184 && (rem_flag ? smod_pow2_cheap[compute_mode]
4185 : sdiv_pow2_cheap[compute_mode])
4189 ->handlers[compute_mode].insn_code
4191 || (sdivmod_optab->handlers[compute_mode]
4198 remainder = expand_smod_pow2 (compute_mode, op0, d);
4203 if (sdiv_pow2_cheap[compute_mode]
4204 && ((sdiv_optab->handlers[compute_mode].insn_code
4206 || (sdivmod_optab->handlers[compute_mode].insn_code
4209 compute_mode, op0,
4211 compute_mode),
4214 quotient = expand_sdiv_pow2 (compute_mode, op0, abs_d);
4228 gen_rtx_DIV (compute_mode,
4233 compute_mode))));
4235 quotient = expand_unop (compute_mode, neg_optab,
4252 extra_cost = (shift_cost[compute_mode][post_shift]
4253 + shift_cost[compute_mode][size - 1]
4254 + add_cost[compute_mode]);
4255 t1 = expand_mult_highpart (compute_mode, op0, mlr,
4261 (RSHIFT_EXPR, compute_mode, t1,
4265 (RSHIFT_EXPR, compute_mode, op0,
4270 = force_operand (gen_rtx_MINUS (compute_mode,
4275 = force_operand (gen_rtx_MINUS (compute_mode,
4288 mlr = gen_int_mode (ml, compute_mode);
4289 extra_cost = (shift_cost[compute_mode][post_shift]
4290 + shift_cost[compute_mode][size - 1]
4291 + 2 * add_cost[compute_mode]);
4292 t1 = expand_mult_highpart (compute_mode, op0, mlr,
4297 t2 = force_operand (gen_rtx_PLUS (compute_mode,
4301 (RSHIFT_EXPR, compute_mode, t2,
4305 (RSHIFT_EXPR, compute_mode, op0,
4310 = force_operand (gen_rtx_MINUS (compute_mode,
4315 = force_operand (gen_rtx_MINUS (compute_mode,
4329 gen_rtx_DIV (compute_mode, op0, op1));
4356 remainder = expand_binop (compute_mode, and_optab, op0,
4363 (RSHIFT_EXPR, compute_mode, op0,
4379 (RSHIFT_EXPR, compute_mode, op0,
4382 t2 = expand_binop (compute_mode, xor_optab, op0, t1,
4384 extra_cost = (shift_cost[compute_mode][post_shift]
4385 + shift_cost[compute_mode][size - 1]
4386 + 2 * add_cost[compute_mode]);
4387 t3 = expand_mult_highpart (compute_mode, t2, ml,
4393 (RSHIFT_EXPR, compute_mode, t3,
4396 quotient = expand_binop (compute_mode, xor_optab,
4406 t1 = force_operand (gen_rtx_PLUS (compute_mode,
4408 t2 = expand_binop (compute_mode, ior_optab, op0, t1, NULL_RTX,
4411 (RSHIFT_EXPR, compute_mode, t2,
4414 t3 = force_operand (gen_rtx_MINUS (compute_mode, t1, nsign),
4416 t4 = expand_divmod (0, TRUNC_DIV_EXPR, compute_mode, t3, op1,
4421 t5 = expand_unop (compute_mode, one_cmpl_optab, nsign,
4423 quotient = force_operand (gen_rtx_PLUS (compute_mode,
4439 if (target == 0 || GET_MODE (target) != compute_mode)
4440 target = gen_reg_rtx (compute_mode);
4445 = REG_P (target) ? target : gen_reg_rtx (compute_mode);
4446 quotient = gen_reg_rtx (compute_mode);
4451 = REG_P (target) ? target : gen_reg_rtx (compute_mode);
4452 remainder = gen_reg_rtx (compute_mode);
4462 do_cmp_and_jump (remainder, const0_rtx, EQ, compute_mode, label);
4463 tem = expand_binop (compute_mode, xor_optab, op0, op1,
4465 do_cmp_and_jump (tem, const0_rtx, GE, compute_mode, label);
4479 quotient = gen_reg_rtx (compute_mode);
4480 adjusted_op0 = copy_to_mode_reg (compute_mode, op0);
4486 do_cmp_and_jump (op1, const0_rtx, LT, compute_mode, label2);
4487 do_cmp_and_jump (adjusted_op0, const0_rtx, LT, compute_mode, label1);
4488 tem = expand_binop (compute_mode, sdiv_optab, adjusted_op0, op1,
4499 do_cmp_and_jump (adjusted_op0, const0_rtx, GT, compute_mode, label3);
4500 tem = expand_binop (compute_mode, sdiv_optab, adjusted_op0, op1,
4509 tem = expand_binop (compute_mode, sdiv_optab, adjusted_op0, op1,
4526 t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
4529 t2 = expand_binop (compute_mode, and_optab, op0,
4532 t3 = gen_reg_rtx (compute_mode);
4534 compute_mode, 1, 1);
4539 do_cmp_and_jump (t2, const0_rtx, EQ, compute_mode, lab);
4545 quotient = force_operand (gen_rtx_PLUS (compute_mode,
4556 if (target == 0 || GET_MODE (target) != compute_mode)
4557 target = gen_reg_rtx (compute_mode);
4562 ? target : gen_reg_rtx (compute_mode));
4563 quotient = gen_reg_rtx (compute_mode);
4568 ? target : gen_reg_rtx (compute_mode));
4569 remainder = gen_reg_rtx (compute_mode);
4579 compute_mode, label);
4592 quotient = gen_reg_rtx (compute_mode);
4593 adjusted_op0 = copy_to_mode_reg (compute_mode, op0);
4597 compute_mode, label1);
4603 tem = expand_binop (compute_mode, udiv_optab, adjusted_op0, op1,
4624 t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
4627 t2 = expand_binop (compute_mode, and_optab, op0,
4630 t3 = gen_reg_rtx (compute_mode);
4632 compute_mode, 1, 1);
4637 do_cmp_and_jump (t2, const0_rtx, EQ, compute_mode, lab);
4643 quotient = force_operand (gen_rtx_PLUS (compute_mode,
4654 if (target == 0 || GET_MODE (target) != compute_mode)
4655 target = gen_reg_rtx (compute_mode);
4659 ? target : gen_reg_rtx (compute_mode));
4660 quotient = gen_reg_rtx (compute_mode);
4665 ? target : gen_reg_rtx (compute_mode));
4666 remainder = gen_reg_rtx (compute_mode);
4677 compute_mode, label);
4678 tem = expand_binop (compute_mode, xor_optab, op0, op1,
4680 do_cmp_and_jump (tem, const0_rtx, LT, compute_mode, label);
4694 quotient = gen_reg_rtx (compute_mode);
4695 adjusted_op0 = copy_to_mode_reg (compute_mode, op0);
4701 do_cmp_and_jump (op1, const0_rtx, LT, compute_mode, label2);
4703 compute_mode, label1);
4704 tem = expand_binop (compute_mode, sdiv_optab, adjusted_op0, op1,
4716 compute_mode, label3);
4717 tem = expand_binop (compute_mode, sdiv_optab, adjusted_op0, op1,
4726 tem = expand_binop (compute_mode, sdiv_optab, adjusted_op0, op1,
4746 t1 = expand_shift (RSHIFT_EXPR, compute_mode, op0,
4749 quotient = expand_mult (compute_mode, t1,
4750 gen_int_mode (ml, compute_mode),
4757 compute_mode,
4769 quotient = gen_reg_rtx (compute_mode);
4770 remainder = gen_reg_rtx (compute_mode);
4774 quotient = expand_binop (compute_mode, udiv_optab, op0, op1,
4776 tem = expand_mult (compute_mode, quotient, op1, NULL_RTX, 1);
4777 remainder = expand_binop (compute_mode, sub_optab, op0, tem,
4781 tem = expand_shift (RSHIFT_EXPR, compute_mode, tem,
4784 do_cmp_and_jump (remainder, tem, LEU, compute_mode, label);
4794 quotient = gen_reg_rtx (compute_mode);
4795 remainder = gen_reg_rtx (compute_mode);
4799 quotient = expand_binop (compute_mode, sdiv_optab, op0, op1,
4801 tem = expand_mult (compute_mode, quotient, op1, NULL_RTX, 0);
4802 remainder = expand_binop (compute_mode, sub_optab, op0, tem,
4805 abs_rem = expand_abs (compute_mode, remainder, NULL_RTX, 1, 0);
4806 abs_op1 = expand_abs (compute_mode, op1, NULL_RTX, 1, 0);
4807 tem = expand_shift (LSHIFT_EXPR, compute_mode, abs_rem,
4810 do_cmp_and_jump (tem, abs_op1, LTU, compute_mode, label);
4811 tem = expand_binop (compute_mode, xor_optab, op0, op1,
4813 mask = expand_shift (RSHIFT_EXPR, compute_mode, tem,
4816 tem = expand_binop (compute_mode, xor_optab, mask, const1_rtx,
4818 tem = expand_binop (compute_mode, sub_optab, tem, mask,
4821 tem = expand_binop (compute_mode, xor_optab, mask, op1,
4823 tem = expand_binop (compute_mode, sub_optab, tem, mask,
4836 if (target && GET_MODE (target) != compute_mode)
4845 1) try a mod insn in compute_mode
4846 2) try a divmod insn in compute_mode
4847 3) try a div insn in compute_mode and multiply-subtract to get
4851 = sign_expand_binop (compute_mode, umod_optab, smod_optab,
4854 ((optab2->handlers[compute_mode].insn_code
4861 remainder = gen_reg_rtx (compute_mode);
4879 = sign_expand_binop (compute_mode, udiv_optab, sdiv_optab,
4882 ((optab2->handlers[compute_mode].insn_code
4890 quotient = gen_reg_rtx (compute_mode);
4899 quotient = sign_expand_binop (compute_mode,
4909 if (target && GET_MODE (target) != compute_mode)
4915 remainder = sign_expand_binop (compute_mode, umod_optab, smod_optab,
4922 remainder = gen_reg_rtx (compute_mode);
4934 remainder = expand_mult (compute_mode, quotient, op1,
4936 remainder = expand_binop (compute_mode, sub_optab, op0,