[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 19:50:46 PDT 2022


pengfei added a comment.

In D130638#3683989 <https://reviews.llvm.org/D130638#3683989>, @skan wrote:

> In D130638#3682681 <https://reviews.llvm.org/D130638#3682681>, @craig.topper wrote:
>
>> I would replace the word "fake" in the title with "incorrect".
>>
>> And "to emit" change to "emitting"
>
> "to emitting" -> "emitting"

🤦‍♀️



================
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:
> 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";
... ...
}
```


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