tree-optimization/97089 - fix bogus unsigned division replacement

This fixes bogus replacing of an unsigned (-x)/y division by
-(x/y).

2020-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97089
	* tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned
	divisions.
This commit is contained in:
Richard Biener 2020-09-18 09:22:57 +02:00
parent 080ddd8a81
commit 0f6150a5d3

View File

@ -4824,8 +4824,11 @@ visit_nary_op (tree lhs, gassign *stmt)
}
}
break;
case RDIV_EXPR:
case TRUNC_DIV_EXPR:
if (TYPE_UNSIGNED (type))
break;
/* Fallthru. */
case RDIV_EXPR:
case MULT_EXPR:
/* Match up ([-]a){/,*}([-])b with v=a{/,*}b, replacing it with -v. */
if (! HONOR_SIGN_DEPENDENT_ROUNDING (type))