Depends on D83637 for test correctness, but not operation.
Add handling of s_andn2 and mask of 0.
This eliminates code from uniform control flows.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AMDGPU/SIPreEmitPeephole.cpp | ||
---|---|---|
129 | Technically here MaskValue can be anything, not just -1 or 0. | |
136 | .. and here you squash it. I think it needs a check. | |
llvm/test/CodeGen/AMDGPU/infinite-loop.ll | ||
161 | Looks like s_mov_b64 vcc, 0? | |
llvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll | ||
14–34 | Do you mind to pre-commit white space changes? |
llvm/lib/Target/AMDGPU/SIPreEmitPeephole.cpp | ||
---|---|---|
129 | Line 102 ensures MaskValue is 0 or -1. | |
llvm/test/CodeGen/AMDGPU/infinite-loop.ll | ||
161 | Yes, hence how this becomes an unconditional branch. | |
llvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll | ||
14–34 | Will do. |
llvm/test/CodeGen/AMDGPU/insert-skip-from-vcc.mir | ||
---|---|---|
343–344 | We could switch the entire test to being generate, but generated MIR tests don't use CHECK-NEXT, so these would still fall through the cracks. |
Technically here MaskValue can be anything, not just -1 or 0.