Backport from mainline:
2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52633
* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
(vect_recog_over_widening_pattern): Remove handling of code that was
already detected as over-widening pattern. Remove special handling
of "unsigned" cases. Instead, support general case of conversion
of the shift result to another type.
2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
* tree-vect-patterns.c (vect_single_imm_use): New function.
(vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
(vect_recog_over_widening_pattern): Likewise.
(vect_recog_widen_shift_pattern): Likewise.
2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52870
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
presumed pattern statement is within the same loop or basic block.
2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
Backport from mainline:
2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52633
* gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be
recognized as widening shifts instead of over-widening.
* gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
* gcc.dg/vect/vect-over-widen-4.c: Likewise.
* gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
* gcc.target/arm/pr52633.c: New test.
2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52870
* gcc.dg/vect/pr52870.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@187162
138bc75d-0d04-0410-961f-
82ee72b054a4