re PR middle-end/89008 (O2 and O1 results differ for simple test)
2019-01-23 Richard Biener <rguenther@suse.de> PR tree-optimization/89008 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do not leave another stray operand. * gcc.dg/torture/pr89008.c: New testcase. From-SVN: r268186
This commit is contained in:
parent
4d0c18c601
commit
ef192ae1b6
@ -1,3 +1,9 @@
|
||||
2019-01-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/89008
|
||||
* tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
|
||||
not leave another stray operand.
|
||||
|
||||
2019-01-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* BASE-VER: Bump to 9.0.1.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-01-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/89008
|
||||
* gcc.dg/torture/pr89008.c: New testcase.
|
||||
|
||||
2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/specs/opt4.ads: New test.
|
||||
|
27
gcc/testsuite/gcc.dg/torture/pr89008.c
Normal file
27
gcc/testsuite/gcc.dg/torture/pr89008.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target int32plus } */
|
||||
|
||||
unsigned long a, c;
|
||||
unsigned b;
|
||||
int d, e;
|
||||
long f()
|
||||
{
|
||||
unsigned long g = 0;
|
||||
for (d = 0; d < 5; d += 2)
|
||||
for (e = 0; e < 5; e += 3)
|
||||
{
|
||||
c = 4 + b;
|
||||
g = -b - b;
|
||||
b = 5 * (b << 24);
|
||||
}
|
||||
a = g;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
f();
|
||||
if (a)
|
||||
__builtin_abort();
|
||||
return 0;
|
||||
}
|
@ -1015,7 +1015,7 @@ eliminate_using_constants (enum tree_code opcode,
|
||||
fprintf (dump_file, "Found * 0, removing all other ops\n");
|
||||
|
||||
reassociate_stats.ops_eliminated += ops->length () - 1;
|
||||
ops->truncate (1);
|
||||
ops->truncate (0);
|
||||
ops->quick_push (oelast);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user