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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |aarch64
   Last reconfirmed|                            |2026-10-30
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
           Priority|P3                          |P2

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  -fno-tree-loop-vectorize fixes it, --param vect-epilogues-nomask=0
fixes it as well, so the epilog is wrong which we end up vectorizing as

  vect__54.56_22 = MEM <vector(2) float> [(float *)vectp_d.54_126 + 8B];
  vect__50.46_1 = MEM <vector(2) float> [(float *)vectp_x.44_112 + 8B];
  vect__51.47_2 = VEC_PERM_EXPR <vect__50.46_1, vect__50.46_1, { 1, 1 }>;
  vect__47.51_3 = MEM <vector(2) float> [(float *)vectp_y.49_119 + 8B];
  vect__48.52_12 = VEC_PERM_EXPR <vect__47.51_3, vect__47.51_3, { 1, 1 }>;
  vect_slp_patt_61.57_11 = .COMPLEX_FMS (vect__51.47_2, vect__48.52_12,
vect__54.56_22);
  MEM <vector(2) float> [(float *)vectp_d.54_126 + 8B] =
vect_slp_patt_61.57_11;

note the main loop uses

 vect__6.35_95 = .FNMA (vect__21.13_80, vect__25.22_85, vect__12.32_92);
  vect__34.37_97 = .FNMA (vect__21.15_81, vect__25.20_84, vect__6.35_95);
  _90 = .FMA (vect__21.15_81, vect__25.22_85, vect__12.30_91);
  vect__33.33_93 = .FNMA (vect__21.13_80, vect__25.20_84, _90);

Reply via email to