/* { dg-do run } */ /* { dg-options "-O2 --save-temps" } */ extern void abort (void); /* It's unsafe to use CMN in these comparisons. */ void __attribute__ ((noinline)) foo_s32 (int a, int b) { if (a < -b) abort (); } void __attribute__ ((noinline)) foo_s64 (unsigned long long a, unsigned long long b) { if (a > -b) abort (); } int main (void) { int a = 30; int b = 42; foo_s32 (a, b); foo_s64 (a, b); return 0; } /* { dg-final { scan-assembler-not "cmn\t" } } */ /* { dg-final { cleanup-saved-temps } } */