https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64660
Bug ID: 64660
Summary: [SH] Convert atomic_fetch_<op> to atomic_<op>_fetch
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: olegendo at gcc dot gnu.org
Target: sh*-*-*
Example:
void test2 (volatile int* mem)
{
__atomic_fetch_add (mem, 1, __ATOMIC_ACQ_REL);
}
void test3 (volatile int* mem)
{
__atomic_add_fetch (mem, 1, __ATOMIC_ACQ_REL);
}
The two functions are equivalent, since the result value of __atomic_fetch_add
is not used in test2. In such cases the atomic insn will have an REG_UNUSED
note and the insn can be converted into the shorter __atomic_add_fetch sequence
in the split1 pass.