[Bug target/46346] [4.6 regression] fma testsuite failures

2010-11-07 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46346

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.11.07 15:22:59
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-11-07 
15:22:59 UTC ---
Mine.


[Bug target/46346] [4.6 regression] fma testsuite failures

2010-11-07 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46346

--- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2010-11-07 16:15:39 
UTC ---
A trivial attempt that fixes builtin-attr-1.c for x86 with -mfma:

Index: tree-ssa-forwprop.c
===
--- tree-ssa-forwprop.c(revision 166415)
+++ tree-ssa-forwprop.c(working copy)
@@ -341,7 +341,11 @@ rhs_to_tree (tree type, gimple stmt)
 {
   location_t loc = gimple_location (stmt);
   enum tree_code code = gimple_assign_rhs_code (stmt);
-  if (get_gimple_rhs_class (code) == GIMPLE_BINARY_RHS)
+  if (get_gimple_rhs_class (code) == GIMPLE_TERNARY_RHS)
+return fold_build3_loc (loc, code, type, gimple_assign_rhs1 (stmt),
+gimple_assign_rhs2 (stmt),
+gimple_assign_rhs3 (stmt));
+  else if (get_gimple_rhs_class (code) == GIMPLE_BINARY_RHS)
 return fold_build2_loc (loc, code, type, gimple_assign_rhs1 (stmt),
 gimple_assign_rhs2 (stmt));
   else if (get_gimple_rhs_class (code) == GIMPLE_UNARY_RHS)


[Bug target/46346] [4.6 regression] fma testsuite failures

2010-11-07 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46346

--- Comment #3 from rguenther at suse dot de rguenther at suse dot de 
2010-11-07 17:39:16 UTC ---
On Sun, 7 Nov 2010, ubizjak at gmail dot com wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46346
 
 --- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2010-11-07 
 16:15:39 UTC ---
 A trivial attempt that fixes builtin-attr-1.c for x86 with -mfma:

Works for me.

 Index: tree-ssa-forwprop.c
 ===
 --- tree-ssa-forwprop.c(revision 166415)
 +++ tree-ssa-forwprop.c(working copy)
 @@ -341,7 +341,11 @@ rhs_to_tree (tree type, gimple stmt)
  {
location_t loc = gimple_location (stmt);
enum tree_code code = gimple_assign_rhs_code (stmt);
 -  if (get_gimple_rhs_class (code) == GIMPLE_BINARY_RHS)
 +  if (get_gimple_rhs_class (code) == GIMPLE_TERNARY_RHS)
 +return fold_build3_loc (loc, code, type, gimple_assign_rhs1 (stmt),
 +gimple_assign_rhs2 (stmt),
 +gimple_assign_rhs3 (stmt));
 +  else if (get_gimple_rhs_class (code) == GIMPLE_BINARY_RHS)
  return fold_build2_loc (loc, code, type, gimple_assign_rhs1 (stmt),
  gimple_assign_rhs2 (stmt));
else if (get_gimple_rhs_class (code) == GIMPLE_UNARY_RHS)
 



[Bug target/46346] [4.6 regression] fma testsuite failures

2010-11-07 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46346

--- Comment #4 from uros at gcc dot gnu.org 2010-11-07 17:49:15 UTC ---
Author: uros
Date: Sun Nov  7 17:49:11 2010
New Revision: 166419

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=166419
Log:
PR tree-optimization/46346
* tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-forwprop.c