Commit 57416708 by Ira Rosen Committed by Ira Rosen

re PR tree-optimization/46126 (Revision 165777 failed to build 254.gap in SPEC CPU 2K)


	PR tree-optimization/46126
	* tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
	vectorizable_shift in case of basic block vectorization.

From-SVN: r165825
parent 3020190e
2010-10-22 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/46126
* tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
vectorizable_shift in case of basic block vectorization.
2010-10-22 Joseph Myers <joseph@codesourcery.com> 2010-10-22 Joseph Myers <joseph@codesourcery.com>
* target.h (enum opt_levels, struct default_options): New. * target.h (enum opt_levels, struct default_options): New.
2010-10-22 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/46126
* gcc.dg/vect/pr46126.c: New.
2010-10-21 Iain Sandoe <iains@gcc.gnu.org> 2010-10-21 Iain Sandoe <iains@gcc.gnu.org>
Based on the CFString implementation in FSF apple/trunk branch. Based on the CFString implementation in FSF apple/trunk branch.
......
/* { dg-do compile } */
typedef struct TypHeader {
struct TypHeader * * ptr;
unsigned char type;
} * TypHandle;
extern TypHandle (* EvTab[81]) ( TypHandle hd );
TypHandle FunApplyRel ( TypHandle hdCall )
{
TypHandle hdApp;
TypHandle * ptApp;
long lp;
long lc;
hdApp = ((long)(((TypHandle*)((hdCall)->ptr))[1])&1 ?
(((TypHandle*)((hdCall)->ptr))[1]) : (*
EvTab[(((long)(((TypHandle*)((hdCall)->ptr))[1]) & 1) ? 1 :
((((TypHandle*)((hdCall)->ptr))[1])->type))])((((TypHandle*)((hdCall)->ptr))[1])));
ptApp = ((TypHandle*)((hdApp)->ptr));
ptApp[1] = ((TypHandle) (((long)(lp) << 2) + 1));
ptApp[2] = ((TypHandle) (((long)(lc) << 2) + 1));
}
/* { dg-final { cleanup-tree-dump "vect" } } */
...@@ -4663,7 +4663,7 @@ vect_analyze_stmt (gimple stmt, bool *need_to_vectorize, slp_tree node) ...@@ -4663,7 +4663,7 @@ vect_analyze_stmt (gimple stmt, bool *need_to_vectorize, slp_tree node)
else else
{ {
if (bb_vinfo) if (bb_vinfo)
ok = (vectorizable_shift (stmt, NULL, NULL, NULL) ok = (vectorizable_shift (stmt, NULL, NULL, node)
|| vectorizable_operation (stmt, NULL, NULL, node) || vectorizable_operation (stmt, NULL, NULL, node)
|| vectorizable_assignment (stmt, NULL, NULL, node) || vectorizable_assignment (stmt, NULL, NULL, node)
|| vectorizable_load (stmt, NULL, NULL, node, NULL) || vectorizable_load (stmt, NULL, NULL, node, NULL)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment