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.

Reply via email to