This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Optimize floating point scalar move and splat
ClosedPublic

Authored by kito-cheng on Aug 17 2023, 5:40 AM.

Details

Summary

In D158086, we limit all floating point scalar move and splat can't fuse
vsetvli with different SEW, and this patch try to relax the constraint
as possible by introducing new SEW demand type:
SEWGreaterThanOrEqualAndLessThan64, that allow SEW fused with larger
SEW, but constraint it can't fused with SEW=64.

Diff Detail

Event Timeline

kito-cheng created this revision.Aug 17 2023, 5:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 17 2023, 5:40 AM
kito-cheng requested review of this revision.Aug 17 2023, 5:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 17 2023, 5:40 AM
rogfer01 accepted this revision.Aug 23 2023, 3:57 AM

Just a minor nit above.

Looks reasonable to me. Thanks, Philip.

llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
220

The sentence in the comment seems incomplete I think that "than 64" might be missing.

This revision is now accepted and ready to land.Aug 23 2023, 3:57 AM
This revision was landed with ongoing or failed builds.Sep 6 2023, 1:39 AM
This revision was automatically updated to reflect the committed changes.