blob: c8a7444b6c334c2a2d4e02f8a53de41307655015 [file] [log] [blame]
/* { dg-options "-O2 -std=c11" } */
/* { dg-require-effective-target lp64 } */
/* This tests if the instructions used for C atomic are optimised properly
as atomic by the target code, too. */
#include <stdatomic.h>
int load(_Atomic int *ptr)
{
return atomic_load_explicit(ptr, memory_order_relaxed);
}
/* There should be only two machine instructions, an lwa and a blr: */
/* { dg-final { scan-assembler-times {(?n)^\s+[a-z]} 2 } } */
/* { dg-final { scan-assembler-times {\mlwa\M} 1 } } */