[Bug tree-optimization/126465] [16/17 Regression] Wrong code with IFN_COND_FMA folding on SVE

"pinskia at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126465

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-07-29

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
r16-6508-g772b847d99d5e3 .


  (simplify
   (negate (fmas@3 @4 @0 @1 @2 @5))
   (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
    (IFN_COND_FNMS @4 @0 @1 @2 @5))))


The negate also applies to the other non-fma part while afterwards it does not.

 (simplify
  (negate (IFN_FMS@3 @4 @0 @1 @2 @5))
   (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
    (IFN_COND_FNMA @4 @0 @1 @2 @5)))




 (simplify
  (negate (IFN_COND_FNMA@3 @4 @0 @1 @2 @5))
  (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
   (IFN_COND_FMS @4 @0 @1 @2 @5)))

 (simplify
  (negate (IFN_COND_FNMS@3 @4 @0 @1 @2 @5))
  (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
   (IFN_COND_FMA @4 @0 @1 @2 @5))))


All need negate around the inner part that is not doing the fmas.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.