[PATCH] D54583: PowerPC: Optimize SPE double parameter calling setup

Kei Thomsen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 21 06:39:55 PST 2019


kthomsen added a comment.

I have a question:
When compiling

double a;
void func(double x) {
a = x;
}

It is generating

lis 5, a at ha
evstdd 3, a at l(5)

But as the evstdd and evldd are having only 8bit (5bit real) UIMM offset, this code is not working, as the offset a at lo is not known to be 8bit only.
Is this issue already addressed in a patch and I simply haven't seen this, or is this still a missing part?

I would expect

lis 5, a at ha
li 4, a at l
evstddx 3, 4, 5

It seems that this is checked/generated by the PPCISelLowering.cpp SelectAddressRegReg() and/or SelectAddressRegImm()
Actually I'm trying to find out I have enough information in the SDValue N to identify this as a SPE load/store.
Do I missed a patch for this?
Thanks, Kei


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

https://reviews.llvm.org/D54583





More information about the llvm-commits mailing list