https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124420
Bug ID: 124420
Summary: IPA CP vs POLY_INT_CST when SME streaming is enabled
on one but not the other
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: aarch64-sme, aarch64-sve, wrong-code
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Depends on: 115556
Target Milestone: ---
Target: aarch64
```
#include <arm_sme.h>
#pragma GCC target "+sve+sme"
[[gnu::noinline]]
static int callee1(int a) __arm_streaming
{
return svcntd() + a;
}
int caller1()
{
return callee1(svcntd());
}
```
We should not create a clone here as the poly integer constant will be
different on both sides of the call.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115556
[Bug 115556] IPA CP vs POLY_INT_CST when target attributes differ