[llvm] [AMDGPU] Fix an issue that wrong index is used in calculation of byte provider when the op is extract_vector_elt (PR #91697)

Shilei Tian via llvm-commits llvm-commits at lists.llvm.org
Mon May 20 14:00:08 PDT 2024


shiltian 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.

Correct asm:

```
...
	v_perm_b32 v2, v2, v2, 0x3020504
	v_perm_b32 v0, v0, v0, 0x3020504
...
```

Wrong asm:

```
...
	v_perm_b32 v2, v0, v2, 0x3020706
	v_perm_b32 v0, v0, v0, 0x3020504
...
```

I narrowed it down to this place and found out that the index was wrong when calculating the source byte.

https://github.com/llvm/llvm-project/pull/91697


More information about the llvm-commits mailing list