[Bug target/126932] GCC's RISC-V auto-vectorizer emits FMA instructions with -ffp-contract=off

"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=126932

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-08-18
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Trying 16 -> 19:
   16: r143:V4SF=r144:V4SF*r145:V4SF
      REG_DEAD r145:V4SF
      REG_DEAD r144:V4SF
   19: r147:V4SF=r143:V4SF+r148:V4SF
      REG_DEAD r148:V4SF
      REG_DEAD r143:V4SF
Successfully matched this instruction:
(set (reg:V4SF 147 [ vect__5.33_30 ])
    (plus:V4SF (mult:V4SF (reg:V4SF 144 [ MEM <vector(4) floatD.26> [(floatD.26
*)&bD.2925] ])
            (reg:V4SF 145 [ MEM <vector(4) floatD.26> [(floatD.26 *)&cD.2926]
]))
        (reg:V4SF 148 [ MEM <vector(4) floatD.26> [(floatD.26 *)&aD.2924] ])))


(insn 19 18 20 2 (set (reg:V4SF 147 [ vect__5.33_30 ])
        (plus:V4SF (mult:V4SF (reg:V4SF 144 [ MEM <vector(4) floatD.26>
[(floatD.26 *)&bD.2925] ])
                (reg:V4SF 145 [ MEM <vector(4) floatD.26> [(floatD.26
*)&cD.2926] ]))
            (reg:V4SF 148 [ MEM <vector(4) floatD.26> [(floatD.26 *)&aD.2924]
]))) :7:15 31096 {fmav4sf4}
     (expr_list:REG_DEAD (reg:V4SF 144 [ MEM <vector(4) floatD.26> [(floatD.26
*)&bD.2925] ])
        (expr_list:REG_DEAD (reg:V4SF 145 [ MEM <vector(4) floatD.26>
[(floatD.26 *)&cD.2926] ])
            (expr_list:REG_DEAD (reg:V4SF 148 [ MEM <vector(4) floatD.26>
[(floatD.26 *)&aD.2924] ])
                (nil)))))



Since r14-4126-g28569e79e34ac8. It should have been using fma instead of
plus/mult .
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.