https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #10 from Andrew Pinski ---
Patch posted:
https://gcc.gnu.org/pipermail/gcc-patches/2024-May/650833.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #9 from Andrew Pinski ---
Created attachment 58022
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58022&action=edit
Patch which I tested
I still need to add the testcases and finish up the commit message and
changelogs. I will
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #8 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #7)
> here is a testcase for the fcsel usage for integer cmov:
A slightly better example where there is no use of inline-asm or forcing to
specific registers:
```
#def
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #7 from Andrew Pinski ---
here is a testcase for the fcsel usage for integer cmov:
```
void
foo (int a, int *b)
{
int t = a ? 11 : 22;
register int tt __asm__("s0");
tt = t;
asm("":"+w"(tt));
*b = tt;
}
```
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #6 from Andrew Pinski ---
here is a testcase for the fcsel usage for integer:
```
void
foo (int a, double *b)
{
double t = a ? 1.0 : 200.0;
register double tt __asm__("x0");
tt = t;
asm("":"+r"(tt));
*b = tt;
}
```
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #5 from Andrew Pinski ---
So adding the `r` alternative to *cmov_insn (GPF) works kinda of but then
we seem to have a register allocation issue.
Even this still causes FPREGS from being chosen:
```
void
foo (int a, double *b)
{
dou
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
Andrew Pinski changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2020-12-30
Version|unknown
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #2 from Andrew Pinski ---
(In reply to ktkachov from comment #1)
> Or a =r,r,r alternative to the FCSEL pattern instead...
Should most likely add the r alternative to *cmov_insn (GPF) and the w
alternative to *cmov_insn (ALLI). So y
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
Andrew Pinski changed:
What|Removed |Added
Severity|normal |enhancement
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98477
--- Comment #1 from ktkachov at gcc dot gnu.org ---
Or a =r,r,r alternative to the FCSEL pattern instead...
11 matches
Mail list logo