re PR rtl-optimization/59649 (BImode miscompiled)

PR rtl-optimization/59649
	* stor-layout.c (get_mode_bounds): For BImode return
	0 and STORE_FLAG_VALUE.

From-SVN: r206422
This commit is contained in:
Jakub Jelinek 2014-01-08 11:01:29 +01:00 committed by Jakub Jelinek
parent 5c944c6cb8
commit c15677b61c
2 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2014-01-08 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/59649
* stor-layout.c (get_mode_bounds): For BImode return
0 and STORE_FLAG_VALUE.
2014-01-08 Richard Biener <rguenther@suse.de>
PR middle-end/59630

View File

@ -2821,7 +2821,21 @@ get_mode_bounds (enum machine_mode mode, int sign,
gcc_assert (size <= HOST_BITS_PER_WIDE_INT);
if (sign)
/* Special case BImode, which has values 0 and STORE_FLAG_VALUE. */
if (mode == BImode)
{
if (STORE_FLAG_VALUE < 0)
{
min_val = STORE_FLAG_VALUE;
max_val = 0;
}
else
{
min_val = 0;
max_val = STORE_FLAG_VALUE;
}
}
else if (sign)
{
min_val = -((unsigned HOST_WIDE_INT) 1 << (size - 1));
max_val = ((unsigned HOST_WIDE_INT) 1 << (size - 1)) - 1;