Closed Bug 704079 Opened 13 years ago Closed 13 years ago

cmpOptimization is wrong

Categories

(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect, P2)

defect

Tracking

(Not tracked)

VERIFIED FIXED
Q2 12 - Cyril

People

(Reporter: lhansen, Assigned: wmaddox)

References

Details

Attachments

(1 obsolete file)

Consider:

> function f() { var x: float4 = 0, y: Date = null; print(x == y); }
> f()
true

The semantics were clarified after the Waltham meeting to make sure that float4 comparisons do not absorb null/undefined.  In this case the old semantics call for converting null to 0 to float4(0,0,0,0), but that's wrong now.
Also botches strict equality, which should respect different types even more strongly:

> function h() { var x: float4 = 0, y: Date = null; print(x === y); }
> h()
true
Attachment #576365 - Attachment is patch: true
Flags: in-testsuite?
Flags: flashplayer-triage+
Flags: flashplayer-qrb+
Flags: flashplayer-bug-
QA Contact: nanojit → brbaker
Attachment #576365 - Attachment is obsolete: true
http://asteam.macromedia.com/hg/tr-float/rev/8f8a455de452

Fixes for CodegenLIR::cmpOptimization(), a few comment cleanups, and extensive test cases to verify that type-specialized comparisons on float and float4, e.g., as implemented by cmpOptimization(), agree with the generic comparisons.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Assignee: nobody → wmaddox
Testcases landed with code
Status: RESOLVED → VERIFIED
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: