[PATCH] D147872: [X86] Correct the scheduling information for AVX-VNNI and AVX512-VNNI instructons.
Phoebe Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 10 08:22:52 PDT 2023
pengfei added inline comments.
================
Comment at: llvm/lib/Target/X86/X86InstrAVX512.td:12589
EVEX_4V, EVEX_CD8<32, CD8VF>, EVEX_B,
- T8PD, Sched<[sched.Folded, sched.ReadAfterFold]>;
+ T8PD, Sched<[sched.Folded, sched.ReadAfterFold,
+ sched.ReadAfterFold]>;
----------------
LuoYuanke wrote:
> LuoYuanke wrote:
> > craig.topper wrote:
> > > LuoYuanke wrote:
> > > > @craig.topper, I don't understand why it needs another sched.ReadAfterFold? Is it because there are 3 operands?
> > > Yes each read is associated with an operand. So we need one for each vector source.
> > Why in line 12580, for rr version, there is only one sched (WriteVecIMulX) in the sched list?
> I mean
>
> ```
> defm r : AVX512_maskable_3src<Op, MRMSrcReg, VTI, (outs VTI.RC:$dst),
> (ins VTI.RC:$src2, VTI.RC:$src3), OpStr,
> "$src3, $src2", "$src2, $src3",
> (VTI.VT (OpNode VTI.RC:$src1,
> VTI.RC:$src2, VTI.RC:$src3)),
> IsCommutable, IsCommutable>,
> EVEX_4V, T8PD, Sched<[sched]>;
> ```
My understand is it's intended for memory variant https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/X86/X86Schedule.td#L41-L51
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147872/new/
https://reviews.llvm.org/D147872
More information about the llvm-commits
mailing list