This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Promote all/most f16 ops to f32
ClosedPublic

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

Details

Summary

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).

Thanks,
-Ahmed

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.

-Ahmed

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 =)

-Ahmed

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.