https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87064

--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The comment on the define_insn_and_split 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.
So, the question is, is that ever the case for little endian also?
As I said,
--- gcc/config/rs6000/vsx.md    2019-01-19 09:39:13.224924063 +0100
+++ gcc/config/rs6000/vsx.md    2019-01-21 22:04:15.372792335 +0100
@@ -4351,7 +4351,7 @@
          (match_dup 1))
         (parallel [(const_int 1)])))
    (clobber (match_scratch:DF 2 "=0,0,&wd,&wa"))]
-  "VECTOR_UNIT_VSX_P (V2DFmode)"
+  "BYTES_BIG_ENDIAN && VECTOR_UNIT_VSX_P (V2DFmode)"
   "#"
   ""
   [(const_int 0)]
generates much better code at least on this testcase, and from
bootstrap/regtest I'm not away of this pattern ever trigging for something
different.

Reply via email to