[llvm] AMDGPU: Test a few more cases for assembler errors for misaligned gfx90a vgprs (PR #156998)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 5 00:37:08 PDT 2025


https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/156998

>From e870b8ea2358be4fc056223b7cef46516a9989c9 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Fri, 5 Sep 2025 09:52:52 +0900
Subject: [PATCH] AMDGPU: Test a few more cases for assembler errors for
 misaligned gfx90a vgprs

---
 .../MC/AMDGPU/misaligned-vgpr-tuples-err.s    | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)

diff --git a/llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s b/llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
index d76dc8c9fff63..7834fb5372ec7 100644
--- a/llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
+++ b/llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
@@ -3,15 +3,96 @@
 v_add_f64 v[1:2], v[1:2], v[1:2]
 // GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
 
+global_load_dwordx2 v[1:2], v[0:1], off
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
 global_load_dwordx3 v[1:3], v[0:1], off
 // GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
 
 global_load_dwordx4 v[1:4], v[0:1], off
 // GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
 
+global_load_dwordx2 a[1:2], v[0:1], off
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+global_load_dwordx3 a[1:3], v[0:1], off
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+global_load_dwordx4 a[1:4], v[0:1], off
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+
+image_load v[1:2], v2, s[0:7] dmask:0x3 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_load v[1:3], v2, s[0:7] dmask:0x7 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
 image_load v[1:4], v2, s[0:7] dmask:0xf unorm
 // GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
 
+image_load a[1:2], v2, s[0:7] dmask:0x3 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_load a[1:3], v2, s[0:7] dmask:0x7 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_load a[1:4], v2, s[0:7] dmask:0xf unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+
+image_store v[193:194], v[238:241], s[28:35] dmask:0x3 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_store v[193:195], v[238:241], s[28:35] dmask:0x7 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_store v[193:196], v[238:241], s[28:35] dmask:0xf unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_store a[193:194], v[238:241], s[28:35] dmask:0x3 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_store a[193:195], v[238:241], s[28:35] dmask:0x7 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_store a[193:196], v[238:241], s[28:35] dmask:0xf unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+
+image_atomic_swap v4, v[193:196], s[28:35] dmask:0x1 unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_swap v[5:6], v1, s[8:15] dmask:0x3 unorm
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+
+image_atomic_cmpswap v[5:6], v[192:195], s[28:35] dmask:0x3 unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_cmpswap v[4:5], v[193:196], s[28:35] dmask:0x3 unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_cmpswap v[5:8], v[192:195], s[28:35] dmask:0xf unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_cmpswap v[4:7], v[193:196], s[28:35] dmask:0xf unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+
+image_atomic_cmpswap a[5:6], v[192:195], s[28:35] dmask:0x3 unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_cmpswap a[4:5], v[193:196], s[28:35] dmask:0x3 unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_cmpswap a[5:8], v[192:195], s[28:35] dmask:0xf unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+image_atomic_cmpswap a[4:7], v[193:196], s[28:35] dmask:0xf unorm glc
+// GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
+
+
 v_mfma_f32_32x32x8f16 a[0:15], a[1:2], v[0:1], a[0:15]
 // GFX90A: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned
 



More information about the llvm-commits mailing list