This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Add lowering for rounding operations
ClosedPublic

Authored by Asif on Aug 28 2020, 9:41 AM.

Details

Summary

Add the functionality to lower SVE rounding operations for passthru variant.
Created a new test case file for all rounding operations.

Diff Detail

Event Timeline

Asif created this revision.Aug 28 2020, 9:41 AM
Herald added a project: Restricted Project. · View Herald Transcript
Asif requested review of this revision.Aug 28 2020, 9:41 AM
paulwalker-arm added inline comments.Aug 28 2020, 9:55 AM
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
1424–1425

So we can prove the DAGCombine for these intrinsics is the canonical route, can you please change this and the following sve_frint instances to null_frag. Once FRECPX and FSQRT follow a similar path we'll remove the parameter.

llvm/test/CodeGen/AArch64/sve-fp-rounding.ll
2

Since there's no expected variance for these tests can you use update_llc_test_checks.py to generate the check lines. It'll just make it easier in the future if somebody adds anything new.

Asif updated this revision to Diff 289704.Sep 3 2020, 6:36 AM
Asif marked 2 inline comments as done.Sep 3 2020, 6:41 AM
paulwalker-arm accepted this revision.Sep 3 2020, 8:25 AM

Other than adding the missing test before landing that patch, this LGTM.

llvm/test/CodeGen/AArch64/sve-fp-rounding.ll
117

It looks like you are missing a test for define <vscale x 2 x double> @frintm_nxv2f64.

This revision is now accepted and ready to land.Sep 3 2020, 8:25 AM
Asif updated this revision to Diff 289736.Sep 3 2020, 8:54 AM

Added the missing test.

Asif marked an inline comment as done.Sep 3 2020, 8:54 AM
This revision was automatically updated to reflect the committed changes.