Bug 183729 - [DFG] Compare operations do not respect negative zeros
Summary: [DFG] Compare operations do not respect negative zeros
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-03-18 09:23 PDT by Yusuke Suzuki
Modified: 2018-06-06 19:29 PDT (History)
7 users (show)

See Also:


Attachments
Patch (4.52 KB, patch)
2018-03-18 09:25 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (6.03 KB, patch)
2018-03-18 11:30 PDT, Yusuke Suzuki
saam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 2018-03-18 09:23:08 PDT
[DFG] Compare operations do not respect negative zeros
Comment 1 Yusuke Suzuki 2018-03-18 09:25:41 PDT
Created attachment 336024 [details]
Patch
Comment 2 EWS Watchlist 2018-03-18 10:42:36 PDT
Comment on attachment 336024 [details]
Patch

Attachment 336024 [details] did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/7016235

New failing tests:
stress/fold-based-on-int32-proof-mul.js.dfg-eager
stress/fold-based-on-int32-proof-mul-branch.js.ftl-eager-no-cjit
stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-no-put-stack-validate
stress/fold-based-on-int32-proof-mul-branch.js.no-cjit-validate-phases
stress/fold-based-on-int32-proof-mul-branch.js.no-cjit-collect-continuously
stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-no-put-stack-validate
stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-no-inline-validate
stress/fold-based-on-int32-proof-mul-branch.js.default
stress/fold-based-on-int32-proof-mul.js.ftl-eager-no-cjit-b3o1
stress/fold-based-on-int32-proof-mul.js.no-cjit-collect-continuously
stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-b3o1
stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-small-pool
stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-small-pool
stress/fold-based-on-int32-proof-mul-branch.js.no-llint
stress/fold-based-on-int32-proof-mul.js.ftl-eager
stress/fold-based-on-int32-proof-mul-branch.js.dfg-eager
stress/fold-based-on-int32-proof-mul-branch.js.ftl-eager
stress/fold-based-on-int32-proof-mul-branch.js.dfg-eager-no-cjit-validate
stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-b3o1
stress/fold-based-on-int32-proof-mul-branch.js.no-ftl
stress/fold-based-on-int32-proof-mul.js.no-cjit-validate-phases
stress/fold-based-on-int32-proof-mul-branch.js.ftl-eager-no-cjit-b3o1
stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-validate-sampling-profiler
stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-validate-sampling-profiler
stress/fold-based-on-int32-proof-mul.js.dfg-eager-no-cjit-validate
stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-no-inline-validate
stress/fold-based-on-int32-proof-mul.js.ftl-eager-no-cjit
Comment 3 Yusuke Suzuki 2018-03-18 10:59:43 PDT
(In reply to Build Bot from comment #2)
> Comment on attachment 336024 [details]
> Patch
> 
> Attachment 336024 [details] did not pass jsc-ews (mac):
> Output: http://webkit-queues.webkit.org/results/7016235
> 
> New failing tests:
> stress/fold-based-on-int32-proof-mul.js.dfg-eager
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-eager-no-cjit
> stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-no-put-stack-validate
> stress/fold-based-on-int32-proof-mul-branch.js.no-cjit-validate-phases
> stress/fold-based-on-int32-proof-mul-branch.js.no-cjit-collect-continuously
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-no-put-stack-
> validate
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-no-inline-validate
> stress/fold-based-on-int32-proof-mul-branch.js.default
> stress/fold-based-on-int32-proof-mul.js.ftl-eager-no-cjit-b3o1
> stress/fold-based-on-int32-proof-mul.js.no-cjit-collect-continuously
> stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-b3o1
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-small-pool
> stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-small-pool
> stress/fold-based-on-int32-proof-mul-branch.js.no-llint
> stress/fold-based-on-int32-proof-mul.js.ftl-eager
> stress/fold-based-on-int32-proof-mul-branch.js.dfg-eager
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-eager
> stress/fold-based-on-int32-proof-mul-branch.js.dfg-eager-no-cjit-validate
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-b3o1
> stress/fold-based-on-int32-proof-mul-branch.js.no-ftl
> stress/fold-based-on-int32-proof-mul.js.no-cjit-validate-phases
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-eager-no-cjit-b3o1
> stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-validate-sampling-
> profiler
> stress/fold-based-on-int32-proof-mul-branch.js.ftl-no-cjit-validate-sampling-
> profiler
> stress/fold-based-on-int32-proof-mul.js.dfg-eager-no-cjit-validate
> stress/fold-based-on-int32-proof-mul.js.ftl-no-cjit-no-inline-validate
> stress/fold-based-on-int32-proof-mul.js.ftl-eager-no-cjit

It shows the existing bug.
CompareEq(Int32Only, NonIntAsdouble) is converted to false. But NonIntAsdouble includes `-0`.
Comment 4 Yusuke Suzuki 2018-03-18 11:30:17 PDT
Created attachment 336026 [details]
Patch
Comment 5 Saam Barati 2018-06-06 14:38:54 PDT
Comment on attachment 336026 [details]
Patch

r=me
Comment 6 Yusuke Suzuki 2018-06-06 19:28:07 PDT
Committed r232567: <https://trac.webkit.org/changeset/232567>
Comment 7 Radar WebKit Bug Importer 2018-06-06 19:29:22 PDT
<rdar://problem/40878198>