-
- Downloads
Unshare DR_STEP before gimplifying it
In this testcase we use an unmasked SVE loop with an Advanced SIMD epilogue (because we don't yet support fully-masked downward loops). The main loop uses a gather load for the strided access while the epilogue loop builds the access from scalars instead. In both cases we gimplify expressions based on the DR_STEP and insert them in the loop preheader. The problem was that the gather load code didn't copy the DR_STEP before gimplifying it, meaning that the epilogue loop tried to reuse a result from the (non-dominating) main loop preheader. It looks at first glance like there could be other instances of this too, but this patch just deals with the gather/scatter case. 2019-12-29 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-stmts.c (vect_get_strided_load_store_ops): Copy DR_STEP before gimplifying it. gcc/testsuite/ * gcc.dg/vect/vect-strided-epilogue-1.c: New test. From-SVN: r279753
Showing
- gcc/ChangeLog 5 additions, 0 deletionsgcc/ChangeLog
- gcc/testsuite/ChangeLog 4 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.dg/vect/vect-strided-epilogue-1.c 8 additions, 0 deletionsgcc/testsuite/gcc.dg/vect/vect-strided-epilogue-1.c
- gcc/tree-vect-stmts.c 2 additions, 2 deletionsgcc/tree-vect-stmts.c
Loading
Please register or sign in to comment