https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124416
Bug ID: 124416
Summary: aarch64: Incorrect IPA of poly_int constants between
streaming and non-streaming code
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: acarlotti at gcc dot gnu.org
Target Milestone: ---
For example:
#include <arm_sme.h>
__arm_streaming
int callee1()
{
return svcntd();
}
int caller1()
{
return callee1() + svcntd();
}
currently optimizes caller1 to just cntw. This applies to many other
combinations of streaming, non-streaming, streaming compatible and locally
streaming functions. We could test all combinations of these, and check that
cntw is only used where this optimization is valid.