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

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note after r15-2946-gfcc3af99498804, for:
```
int fc(unsigned char a)
{
  return __builtin_popcountg(a) == 1;
}
```

Without CSSC, GCC produces:
```
        and     w0, w0, 255
        fmov    d31, x0
        cnt     v31.8b, v31.8b
        smov    w0, v31.b[0]
        cmp     w0, 1
        cset    w0, eq
        ret
```

Plus there is a missing optimization.
It should just be:
```
fmov b31, w0
```

I have a fix for that I think. But we still don't get the right costing here
...

Reply via email to