[PATCH] D25580: [PowerPC] Improve handling of BUILD_VECTOR nodes (integer results)

Nemanja Ivanovic via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 21 10:43:59 PDT 2016

nemanjai added inline comments.

Comment at: lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp:225
   const MCOperand &MO = MI.getOperand(OpNo);
-  if (MO.isImm())
+  // PPC::ZERO and PPC::ZERO8 are register MachineOperand's but they really
+  // represent immediates.
hfinkel wrote:
> nemanjai wrote:
> > echristo wrote:
> > > This seems... weird.
> > I agree. But the weirdness exists in the ISA as well. So I'm not sure how best to tackle this issue. Perhaps @hfinkel can provide a pointer regarding this.
> This seems weird, in part, because it is not clear why it is necessary to handle this case in a special way. Is there a regression test that covers this? If we have a load with an absolute immediate address, but also a fixup, it is not clear why we'd ignore the fixup.
I was hitting an assert from MachineOperand::getExpr() that the operand is not an expression (because it was register PPC::ZERO8). I'll investigate further what conditions lead to this, but it was in one of the projects/test-suite test cases (run with -mcpu=pwr9).



More information about the llvm-commits mailing list