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

Reply via email to