/* Test the TME intrinsics. */ /* { dg-do compile } */ /* { dg-options "-save-temps -O2 -march=armv8-a+tme" } */ #include "arm_acle.h" #define tcancel_reason 0x234 unsigned check_tme (void) { unsigned status = __tstart (); if (status == 0) { if (__ttest () == 2) { __tcancel (tcancel_reason & _TMFAILURE_REASON); return tcancel_reason; } __tcommit (); return 0; } else if (status & _TMFAILURE_NEST) return _TMFAILURE_NEST; else if (status & _TMFAILURE_TRIVIAL) return _TMFAILURE_TRIVIAL; } /* { dg-final { scan-assembler "tstart\tx..?\n" } } */ /* { dg-final { scan-assembler "tcancel\t#564\n" } } */ /* { dg-final { scan-assembler "ttest\tx..?\n" } } */ /* { dg-final { scan-assembler "tcommit\n" } } */