``````````````test.js````````````````` function opt(v) { return ((-1 >>> v) + -0.2) | 0 } for (let i = 0; i < 100; i++) { opt(0) } print(opt(32)) `````````````````````````````````````` This bug is in latest version JSC. Run args: ./jsc test.js --useConcurrentJIT=0 --jitPolicyScale=0 The corrent result is -2, but JSC prints -1.
Reproduces on Apple Silicon macOS, too.
<rdar://problem/110661900>
Pull request: https://github.com/WebKit/WebKit/pull/15311
Committed 265833@main (2f7262436c99): <https://commits.webkit.org/265833@main> Reviewed commits have been landed. Closing PR #15311 and removing active labels.
Re-opened since this is blocked by bug 259065
BTW, this also caused crashes on the kraken benchmark (on GTK/WPE 64-bits builds). For example when running it with the run-benchmark tool like: Tools/Scripts/run-benchmark --plan kraken [...] Crash log: http://sprunge.us/ZhSWj6
Pull request: https://github.com/WebKit/WebKit/pull/26024
Committed 276654@main (f5b95a221c2e): <https://commits.webkit.org/276654@main> Reviewed commits have been landed. Closing PR #26024 and removing active labels.
Re-opened since this is blocked by bug 271788
Pull request: https://github.com/WebKit/WebKit/pull/26913
Committed 277456@main (6c214dfbb5a1): <https://commits.webkit.org/277456@main> Reviewed commits have been landed. Closing PR #26913 and removing active labels.