1 /* { dg-do run } */
2 /* { dg-options "-O2 --save-temps" } */
3
4 extern void abort (void);
5
6 /* It's unsafe to use CMN in these comparisons. */
7
8 void __attribute__ ((noinline))
9 foo_s32 (int a, int b)
10 {
11 if (a < -b)
12 abort ();
13 }
14
15 void __attribute__ ((noinline))
16 foo_s64 (unsigned long long a, unsigned long long b)
17 {
18 if (a > -b)
19 abort ();
20 }
21
22
23 int
24 main (void)
25 {
26 int a = 30;
27 int b = 42;
28 foo_s32 (a, b);
29 foo_s64 (a, b);
30 return 0;
31 }
32 /* { dg-final { scan-assembler-not "cmn\t" } } */
33