Page MenuHomePhabricator

[AArch64] Promote all/most f16 ops to f32

Authored by ab on Mar 26 2015, 5:40 PM.



This continues the previous work to promote some of the operations (add/sub/..). I think it's fine to do that on all of them, but am not sure, hence review!

This depends on a local patch I'll commit that just teaches the legalizer to promote some of the operations (fill out various sparse switches).


Diff Detail

Event Timeline

ab updated this revision to Diff 22773.Mar 26 2015, 5:40 PM
ab retitled this revision from to [AArch64] Promote all/most f16 ops to f32.
ab updated this object.
ab edited the test plan for this revision. (Show Details)
ab added subscribers: Unknown Object (MLST), t.p.northover, scanon, olista01.
ab added a comment.Mar 26 2015, 5:56 PM

Also, the vector ops we set as Expand are also fixed with this patch. They currently generate non-selectable unrolled scalar ops. I'll test those next.


pirama added a subscriber: pirama.Apr 1 2015, 11:09 AM
ab accepted this revision.Apr 9 2015, 4:59 PM
ab added a reviewer: ab.

I'll piggyback on Steve's reply to D8755 and mark this as accepted: the repeated-narrowing generated by the operation-promotion is correct from a rounding standpoint (and, as I understand it, we can't avoid the narrowing coming from IR, except with fast-math or some dedicated it's-ok-to-promote flag; clang should promote expressions anyway, so I don't think this is an issue), and this is all I wanted to know =)


This revision is now accepted and ready to land.Apr 9 2015, 4:59 PM
ab closed this revision.Apr 9 2015, 6:22 PM

And r234550.