summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.vect256
blob: 0c7e2530b4008da37ad4c4f8889c53d12b2f8f0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
2010-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (UNITS_PER_SIMD_WORD_MAX): Use
	UNITS_PER_SIMD_WORD.

2010-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (UNITS_PER_SIMD_WORD_MAX): New.
	* config/i386/i386.c (ix86_build_const_vector): Check
	UNITS_PER_SIMD_WORD_MAX.
	(ix86_build_signbit_mask): Likewise.

2010-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-data-refs.c (vect_analyze_data_refs): Initialize
	scalar_type.

2010-05-11  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Adjust
	maximal vectorization factor according to dependences.  Move
	alignment handling ...
	(vect_find_same_alignment_drs): ... here.  New function.
	(vect_analyze_data_ref_dependences): Adjust.
	(vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
	(vect_analyze_data_refs): Adjust minimal vectorization factor
	according to data references.  Do not set vector types here,
	but ...
	(vect_set_data_ref_stmt_vectypes): ... here.  New function.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Compute
	minimal, maximal and desired vectorization factor.  Do not
	set vector types here, but ...
	(vect_determine_vectorization_types): ... here.  New function.
	(vect_analyze_loop_operations): Adjust.
	(vect_analyze_loop): Delay computing vector types.
	(vect_model_reduction_cost): Use the stmt vector type.
	(get_initial_def_for_induction): Get a vector type according
	to the vectorization factor.
	(get_initial_def_for_reduction): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pass in
	the vectorization factor.
	(vect_recog_widen_mult_pattern): Likewise.  Use it.
	(vect_recog_pow_pattern): Likewise.
	(vect_recog_widen_sum_pattern): Likewise.
	(vect_pattern_recog_1): Likewise.
	(vect_pattern_recog): Likewise.
	* tree-vect-slp.c (vect_build_slp_tree): Use the vectorization
	factor or the SLP group size to determine the vector type.
	(vect_analyze_slp_instance): Likewise.
	(vect_slp_analyze_node_operations): Pass in the SLP instance.
	(vect_slp_analyze_node_operations): Likewise.
	(vect_set_slp_vectypes): New function.
	(vect_slp_analyze_bb): Adjust for data-ref changes.  Re-set
	vector types.
	(vect_get_constant_vectors): Get a vector of the same size as
	that of the stmt.
	(vect_transform_slp_perm_load): Likewise.
	(vect_schedule_slp_instance): Assert vec_stmts_size makes sense.
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Allow
	vectors with more elements.
	(vect_analyze_stmt): Pass in the SLP instance.  Set stmt
	types according to the SLP group size.
	(get_vectype_for_scalar_type_1): Get vectorization factor and flag
	whether larger vectors are ok.
	(get_vectype_for_scalar_type): Wrap get_vectype_for_scalar_type_1.
	(get_vectype_for_scalar_type_and_size): Likewise.
	(get_same_sized_vectype): Adjust.
	* tree-vectorizer.c (increase_alignment): Increase alignment
	according to the maximal vector size.
	* tree-vectorizer.h (get_vectype_for_scalar_type): Adjust.
	(get_vectype_for_scalar_type_1): Declare.
	(get_vectype_for_scalar_type_and_size): Likewise.
	(get_same_sized_vectype): Likewise.
	(vect_analyze_stmt): Adjust.
	(vect_analyze_data_ref_dependences): Likewise.
	(vect_analyze_data_refs): Likewise.
	(vect_set_data_ref_stmt_vectypes): Declare.
	(vect_recog_func_ptr): Adjust.
	(vect_pattern_recog): Likewise.

2010-05-11  Richard Guenther  <rguenther@suse.de>

	* defaults.h (UNITS_PER_SIMD_WORD): Adjust.
	* config/i386/i386.h (UNITS_PER_SIMD_WORD): Allow 32byte float
	vectors.
	* config/arm/arm.h (UNITS_PER_SIMD_WORD): Adjust.
	* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
	* tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
	* tree-vectorizer.h (MAX_VECTORIZATION_FACTOR): New define.

2010-05-10  Richard Guenther  <rguenther@suse.de>

	* config/i386/sse.md (reduc_splus_v8sf): Add.
	(reduc_splus_v4df): Likewise.
	(vec_unpacks_hi_v8sf): Likewise.
	(vec_unpacks_lo_v8sf): Likewise.
	(*avx_cvtps2pd256_2): Likewise.
	(vec_unpacks_float_hi_v8si): Likewise.
	(vec_unpacks_float_lo_v8si): Likewise.
	(vec_interleave_highv4df): Likewise.
	(vec_interleave_lowv4df): Likewise.