Hi Jakub, On Tue, Jan 22, 2019 at 05:31:58PM +0100, Jakub Jelinek wrote: > The following patch disables *vsx_reduc_<VEC_reduc_name>_v2df_scalar > define_insn_and_split for little endian, because it both generates > wrong code there (fixable), but also even if fixed, emit much worse code > than when it is not present at all. > The comment on the pattern says: > ;; Combiner patterns with the vector reduction patterns that knows we can get > ;; to the top element of the V2DF array without doing an extract. > but for little endian that is not the case, the end result is that a vector > is unnecessarily forced into memory. > > Fixed thusly, bootstrapped/regtested on powerpc64le-linux, fixes > FAIL: libgomp.oacc-fortran/reduction-3.f90 -DACC_DEVICE_TYPE_host=1 > -DACC_MEM_SHARED=1 -O1 execution test > , ok for trunk?
Okay. Thanks! Also okay for backports. Segher > 2019-01-22 Jakub Jelinek <ja...@redhat.com> > > PR target/87064 > * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar): > Disable for little endian.