diff options
author | Richard Biener <rguenther@suse.de> | 2013-03-27 10:38:29 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-03-27 10:38:29 +0000 |
commit | 7d24f650fa1886c29e2431c969e5b7e6f8a50836 (patch) | |
tree | 92e4267a0b2c2fc61b604712594ccbfdf4f9e8c9 /gcc/tree-vect-data-refs.c | |
parent | 173536ed5f1dffb39cd220678d9e246bbafd86f6 (diff) | |
download | gcc-7d24f650fa1886c29e2431c969e5b7e6f8a50836.zip gcc-7d24f650fa1886c29e2431c969e5b7e6f8a50836.tar.gz gcc-7d24f650fa1886c29e2431c969e5b7e6f8a50836.tar.bz2 |
re PR tree-optimization/37021 (Fortran Complex reduction / multiplication not vectorized)
2013-03-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/37021
* tree-vect-data-refs.c (vect_check_strided_load): Allow
REALPART/IMAGPART_EXPRs around the supported refs.
* tree-ssa-structalias.c (find_func_aliases): Assume that
floating-point values are not used to transfer pointers.
* gfortran.dg/vect/fast-math-pr37021.f90: New testcase.
From-SVN: r197158
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 579f603..188581f 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -2798,6 +2798,10 @@ vect_check_strided_load (gimple stmt, loop_vec_info loop_vinfo) base = DR_REF (dr); + if (TREE_CODE (base) == REALPART_EXPR + || TREE_CODE (base) == IMAGPART_EXPR) + base = TREE_OPERAND (base, 0); + if (TREE_CODE (base) == ARRAY_REF) { off = TREE_OPERAND (base, 1); |