Skip to content

Commit

Permalink
[compiler-rt] Make builtins test pass when using i386 gcc as host com…
Browse files Browse the repository at this point in the history
…piler

Just-built-clang is used to compile the test, but the library is built
with gcc, so the usual 80-bit FPU vs 32-bit SSE mismatch makes the
floating computations not bitwise identical. Fixes PR32910, see there
for details.

This uses the same technique used in all the other *c3* tests, see in
particular mulsc3_test.c.

(It might be cleaner to add compareResultCF to fp_test.h to force the
floats into 32-bit in memory, but this is the less invasive fix.)

Differential Revision: https://reviews.llvm.org/D61684

llvm-svn: 360264
  • Loading branch information
nico committed May 8, 2019
1 parent e3eec06 commit a3ff572
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion compiler-rt/test/builtins/Unit/divsc3_test.c
Expand Up @@ -102,7 +102,7 @@ int test__divsc3(float a, float b, float c, float d)
{
float _Complex z = (a * c + b * d) / (c * c + d * d)
+ (b * c - a * d) / (c * c + d * d) * _Complex_I;
if (r != z)
if (cabsf((r-z)/r) > 1.e-6)
return 1;
}
break;
Expand Down

0 comments on commit a3ff572

Please sign in to comment.