SplitVecOp_EXTRACT_VECTOR_ELT uses dummy pointer info to generate SDLoad, which
causes isel failure on amdgcn target with amdgiz environment since amdgcn backend
needs correct address space to lower SDLoad.
This patch fixes that.
Differential D39758
CodeGen: Fix pointer info in SplitVecOp_EXTRACT_VECTOR_ELT yaxunl on Nov 7 2017, 1:51 PM. Authored by
Details SplitVecOp_EXTRACT_VECTOR_ELT uses dummy pointer info to generate SDLoad, which This patch fixes that.
Diff Detail Event Timeline
|
You can't use "UndefValue" here; a non-null "Value*" has to be something alias analysis will understand properly.
If you want to actually get this right, you need to use MachinePointerInfo::getFixedStack(). (CreateStackTemporary doesn't explicitly return the FrameIndex, but you can extract it from the returned FrameIndexSDNode.) Or I guess we could add some way to represent an unknown pointer in a specific address-space, but that's probably not any simpler.