Fix for ia64-linux misoptimization.

* fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
	change.

From-SVN: r33643
This commit is contained in:
Jim Wilson 2000-05-03 20:04:31 +00:00 committed by Jim Wilson
parent 8ae7150163
commit 13393c8ae7
2 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,8 @@
Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com>
* fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
change.
2000-05-03 Greg McGary <gkm@gnu.org>
* tree.h (tree_common): Add bounded_flag member. Remove

View File

@ -4402,6 +4402,11 @@ extract_muldiv (t, c, code, wide_type)
break;
case MIN_EXPR: case MAX_EXPR:
/* If widening the type changes the signedness, then we can't perform
this optimization as that changes the result. */
if (ctype != type && TREE_UNSIGNED (ctype) != TREE_UNSIGNED (type))
break;
/* MIN (a, b) / 5 -> MIN (a / 5, b / 5) */
if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0
&& (t2 = extract_muldiv (op1, c, code, wide_type)) != 0)