On 25 January 2015 at 22:33, Christophe Lyon <christophe.l...@linaro.org> wrote: > On 17 December 2014 at 18:02, Tejas Belagod <tejas.bela...@arm.com> wrote: >> On 17/12/14 16:46, Marcus Shawcroft wrote: >>> >>> On 17 December 2014 at 15:15, Tejas Belagod <tejas.bela...@arm.com> wrote: >>> >>>>> It isn;t clear to me how far through the various BE patches we need to >>>>> get before 59810 is actually resolved? >>>> >>>> >>>> >>>> David's 2 patches >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01431.html >>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01099.html >>>> >>>> and Alan's 2 patches: >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2014-11/msg02797.html >>> >>> >>> OK, thanks, my understanding is that all of the above are now blocked >>> waiting some resolution on this patch to rtlanal.c: >> >> >> I believe so. >> >> Thanks, >> Tejas. >> > > Hi, > If I'm not mistaken, this has been committed as r219959, and is > causing regressions on aarch64_be for several AdvSimd intrinsic tests: > vldX_lane, vtrn, vuzp, vzip, as well as vldN_1 and vstN_1 > > See: > http://abe.tcwglab.linaro.org/logs/validations/cross-validation/gcc/trunk/219959/report-build-info.html > > These tests started passing at the previous commit (r219958) with the > other half of this patch. > > I haven't looked at the details yet. >
I've been looking at these failures for some time. I currently have a patch which mostly reverts the one discussed in this thread, and makes the AdvSIMD tests pass. However, it creates regressions in some of the vectorizer tests. When r219959 was committed, I observed that these tests started to pass: gcc.dg/torture/pr52028.c gcc.dg/torture/pr53366-1.c gcc.dg/vect/pr37539.c gcc.dg/vect/pr40074.c gcc.dg/vect/pr51074.c gcc.dg/vect/pr59354.c gcc.dg/vect/pr64252.c gcc.dg/vect/slp-12b.c gcc.dg/vect/slp-19b.c gcc.dg/vect/slp-perm-8.c gcc.dg/vect/slp-perm-9.c gcc.dg/vect/vect-107.c gcc.dg/vect/vect-over-widen-1-big-array.c gcc.dg/vect/vect-over-widen-1.c gcc.dg/vect/vect-over-widen-2-big-array.c gcc.dg/vect/vect-over-widen-2.c gcc.dg/vect/vect-over-widen-3-big-array.c gcc.dg/vect/vect-over-widen-3.c gcc.dg/vect/vect-over-widen-4-big-array.c gcc.dg/vect/vect-over-widen-4.c gcc.dg/vect/vect-strided-store-a-u8-i2.c gcc.dg/vect/vect-strided-store-u16-i4.c gcc.dg/vect/vect-strided-store-u32-i2.c gcc.dg/vect/vect-strided-u16-i3.c I am looking at the pr59354.c testcase, which seems to be one the simplest showing a regression. The vectorizer does a pretty good at generating obfuscated code :-) and I find it quite difficult to debug, given the lack of debug environment. In fact, I still don't understand what r219959 actually fixed. I believe that https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59810 is covered by the AdvSIMD tests, which r219959 actually breaks. In summary, I have the feeling that r219959 should be somewhat reverted such that the AdvSIMD tests pass on aarch64_be, but that this would expose a bug related to vectorization. Any advice appreciated. Thanks, Christophe. > Christophe. > >>> >>>> https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01087.html >>> >>> >>> /Marcus >>> >> >>