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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-09-01
           Keywords|                            |easyhack
     Ever confirmed|0                           |1
          Component|rtl-optimization            |target

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The problem is here:
(define_insn_and_split "@xorsign<mode>3_1"
  [(set (match_operand:MODEF 0 "register_operand" "=Yv")
        (unspec:MODEF
          [(match_operand:MODEF 1 "register_operand" "Yv")
           (match_operand:MODEF 2 "register_operand" "0")
           (match_operand:<ssevecmode> 3 "nonimmediate_operand" "Yvm")]
          UNSPEC_XORSIGN))]
  "SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH"
  "#"
  "&& reload_completed"
  [(const_int 0)]
  "ix86_split_xorsign (operands); DONE;")


for AVX operand 2 does not need to be the same as operand 0.
Shouldn't be a hard change for someone starting out to improve this.

Reply via email to