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-09-23 17:09:10

Modified files:
	gcc            : ChangeLog.autovect expr.c genopinit.c optabs.c 
	                 optabs.h tree-inline.c tree-pretty-print.c 
	                 tree-ssa-operands.c tree-vect-analyze.c 
	                 tree-vect-transform.c tree-vectorizer.h 
	                 tree.def 
	gcc/config/rs6000: altivec.md 
	gcc/testsuite  : ChangeLog.autovect 
Added files:
	gcc/testsuite/gcc.dg/vect: vect-reduc-dot-s16.c 
	                           vect-reduc-dot-s8.c 
	                           vect-reduc-dot-u16.c 
	                           vect-reduc-dot-u8.c 

Log message:
	* expr.c (expand_expr_real_1): Add DOT_PROD_EXPR case. Tentatively add
	cases for WIDEN_MULT_EXPR and MULT_HI_EXPR.
	* genopinit.c (sdot_prod_optab, udot_prod_optab): Initialize new optabs.
	* optabs.c (optab_for_tree_code): Add cases for DOT_PROD_EXPR,
	WIDEN_MULT_EXPR and MULT_HI_EXPR.
	(expand_widen_pattern_expr): Extend to handled widening patterns with
	more than two arguments.
	(init_optabs): Initalize new optabs sdot_prod_optab, udot_prod_optab.
	* optabs.h (OTI_sdot_prod, OTI_udot_prod): New optabs indexes.
	(expand_widen_pattern_expr): Add argument to function declaration,
	* tree-inline.c (estimate_num_insns_1): Add cases for DOT_PROD_EXPR,
	WIDEN_MULT_EXPR and MULT_HI_EXPR.
	* tree-pretty-print.c (dump_generic_node, op_prio): Add cases for
	DOT_PROD_EXPR, WIDEN_MULT_EXPR and MULT_HI_EXPR.
	(op_symbol): Added cases for WIDEN_MULT_EXPR and MULT_HI_EXPR.
	* tree-ssa-operands (get_expr_operands): Add case for DOT_PROD_EXPR.
	* tree.def (WIDEN_MULT_EXPR, MULT_HI_EXPR, DOT_PROD_EXPR): New
	tree-codes.
	
	* tree-vect-analyze.c (widened_name_p): New function.
	(vect_pattern_recog_funcs): Add new pattern recognition functions to
	the initialization.
	(vect_recog_mult_hi_pattern): New function (not yet implemented).
	(vect_recog_dot_prod_pattern): New function.
	(vect_recog_widen_mult_pattern): New function.
	(vect_recog_widen_sum_pattern): Call widened_name_p. Fix type
	comparison. Do not consider stmts that have already been recognized
	as part of a pattern.
	(vect_recog_unsigned_subsat_pattern): Do not consider stmts that have
	already been recognized as part of a pattern.
	* tree-vect-transform.c (get_initial_def_for_reduction): Add case for
	DOT_PROD_EXPR.
	(vect_create_epilog_for_reduction): Add assert.
	(vectorizable_reduction): Support reductions with more than two
	arguments.
	* tree-vectorizer.h (ternary_op): New operation_type.
	(NUM_PATTERNS): Set to 5.
	(vect_recog_widen_mult_pattern): New function declaration.
	(vect_recog_mult_hi_pattern): New function declaration.
	(vect_recog_dot_prod_pattern): New function declaration.
	
	* config/rs6000/altivec.md (altivec_vmsumshm, altivec_vmsumuhs):
	(altivec_vmsumshs, altivec_vmsumu<VI_char>m, altivec_vmsumm<VI_char>m):
	(widen_usum<mode>3, widen_ssumv16qi3, widen_ssumv8hi3): Expose the PLUS.
	(udot_prod<mode>, sdot_prodv16qi, sdot_prodv8hi): New patterns.

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.85&r2=1.1.2.86
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.738.2.9&r2=1.738.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/genopinit.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.82.14.9&r2=1.82.14.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.247.2.11&r2=1.247.2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.h.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.40.2.10&r2=1.40.2.11
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.8&r2=1.150.2.9
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.8&r2=2.47.4.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-operands.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=2.56.2.7&r2=2.56.2.8
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.21&r2=2.4.4.22
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.20&r2=2.1.4.21
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.23&r2=2.7.2.24
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.def.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=1.103.14.13&r2=1.103.14.14
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.11&r2=1.24.8.12
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.43&r2=1.1.2.44
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-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-reduc-dot-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-reduc-dot-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-reduc-dot-u8.c.diff?cvsroot=gcc&only_with_tag=autovect-branch&r1=NONE&r2=1.1.2.1


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