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.
|