These instructions use a scaled offset. We were wrongly selecting them
even when the required offset was not a multiple of the scale factor.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
Comment Actions
Use new isDSOffset2Legal, do the same for globalisel, and fix a globalisel bug with large offsets.
Comment Actions
No, it had a different one :) For read2/write2_b64 it was passing 16 in as the last argument to isDSOffsetLegal, which is the bit width of the "offset" fields in the instruction. I think it's all good now.
llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | ||
---|---|---|
1262 | I used Size for the size in bytes of each of the 2 accesses. |
I think the variable name align here is misleading since this isn't the memory alignment