https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104396
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2026-02-13
Status|UNCONFIRMED |NEW
Known to fail| |16.0
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. But then
auto f(int32x4_t *p0, int16x8_t *p1) {
int i = -1;
return vqdmlal_high_laneq_s16(p0[0], p1[0], p1[1], i);
}
would be rejected with -O0 and accepted with -O which is still inconsistent.
It's going to be difficult without an extension that allows constraint
checking on the intrinsic itself rather than just on the builtin that
eventually gets called.
So IMO a frontend <-> target interfacing issue. A target hook that gets
invoked for each built call would work. An attribute marking affected
functions might be more targeted and could also disallow address-taking
of intrinsics (so solve the issue of indirectly called intrinsics).