[PATCH] D147245: [AMDGPU] Make amdgcn.s.buffer.load a memory-reading intrinsic

Krzysztof Drewniak via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 31 08:27:17 PDT 2023


krzysz00 added a comment.

>From what I can tell, if `!invariant.load` is supported for load-like intrinsics, that's not documented anywhere. It might be neat to make that work, but we can cross that bridge when we get there.

On the other hand, I'm imaging the following sequence of rewrites:

  %v = load T, ptr addrspace(7) %const.buffer, !invariant.load

=> (late in the frontend)

  %buf, %offset = ...(%const.buffer)
  %v = call T @llvm.amdgcn.raw.buffer.load(%buf, i32 %off. [...]) !invariant.load

=> (in IR translation)

  INTRINSIC_W_SIDE_EFFECT(@llvm.amdgcn.raw.buffer.load, ...) :: (dereferencable invariant load from BufferAddr(%buf, %off) ....)

=>(because the load was marked invariant, assuming `%off` is uniform)

  AMDGCN_S_BUFFER_LOAD %buf, %off, ... :: (...)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147245/new/

https://reviews.llvm.org/D147245



More information about the llvm-commits mailing list