[all-commits] [llvm/llvm-project] 2278f5: [AMDGPU] Hoist readlane/readfirstlane through unar...

Pierre van Houtryve via All-commits all-commits at lists.llvm.org
Tue May 13 03:01:10 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2278f5e65b487f7df0c613990b72fedba3ae34af
      https://github.com/llvm/llvm-project/commit/2278f5e65b487f7df0c613990b72fedba3ae34af
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2025-05-13 (Tue, 13 May 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
    A llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.readfirstlane.ll
    A llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.readlane.ll

  Log Message:
  -----------
  [AMDGPU] Hoist readlane/readfirstlane through unary/binary operands (#129037)

When a read(first)lane is used on a binary operator and the intrinsic is
the only user of the operator, we can move the read(first)lane into the
operand if the other operand is uniform.

Unfortunately IC doesn't let us access UniformityAnalysis and thus we
can't truly check uniformity, we have to do with a basic uniformity
check which only allows constants or trivially uniform intrinsics calls.

We can also do the same for unary and cast operators.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list