diff options
author | Ulrich Weigand <ulrich.weigand@linaro.org> | 2012-05-04 12:46:04 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2012-05-04 12:46:04 +0000 |
commit | 33018845ebb6f93f8d664253b5d77f0c0187b74c (patch) | |
tree | 56c691e07c1a6e95679faaa805e2259418d41bbd /gcc/testsuite/gcc.target/arm/pr52633.c | |
parent | 9a7a4398d3b33eb4ea3be8094e7a381921f6a4f6 (diff) | |
download | gcc-33018845ebb6f93f8d664253b5d77f0c0187b74c.tar.gz |
re PR tree-optimization/52633 (Compiler ICE in vect_is_simple_use_1 (ARM))
gcc/
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.
gcc/testsuite/
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.
From-SVN: r187158
Diffstat (limited to 'gcc/testsuite/gcc.target/arm/pr52633.c')
-rw-r--r-- | gcc/testsuite/gcc.target/arm/pr52633.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/arm/pr52633.c b/gcc/testsuite/gcc.target/arm/pr52633.c new file mode 100644 index 00000000000..b904d59d95c --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/pr52633.c @@ -0,0 +1,13 @@ +/* PR tree-optimization/52633 */ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_neon_ok } */ +/* { dg-options "-march=armv7-a -mfloat-abi=softfp -mfpu=neon -O -ftree-vectorize" } */ + +void +test (unsigned short *x, signed char *y) +{ + int i; + for (i = 0; i < 32; i++) + x[i] = (short) (y[i] << 5); +} + |