[PATCH] D130638: [X86][MC] Avoid emitting incorrect warning for complex FMUL

Phoebe Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 20:21:26 PDT 2022


pengfei added inline comments.


================
Comment at: llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp:3853
+    //    VFMULCPHZrrk Dest, Dest, Mask, Src1, Src2
+    if ((TSFlags & (X86II::EVEX_K | X86II::EVEX_Z)) == X86II::EVEX_K)
+      ++i;
----------------
LuoYuanke wrote:
> skan wrote:
> > pengfei wrote:
> > > LuoYuanke wrote:
> > > > Just be curious. Since there is not issue for VFCMADDCPH, why for VFCMULCPH the mask version does not conform with non-mask version?
> > > The reason is in the differences of the input dag (generated by `-print-records`):
> > > ```
> > > def VFCMADDCPHZr {
> > > ... ...
> > >   dag OutOperandList = (outs VR512:$dst);
> > >   dag InOperandList = (ins VR512:$src1, VR512:$src2, VR512:$src3);
> > > ... ...
> > >   string Constraints = "@earlyclobber $dst, $src1 = $dst";
> > > ... ...
> > > }
> > > def VFMULCPHZrr {
> > > ... ...
> > >   dag OutOperandList = (outs VR512:$dst);
> > >   dag InOperandList = (ins VR512:$src1, VR512:$src2);
> > > ... ...
> > >   string Constraints = "@earlyclobber $dst";
> > > ... ...
> > > }
> > > def VFMULCPHZrrk {
> > > ... ...
> > >   dag OutOperandList = (outs VR512:$dst);
> > >   dag InOperandList = (ins VR512:$src0, VK16WM:$mask, VR512:$src1, VR512:$src2);
> > > ... ...
> > >   string Constraints = "@earlyclobber $dst, $src0 = $dst";
> > > ... ...
> > > }
> > > ```
> > Do we need `X86II:EVEX_Z` here?
> Thanks, Phoebe.
Yeah, it's safe to remove it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130638/new/

https://reviews.llvm.org/D130638



More information about the llvm-commits mailing list