[PATCH] D136596: [X86] Update LiveVariables in more cases in convertToThreeAddress
Bing Yu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 31 05:49:13 PDT 2022
yubing added inline comments.
================
Comment at: llvm/lib/Target/X86/X86InstrInfo.cpp:1699
.add(MI.getOperand(7));
+ NumRegOperands = 4;
break;
----------------
foad wrote:
> yubing wrote:
> > seems it should be "NumRegOperands = 3"
> > the 3rd operand of VPBROADCASTDZrmk is i32mem:$src instead of a register.
> It needs to be at least 4 for some other opcodes like:
> ```
> %4:vr512 = VBLENDMPSZrmk killed %3:vk16wm, killed %2:vr512, killed %1:gr64, 1, $noreg, 0, $noreg
> ```
> Is this causing a problem? If so, maybe the loop at line 1769 needs an `Op.isReg()` check.
adding Op.isReg() check works for me!
my guilty MIR is:
```
%22:vr512 = VPBROADCASTDZrmk %21:vr512(tied-def 0), killed %20:vk16wm, %stack.1, 1, $noreg, 0, $noreg :: (load (s32) from %stack.1, align 64)
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136596/new/
https://reviews.llvm.org/D136596
More information about the llvm-commits
mailing list