[llvm] b8e7f53 - [AMDGPU][MC][GFX10] Enabled dlc for FLAT and GLOBAL atomics
Dmitry Preobrazhensky via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 21 06:22:54 PDT 2021
Author: Dmitry Preobrazhensky
Date: 2021-09-21T16:23:20+03:00
New Revision: b8e7f5320825812fc4b597ee5df3dccc53fe78bb
URL: https://github.com/llvm/llvm-project/commit/b8e7f5320825812fc4b597ee5df3dccc53fe78bb
DIFF: https://github.com/llvm/llvm-project/commit/b8e7f5320825812fc4b597ee5df3dccc53fe78bb.diff
LOG: [AMDGPU][MC][GFX10] Enabled dlc for FLAT and GLOBAL atomics
Differential Revision: https://reviews.llvm.org/D109614
Added:
Modified:
llvm/lib/Target/AMDGPU/FLATInstructions.td
llvm/test/MC/AMDGPU/gfx10_asm_flat.s
llvm/test/MC/Disassembler/AMDGPU/flat_gfx10.txt
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/FLATInstructions.td b/llvm/lib/Target/AMDGPU/FLATInstructions.td
index cc126d1e4861c..e132edb7c7254 100644
--- a/llvm/lib/Target/AMDGPU/FLATInstructions.td
+++ b/llvm/lib/Target/AMDGPU/FLATInstructions.td
@@ -352,8 +352,6 @@ class FLAT_AtomicNoRet_Pseudo<string opName, dag outs, dag ins,
let mayStore = 1;
let has_glc = 0;
let glcValue = 0;
- let has_dlc = 0;
- let dlcValue = 0;
let has_vdst = 0;
let has_sccb = 1;
let sccbValue = 0;
@@ -367,7 +365,6 @@ class FLAT_AtomicRet_Pseudo<string opName, dag outs, dag ins,
let hasPostISelHook = 1;
let has_vdst = 1;
let glcValue = 1;
- let dlcValue = 0;
let sccbValue = 0;
let IsAtomicNoRet = 0;
let IsAtomicRet = 1;
diff --git a/llvm/test/MC/AMDGPU/gfx10_asm_flat.s b/llvm/test/MC/AMDGPU/gfx10_asm_flat.s
index 10becc0b8442e..388327205adb5 100644
--- a/llvm/test/MC/AMDGPU/gfx10_asm_flat.s
+++ b/llvm/test/MC/AMDGPU/gfx10_asm_flat.s
@@ -125,4 +125,200 @@ flat_atomic_inc_x2 v[1:2], v[2:3]
flat_atomic_dec_x2 v[1:2], v[2:3]
// GFX10: encoding: [0x00,0x00,0x74,0xdd,0x01,0x02,0x7d,0x00]
+//===----------------------------------------------------------------------===//
+// ENC_FLAT: dlc support for atomics.
+//===----------------------------------------------------------------------===//
+
+flat_atomic_add v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xc8,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_add_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x48,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_and v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xe4,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_and_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x64,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_cmpswap v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0xc4,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_cmpswap_x2 v[1:2], v[2:5] dlc
+// GFX10: [0x00,0x10,0x44,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_dec v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xf4,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_dec_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x74,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_fcmpswap v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0xf8,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_fcmpswap_x2 v[1:2], v[2:5] dlc
+// GFX10: [0x00,0x10,0x78,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_fmax v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0x00,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_fmax_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x80,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_fmin v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xfc,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_fmin_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x7c,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_inc v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xf0,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_inc_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x70,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_or v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xe8,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_or_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x68,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_smax v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xdc,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_smax_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x5c,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_smin v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xd4,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_smin_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x54,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_sub v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xcc,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_sub_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x4c,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_swap v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xc0,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_swap_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x40,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_umax v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xe0,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_umax_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x60,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_umin v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xd8,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_umin_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x58,0xdd,0x01,0x02,0x7d,0x00]
+
+flat_atomic_xor v[1:2], v2 dlc
+// GFX10: [0x00,0x10,0xec,0xdc,0x01,0x02,0x7d,0x00]
+
+flat_atomic_xor_x2 v[1:2], v[2:3] dlc
+// GFX10: [0x00,0x10,0x6c,0xdd,0x01,0x02,0x7d,0x00]
+
+//===----------------------------------------------------------------------===//
+// ENC_FLAT_GLOBAL: dlc support for atomics.
+//===----------------------------------------------------------------------===//
+
+global_atomic_add v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xc8,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_add_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x48,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_and v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xe4,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_and_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x64,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_cmpswap v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0xc4,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_cmpswap_x2 v[1:2], v[2:5], off dlc
+// GFX10: [0x00,0x90,0x44,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_dec v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xf4,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_dec_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x74,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_fmax v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0x00,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_fmax_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x80,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_fmin v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xfc,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_fmin_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x7c,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_inc v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xf0,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_inc_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x70,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_or v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xe8,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_or_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x68,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_smax v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xdc,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_smax_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x5c,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_smin v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xd4,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_smin_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x54,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_sub v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xcc,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_sub_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x4c,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_swap v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xc0,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_swap_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x40,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_umax v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xe0,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_umax_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x60,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_umin v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xd8,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_umin_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x58,0xdd,0x01,0x02,0x7d,0x00]
+
+global_atomic_xor v[1:2], v2, off dlc
+// GFX10: [0x00,0x90,0xec,0xdc,0x01,0x02,0x7d,0x00]
+
+global_atomic_xor_x2 v[1:2], v[2:3], off dlc
+// GFX10: [0x00,0x90,0x6c,0xdd,0x01,0x02,0x7d,0x00]
+
+//===----------------------------------------------------------------------===//
// Also see flat-gfx10.s, flat-global.s, flat-scratch-instructions.s.
+//===----------------------------------------------------------------------===//
diff --git a/llvm/test/MC/Disassembler/AMDGPU/flat_gfx10.txt b/llvm/test/MC/Disassembler/AMDGPU/flat_gfx10.txt
index 6fc105f6e5949..779e39c69c329 100644
--- a/llvm/test/MC/Disassembler/AMDGPU/flat_gfx10.txt
+++ b/llvm/test/MC/Disassembler/AMDGPU/flat_gfx10.txt
@@ -73,3 +73,197 @@
# CHECK: scratch_store_dword off, v2, s3 offset:-1 dlc ; encoding: [0xff,0x5f,0x70,0xdc,0x00,0x02,0x03,0x00]
0xff,0x5f,0x70,0xdc,0x00,0x02,0x03,0x00
+
+#===------------------------------------------------------------------------===#
+# FLAT opcodes: dlc support for atomics
+#===------------------------------------------------------------------------===#
+
+# CHECK: flat_atomic_add v[1:2], v2 dlc ; encoding: [0x00,0x10,0xc8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xc8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_add_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x48,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x48,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_and v[1:2], v2 dlc ; encoding: [0x00,0x10,0xe4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xe4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_and_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x64,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x64,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_cmpswap v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0xc4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xc4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_cmpswap_x2 v[1:2], v[2:5] dlc ; encoding: [0x00,0x10,0x44,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x44,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_dec v[1:2], v2 dlc ; encoding: [0x00,0x10,0xf4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xf4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_dec_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x74,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x74,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_fcmpswap v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0xf8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xf8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_fcmpswap_x2 v[1:2], v[2:5] dlc ; encoding: [0x00,0x10,0x78,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x78,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_fmax v[1:2], v2 dlc ; encoding: [0x00,0x10,0x00,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x00,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_fmax_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x80,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x80,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_fmin v[1:2], v2 dlc ; encoding: [0x00,0x10,0xfc,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xfc,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_fmin_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x7c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x7c,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_inc v[1:2], v2 dlc ; encoding: [0x00,0x10,0xf0,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xf0,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_inc_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x70,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x70,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_or v[1:2], v2 dlc ; encoding: [0x00,0x10,0xe8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xe8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_or_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x68,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x68,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_smax v[1:2], v2 dlc ; encoding: [0x00,0x10,0xdc,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xdc,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_smax_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x5c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x5c,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_smin v[1:2], v2 dlc ; encoding: [0x00,0x10,0xd4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xd4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_smin_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x54,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x54,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_sub v[1:2], v2 dlc ; encoding: [0x00,0x10,0xcc,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xcc,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_sub_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x4c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x4c,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_swap v[1:2], v2 dlc ; encoding: [0x00,0x10,0xc0,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xc0,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_swap_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x40,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x40,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_umax v[1:2], v2 dlc ; encoding: [0x00,0x10,0xe0,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xe0,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_umax_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x60,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x60,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_umin v[1:2], v2 dlc ; encoding: [0x00,0x10,0xd8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xd8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_umin_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x58,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x58,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_xor v[1:2], v2 dlc ; encoding: [0x00,0x10,0xec,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x10,0xec,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: flat_atomic_xor_x2 v[1:2], v[2:3] dlc ; encoding: [0x00,0x10,0x6c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x10,0x6c,0xdd,0x01,0x02,0x7d,0x00
+
+#===------------------------------------------------------------------------===#
+# FLAT GLOBAL opcodes: dlc support for atomics
+#===------------------------------------------------------------------------===#
+
+# CHECK: global_atomic_add v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xc8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xc8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_add_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x48,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x48,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_and v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xe4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xe4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_and_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x64,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x64,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_cmpswap v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0xc4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xc4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_cmpswap_x2 v[1:2], v[2:5], off dlc ; encoding: [0x00,0x90,0x44,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x44,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_dec v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xf4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xf4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_dec_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x74,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x74,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_fmax v[1:2], v2, off dlc ; encoding: [0x00,0x90,0x00,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x00,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_fmax_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x80,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x80,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_fmin v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xfc,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xfc,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_fmin_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x7c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x7c,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_inc v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xf0,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xf0,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_inc_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x70,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x70,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_or v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xe8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xe8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_or_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x68,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x68,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_smax v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xdc,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xdc,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_smax_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x5c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x5c,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_smin v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xd4,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xd4,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_smin_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x54,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x54,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_sub v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xcc,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xcc,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_sub_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x4c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x4c,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_swap v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xc0,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xc0,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_swap_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x40,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x40,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_umax v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xe0,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xe0,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_umax_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x60,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x60,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_umin v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xd8,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xd8,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_umin_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x58,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x58,0xdd,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_xor v[1:2], v2, off dlc ; encoding: [0x00,0x90,0xec,0xdc,0x01,0x02,0x7d,0x00]
+0x00,0x90,0xec,0xdc,0x01,0x02,0x7d,0x00
+
+# CHECK: global_atomic_xor_x2 v[1:2], v[2:3], off dlc ; encoding: [0x00,0x90,0x6c,0xdd,0x01,0x02,0x7d,0x00]
+0x00,0x90,0x6c,0xdd,0x01,0x02,0x7d,0x00
More information about the llvm-commits
mailing list