[Bug target/114513] [11/12/13/14 Regression] [aarch64] floating-point registers are used when GPRs are preferred

2024-04-18 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114513
Bug 114513 depends on bug 114741, which changed state.

Bug 114741 Summary: [14 regression] aarch64 sve: unnecessary fmov for scalar 
int bit operations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114741

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug target/114513] [11/12/13/14 Regression] [aarch64] floating-point registers are used when GPRs are preferred

2024-03-29 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114513

Jeffrey A. Law  changed:

   What|Removed |Added

   Priority|P3  |P2
 CC||law at gcc dot gnu.org

[Bug target/114513] [11/12/13/14 Regression] [aarch64] floating-point registers are used when GPRs are preferred

2024-03-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114513

--- Comment #3 from Andrew Pinski  ---
Looks like r9-332-g43d0a8ee88460a added the ? there and caused the regression

I do think it should be ^ since the reload (spill) case should use w while
normally it try both, w and r. But I could be wrong.

[Bug target/114513] [11/12/13/14 Regression] [aarch64] floating-point registers are used when GPRs are preferred

2024-03-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114513

Andrew Pinski  changed:

   What|Removed |Added

  Known to work||8.5.0
 Status|UNCONFIRMED |NEW
  Known to fail||9.3.0
   Target Milestone|--- |11.5
 Ever confirmed|0   |1
Summary|[aarch64] floating-point|[11/12/13/14 Regression]
   |registers are used when |[aarch64] floating-point
   |GPRs are preferred  |registers are used when
   ||GPRs are preferred
   Last reconfirmed||2024-03-28

--- Comment #2 from Andrew Pinski  ---
So we have:
```
;; Equal width integer to fp conversion.
(define_insn "2"
  [(set (match_operand:GPF 0 "register_operand")
(FLOATUORS:GPF (match_operand: 1 "register_operand")))]
  "TARGET_FLOAT"
  {@ [ cons: =0 , 1  ; attrs: type , arch  ]
 [ w, w  ; neon_int_to_fp_ , simd  ]
cvtf\t%0, %1
 [ w, ?r ; f_cvti2f, fp]
cvtf\t%0, %1
  }
)

```

Notice the ? in there for r.

Reading https://gcc.gnu.org/onlinedocs/gccint/Multi-Alternative.html maybe this
should be ^ instead of ?.

^ is new as of GCC 5