Several tests had a typo where they mentioned sgpr17 twice instead of
sgpr17 and sgpr27. This had a significant effect on the
"scavenge_sgpr_pei_no_sgprs" tests because there was actually an sgpr
available, namely sgpr27.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Could someone please check that the tests are now testing what they are supposed to test? I am not very familiar with them, I just fixed the typo and re-auto-generated the checks.
llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-carry-out.mir | ||
---|---|---|
35 | Why is this use undef, and why is it saving the VGPR just saved to memory? |
Wow, how did you find that? The test changes look good to me.
llvm/test/CodeGen/AMDGPU/pei-scavenge-sgpr-carry-out.mir | ||
---|---|---|
35 | v2 is used as an SGPR spill register, so all lanes of v2 are first saved to memory (killing v2, as we do not care about it anymore), then s33 is saved into the first lane of v2. |
I was looking for duplicate implicit use operands: egrep -r 'implicit (killed )?([^, ]+), .*implicit (killed )?\2\>' test/CodeGen/AMDGPU/
Why is this use undef, and why is it saving the VGPR just saved to memory?