[compiler-rt] f157afc - [builtins] Fix __floattitf and __floatuntitf on x86
Alex Richardson via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 27 09:22:47 PDT 2023
Author: Alex Richardson
Date: 2023-06-27T09:22:25-07:00
New Revision: f157afceb0bd6910c31fcfff1321a9b93c3a2b70
URL: https://github.com/llvm/llvm-project/commit/f157afceb0bd6910c31fcfff1321a9b93c3a2b70
DIFF: https://github.com/llvm/llvm-project/commit/f157afceb0bd6910c31fcfff1321a9b93c3a2b70.diff
LOG: [builtins] Fix __floattitf and __floatuntitf on x86
These conversion functions were using LDBL_MANT_DIG (which is the 80-bit
extended float on x86) instead of the appropriate macro for the 128-bit
floating point type expected by the *tf* softfloat library calls.
This was discovered while testing D98261 (which allows building the *tf*
functions on x86).
This also changes the constants used in the two tests to use 128-bit
floating-point literals instead of long double ones to ensure that the
comparison succeeds on platforms with smaller long double (e.g. x86_64)
Reviewed By: scanon
Differential Revision: https://reviews.llvm.org/D131787
Added:
Modified:
compiler-rt/lib/builtins/floattitf.c
compiler-rt/lib/builtins/floatuntitf.c
compiler-rt/lib/builtins/fp_lib.h
compiler-rt/test/builtins/Unit/floattitf_test.c
compiler-rt/test/builtins/Unit/floatuntitf_test.c
Removed:
################################################################################
diff --git a/compiler-rt/lib/builtins/floattitf.c b/compiler-rt/lib/builtins/floattitf.c
index 196cbdae14e02..8e27373459339 100644
--- a/compiler-rt/lib/builtins/floattitf.c
+++ b/compiler-rt/lib/builtins/floattitf.c
@@ -34,7 +34,7 @@ COMPILER_RT_ABI fp_t __floattitf(ti_int a) {
a = (a ^ s) - s;
int sd = N - __clzti2(a); // number of significant digits
int e = sd - 1; // exponent
- if (sd > LDBL_MANT_DIG) {
+ if (sd > TF_MANT_DIG) {
// start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
// finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
// 12345678901234567890123456
@@ -43,27 +43,27 @@ COMPILER_RT_ABI fp_t __floattitf(ti_int a) {
// Q = bit LDBL_MANT_DIG bits to the right of 1
// R = "or" of all bits to the right of Q
switch (sd) {
- case LDBL_MANT_DIG + 1:
+ case TF_MANT_DIG + 1:
a <<= 1;
break;
- case LDBL_MANT_DIG + 2:
+ case TF_MANT_DIG + 2:
break;
default:
- a = ((tu_int)a >> (sd - (LDBL_MANT_DIG + 2))) |
- ((a & ((tu_int)(-1) >> ((N + LDBL_MANT_DIG + 2) - sd))) != 0);
+ a = ((tu_int)a >> (sd - (TF_MANT_DIG + 2))) |
+ ((a & ((tu_int)(-1) >> ((N + TF_MANT_DIG + 2) - sd))) != 0);
};
// finish:
a |= (a & 4) != 0; // Or P into R
++a; // round - this step may add a significant bit
a >>= 2; // dump Q and R
// a is now rounded to LDBL_MANT_DIG or LDBL_MANT_DIG+1 bits
- if (a & ((tu_int)1 << LDBL_MANT_DIG)) {
+ if (a & ((tu_int)1 << TF_MANT_DIG)) {
a >>= 1;
++e;
}
// a is now rounded to LDBL_MANT_DIG bits
} else {
- a <<= (LDBL_MANT_DIG - sd);
+ a <<= (TF_MANT_DIG - sd);
// a is now rounded to LDBL_MANT_DIG bits
}
diff --git a/compiler-rt/lib/builtins/floatuntitf.c b/compiler-rt/lib/builtins/floatuntitf.c
index d308d3118d03d..a8b3b4835bbca 100644
--- a/compiler-rt/lib/builtins/floatuntitf.c
+++ b/compiler-rt/lib/builtins/floatuntitf.c
@@ -32,37 +32,37 @@ COMPILER_RT_ABI fp_t __floatuntitf(tu_int a) {
const unsigned N = sizeof(tu_int) * CHAR_BIT;
int sd = N - __clzti2(a); // number of significant digits
int e = sd - 1; // exponent
- if (sd > LDBL_MANT_DIG) {
+ if (sd > TF_MANT_DIG) {
// start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
// finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
// 12345678901234567890123456
// 1 = msb 1 bit
- // P = bit LDBL_MANT_DIG-1 bits to the right of 1
- // Q = bit LDBL_MANT_DIG bits to the right of 1
+ // P = bit TF_MANT_DIG-1 bits to the right of 1
+ // Q = bit TF_MANT_DIG bits to the right of 1
// R = "or" of all bits to the right of Q
switch (sd) {
- case LDBL_MANT_DIG + 1:
+ case TF_MANT_DIG + 1:
a <<= 1;
break;
- case LDBL_MANT_DIG + 2:
+ case TF_MANT_DIG + 2:
break;
default:
- a = (a >> (sd - (LDBL_MANT_DIG + 2))) |
- ((a & ((tu_int)(-1) >> ((N + LDBL_MANT_DIG + 2) - sd))) != 0);
+ a = (a >> (sd - (TF_MANT_DIG + 2))) |
+ ((a & ((tu_int)(-1) >> ((N + TF_MANT_DIG + 2) - sd))) != 0);
};
// finish:
a |= (a & 4) != 0; // Or P into R
++a; // round - this step may add a significant bit
a >>= 2; // dump Q and R
- // a is now rounded to LDBL_MANT_DIG or LDBL_MANT_DIG+1 bits
- if (a & ((tu_int)1 << LDBL_MANT_DIG)) {
+ // a is now rounded to TF_MANT_DIG or TF_MANT_DIG+1 bits
+ if (a & ((tu_int)1 << TF_MANT_DIG)) {
a >>= 1;
++e;
}
- // a is now rounded to LDBL_MANT_DIG bits
+ // a is now rounded to TF_MANT_DIG bits
} else {
- a <<= (LDBL_MANT_DIG - sd);
- // a is now rounded to LDBL_MANT_DIG bits
+ a <<= (TF_MANT_DIG - sd);
+ // a is now rounded to TF_MANT_DIG bits
}
long_double_bits fb;
diff --git a/compiler-rt/lib/builtins/fp_lib.h b/compiler-rt/lib/builtins/fp_lib.h
index 3fb13a033a14c..e0186c5681a3f 100644
--- a/compiler-rt/lib/builtins/fp_lib.h
+++ b/compiler-rt/lib/builtins/fp_lib.h
@@ -116,6 +116,7 @@ typedef long double fp_t;
// Note: Since there is no explicit way to tell compiler the constant is a
// 128-bit integer, we let the constant be casted to 128-bit integer
#define significandBits 112
+#define TF_MANT_DIG (significandBits + 1)
static __inline int rep_clz(rep_t a) {
const union {
diff --git a/compiler-rt/test/builtins/Unit/floattitf_test.c b/compiler-rt/test/builtins/Unit/floattitf_test.c
index 9a4f2eecd6526..36b409f46c5b5 100644
--- a/compiler-rt/test/builtins/Unit/floattitf_test.c
+++ b/compiler-rt/test/builtins/Unit/floattitf_test.c
@@ -76,7 +76,7 @@ int main() {
if (test__floattitf(make_ti(0x8000000000000000LL, 0), -0x1.000000p+127))
return 1;
- if (test__floattitf(make_ti(0x8000000000000001LL, 0), -0x1.FFFFFFFFFFFFFFFCp+126L))
+ if (test__floattitf(make_ti(0x8000000000000001LL, 0), -0x1.FFFFFFFFFFFFFFFCp+126Q))
return 1;
if (test__floattitf(0x0007FB72E8000000LL, 0x1.FEDCBAp+50))
@@ -106,95 +106,95 @@ int main() {
if (test__floattitf(0x023479FD0E092DC0LL, 0x1.1A3CFE870496Ep+57))
return 1;
- if (test__floattitf(0x023479FD0E092DA1LL, 0x1.1A3CFE870496D08p+57L))
+ if (test__floattitf(0x023479FD0E092DA1LL, 0x1.1A3CFE870496D08p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DB0LL, 0x1.1A3CFE870496D8p+57L))
+ if (test__floattitf(0x023479FD0E092DB0LL, 0x1.1A3CFE870496D8p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DB8LL, 0x1.1A3CFE870496DCp+57L))
+ if (test__floattitf(0x023479FD0E092DB8LL, 0x1.1A3CFE870496DCp+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DB6LL, 0x1.1A3CFE870496DBp+57L))
+ if (test__floattitf(0x023479FD0E092DB6LL, 0x1.1A3CFE870496DBp+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DBFLL, 0x1.1A3CFE870496DF8p+57L))
+ if (test__floattitf(0x023479FD0E092DBFLL, 0x1.1A3CFE870496DF8p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DC1LL, 0x1.1A3CFE870496E08p+57L))
+ if (test__floattitf(0x023479FD0E092DC1LL, 0x1.1A3CFE870496E08p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DC7LL, 0x1.1A3CFE870496E38p+57L))
+ if (test__floattitf(0x023479FD0E092DC7LL, 0x1.1A3CFE870496E38p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DC8LL, 0x1.1A3CFE870496E4p+57L))
+ if (test__floattitf(0x023479FD0E092DC8LL, 0x1.1A3CFE870496E4p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DCFLL, 0x1.1A3CFE870496E78p+57L))
+ if (test__floattitf(0x023479FD0E092DCFLL, 0x1.1A3CFE870496E78p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DD0LL, 0x1.1A3CFE870496E8p+57L))
+ if (test__floattitf(0x023479FD0E092DD0LL, 0x1.1A3CFE870496E8p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DD1LL, 0x1.1A3CFE870496E88p+57L))
+ if (test__floattitf(0x023479FD0E092DD1LL, 0x1.1A3CFE870496E88p+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DD8LL, 0x1.1A3CFE870496ECp+57L))
+ if (test__floattitf(0x023479FD0E092DD8LL, 0x1.1A3CFE870496ECp+57Q))
return 1;
- if (test__floattitf(0x023479FD0E092DDFLL, 0x1.1A3CFE870496EF8p+57L))
+ if (test__floattitf(0x023479FD0E092DDFLL, 0x1.1A3CFE870496EF8p+57Q))
return 1;
if (test__floattitf(0x023479FD0E092DE0LL, 0x1.1A3CFE870496Fp+57))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DC0LL, 0), 0x1.1A3CFE870496Ep+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DC0LL, 0), 0x1.1A3CFE870496Ep+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DA1LL, 1), 0x1.1A3CFE870496D08p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DA1LL, 1), 0x1.1A3CFE870496D08p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DB0LL, 2), 0x1.1A3CFE870496D8p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DB0LL, 2), 0x1.1A3CFE870496D8p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DB8LL, 3), 0x1.1A3CFE870496DCp+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DB8LL, 3), 0x1.1A3CFE870496DCp+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DB6LL, 4), 0x1.1A3CFE870496DBp+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DB6LL, 4), 0x1.1A3CFE870496DBp+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DBFLL, 5), 0x1.1A3CFE870496DF8p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DBFLL, 5), 0x1.1A3CFE870496DF8p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DC1LL, 6), 0x1.1A3CFE870496E08p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DC1LL, 6), 0x1.1A3CFE870496E08p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DC7LL, 7), 0x1.1A3CFE870496E38p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DC7LL, 7), 0x1.1A3CFE870496E38p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DC8LL, 8), 0x1.1A3CFE870496E4p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DC8LL, 8), 0x1.1A3CFE870496E4p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DCFLL, 9), 0x1.1A3CFE870496E78p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DCFLL, 9), 0x1.1A3CFE870496E78p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DD0LL, 0), 0x1.1A3CFE870496E8p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DD0LL, 0), 0x1.1A3CFE870496E8p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DD1LL, 11), 0x1.1A3CFE870496E88p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DD1LL, 11), 0x1.1A3CFE870496E88p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DD8LL, 12), 0x1.1A3CFE870496ECp+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DD8LL, 12), 0x1.1A3CFE870496ECp+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DDFLL, 13), 0x1.1A3CFE870496EF8p+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DDFLL, 13), 0x1.1A3CFE870496EF8p+121Q))
return 1;
- if (test__floattitf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121L))
+ if (test__floattitf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121Q))
return 1;
- if (test__floattitf(make_ti(0, 0xFFFFFFFFFFFFFFFFLL), 0x1.FFFFFFFFFFFFFFFEp+63L))
+ if (test__floattitf(make_ti(0, 0xFFFFFFFFFFFFFFFFLL), 0x1.FFFFFFFFFFFFFFFEp+63Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC2801LL),
- 0x1.23456789ABCDEF0123456789ABC3p+124L))
+ 0x1.23456789ABCDEF0123456789ABC3p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC3000LL),
- 0x1.23456789ABCDEF0123456789ABC3p+124L))
+ 0x1.23456789ABCDEF0123456789ABC3p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC37FFLL),
- 0x1.23456789ABCDEF0123456789ABC3p+124L))
+ 0x1.23456789ABCDEF0123456789ABC3p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC3800LL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC4000LL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC47FFLL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC4800LL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC4801LL),
- 0x1.23456789ABCDEF0123456789ABC5p+124L))
+ 0x1.23456789ABCDEF0123456789ABC5p+124Q))
return 1;
if (test__floattitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC57FFLL),
- 0x1.23456789ABCDEF0123456789ABC5p+124L))
+ 0x1.23456789ABCDEF0123456789ABC5p+124Q))
return 1;
#else
printf("skipped\n");
diff --git a/compiler-rt/test/builtins/Unit/floatuntitf_test.c b/compiler-rt/test/builtins/Unit/floatuntitf_test.c
index fbbcb2ccfbbdd..12f74580b462d 100644
--- a/compiler-rt/test/builtins/Unit/floatuntitf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatuntitf_test.c
@@ -76,7 +76,7 @@ int main() {
if (test__floatuntitf(0x8000000000000000ULL, 0x8p+60))
return 1;
- if (test__floatuntitf(0x8000000000000001ULL, 0x8.000000000000001p+60L))
+ if (test__floatuntitf(0x8000000000000001ULL, 0x8.000000000000001p+60Q))
return 1;
if (test__floatuntitf(0x0007FB72E8000000LL, 0x1.FEDCBAp+50))
@@ -106,102 +106,102 @@ int main() {
if (test__floatuntitf(0x023479FD0E092DC0LL, 0x1.1A3CFE870496Ep+57))
return 1;
- if (test__floatuntitf(0x023479FD0E092DA1LL, 0x1.1A3CFE870496D08p+57L))
+ if (test__floatuntitf(0x023479FD0E092DA1LL, 0x1.1A3CFE870496D08p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DB0LL, 0x1.1A3CFE870496D8p+57L))
+ if (test__floatuntitf(0x023479FD0E092DB0LL, 0x1.1A3CFE870496D8p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DB8LL, 0x1.1A3CFE870496DCp+57L))
+ if (test__floatuntitf(0x023479FD0E092DB8LL, 0x1.1A3CFE870496DCp+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DB6LL, 0x1.1A3CFE870496DBp+57L))
+ if (test__floatuntitf(0x023479FD0E092DB6LL, 0x1.1A3CFE870496DBp+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DBFLL, 0x1.1A3CFE870496DF8p+57L))
+ if (test__floatuntitf(0x023479FD0E092DBFLL, 0x1.1A3CFE870496DF8p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DC1LL, 0x1.1A3CFE870496E08p+57L))
+ if (test__floatuntitf(0x023479FD0E092DC1LL, 0x1.1A3CFE870496E08p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DC7LL, 0x1.1A3CFE870496E38p+57L))
+ if (test__floatuntitf(0x023479FD0E092DC7LL, 0x1.1A3CFE870496E38p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DC8LL, 0x1.1A3CFE870496E4p+57L))
+ if (test__floatuntitf(0x023479FD0E092DC8LL, 0x1.1A3CFE870496E4p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DCFLL, 0x1.1A3CFE870496E78p+57L))
+ if (test__floatuntitf(0x023479FD0E092DCFLL, 0x1.1A3CFE870496E78p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DD0LL, 0x1.1A3CFE870496E8p+57L))
+ if (test__floatuntitf(0x023479FD0E092DD0LL, 0x1.1A3CFE870496E8p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DD1LL, 0x1.1A3CFE870496E88p+57L))
+ if (test__floatuntitf(0x023479FD0E092DD1LL, 0x1.1A3CFE870496E88p+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DD8LL, 0x1.1A3CFE870496ECp+57L))
+ if (test__floatuntitf(0x023479FD0E092DD8LL, 0x1.1A3CFE870496ECp+57Q))
return 1;
- if (test__floatuntitf(0x023479FD0E092DDFLL, 0x1.1A3CFE870496EF8p+57L))
+ if (test__floatuntitf(0x023479FD0E092DDFLL, 0x1.1A3CFE870496EF8p+57Q))
return 1;
if (test__floatuntitf(0x023479FD0E092DE0LL, 0x1.1A3CFE870496Fp+57))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DC0LL, 0), 0x1.1A3CFE870496Ep+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DC0LL, 0), 0x1.1A3CFE870496Ep+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DA1LL, 1), 0x1.1A3CFE870496D08p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DA1LL, 1), 0x1.1A3CFE870496D08p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DB0LL, 2), 0x1.1A3CFE870496D8p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DB0LL, 2), 0x1.1A3CFE870496D8p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DB8LL, 3), 0x1.1A3CFE870496DCp+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DB8LL, 3), 0x1.1A3CFE870496DCp+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DB6LL, 4), 0x1.1A3CFE870496DBp+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DB6LL, 4), 0x1.1A3CFE870496DBp+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DBFLL, 5), 0x1.1A3CFE870496DF8p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DBFLL, 5), 0x1.1A3CFE870496DF8p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DC1LL, 6), 0x1.1A3CFE870496E08p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DC1LL, 6), 0x1.1A3CFE870496E08p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DC7LL, 7), 0x1.1A3CFE870496E38p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DC7LL, 7), 0x1.1A3CFE870496E38p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DC8LL, 8), 0x1.1A3CFE870496E4p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DC8LL, 8), 0x1.1A3CFE870496E4p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DCFLL, 9), 0x1.1A3CFE870496E78p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DCFLL, 9), 0x1.1A3CFE870496E78p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DD0LL, 0), 0x1.1A3CFE870496E8p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DD0LL, 0), 0x1.1A3CFE870496E8p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DD1LL, 11), 0x1.1A3CFE870496E88p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DD1LL, 11), 0x1.1A3CFE870496E88p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DD8LL, 12), 0x1.1A3CFE870496ECp+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DD8LL, 12), 0x1.1A3CFE870496ECp+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DDFLL, 13), 0x1.1A3CFE870496EF8p+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DDFLL, 13), 0x1.1A3CFE870496EF8p+121Q))
return 1;
- if (test__floatuntitf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121L))
+ if (test__floatuntitf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121Q))
return 1;
- if (test__floatuntitf(make_ti(0, 0xFFFFFFFFFFFFFFFFLL), 0x1.FFFFFFFFFFFFFFFEp+63L))
+ if (test__floatuntitf(make_ti(0, 0xFFFFFFFFFFFFFFFFLL), 0x1.FFFFFFFFFFFFFFFEp+63Q))
return 1;
if (test__floatuntitf(make_ti(0xFFFFFFFFFFFFFFFFLL, 0x0000000000000000LL),
- 0x1.FFFFFFFFFFFFFFFEp+127L))
+ 0x1.FFFFFFFFFFFFFFFEp+127Q))
return 1;
if (test__floatuntitf(make_ti(0xFFFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL),
- 0x1.0000000000000000p+128L))
+ 0x1.0000000000000000p+128Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC2801LL),
- 0x1.23456789ABCDEF0123456789ABC3p+124L))
+ 0x1.23456789ABCDEF0123456789ABC3p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC3000LL),
- 0x1.23456789ABCDEF0123456789ABC3p+124L))
+ 0x1.23456789ABCDEF0123456789ABC3p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC37FFLL),
- 0x1.23456789ABCDEF0123456789ABC3p+124L))
+ 0x1.23456789ABCDEF0123456789ABC3p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC3800LL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC4000LL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC47FFLL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC4800LL),
- 0x1.23456789ABCDEF0123456789ABC4p+124L))
+ 0x1.23456789ABCDEF0123456789ABC4p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC4801LL),
- 0x1.23456789ABCDEF0123456789ABC5p+124L))
+ 0x1.23456789ABCDEF0123456789ABC5p+124Q))
return 1;
if (test__floatuntitf(make_ti(0x123456789ABCDEF0LL, 0x123456789ABC57FFLL),
- 0x1.23456789ABCDEF0123456789ABC5p+124L))
+ 0x1.23456789ABCDEF0123456789ABC5p+124Q))
return 1;
#else
printf("skipped\n");
More information about the llvm-commits
mailing list