https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123575
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2026-01-13
Known to work| |13.4.0
Status|UNCONFIRMED |NEW
Target Milestone|16.0 |14.4
Known to fail| |14.1.0
Summary|internal compiler error: in |[14/15/16 Regression]
|prepare_cmp_insn, at |internal compiler error: in
|optabs.cc:4589 |prepare_cmp_insn, at
| |optabs.cc:4589
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
```
typedef int __attribute__((vector_size(sizeof(int)*2))) v2i;
typedef long __attribute__((vector_size(sizeof(long)*2))) v2l;
v2l f(v2i a)
{
v2l t = __builtin_convertvector(a, v2l);
t = t > 0 ? t : -t;
return t;
}
```
So I think vector type, this transformation is correct but only if there is cmp
optab here or an abs optab.