Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.target/arm/cmp-3.c @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
145:1830386684a0 | 152:2b5abeee2509 |
---|---|
1 /* { dg-do compile } */ | |
2 /* { dg-require-effective-target arm_fp_dp_ok } */ | |
3 /* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */ | |
4 /* { dg-options "-O" } */ | |
5 /* { dg-add-options arm_fp_dp } */ | |
6 /* { dg-final { scan-assembler-not "\tbl\t" } } */ | |
7 /* { dg-final { scan-assembler-not "__aeabi" } } */ | |
8 int x, y; | |
9 | |
10 #define EQ(X, Y) ((X) == (Y)) | |
11 #define NE(X, Y) ((X) != (Y)) | |
12 #define LT(X, Y) ((X) < (Y)) | |
13 #define GT(X, Y) ((X) > (Y)) | |
14 #define LE(X, Y) ((X) <= (Y)) | |
15 #define GE(X, Y) ((X) >= (Y)) | |
16 | |
17 #define TEST_EXPR(NAME, ARGS, EXPR) \ | |
18 int NAME##1 ARGS { return (EXPR); } \ | |
19 int NAME##2 ARGS { return !(EXPR); } \ | |
20 int NAME##3 ARGS { return (EXPR) ? x : y; } \ | |
21 void NAME##4 ARGS { if (EXPR) x++; } \ | |
22 void NAME##5 ARGS { if (!(EXPR)) x++; } | |
23 | |
24 #define TEST(NAME, TYPE, OPERATOR) \ | |
25 TEST_EXPR (NAME##_rr, (TYPE a1, TYPE a2), OPERATOR (a1, a2)) \ | |
26 TEST_EXPR (NAME##_rm, (TYPE a1, TYPE *a2), OPERATOR (a1, *a2)) \ | |
27 TEST_EXPR (NAME##_mr, (TYPE *a1, TYPE a2), OPERATOR (*a1, a2)) \ | |
28 TEST_EXPR (NAME##_mm, (TYPE *a1, TYPE *a2), OPERATOR (*a1, *a2)) \ | |
29 TEST_EXPR (NAME##_rc, (TYPE a1), OPERATOR (a1, 100)) \ | |
30 TEST_EXPR (NAME##_cr, (TYPE a1), OPERATOR (100, a1)) | |
31 | |
32 #define TEST_OP(NAME, OPERATOR) \ | |
33 TEST (d_##NAME, double, OPERATOR) \ | |
34 TEST (ld_##NAME, long double, OPERATOR) | |
35 | |
36 TEST_OP (eq, EQ) | |
37 TEST_OP (ne, NE) | |
38 TEST_OP (lt, LT) | |
39 TEST_OP (gt, GT) | |
40 TEST_OP (le, LE) | |
41 TEST_OP (ge, GE) | |
42 TEST_OP (blt, __builtin_isless) | |
43 TEST_OP (bgt, __builtin_isgreater) | |
44 TEST_OP (ble, __builtin_islessequal) | |
45 TEST_OP (bge, __builtin_isgreaterequal) | |
46 /* This one should be expanded into separate ordered and equality | |
47 comparisons. */ | |
48 TEST_OP (blg, __builtin_islessgreater) | |
49 TEST_OP (bun, __builtin_isunordered) |