forked from OSchip/llvm-project
[VE] Disable incompatible compiler-rt tests
Some compiler-rt tests are inherently incompatible with VE because.. * No consistent denormal support on VE. We skip denormal fp inputs in builtin tests. * `madvise` unsupported on VE. * Instruction alignment requirements. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D113093
This commit is contained in:
parent
f5f11e6b16
commit
496e7f330c
|
@ -353,6 +353,10 @@ COMPILER_RT_VISIBILITY void lprofRestoreSigKill() {
|
|||
|
||||
COMPILER_RT_VISIBILITY int lprofReleaseMemoryPagesToOS(uintptr_t Begin,
|
||||
uintptr_t End) {
|
||||
#if defined(__ve__)
|
||||
// VE doesn't support madvise.
|
||||
return 0;
|
||||
#else
|
||||
size_t PageSize = getpagesize();
|
||||
uintptr_t BeginAligned = lprofRoundUpTo((uintptr_t)Begin, PageSize);
|
||||
uintptr_t EndAligned = lprofRoundDownTo((uintptr_t)End, PageSize);
|
||||
|
@ -367,4 +371,5 @@ COMPILER_RT_VISIBILITY int lprofReleaseMemoryPagesToOS(uintptr_t Begin,
|
|||
#endif
|
||||
}
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
#include "fp_lib.h"
|
||||
|
||||
int test__compiler_rt_logb(fp_t x) {
|
||||
#if defined(__ve__)
|
||||
if (fpclassify(x) == FP_SUBNORMAL)
|
||||
return 0;
|
||||
#endif
|
||||
fp_t crt_value = __compiler_rt_logb(x);
|
||||
fp_t libm_value = logb(x);
|
||||
// Compare the values, considering all NaNs equivalent, as the spec doesn't
|
||||
|
|
|
@ -7,6 +7,10 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int test__compiler_rt_logbf(fp_t x) {
|
||||
#if defined(__ve__)
|
||||
if (fpclassify(x) == FP_SUBNORMAL)
|
||||
return 0;
|
||||
#endif
|
||||
fp_t crt_value = __compiler_rt_logbf(x);
|
||||
fp_t libm_value = logbf(x);
|
||||
// `!=` operator on fp_t returns false for NaNs so also check if operands are
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#if defined(CRT_HAS_128BIT) && defined(CRT_LDBL_128BIT)
|
||||
|
||||
int test__compiler_rt_logbl(fp_t x) {
|
||||
#if defined(__ve__)
|
||||
if (fpclassify(x) == FP_SUBNORMAL)
|
||||
return 0;
|
||||
#endif
|
||||
fp_t crt_value = __compiler_rt_logbl(x);
|
||||
fp_t libm_value = logbl(x);
|
||||
// Compare the values, considering all NaNs equivalent, as the spec doesn't
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#include "fp_lib.h"
|
||||
|
||||
int test__compiler_rt_scalbn(const char *mode, fp_t x, int y) {
|
||||
#if defined(__ve__)
|
||||
if (fpclassify(x) == FP_SUBNORMAL)
|
||||
return 0;
|
||||
#endif
|
||||
fp_t crt_value = __compiler_rt_scalbn(x, y);
|
||||
fp_t libm_value = scalbn(x, y);
|
||||
// Consider +/-0 unequal, but disregard the sign/payload of NaN.
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#include "fp_lib.h"
|
||||
|
||||
int test__compiler_rt_scalbnf(const char *mode, fp_t x, int y) {
|
||||
#if defined(__ve__)
|
||||
if (fpclassify(x) == FP_SUBNORMAL)
|
||||
return 0;
|
||||
#endif
|
||||
fp_t crt_value = __compiler_rt_scalbnf(x, y);
|
||||
fp_t libm_value = scalbnf(x, y);
|
||||
// Consider +/-0 unequal, but disregard the sign/payload of NaN.
|
||||
|
|
|
@ -11,6 +11,10 @@
|
|||
#if defined(CRT_HAS_128BIT) && defined(CRT_LDBL_128BIT)
|
||||
|
||||
int test__compiler_rt_scalbnl(const char *mode, fp_t x, int y) {
|
||||
#if defined(__ve__)
|
||||
if (fpclassify(x) == FP_SUBNORMAL)
|
||||
return 0;
|
||||
#endif
|
||||
fp_t crt_value = __compiler_rt_scalbnl(x, y);
|
||||
fp_t libm_value = scalbnl(x, y);
|
||||
// Consider +/-0 unequal, but disregard the sign/payload of NaN.
|
||||
|
|
|
@ -29,7 +29,11 @@ memcpy_f(void *dst, const void *src, size_t n) {
|
|||
|
||||
int main()
|
||||
{
|
||||
#if defined(__ve__)
|
||||
unsigned char execution_buffer[128] __attribute__((__aligned__(8)));
|
||||
#else
|
||||
unsigned char execution_buffer[128];
|
||||
#endif
|
||||
// mark stack page containing execution_buffer to be executable
|
||||
__enable_execute_stack(execution_buffer);
|
||||
|
||||
|
|
Loading…
Reference in New Issue