re PR middle-end/16795 (PowerPC - Divide sequences by negative power of two could be more efficient)
PR target/16795 * expmed.c (expand_divmod): If cheap power of 2 divide is available, use it for negative constant as well. From-SVN: r87403
This commit is contained in:
parent
c92d8761c7
commit
3d520aaf7d
|
@ -1,3 +1,9 @@
|
|||
2004-09-12 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
PR target/16795
|
||||
* expmed.c (expand_divmod): If cheap power of 2 divide is
|
||||
available, use it for negative constant as well.
|
||||
|
||||
2004-09-12 Andrew Pinski <apinski@apple.com>
|
||||
|
||||
* darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
|
||||
|
|
14
gcc/expmed.c
14
gcc/expmed.c
|
@ -3764,7 +3764,19 @@ expand_divmod (int rem_flag, enum tree_code code, enum machine_mode mode,
|
|||
if (remainder)
|
||||
return gen_lowpart (mode, remainder);
|
||||
}
|
||||
quotient = expand_sdiv_pow2 (compute_mode, op0, abs_d);
|
||||
|
||||
if (sdiv_pow2_cheap[compute_mode]
|
||||
&& ((sdiv_optab->handlers[compute_mode].insn_code
|
||||
!= CODE_FOR_nothing)
|
||||
|| (sdivmod_optab->handlers[compute_mode].insn_code
|
||||
!= CODE_FOR_nothing)))
|
||||
quotient = expand_divmod (0, TRUNC_DIV_EXPR,
|
||||
compute_mode, op0,
|
||||
gen_int_mode (abs_d,
|
||||
compute_mode),
|
||||
NULL_RTX, 0);
|
||||
else
|
||||
quotient = expand_sdiv_pow2 (compute_mode, op0, abs_d);
|
||||
|
||||
/* We have computed OP0 / abs(OP1). If OP1 is negative,
|
||||
negate the quotient. */
|
||||
|
|
Loading…
Reference in New Issue