re PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)
commitb607e75e25261ac2c81d71fe1a4dcf5fcd166603
authorJakub Jelinek <jakub@gcc.gnu.org>
Thu, 23 Feb 2017 07:49:06 +0000 (23 08:49 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 23 Feb 2017 07:49:06 +0000 (23 08:49 +0100)
treec83ce2682d44020d9ccc173ce01b86a17929c8a2
parent18eb304e5f35d745dcb1a9bb41a2879a364f59fe
re PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)

PR middle-end/79665
* internal-fn.c (get_range_pos_neg): Moved to ...
* tree.c (get_range_pos_neg): ... here.  No longer static.
* tree.h (get_range_pos_neg): New prototype.
* expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
are known to be in between 0 and signed maximum inclusive, try to
expand both unsigned and signed divmod and use the cheaper one from
those.

From-SVN: r245676
gcc/ChangeLog
gcc/expr.c
gcc/internal-fn.c
gcc/tree.c
gcc/tree.h