NEW149408
[JSC] access/nbody and math/partial-sums fails on x86 Linux without JIT
https://bugs.webkit.org/show_bug.cgi?id=149408
Summary [JSC] access/nbody and math/partial-sums fails on x86 Linux without JIT
Csaba Osztrogonác
Reported 2015-09-21 09:34:19 PDT
$ JSC_useJIT=0 Tools/Scripts/run-sunspider --efl ... { "3d-cube": 52, "3d-morph": 49, "3d-raytrace": 59, "access-binary-trees": 14, "access-fannkuch": 155, "access-nbody": NaN, "access-nsieve": 26, "bitops-3bit-bits-in-byte": 20, "bitops-bits-in-byte": 28, "bitops-bitwise-and": 22, "bitops-nsieve-bits": 72, "controlflow-recursive": 17, "crypto-aes": 67, "crypto-md5": 20, "crypto-sha1": 19, "date-format-tofte": 40, "date-format-xparb": 30, "math-cordic": 55, "math-partial-sums": NaN, "math-spectral-norm": 22, "regexp-dna": 12, "string-base64": 31, "string-fasta": 44, "string-tagcloud": 37, "string-unpack-code": 44, "string-validate-input": 22 } ... ============================================ RESULTS (means and 95% confidence intervals) -------------------------------------------- Total: ERROR: Some tests failed. -------------------------------------------- 3d: 166.3ms +/- 4.4% cube: 55.9ms +/- 5.2% morph: 49.4ms +/- 4.1% raytrace: 61.0ms +/- 4.4% access: ERROR: Some tests failed. binary-trees: 13.8ms +/- 4.8% fannkuch: 159.3ms +/- 4.6% nbody: ERROR: Invalid test run. nsieve: 26.7ms +/- 3.4% bitops: 146.1ms +/- 5.8% 3bit-bits-in-byte: 20.0ms +/- 6.7% bits-in-byte: 29.1ms +/- 4.7% bitwise-and: 23.5ms +/- 16.2% nsieve-bits: 73.5ms +/- 3.9% controlflow: 17.3ms +/- 3.9% recursive: 17.3ms +/- 3.9% crypto: 110.8ms +/- 3.7% aes: 69.6ms +/- 3.7% md5: 21.0ms +/- 3.9% sha1: 20.2ms +/- 3.7% date: 71.1ms +/- 2.5% format-tofte: 40.9ms +/- 3.0% format-xparb: 30.2ms +/- 2.7% math: ERROR: Some tests failed. cordic: 54.9ms +/- 3.5% partial-sums: ERROR: Invalid test run. spectral-norm: 21.8ms +/- 3.4% regexp: 12.4ms +/- 4.0% dna: 12.4ms +/- 4.0% string: 179.9ms +/- 2.8% base64: 31.0ms +/- 2.9% fasta: 44.5ms +/- 3.1% tagcloud: 37.6ms +/- 2.6% unpack-code: 44.8ms +/- 3.1% validate-input: 22.0ms +/- 2.7% ---- running these tests with run-jsc-stress-tests (after making it to run them with disabled JIT): sunspider-1.0/access-nbody.js.no-jit: Exception: ERROR: bad result: expected -1.3524862408537381 but got -1.352486240853738 sunspider-1.0/access-nbody.js.no-jit: ERROR: Unexpected exit code: 3 sunspider-1.0/math-partial-sums.js.no-jit: Exception: ERROR: bad result: expected 60.08994194659945 but got 60.089941946599446 sunspider-1.0/math-partial-sums.js.no-jit: ERROR: Unexpected exit code: 3 Only the least significant digit is different, so it must be some rounding problem.
Attachments
Csaba Osztrogonác
Comment 1 2015-09-21 09:43:21 PDT
After a little bit investigation, I found the root of the bug. The rounding error is caused by X87 instructions in LLINT. If I disable X87, LLINT uses SSE2 and there are no rounding problem.
Note You need to log in before you can comment on or make changes to this bug.