[flang-commits] [llvm] [clang] [lld] [flang] [AMDGPU] Introduce GFX9/10.1/10.3/11 Generic Targets (PR #76955)

Cory Bloor via flang-commits flang-commits at lists.llvm.org
Thu Jan 11 12:44:06 PST 2024


================
@@ -520,6 +520,106 @@ Every processor supports every OS ABI (see :ref:`amdgpu-os`) with the following
 
      =========== =============== ============ ===== ================= =============== =============== ======================
 
+Generic processors also exist. They group multiple processors into one,
+allowing to build code once and run it on multiple targets at the cost
+of less features being available.
+
+Generic processors are only available on Code Object V6 and up.
+
+  .. table:: AMDGPU Generic Processors
+     :name: amdgpu-generic-processor-table
+
+     ==================== ============== ================= =================================
+     Processor             Target        Supported         Target
+                           Triple        Processors        Features
+                           Architecture                    Restrictions
+
+
+
+
+
+
+
+
+     ==================== ============== ================= =================================
+     ``gfx9-generic``     ``amdgcn``     - ``gfx900``      - ``v_mad_mix`` instructions
+                                         - ``gfx902``        are not available on
+                                         - ``gfx904``        ``gfx900``, ``gfx902``,
+                                         - ``gfx906``        ``gfx909``, ``gfx90c``
+                                         - ``gfx909``      - ``v_fma_mix`` instructions
+                                         - ``gfx90c``        are not available on ``gfx904``
+                                                           - sramecc is not available on
+                                                             ``gfx906``
+                                                           - The following instructions
+                                                             are not available on ``gfx906``:
+
+                                                             - ``v_fmac_f32``
+                                                             - ``v_xnor_b32``
+                                                             - ``v_dot4_i32_i8``
+                                                             - ``v_dot8_i32_i4``
+                                                             - ``v_dot2_i32_i16``
+                                                             - ``v_dot2_u32_u16``
+                                                             - ``v_dot4_u32_u8``
+                                                             - ``v_dot8_u32_u4``
+                                                             - ``v_dot2_f32_f16``
+
+
+     ``gfx10.1-generic``  ``amdgcn``     - ``gfx1010``     - The following instructions are
+                                         - ``gfx1011``       not available on ``gfx1011``
+                                         - ``gfx1012``       and ``gfx1012``
+                                         - ``gfx1013``
+                                                             - ``v_dot4_i32_i8``
----------------
cgmb wrote:

This wording seems to imply that gfx1012 supports the following instructions but gfx1010 does not. I had thought that gfx1012 was identical to gfx1010, but if I was mistaken then I am very pleased that this documentation has corrected my misapprehension.

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


More information about the flang-commits mailing list