diff options
author | Richard Biener <rguenth@gcc.gnu.org> | 2018-06-25 11:01:07 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-06-25 11:01:07 +0000 |
commit | 8c9632905d39afc3c431d0ff4d318d15c9250344 (patch) | |
tree | fdcd027e09d9df073024307aa4ef905b180ea483 /gcc/tree-vect-data-refs.c | |
parent | fd082a66f8be44616584164672eeb8e2779c5593 (diff) | |
download | gcc-8c9632905d39afc3c431d0ff4d318d15c9250344.zip gcc-8c9632905d39afc3c431d0ff4d318d15c9250344.tar.gz gcc-8c9632905d39afc3c431d0ff4d318d15c9250344.tar.bz2 |
tree-vect-data-refs.c (vect_check_gather_scatter): Fail for reverse storage order accesses rather than asserting they cannot...
2018-06-25 Richard Biener <rguenther@suse.de>
Eric Botcazou <ebotcazou@libertysurf.fr>
* tree-vect-data-refs.c (vect_check_gather_scatter): Fail
for reverse storage order accesses rather than asserting
they cannot happen here.
* gnat.dg/sso9.adb: New testcase.
* gnat.dg/sso9_pkg.ads: Likewise.
From-SVN: r262007
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 1ac37bf..19ff782 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -3730,7 +3730,9 @@ vect_check_gather_scatter (gimple *stmt, loop_vec_info loop_vinfo, that can be gimplified before the loop. */ base = get_inner_reference (base, &pbitsize, &pbitpos, &off, &pmode, &punsignedp, &reversep, &pvolatilep); - gcc_assert (base && !reversep); + if (reversep) + return false; + poly_int64 pbytepos = exact_div (pbitpos, BITS_PER_UNIT); if (TREE_CODE (base) == MEM_REF) |