For different macroarchtectures, the cost of half, single and double
precision floating-point instructions are different.
So here we make all floating-point arithmetic instructions SEW-aware.
Paths
| Differential D153000
[WIP][RISCV] Make all floating-point instructions SEW-aware Changes PlannedPublic Authored by wangpc on Jun 15 2023, 1:17 AM.
Details
Summary For different macroarchtectures, the cost of half, single and double So here we make all floating-point arithmetic instructions SEW-aware.
Diff Detail
Event TimelineComment Actions (@wangpc asked me to disable the account @pcwang-thead which is now unused. Note: an account can be associated with multiple email addresses and the username can be changed (all occurrences in comments will be updated).
This revision is now accepted and ready to land.Jun 29 2023, 12:53 PM Comment Actions
Thanks. There are still some issues in RISCVInstrInfo.cpp to fix, I will finish it later.
Revision Contents
Diff 531638 llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
llvm/lib/Target/RISCV/RISCVScheduleV.td
|
What do you think about making sew a mandatory argument instead of using sew=0 as "don't account for sew". The scheduler models can always assign the same properties for different sew if the microarchitecture performance does not depend on sew.
I don't think we use sew=0 anywhere else and it may be simpler to keep it that way.