[all-commits] [llvm/llvm-project] 843131: [AMDGPU] Stop replacing amdgcn.ballot(1) with amdg...
Jay Foad via All-commits
all-commits at lists.llvm.org
Fri Jun 16 09:18:05 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 84313162bf79a4c16ad3edd2a2e6accad569a907
https://github.com/llvm/llvm-project/commit/84313162bf79a4c16ad3edd2a2e6accad569a907
Author: Jay Foad <jay.foad at amd.com>
Date: 2023-06-16 (Fri, 16 Jun 2023)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
Log Message:
-----------
[AMDGPU] Stop replacing amdgcn.ballot(1) with amdgcn.s.getreg(exec)
Rationale:
- It does not enable any further IR simplifications.
- It does not improve the generated code since the isel lowering of
ballot also has special cases for 0 and 1.
- getreg is "too powerful" since it can read from many different
registers, so its intrinsic properties have to be set very
conservatively.
There is also a correctness problem that getreg can read from exec but
it is currently not marked as convergent.
Differential Revision: https://reviews.llvm.org/D153047
More information about the All-commits
mailing list