This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Fix PR tree-optimization/45902 on 4.5


Hi,

This patch fixes pr45902 on 4.5 similar to
http://gcc.gnu.org/ml/gcc-patches/2010-10/msg01820.html.

Bootstrapped and tested on powerpc64-suse-linux.
OK for 4.5?

Thanks,
Ira

ChangeLog:

	PR tree-optimization/45902
	* tree-vectorizer.h (enum stmt_vec_info_type): Add new value for
	shift.
	(vect_get_slp_defs): Add arguments.
	* tree-vect-stmts.c (cost_for_stmt): Handle shifts.
	(vect_get_vec_def_for_operand): Use operand's
	type to determine number of units in the created vector.
	(vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
	(vectorizable_shift): New function.
	(vectorizable_operation): Move code that handles shifts to
	vectorizable_shift.
	(vectorizable_type_demotion): Pass scalar operands to
	vect_get_slp_defs.
	(vectorizable_type_promotion, vectorizable_store): Likewise.
	(vect_analyze_stmt): Call vectorizable_shift.
	(vect_transform_stmt): Likewise.
	* tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
	Use it as the operand to create vectors except for stores.
	(vect_get_slp_defs): Add new arguments. Pass them to
	vect_get_constant_vectors.

testsuite/ChangeLog:

	PR tree-optimization/45902
	* gcc.dg/vect/pr45902.c: New.

(See attached file: patch.txt)

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]