[llvm] [AMDGPU] Fix an issue that wrong index is used in calculation of byte provider when the op is extract_vector_elt (PR #91697)
Jeffrey Byrnes via llvm-commits
llvm-commits at lists.llvm.org
Mon May 20 14:22:21 PDT 2024
jrbyrnes wrote:
> It didn't cause a crash. It causes wrong results in just one OpenCL conformance test. That is because wrong register is used in `v_perm_b32` instruction.
Ah, I see the issue. Thanks.
It is because the current index calculation condition assumes less than 32 bit.
Can you try
```
if (ScalarSize < 32) {
Index = ScalarSize == 8 ? VecIdx : VecIdx * 2 + Index;
}
return calculateSrcByte(ScalarSize >= 32 ? Op : Op.getOperand(0),
StartingIndex, Index);
```
https://github.com/llvm/llvm-project/pull/91697
More information about the llvm-commits
mailing list