This is an archive of the discontinued LLVM Phabricator instance.

R600/SI: Implement less wrong f32 fdiv
ClosedPublic

Authored by arsenm on Jun 23 2014, 11:45 AM.

Details

Reviewers
arsenm
Summary

Assuming single precision denormals and accurate sqrt/div are not reported, this passes the OpenCL conformance test.

The f64 version is currently still stuck on broken handling of the div_scale instructions. The legalizing of instruction operands is too strict and only allows one SGPR operand, when the restriction is that only 1 SGPR may be read from, but that single SGPR can be used for multiple operands. When it does legalize div_scale, it produces a copy for one of the SGPR operands, so that the first is no longer the same operand as the second or third.

Diff Detail

Event Timeline

arsenm updated this revision to Diff 10759.Jun 23 2014, 11:45 AM
arsenm retitled this revision from to R600/SI: Implement less wrong f32 fdiv.
arsenm updated this object.
arsenm edited the test plan for this revision. (Show Details)
arsenm added a subscriber: Unknown Object (MLST).
arsenm accepted this revision.Jul 15 2014, 1:27 PM
arsenm added a reviewer: arsenm.

r213089

This revision is now accepted and ready to land.Jul 15 2014, 1:27 PM
arsenm closed this revision.Jul 15 2014, 1:27 PM