tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if we're not the only contributor to target phi.
* tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if we're not the only contributor to target phi. testsuite/ * c-c++-common/dfp/operator-comma.c: Call init function. * c-c++-common/dfp/convert-dfp-2.c: New test. From-SVN: r226778
This commit is contained in:
parent
739a838e18
commit
a6810021af
5 changed files with 66 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-08-11 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
|
||||
we're not the only contributor to target phi.
|
||||
|
||||
2015-08-11 Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-08-11 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* c-c++-common/dfp/operator-comma.c: Call init function.
|
||||
* c-c++-common/dfp/convert-dfp-2.c: New test.
|
||||
|
||||
2015-08-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gcc.target/i386/builtin_target.c (check_intel_cpu_model):
|
||||
|
|
45
gcc/testsuite/c-c++-common/dfp/convert-dfp-2.c
Normal file
45
gcc/testsuite/c-c++-common/dfp/convert-dfp-2.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* { dg-options "-O0" } */
|
||||
|
||||
/* Test decimal fp conversions of zero. */
|
||||
|
||||
#include "dfp-dbg.h"
|
||||
|
||||
volatile _Decimal32 d32a, d32c;
|
||||
volatile _Decimal64 d64a, d64c;
|
||||
volatile _Decimal128 d128a, d128c;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
d32a = d32c;
|
||||
if (d32a)
|
||||
FAILURE
|
||||
d32a = d64c;
|
||||
if (d32a)
|
||||
FAILURE
|
||||
d32a = d128c;
|
||||
if (d32a)
|
||||
FAILURE
|
||||
|
||||
d64a = d32c;
|
||||
if (d64a)
|
||||
FAILURE
|
||||
d64a = d64c;
|
||||
if (d64a)
|
||||
FAILURE
|
||||
d64a = d128c;
|
||||
if (d64a)
|
||||
FAILURE
|
||||
|
||||
d128a = d32c;
|
||||
if (d128a)
|
||||
FAILURE
|
||||
d128a = d64c;
|
||||
if (d128a)
|
||||
FAILURE
|
||||
d128a = d128c;
|
||||
if (d128a)
|
||||
FAILURE
|
||||
|
||||
FINISH
|
||||
}
|
|
@ -24,6 +24,8 @@ init ()
|
|||
int
|
||||
main ()
|
||||
{
|
||||
init ();
|
||||
|
||||
d32a = (d32b, d32c);
|
||||
if (d32a != d32c)
|
||||
FAILURE
|
||||
|
|
|
@ -1277,8 +1277,16 @@ minmax_replacement (basic_block cond_bb, basic_block middle_bb,
|
|||
gsi_move_before (&gsi_from, &gsi);
|
||||
}
|
||||
|
||||
/* Create an SSA var to hold the min/max result. If we're the only
|
||||
things setting the target PHI, then we can clone the PHI
|
||||
variable. Otherwise we must create a new one. */
|
||||
result = PHI_RESULT (phi);
|
||||
if (EDGE_COUNT (gimple_bb (phi)->preds) == 2)
|
||||
result = duplicate_ssa_name (result, NULL);
|
||||
else
|
||||
result = make_ssa_name (TREE_TYPE (result));
|
||||
|
||||
/* Emit the statement to compute min/max. */
|
||||
result = duplicate_ssa_name (PHI_RESULT (phi), NULL);
|
||||
new_stmt = gimple_build_assign (result, minmax, arg0, arg1);
|
||||
gsi = gsi_last_bb (cond_bb);
|
||||
gsi_insert_before (&gsi, new_stmt, GSI_NEW_STMT);
|
||||
|
|
Loading…
Add table
Reference in a new issue