/* { 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" } } */ | |