1 // RUN: %clang_builtins %s %librt -o %t && %run %t
2 // REQUIRES: librt_has_comparetf2
6 #if __LP64__ && __LDBL_MANT_DIG__ == 113
10 int __getf2(long double a
, long double b
);
12 int test__getf2(long double a
, long double b
, enum EXPECTED_RESULT expected
)
14 int x
= __getf2(a
, b
);
15 int ret
= compareResultCMP(x
, expected
);
18 printf("error in test__getf2(%.20Lf, %.20Lf) = %d, "
19 "expected %s\n", a
, b
, x
, expectedStr(expected
));
24 char assumption_1
[sizeof(long double) * CHAR_BIT
== 128] = {0};
30 #if __LP64__ && __LDBL_MANT_DIG__ == 113
32 if (test__getf2(makeQNaN128(),
33 0x1.234567890abcdef1234567890abcp
+3L,
38 if (test__getf2(0x1.234567890abcdef1234567890abcp
-3L,
39 0x1.234567890abcdef1234567890abcp
+3L,
43 if (test__getf2(0x1.234567890abcdef1234567890abcp
+3L,
44 0x1.334567890abcdef1234567890abcp
+3L,
48 if (test__getf2(-0x1.234567890abcdef1234567890abcp
+3L,
49 0x1.234567890abcdef1234567890abcp
+3L,
53 if (test__getf2(0x1.234567890abcdef1234567890abcp
+3L,
54 0x1.234567890abcdef1234567890abcp
+3L,
59 if (test__getf2(0x1.234567890abcdef1234567890abcp
+3L,
60 0x1.234567890abcdef1234567890abcp
-3L,
64 if (test__getf2(0x1.334567890abcdef1234567890abcp
+3L,
65 0x1.234567890abcdef1234567890abcp
+3L,
69 if (test__getf2(0x1.234567890abcdef1234567890abcp
+3L,
70 -0x1.234567890abcdef1234567890abcp
+3L,