-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[compiler-rt] Disable tests for unavailable builtins #158664
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[compiler-rt] Disable tests for unavailable builtins #158664
Conversation
The builtins `__fixunstfdi` and `__multc3` may be removed by the preprocessor depending on configuration flags. When this happens, the corresponding tests fail at link time due to missing definitions. Disable these tests when the builtins are not available. rdar://159705803 rdar://159705705
Link to the failing builder: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that we can get away with a simpler:
#if defined(CRT_HAS_TF_MODE)
and
#if defined(CRT_HAS_128BIT) && defined(CRT_HAS_F128)
and entirely drop the architecture checks. That simplifies the conditions and still serves the need. It also avoids this type of issue cropping up elsewhere.
You can test this locally with the following command:git-clang-format --diff origin/main HEAD --extensions c -- compiler-rt/test/builtins/Unit/fixunstfdi_test.c compiler-rt/test/builtins/Unit/multc3_test.c
View the diff from clang-format here.diff --git a/compiler-rt/test/builtins/Unit/fixunstfdi_test.c b/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
index cfe1a87b0..75b72f92f 100644
--- a/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
@@ -6,7 +6,7 @@
#if defined(CRT_HAS_TF_MODE)
-#include "int_lib.h"
+# include "int_lib.h"
// Returns: convert a to a unsigned long long, rounding toward zero.
// Negative values all become zero.
@@ -36,77 +36,77 @@ char assumption_3[sizeof(long double)*CHAR_BIT == 128] = {0};
int main()
{
#if defined(CRT_HAS_TF_MODE)
- if (test__fixunstfdi(0.0, 0))
- return 1;
-
- if (test__fixunstfdi(0.5, 0))
- return 1;
- if (test__fixunstfdi(0.99, 0))
- return 1;
- if (test__fixunstfdi(1.0, 1))
- return 1;
- if (test__fixunstfdi(1.5, 1))
- return 1;
- if (test__fixunstfdi(1.99, 1))
- return 1;
- if (test__fixunstfdi(2.0, 2))
- return 1;
- if (test__fixunstfdi(2.01, 2))
- return 1;
- if (test__fixunstfdi(-0.5, 0))
- return 1;
- if (test__fixunstfdi(-0.99, 0))
- return 1;
- if (test__fixunstfdi(-1.0, 0))
- return 1;
- if (test__fixunstfdi(-1.5, 0))
- return 1;
- if (test__fixunstfdi(-1.99, 0))
- return 1;
- if (test__fixunstfdi(-2.0, 0))
- return 1;
- if (test__fixunstfdi(-2.01, 0))
- return 1;
-
- if (test__fixunstfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000LL))
- return 1;
- if (test__fixunstfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000LL))
- return 1;
-
- if (test__fixunstfdi(-0x1.FFFFFEp+62, 0))
- return 1;
- if (test__fixunstfdi(-0x1.FFFFFCp+62, 0))
- return 1;
-
- if (test__fixunstfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00LL))
- return 1;
- if (test__fixunstfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800LL))
- return 1;
-
- if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFp+62, 0))
- return 1;
- if (test__fixunstfdi(-0x1.FFFFFFFFFFFFEp+62, 0))
- return 1;
-
- if (test__fixunstfdi(0x1.FFFFFFFFFFFFFFFEp+63L, 0xFFFFFFFFFFFFFFFFLL))
- return 1;
- if (test__fixunstfdi(0x1.0000000000000002p+63L, 0x8000000000000001LL))
- return 1;
- if (test__fixunstfdi(0x1.0000000000000000p+63L, 0x8000000000000000LL))
- return 1;
- if (test__fixunstfdi(0x1.FFFFFFFFFFFFFFFCp+62L, 0x7FFFFFFFFFFFFFFFLL))
- return 1;
- if (test__fixunstfdi(0x1.FFFFFFFFFFFFFFF8p+62L, 0x7FFFFFFFFFFFFFFELL))
- return 1;
- if (test__fixunstfdi(0x1.p+64L, 0xFFFFFFFFFFFFFFFFLL))
- return 1;
-
- if (test__fixunstfdi(-0x1.0000000000000000p+63L, 0))
- return 1;
- if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFFFCp+62L, 0))
- return 1;
- if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFFF8p+62L, 0))
- return 1;
+ if (test__fixunstfdi(0.0, 0))
+ return 1;
+
+ if (test__fixunstfdi(0.5, 0))
+ return 1;
+ if (test__fixunstfdi(0.99, 0))
+ return 1;
+ if (test__fixunstfdi(1.0, 1))
+ return 1;
+ if (test__fixunstfdi(1.5, 1))
+ return 1;
+ if (test__fixunstfdi(1.99, 1))
+ return 1;
+ if (test__fixunstfdi(2.0, 2))
+ return 1;
+ if (test__fixunstfdi(2.01, 2))
+ return 1;
+ if (test__fixunstfdi(-0.5, 0))
+ return 1;
+ if (test__fixunstfdi(-0.99, 0))
+ return 1;
+ if (test__fixunstfdi(-1.0, 0))
+ return 1;
+ if (test__fixunstfdi(-1.5, 0))
+ return 1;
+ if (test__fixunstfdi(-1.99, 0))
+ return 1;
+ if (test__fixunstfdi(-2.0, 0))
+ return 1;
+ if (test__fixunstfdi(-2.01, 0))
+ return 1;
+
+ if (test__fixunstfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000LL))
+ return 1;
+ if (test__fixunstfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000LL))
+ return 1;
+
+ if (test__fixunstfdi(-0x1.FFFFFEp+62, 0))
+ return 1;
+ if (test__fixunstfdi(-0x1.FFFFFCp+62, 0))
+ return 1;
+
+ if (test__fixunstfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00LL))
+ return 1;
+ if (test__fixunstfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800LL))
+ return 1;
+
+ if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFp+62, 0))
+ return 1;
+ if (test__fixunstfdi(-0x1.FFFFFFFFFFFFEp+62, 0))
+ return 1;
+
+ if (test__fixunstfdi(0x1.FFFFFFFFFFFFFFFEp+63L, 0xFFFFFFFFFFFFFFFFLL))
+ return 1;
+ if (test__fixunstfdi(0x1.0000000000000002p+63L, 0x8000000000000001LL))
+ return 1;
+ if (test__fixunstfdi(0x1.0000000000000000p+63L, 0x8000000000000000LL))
+ return 1;
+ if (test__fixunstfdi(0x1.FFFFFFFFFFFFFFFCp+62L, 0x7FFFFFFFFFFFFFFFLL))
+ return 1;
+ if (test__fixunstfdi(0x1.FFFFFFFFFFFFFFF8p+62L, 0x7FFFFFFFFFFFFFFELL))
+ return 1;
+ if (test__fixunstfdi(0x1.p+64L, 0xFFFFFFFFFFFFFFFFLL))
+ return 1;
+
+ if (test__fixunstfdi(-0x1.0000000000000000p+63L, 0))
+ return 1;
+ if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFFFCp+62L, 0))
+ return 1;
+ if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFFF8p+62L, 0))
+ return 1;
#else
printf("skipped\n");
diff --git a/compiler-rt/test/builtins/Unit/multc3_test.c b/compiler-rt/test/builtins/Unit/multc3_test.c
index 7ae4cb5b7..dedd7fb67 100644
--- a/compiler-rt/test/builtins/Unit/multc3_test.c
+++ b/compiler-rt/test/builtins/Unit/multc3_test.c
@@ -6,9 +6,9 @@
#if defined(CRT_HAS_128BIT) && defined(CRT_HAS_F128)
-#include "int_lib.h"
-#include <math.h>
-#include <complex.h>
+# include "int_lib.h"
+# include <math.h>
+# include <complex.h>
// Returns: the product of a + ib and c + id
@@ -349,16 +349,14 @@ long double x[][2] =
int main()
{
#if defined(CRT_HAS_128BIT) && defined(CRT_HAS_F128)
- const unsigned N = sizeof(x) / sizeof(x[0]);
- unsigned i, j;
- for (i = 0; i < N; ++i)
- {
- for (j = 0; j < N; ++j)
- {
- if (test__multc3(x[i][0], x[i][1], x[j][0], x[j][1]))
- return 1;
- }
+ const unsigned N = sizeof(x) / sizeof(x[0]);
+ unsigned i, j;
+ for (i = 0; i < N; ++i) {
+ for (j = 0; j < N; ++j) {
+ if (test__multc3(x[i][0], x[i][1], x[j][0], x[j][1]))
+ return 1;
}
+ }
#else
printf("skipped\n");
#endif
|
ping |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with clang-format fixes.
The formatting fix makes it harder to see what changes this PR is making to the test files. Also, for some reason I'll revert it back to a642476 and apply the formatting changes later if they are needed. |
This reverts commit e9e166e, and the follow-up fix 6567070. These changes unlocked tests to run on architectures where they didn't run before, showing up as test failures like in https://lab.llvm.org/buildbot/#/builders/66/builds/19787.
FYI, for visibility here as well - as #160687 actually made these changes work as intended, it showed up as failed tests on x86_64, in https://lab.llvm.org/buildbot/#/builders/66/builds/19787 - so I reverted them both in f7e8350. |
The builtins `__fixunstfdi` and `__multc3` may be removed by the preprocessor depending on configuration flags. When this happens, the corresponding tests fail at link time due to missing definitions. Disable these tests when the builtins are not available. rdar://159705803 rdar://159705705
The builtins `__fixunstfdi` and `__multc3` may be removed by the preprocessor depending on configuration flags. When this happens, the corresponding tests fail at link time due to missing definitions. Disable these tests when the builtins are not available. rdar://159705803 rdar://159705705
…8664)" This reverts commit e9e166e, and the follow-up fix 6567070. These changes unlocked tests to run on architectures where they didn't run before, showing up as test failures like in https://lab.llvm.org/buildbot/#/builders/66/builds/19787.
The builtins
__fixunstfdi
and__multc3
may be removed by the preprocessor depending on configuration flags. When this happens, the corresponding tests fail at link time due to missing definitions.Disable these tests when the builtins are not available.
rdar://159705803
rdar://159705705