diff options
Diffstat (limited to 'meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106769.patch')
-rw-r--r-- | meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106769.patch | 185 |
1 files changed, 71 insertions, 114 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106769.patch b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106769.patch index 37e3036b22..ff34514ff7 100644 --- a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106769.patch +++ b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106769.patch | |||
@@ -50,8 +50,10 @@ | |||
50 | * gcc.dg/vect/vect-widen-mult-half.c: New test. | 50 | * gcc.dg/vect/vect-widen-mult-half.c: New test. |
51 | 51 | ||
52 | === added file 'gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c' | 52 | === added file 'gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c' |
53 | --- old/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c 1970-01-01 00:00:00 +0000 | 53 | Index: gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c |
54 | +++ new/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c 2011-07-06 12:04:10 +0000 | 54 | =================================================================== |
55 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
56 | +++ gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c 2011-09-16 20:32:57.279056697 -0700 | ||
55 | @@ -0,0 +1,52 @@ | 57 | @@ -0,0 +1,52 @@ |
56 | +/* { dg-require-effective-target vect_int } */ | 58 | +/* { dg-require-effective-target vect_int } */ |
57 | + | 59 | + |
@@ -105,10 +107,10 @@ | |||
105 | +/* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ | 107 | +/* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ |
106 | +/* { dg-final { cleanup-tree-dump "vect" } } */ | 108 | +/* { dg-final { cleanup-tree-dump "vect" } } */ |
107 | + | 109 | + |
108 | 110 | Index: gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c | |
109 | === added file 'gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c' | 111 | =================================================================== |
110 | --- old/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c 1970-01-01 00:00:00 +0000 | 112 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
111 | +++ new/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c 2011-07-06 12:04:10 +0000 | 113 | +++ gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c 2011-09-16 20:32:57.279056697 -0700 |
112 | @@ -0,0 +1,59 @@ | 114 | @@ -0,0 +1,59 @@ |
113 | +/* { dg-require-effective-target vect_int } */ | 115 | +/* { dg-require-effective-target vect_int } */ |
114 | + | 116 | + |
@@ -169,10 +171,10 @@ | |||
169 | +/* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ | 171 | +/* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ |
170 | +/* { dg-final { cleanup-tree-dump "vect" } } */ | 172 | +/* { dg-final { cleanup-tree-dump "vect" } } */ |
171 | + | 173 | + |
172 | 174 | Index: gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c | |
173 | === added file 'gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c' | 175 | =================================================================== |
174 | --- old/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c 1970-01-01 00:00:00 +0000 | 176 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
175 | +++ new/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c 2011-07-06 12:04:10 +0000 | 177 | +++ gcc-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c 2011-09-16 20:32:57.279056697 -0700 |
176 | @@ -0,0 +1,49 @@ | 178 | @@ -0,0 +1,49 @@ |
177 | +/* { dg-require-effective-target vect_int } */ | 179 | +/* { dg-require-effective-target vect_int } */ |
178 | + | 180 | + |
@@ -223,10 +225,10 @@ | |||
223 | +/* { dg-final { scan-tree-dump-times "pattern recognized" 1 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ | 225 | +/* { dg-final { scan-tree-dump-times "pattern recognized" 1 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ |
224 | +/* { dg-final { cleanup-tree-dump "vect" } } */ | 226 | +/* { dg-final { cleanup-tree-dump "vect" } } */ |
225 | + | 227 | + |
226 | 228 | Index: gcc-4_6-branch/gcc/tree-vect-loop.c | |
227 | === modified file 'gcc/tree-vect-loop.c' | 229 | =================================================================== |
228 | --- old/gcc/tree-vect-loop.c 2011-07-04 11:13:51 +0000 | 230 | --- gcc-4_6-branch.orig/gcc/tree-vect-loop.c 2011-09-16 20:31:52.000000000 -0700 |
229 | +++ new/gcc/tree-vect-loop.c 2011-07-11 11:02:55 +0000 | 231 | +++ gcc-4_6-branch/gcc/tree-vect-loop.c 2011-09-16 20:32:57.289056641 -0700 |
230 | @@ -181,6 +181,8 @@ | 232 | @@ -181,6 +181,8 @@ |
231 | stmt_vec_info stmt_info; | 233 | stmt_vec_info stmt_info; |
232 | int i; | 234 | int i; |
@@ -246,7 +248,6 @@ | |||
246 | - tree vf_vectype; | 248 | - tree vf_vectype; |
247 | - gimple stmt = gsi_stmt (si), pattern_stmt; | 249 | - gimple stmt = gsi_stmt (si), pattern_stmt; |
248 | - stmt_info = vinfo_for_stmt (stmt); | 250 | - stmt_info = vinfo_for_stmt (stmt); |
249 | - | ||
250 | + tree vf_vectype; | 251 | + tree vf_vectype; |
251 | + | 252 | + |
252 | + if (analyze_pattern_stmt) | 253 | + if (analyze_pattern_stmt) |
@@ -256,7 +257,7 @@ | |||
256 | + } | 257 | + } |
257 | + else | 258 | + else |
258 | + stmt = gsi_stmt (si); | 259 | + stmt = gsi_stmt (si); |
259 | + | 260 | |
260 | + stmt_info = vinfo_for_stmt (stmt); | 261 | + stmt_info = vinfo_for_stmt (stmt); |
261 | + | 262 | + |
262 | if (vect_print_dump_info (REPORT_DETAILS)) | 263 | if (vect_print_dump_info (REPORT_DETAILS)) |
@@ -376,10 +377,10 @@ | |||
376 | } /* stmts in BB */ | 377 | } /* stmts in BB */ |
377 | } /* BBs in loop */ | 378 | } /* BBs in loop */ |
378 | 379 | ||
379 | 380 | Index: gcc-4_6-branch/gcc/tree-vect-patterns.c | |
380 | === modified file 'gcc/tree-vect-patterns.c' | 381 | =================================================================== |
381 | --- old/gcc/tree-vect-patterns.c 2011-06-22 12:10:44 +0000 | 382 | --- gcc-4_6-branch.orig/gcc/tree-vect-patterns.c 2011-09-16 20:31:52.000000000 -0700 |
382 | +++ new/gcc/tree-vect-patterns.c 2011-07-06 12:04:10 +0000 | 383 | +++ gcc-4_6-branch/gcc/tree-vect-patterns.c 2011-09-16 20:32:57.289056641 -0700 |
383 | @@ -39,10 +39,13 @@ | 384 | @@ -39,10 +39,13 @@ |
384 | #include "diagnostic-core.h" | 385 | #include "diagnostic-core.h" |
385 | 386 | ||
@@ -552,21 +553,6 @@ | |||
552 | S5 prod_T = a_T * CONST; | 553 | S5 prod_T = a_T * CONST; |
553 | 554 | ||
554 | - Input: | 555 | - Input: |
555 | - | ||
556 | - * LAST_STMT: A stmt from which the pattern search begins. In the example, | ||
557 | - when this function is called with S5, the pattern {S3,S4,S5,(S6)} is | ||
558 | - detected. | ||
559 | - | ||
560 | - Output: | ||
561 | - | ||
562 | - * TYPE_IN: The type of the input arguments to the pattern. | ||
563 | - | ||
564 | - * TYPE_OUT: The type of the output of this pattern. | ||
565 | - | ||
566 | - * Return value: A new stmt that will be used to replace the sequence of | ||
567 | - stmts that constitute the pattern. In this case it will be: | ||
568 | - WIDEN_MULT <a_t, b_t> | ||
569 | - */ | ||
570 | + A special case of multiplication by constants is when 'TYPE' is 4 times | 556 | + A special case of multiplication by constants is when 'TYPE' is 4 times |
571 | + bigger than 'type', but CONST fits an intermediate type 2 times smaller | 557 | + bigger than 'type', but CONST fits an intermediate type 2 times smaller |
572 | + than 'TYPE'. In that case we create an additional pattern stmt for S3 | 558 | + than 'TYPE'. In that case we create an additional pattern stmt for S3 |
@@ -584,20 +570,30 @@ | |||
584 | + '--> prod_T' = a_it w* CONST; | 570 | + '--> prod_T' = a_it w* CONST; |
585 | + | 571 | + |
586 | + Input/Output: | 572 | + Input/Output: |
587 | + | 573 | |
574 | - * LAST_STMT: A stmt from which the pattern search begins. In the example, | ||
575 | - when this function is called with S5, the pattern {S3,S4,S5,(S6)} is | ||
576 | - detected. | ||
588 | + * STMTS: Contains a stmt from which the pattern search begins. In the | 577 | + * STMTS: Contains a stmt from which the pattern search begins. In the |
589 | + example, when this function is called with S5, the pattern {S3,S4,S5,(S6)} | 578 | + example, when this function is called with S5, the pattern {S3,S4,S5,(S6)} |
590 | + is detected. In case of unsigned widen-mult, the original stmt (S5) is | 579 | + is detected. In case of unsigned widen-mult, the original stmt (S5) is |
591 | + replaced with S6 in STMTS. In case of multiplication by a constant | 580 | + replaced with S6 in STMTS. In case of multiplication by a constant |
592 | + of an intermediate type (the last case above), STMTS also contains S3 | 581 | + of an intermediate type (the last case above), STMTS also contains S3 |
593 | + (inserted before S5). | 582 | + (inserted before S5). |
594 | + | 583 | |
584 | - Output: | ||
595 | + Output: | 585 | + Output: |
596 | + | 586 | |
587 | - * TYPE_IN: The type of the input arguments to the pattern. | ||
597 | + * TYPE_IN: The type of the input arguments to the pattern. | 588 | + * TYPE_IN: The type of the input arguments to the pattern. |
598 | + | 589 | |
590 | - * TYPE_OUT: The type of the output of this pattern. | ||
599 | + * TYPE_OUT: The type of the output of this pattern. | 591 | + * TYPE_OUT: The type of the output of this pattern. |
600 | + | 592 | |
593 | - * Return value: A new stmt that will be used to replace the sequence of | ||
594 | - stmts that constitute the pattern. In this case it will be: | ||
595 | - WIDEN_MULT <a_t, b_t> | ||
596 | - */ | ||
601 | + * Return value: A new stmt that will be used to replace the sequence of | 597 | + * Return value: A new stmt that will be used to replace the sequence of |
602 | + stmts that constitute the pattern. In this case it will be: | 598 | + stmts that constitute the pattern. In this case it will be: |
603 | + WIDEN_MULT <a_t, b_t> | 599 | + WIDEN_MULT <a_t, b_t> |
@@ -932,10 +928,10 @@ | |||
932 | 928 | ||
933 | if (vect_print_dump_info (REPORT_DETAILS)) | 929 | if (vect_print_dump_info (REPORT_DETAILS)) |
934 | fprintf (vect_dump, "=== vect_pattern_recog ==="); | 930 | fprintf (vect_dump, "=== vect_pattern_recog ==="); |
935 | 931 | Index: gcc-4_6-branch/gcc/tree-vect-slp.c | |
936 | === modified file 'gcc/tree-vect-slp.c' | 932 | =================================================================== |
937 | --- old/gcc/tree-vect-slp.c 2011-06-19 10:59:13 +0000 | 933 | --- gcc-4_6-branch.orig/gcc/tree-vect-slp.c 2011-09-16 20:31:52.000000000 -0700 |
938 | +++ new/gcc/tree-vect-slp.c 2011-07-06 12:04:10 +0000 | 934 | +++ gcc-4_6-branch/gcc/tree-vect-slp.c 2011-09-16 20:32:57.289056641 -0700 |
939 | @@ -152,7 +152,9 @@ | 935 | @@ -152,7 +152,9 @@ |
940 | if (loop && def_stmt && gimple_bb (def_stmt) | 936 | if (loop && def_stmt && gimple_bb (def_stmt) |
941 | && flow_bb_inside_loop_p (loop, gimple_bb (def_stmt)) | 937 | && flow_bb_inside_loop_p (loop, gimple_bb (def_stmt)) |
@@ -947,10 +943,10 @@ | |||
947 | { | 943 | { |
948 | if (!*first_stmt_dt0) | 944 | if (!*first_stmt_dt0) |
949 | *pattern0 = true; | 945 | *pattern0 = true; |
950 | 946 | Index: gcc-4_6-branch/gcc/tree-vect-stmts.c | |
951 | === modified file 'gcc/tree-vect-stmts.c' | 947 | =================================================================== |
952 | --- old/gcc/tree-vect-stmts.c 2011-06-22 06:21:13 +0000 | 948 | --- gcc-4_6-branch.orig/gcc/tree-vect-stmts.c 2011-09-16 20:31:52.000000000 -0700 |
953 | +++ new/gcc/tree-vect-stmts.c 2011-07-06 12:04:10 +0000 | 949 | +++ gcc-4_6-branch/gcc/tree-vect-stmts.c 2011-09-16 20:32:57.289056641 -0700 |
954 | @@ -126,33 +126,72 @@ | 950 | @@ -126,33 +126,72 @@ |
955 | 951 | ||
956 | static void | 952 | static void |
@@ -974,21 +970,6 @@ | |||
974 | if (STMT_VINFO_IN_PATTERN_P (stmt_info)) | 970 | if (STMT_VINFO_IN_PATTERN_P (stmt_info)) |
975 | { | 971 | { |
976 | - gimple pattern_stmt; | 972 | - gimple pattern_stmt; |
977 | - | ||
978 | - /* This is the last stmt in a sequence that was detected as a | ||
979 | - pattern that can potentially be vectorized. Don't mark the stmt | ||
980 | - as relevant/live because it's not going to be vectorized. | ||
981 | - Instead mark the pattern-stmt that replaces it. */ | ||
982 | - | ||
983 | - pattern_stmt = STMT_VINFO_RELATED_STMT (stmt_info); | ||
984 | - | ||
985 | - if (vect_print_dump_info (REPORT_DETAILS)) | ||
986 | - fprintf (vect_dump, "last stmt in pattern. don't mark relevant/live."); | ||
987 | - stmt_info = vinfo_for_stmt (pattern_stmt); | ||
988 | - gcc_assert (STMT_VINFO_RELATED_STMT (stmt_info) == stmt); | ||
989 | - save_relevant = STMT_VINFO_RELEVANT (stmt_info); | ||
990 | - save_live_p = STMT_VINFO_LIVE_P (stmt_info); | ||
991 | - stmt = pattern_stmt; | ||
992 | + bool found = false; | 973 | + bool found = false; |
993 | + if (!used_in_pattern) | 974 | + if (!used_in_pattern) |
994 | + { | 975 | + { |
@@ -1026,7 +1007,21 @@ | |||
1026 | + pattern that can potentially be vectorized. Don't mark the stmt | 1007 | + pattern that can potentially be vectorized. Don't mark the stmt |
1027 | + as relevant/live because it's not going to be vectorized. | 1008 | + as relevant/live because it's not going to be vectorized. |
1028 | + Instead mark the pattern-stmt that replaces it. */ | 1009 | + Instead mark the pattern-stmt that replaces it. */ |
1029 | + | 1010 | |
1011 | - /* This is the last stmt in a sequence that was detected as a | ||
1012 | - pattern that can potentially be vectorized. Don't mark the stmt | ||
1013 | - as relevant/live because it's not going to be vectorized. | ||
1014 | - Instead mark the pattern-stmt that replaces it. */ | ||
1015 | - | ||
1016 | - pattern_stmt = STMT_VINFO_RELATED_STMT (stmt_info); | ||
1017 | - | ||
1018 | - if (vect_print_dump_info (REPORT_DETAILS)) | ||
1019 | - fprintf (vect_dump, "last stmt in pattern. don't mark relevant/live."); | ||
1020 | - stmt_info = vinfo_for_stmt (pattern_stmt); | ||
1021 | - gcc_assert (STMT_VINFO_RELATED_STMT (stmt_info) == stmt); | ||
1022 | - save_relevant = STMT_VINFO_RELEVANT (stmt_info); | ||
1023 | - save_live_p = STMT_VINFO_LIVE_P (stmt_info); | ||
1024 | - stmt = pattern_stmt; | ||
1030 | + pattern_stmt = STMT_VINFO_RELATED_STMT (stmt_info); | 1025 | + pattern_stmt = STMT_VINFO_RELATED_STMT (stmt_info); |
1031 | + | 1026 | + |
1032 | + if (vect_print_dump_info (REPORT_DETAILS)) | 1027 | + if (vect_print_dump_info (REPORT_DETAILS)) |
@@ -1119,9 +1114,6 @@ | |||
1119 | - VEC_free (gimple, heap, worklist); | 1114 | - VEC_free (gimple, heap, worklist); |
1120 | - return false; | 1115 | - return false; |
1121 | - } | 1116 | - } |
1122 | - } | ||
1123 | - else | ||
1124 | - return false; | ||
1125 | + break; | 1117 | + break; |
1126 | + | 1118 | + |
1127 | + case GIMPLE_BINARY_RHS: | 1119 | + case GIMPLE_BINARY_RHS: |
@@ -1154,7 +1146,9 @@ | |||
1154 | + | 1146 | + |
1155 | + default: | 1147 | + default: |
1156 | + return false; | 1148 | + return false; |
1157 | + } | 1149 | } |
1150 | - else | ||
1151 | - return false; | ||
1158 | } | 1152 | } |
1159 | else if (is_gimple_call (stmt)) | 1153 | else if (is_gimple_call (stmt)) |
1160 | { | 1154 | { |
@@ -1173,7 +1167,7 @@ | |||
1173 | gcc_assert (vec_stmt); | 1167 | gcc_assert (vec_stmt); |
1174 | if (gimple_code (vec_stmt) == GIMPLE_PHI) | 1168 | if (gimple_code (vec_stmt) == GIMPLE_PHI) |
1175 | vec_oprnd = PHI_RESULT (vec_stmt); | 1169 | vec_oprnd = PHI_RESULT (vec_stmt); |
1176 | @@ -4886,6 +4946,7 @@ | 1170 | @@ -4894,6 +4954,7 @@ |
1177 | enum vect_relevant relevance = STMT_VINFO_RELEVANT (stmt_info); | 1171 | enum vect_relevant relevance = STMT_VINFO_RELEVANT (stmt_info); |
1178 | bool ok; | 1172 | bool ok; |
1179 | tree scalar_type, vectype; | 1173 | tree scalar_type, vectype; |
@@ -1181,14 +1175,13 @@ | |||
1181 | 1175 | ||
1182 | if (vect_print_dump_info (REPORT_DETAILS)) | 1176 | if (vect_print_dump_info (REPORT_DETAILS)) |
1183 | { | 1177 | { |
1184 | @@ -4907,16 +4968,22 @@ | 1178 | @@ -4915,16 +4976,22 @@ |
1185 | - any LABEL_EXPRs in the loop | 1179 | - any LABEL_EXPRs in the loop |
1186 | - computations that are used only for array indexing or loop control. | 1180 | - computations that are used only for array indexing or loop control. |
1187 | In basic blocks we only analyze statements that are a part of some SLP | 1181 | In basic blocks we only analyze statements that are a part of some SLP |
1188 | - instance, therefore, all the statements are relevant. */ | 1182 | - instance, therefore, all the statements are relevant. */ |
1189 | - | ||
1190 | + instance, therefore, all the statements are relevant. | 1183 | + instance, therefore, all the statements are relevant. |
1191 | + | 1184 | |
1192 | + Pattern statement need to be analyzed instead of the original statement | 1185 | + Pattern statement need to be analyzed instead of the original statement |
1193 | + if the original statement is not relevant. Otherwise, we analyze both | 1186 | + if the original statement is not relevant. Otherwise, we analyze both |
1194 | + statements. */ | 1187 | + statements. */ |
@@ -1207,7 +1200,7 @@ | |||
1207 | stmt = pattern_stmt; | 1200 | stmt = pattern_stmt; |
1208 | stmt_info = vinfo_for_stmt (pattern_stmt); | 1201 | stmt_info = vinfo_for_stmt (pattern_stmt); |
1209 | if (vect_print_dump_info (REPORT_DETAILS)) | 1202 | if (vect_print_dump_info (REPORT_DETAILS)) |
1210 | @@ -4933,6 +5000,21 @@ | 1203 | @@ -4941,6 +5008,21 @@ |
1211 | return true; | 1204 | return true; |
1212 | } | 1205 | } |
1213 | } | 1206 | } |
@@ -1229,42 +1222,7 @@ | |||
1229 | 1222 | ||
1230 | switch (STMT_VINFO_DEF_TYPE (stmt_info)) | 1223 | switch (STMT_VINFO_DEF_TYPE (stmt_info)) |
1231 | { | 1224 | { |
1232 | @@ -5066,7 +5148,6 @@ | 1225 | @@ -5605,8 +5687,12 @@ |
1233 | bool is_store = false; | ||
1234 | gimple vec_stmt = NULL; | ||
1235 | stmt_vec_info stmt_info = vinfo_for_stmt (stmt); | ||
1236 | - gimple orig_stmt_in_pattern, orig_scalar_stmt = stmt; | ||
1237 | bool done; | ||
1238 | |||
1239 | switch (STMT_VINFO_TYPE (stmt_info)) | ||
1240 | @@ -5205,25 +5286,7 @@ | ||
1241 | } | ||
1242 | |||
1243 | if (vec_stmt) | ||
1244 | - { | ||
1245 | - STMT_VINFO_VEC_STMT (stmt_info) = vec_stmt; | ||
1246 | - orig_stmt_in_pattern = STMT_VINFO_RELATED_STMT (stmt_info); | ||
1247 | - if (orig_stmt_in_pattern) | ||
1248 | - { | ||
1249 | - stmt_vec_info stmt_vinfo = vinfo_for_stmt (orig_stmt_in_pattern); | ||
1250 | - /* STMT was inserted by the vectorizer to replace a computation idiom. | ||
1251 | - ORIG_STMT_IN_PATTERN is a stmt in the original sequence that | ||
1252 | - computed this idiom. We need to record a pointer to VEC_STMT in | ||
1253 | - the stmt_info of ORIG_STMT_IN_PATTERN. See more details in the | ||
1254 | - documentation of vect_pattern_recog. */ | ||
1255 | - if (STMT_VINFO_IN_PATTERN_P (stmt_vinfo)) | ||
1256 | - { | ||
1257 | - gcc_assert (STMT_VINFO_RELATED_STMT (stmt_vinfo) | ||
1258 | - == orig_scalar_stmt); | ||
1259 | - STMT_VINFO_VEC_STMT (stmt_vinfo) = vec_stmt; | ||
1260 | - } | ||
1261 | - } | ||
1262 | - } | ||
1263 | + STMT_VINFO_VEC_STMT (stmt_info) = vec_stmt; | ||
1264 | |||
1265 | return is_store; | ||
1266 | } | ||
1267 | @@ -5601,8 +5664,12 @@ | ||
1268 | || *dt == vect_nested_cycle) | 1226 | || *dt == vect_nested_cycle) |
1269 | { | 1227 | { |
1270 | stmt_vec_info stmt_info = vinfo_for_stmt (*def_stmt); | 1228 | stmt_vec_info stmt_info = vinfo_for_stmt (*def_stmt); |
@@ -1278,10 +1236,10 @@ | |||
1278 | *vectype = STMT_VINFO_VECTYPE (stmt_info); | 1236 | *vectype = STMT_VINFO_VECTYPE (stmt_info); |
1279 | gcc_assert (*vectype != NULL_TREE); | 1237 | gcc_assert (*vectype != NULL_TREE); |
1280 | } | 1238 | } |
1281 | 1239 | Index: gcc-4_6-branch/gcc/tree-vectorizer.h | |
1282 | === modified file 'gcc/tree-vectorizer.h' | 1240 | =================================================================== |
1283 | --- old/gcc/tree-vectorizer.h 2011-07-04 11:13:51 +0000 | 1241 | --- gcc-4_6-branch.orig/gcc/tree-vectorizer.h 2011-09-16 20:31:52.000000000 -0700 |
1284 | +++ new/gcc/tree-vectorizer.h 2011-07-11 11:02:55 +0000 | 1242 | +++ gcc-4_6-branch/gcc/tree-vectorizer.h 2011-09-16 20:32:57.299056515 -0700 |
1285 | @@ -890,7 +890,7 @@ | 1243 | @@ -890,7 +890,7 @@ |
1286 | /* Pattern recognition functions. | 1244 | /* Pattern recognition functions. |
1287 | Additional pattern recognition functions can (and will) be added | 1245 | Additional pattern recognition functions can (and will) be added |
@@ -1291,4 +1249,3 @@ | |||
1291 | #define NUM_PATTERNS 4 | 1249 | #define NUM_PATTERNS 4 |
1292 | void vect_pattern_recog (loop_vec_info); | 1250 | void vect_pattern_recog (loop_vec_info); |
1293 | 1251 | ||
1294 | |||