[Bug tree-optimization/33987] [4.3 regression] internal compiler error: in get_initial_def_for_reduction, at tree-vect-transform.c:2110 with -O3 -msse2

2007-11-02 Thread bero at arklinux dot org


--- Comment #1 from bero at arklinux dot org  2007-11-03 01:59 ---
Created an attachment (id=14477)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14477&action=view)
bzip2-ed preprocessed source


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33987



[Bug tree-optimization/33987] [4.3 regression] internal compiler error: in get_initial_def_for_reduction, at tree-vect-transform.c:2110 with -O3 -msse2

2007-11-02 Thread dorit at gcc dot gnu dot org


-- 

dorit at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-11-03 03:35:30
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33987



[Bug tree-optimization/33987] [4.3 regression] internal compiler error: in get_initial_def_for_reduction, at tree-vect-transform.c:2110 with -O3 -msse2

2007-11-02 Thread dorit at gcc dot gnu dot org


--- Comment #2 from dorit at gcc dot gnu dot org  2007-11-03 04:06 ---
testing this fix:

Index: tree-vect-transform.c
===
*** tree-vect-transform.c   (revision 129763)
--- tree-vect-transform.c   (working copy)
*** get_initial_def_for_reduction (tree stmt
*** 2107,2113 
tree vector_type;
bool nested_in_vect_loop = false;

!   gcc_assert (INTEGRAL_TYPE_P (type) || SCALAR_FLOAT_TYPE_P (type));
if (nested_in_vect_loop_p (loop, stmt))
  nested_in_vect_loop = true;
else
--- 2107,2113 
tree vector_type;
bool nested_in_vect_loop = false;

!   gcc_assert (POINTER_TYPE_P (type) || INTEGRAL_TYPE_P (type) ||
SCALAR_FLOAT_TYPE_P (type));
if (nested_in_vect_loop_p (loop, stmt))
  nested_in_vect_loop = true;
else
*** get_initial_def_for_reduction (tree stmt
*** 2120,2136 
case WIDEN_SUM_EXPR:
case DOT_PROD_EXPR:
case PLUS_EXPR:
!   if (nested_in_vect_loop)
!   *adjustment_def = vecdef;
!   else
!   *adjustment_def = init_val;
! /* Create a vector of zeros for init_def.  */
! if (INTEGRAL_TYPE_P (type))
!   def_for_init = build_int_cst (type, 0);
  else
def_for_init = build_real (type, dconst0);
!   for (i = nunits - 1; i >= 0; --i)
! t = tree_cons (NULL_TREE, def_for_init, t);
  vector_type = get_vectype_for_scalar_type (TREE_TYPE (def_for_init));
  gcc_assert (vector_type);
  init_def = build_vector (vector_type, t);
--- 2120,2136 
case WIDEN_SUM_EXPR:
case DOT_PROD_EXPR:
case PLUS_EXPR:
! if (nested_in_vect_loop)
!   *adjustment_def = vecdef;
  else
+   *adjustment_def = init_val;
+ /* Create a vector of zeros for init_def.  */
+ if (SCALAR_FLOAT_TYPE_P (type))
def_for_init = build_real (type, dconst0);
! else
!   def_for_init = build_int_cst (type, 0);
! for (i = nunits - 1; i >= 0; --i)
!   t = tree_cons (NULL_TREE, def_for_init, t);
  vector_type = get_vectype_for_scalar_type (TREE_TYPE (def_for_init));
  gcc_assert (vector_type);
  init_def = build_vector (vector_type, t);
*** vectorizable_reduction (tree stmt, block
*** 2716,2721 
--- 2716,2724 
  return false;
scalar_dest = GIMPLE_STMT_OPERAND (stmt, 0);
scalar_type = TREE_TYPE (scalar_dest);
+   if (!POINTER_TYPE_P (scalar_type) && !INTEGRAL_TYPE_P (scalar_type) 
+   && !SCALAR_FLOAT_TYPE_P (scalar_type))
+ return false;

/* All uses but the last are expected to be defined in the loop.
   The last use is the reduction variable.  */


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33987



[Bug tree-optimization/33987] [4.3 regression] internal compiler error: in get_initial_def_for_reduction, at tree-vect-transform.c:2110 with -O3 -msse2

2007-11-03 Thread dorit at gcc dot gnu dot org


--- Comment #3 from dorit at gcc dot gnu dot org  2007-11-04 03:49 ---
Subject: Bug 33987

Author: dorit
Date: Sun Nov  4 03:48:58 2007
New Revision: 129880

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129880
Log:
PR tree-optimization/33987
* tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
Fix indentation.
(vectorizable_reduction): Add type check.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vect-transform.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33987



[Bug tree-optimization/33987] [4.3 regression] internal compiler error: in get_initial_def_for_reduction, at tree-vect-transform.c:2110 with -O3 -msse2

2007-11-18 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-11-19 04:32 ---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33987