[Bug tree-optimization/115976] Missing uadd_sat/usub_sat/sstrunc vectorization
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jul 18 01:22:50 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115976
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Missing uadd_sat/usub_sat |Missing
|vectorization |uadd_sat/usub_sat/sstrunc
| |vectorization
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Another testcase this time for sstrunc:
```
void f0(long long *__restrict__ a, unsigned * __restrict__ b)
{
int i = 0;
for(int i = 0;i < 1024;i ++)
{
long long tt = a[i];
if (tt > __INT_MAX__)
tt = __INT_MAX__;
if (tt < -__INT_MAX__-1)
tt = -__INT_MAX__-1;
b[i] = tt;
}
}
```
LLVM is able to handle this for avx512f for x86_64 and for riscv.
More information about the Gcc-bugs
mailing list