[llvm] [AMDGPU] Set glc/slc on volatile/nontemporal SMEM loads (PR #77443)

Tony Tye via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 12 09:21:54 PST 2024


================
@@ -5813,6 +5813,18 @@ in table :ref:`amdgpu-amdhsa-memory-model-code-sequences-gfx6-gfx9-table`.
                                                               be reordered by
                                                               hardware.
 
+     load         *none*       *none*         - constant - !volatile & !nontemporal
+
+                                                           1. s_load/s_buffer_load
+
+                                                         - !volatile & nontemporal
+
+                                                           1. s_load/s_buffer_load glc=1 slc=1
+
+                                                         - volatile
+
+                                                           1. s_load/s_buffer_load glc=1
----------------
t-tye wrote:

I think the spec looks fine to me. But you must admit that the concept of a volatile constant load is a bit meaningless. Not sure how it could ever happen. By definition a volatile location cannot be constant. That may be why I left scalar out of the memory model description.

Presumably this cahnge needs to be done to the memory model specification for the other targets too.

https://github.com/llvm/llvm-project/pull/77443


More information about the llvm-commits mailing list