[PATCH] D147872: [X86] Correct the scheduling information for AVX-VNNI and AVX512-VNNI instructons.

LuoYuanke via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 9 16:52:06 PDT 2023


LuoYuanke 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:
> 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]>;
```


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