For these loads that write to the HI part of a register, we should chain them to the op that writes to the LO part
of the register to maintain the appropriate order.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Can you add a test where low half does not produce a chain? An arithmetic operation and an undef.
lib/Target/AMDGPU/SIISelLowering.cpp | ||
---|---|---|
9027 ↗ | (On Diff #180737) | 4 is not enough, it will not be a small vector. I think 16 is ok. |
Comment Actions
This problem isn't limited to private address space. This should have tests for every address space, and with cases using unrelated bases
Comment Actions
Update based on the comments from the reviewers:
- add test that the lower half op does not have a chain, so we don't adjust the chain;
- extend to every address space;
- add tests for unrelated bases;
- set the size of the small vector for Ops to 16.
Comment Actions
Update based on reviewer's suggestions:
- -check-prefix=GCN
- addrspace(0) is not needed.