This is the mail archive of the gcc-cvs@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]

gcc/gcc ChangeLog.autovect expr.c genopinit.c ...


CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	autovect-branch
Changes by:	dorit@gcc.gnu.org	2005-10-17 12:51:03

Modified files:
	gcc            : ChangeLog.autovect expr.c genopinit.c optabs.c 
	                 optabs.h target-def.h target.h tree-inline.c 
	                 tree-pretty-print.c tree-vect-analyze.c 
	                 tree-vect-generic.c tree-vect-transform.c 
	                 tree-vectorizer.c tree-vectorizer.h tree.def 
	gcc/config/rs6000: altivec.md rs6000.c 
	gcc/testsuite  : ChangeLog.autovect 
	gcc/testsuite/gcc.dg/vect: vect-9.c vect-reduc-dot-s8.c 
	                           vect-reduc-dot-u8.c 
	                           vect-reduc-pattern-1.c 
Added files:
	gcc/testsuite/gcc.dg/vect: vect-widen-mult-s16.c 
	                           vect-widen-mult-s8.c 
	                           vect-widen-mult-u16.c 
	                           vect-widen-mult-u8.c 
Removed files:
	gcc/testsuite/gcc.dg/vect: vect-106.c 

Log message:
	* tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
	(VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR):
	(VEC_PACK_SAT_EXPR): New tree-codes.
	* expr.c (expand_expr_real_1): Add cases for VEC_UNPACK_HI_EXPR,
	VEC_UNPACK_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
	Remove WIDEN_MULT_EXPR case.  Add cases for VEC_PACK_MOD_EXPR and
	VEC_PACK_SAT_EXPR (yet to be implemented).
	* genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab):
	(vec_widen_umult_lo_optab, vec_widen_smult_lo_optab):
	(vec_unpack_hi_optab, vec_unpack_hi_optab, vec_pack_mod_optab):
	(vec_pack_sat_optab): New optabs.
	* optabs.c (optab_for_tree_code): Add cases for new tree-codes.
	(expand_widen_pattern_expr): Add documentation. Add support for
	widening-multiplication and type-conversion.
	(init_optabs): Initalize new optabs.
	* optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_smult_hi):
	(OTI_vec_widen_umult_lo, OTI_vec_widen_smult_lo, OTI_vec_unpack_hi):
	(OTI_vec_unpack_lo, OTI_vec_pack_mod, OTI_vec_pack_sat): New optab
	indices.
	* target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New hooks.
	* target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New hooks.
	* tree-inline.c (estimate_num_insns_1): Add cases for new tree-codes.
	* tree-pretty-print.c (dump_generic_node): Add cases for new tree-codes.
	(op_prio): Add cases for new tree-codes.
	* tree-vect-anlyze.c (vect_analyze_operations): Call
	vectorizable_type_promotion.
	(vect_mark_relevant): Add check for STMT_VINFO_RELATED_STMT.
	(vect_mark_stmts_to_be_vectorized): Fix typo.
	(widened_name_p): Add documentation.
	(vect_recog_mult_hi_pattern, vect_recog_dot_prod_pattern):
	(vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern):
	(vect_recog_unsigned_subsat_pattern): Change arguement name from
	pattern_type to pattern_vectype.
	(vect_recog_widen_mult_pattern): Call supportable_widening_operation.
	(vect_recog_unsigned_subsat_pattern): Check target support.
	(vect_pattern_recog_1): Remove target support check. Record
	STMT_VINFO_RELATED_STMT for all the stmts in the sequence.
	* tree-vect-generic.c (expand_vector_operations_1): Check for
	VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR,
	and VEC_UNPACK_LO_EXPR.
	* tree-vect-transform.c (vect_create_epilog_for_reduction):
	(vectorizable_target_reduction_pattern, vectorizable_reduction): Add
	check for STMT_VINFO_IN_PATTERN_P.
	(vectorizable_operation): Check if result size is same as arguments
	size.
	(vectorizable_type_promotion): New function.
	(vect_transform_stmt): Call vectorizable_type_promotion.
	* tree-vectorizer.c (supportable_widening_operation): New function.
	* tree-vectorizer.h (type_promotion_vec_info_type):
	(supportable_widening_operation, vectorizable_type_promotion): New
	function declarations.
	* config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
	(UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
	(UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New define_constants.
	(vec_unpack_hi_v16qi, vec_unpack_hi_v8hi, vec_unpack_lo_v16qi):
	(vec_unpack_lo_v8hi, vec_widen_umult_hi_v16qi):
	(vec_widen_umult_lo_v16qi, vec_widen_smult_hi_v16qi):
	(vec_widen_smult_lo_v16qi, vec_widen_umult_hi_v8hi):
	(vec_widen_umult_lo_v8hi, vec_widen_smult_hi_v8hi):
	(vec_widen_smult_lo_v8hi): New define_expands.
	* config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even):
	(rs6000_builtin_mul_widen_even): New function declarations.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Define.
	(rs6000_builtin_mul_widen_even, rs6000_builtin_mul_widen_odd): New.
	(altivec_init_builtins): Remove TARGET_ALTIVEC check.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.autovect.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.89&r2=1.1.2.90
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.738.2.10&r2=1.738.2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/genopinit.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.82.14.10&r2=1.82.14.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.247.2.12&r2=1.247.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.h.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.40.2.11&r2=1.40.2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target-def.h.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.106.12.5&r2=1.106.12.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target.h.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.118.12.5&r2=1.118.12.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-inline.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.150.2.9&r2=1.150.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pretty-print.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.47.4.9&r2=2.47.4.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vect-analyze.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.4.4.23&r2=2.4.4.24
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vect-generic.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.5.4.2&r2=2.5.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vect-transform.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.1.4.23&r2=2.1.4.24
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.25.2.29&r2=2.25.2.30
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.h.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.7.2.24&r2=2.7.2.25
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.def.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.103.14.14&r2=1.103.14.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/altivec.md.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.24.8.13&r2=1.24.8.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.739.2.9&r2=1.739.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.autovect.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.47&r2=1.1.2.48
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-widen-mult-s16.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-widen-mult-s8.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-9.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.32.4&r2=1.1.32.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.1&r2=1.1.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.2.6&r2=1.1.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-106.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.1.20.1&r2=NONE


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