This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Add support for splat fixed length build_vectors using RVV.
ClosedPublic

Authored by craig.topper on Feb 4 2021, 10:58 PM.

Details

Summary

Building on the fixed vector support from D95705

I've added ISD nodes for vmv.v.x and vfmv.v.f and switched to
lowering the intrinsics to it. This allows us to share the same
isel patterns for both.

This doesn't handle splats of i64 on RV32 yet. The build_vector
gets converted to a vXi32 build_vector+bitcast during type
legalization. Not sure the best way to handle this at the moment.

Diff Detail

Event Timeline

craig.topper created this revision.Feb 4 2021, 10:58 PM
craig.topper requested review of this revision.Feb 4 2021, 10:58 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 4 2021, 10:58 PM
Herald added a subscriber: MaskRay. · View Herald Transcript
craig.topper planned changes to this revision.Feb 5 2021, 11:41 AM

Forgot to add the fp tests.

Add FP splat test

This revision is now accepted and ready to land.Feb 8 2021, 1:54 AM
This revision was landed with ongoing or failed builds.Feb 8 2021, 11:14 AM
This revision was automatically updated to reflect the committed changes.