aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/MachineVerifier
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2022-04-10 10:47:12 -0400
committerMatt Arsenault <Matthew.Arsenault@amd.com>2022-04-11 20:12:22 -0400
commit5a5034d5081be4419ed464cc15d3af62426c0247 (patch)
tree1d7e2d5ef747b10472c0f212d14e39b711a0a959 /llvm/test/MachineVerifier
parent7e8ff962b315a2462e6b9e2804a6bfade887b310 (diff)
downloadllvm-5a5034d5081be4419ed464cc15d3af62426c0247.zip
llvm-5a5034d5081be4419ed464cc15d3af62426c0247.tar.gz
llvm-5a5034d5081be4419ed464cc15d3af62426c0247.tar.bz2
GlobalISel: Verify atomic load/store ordering restriction
Reject acquire stores and release loads. This matches the restriction imposed by the LLParser and IR verifier.
Diffstat (limited to 'llvm/test/MachineVerifier')
-rw-r--r--llvm/test/MachineVerifier/test_g_load.mir6
-rw-r--r--llvm/test/MachineVerifier/test_g_store.mir6
2 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/MachineVerifier/test_g_load.mir b/llvm/test/MachineVerifier/test_g_load.mir
index 81fbbfe..fe39dbe0 100644
--- a/llvm/test/MachineVerifier/test_g_load.mir
+++ b/llvm/test/MachineVerifier/test_g_load.mir
@@ -20,4 +20,10 @@ body: |
; CHECK: Bad machine code: load memory size cannot exceed result size
%3:_(s8) = G_LOAD %2 :: (load (s16))
+ ; CHECK: Bad machine code: atomic load cannot use release ordering
+ %4:_(s32) = G_LOAD %2 :: (load release (s32))
+
+ ; CHECK: Bad machine code: atomic load cannot use release ordering
+ %5:_(s32) = G_LOAD %2 :: (load acq_rel (s32))
+
...
diff --git a/llvm/test/MachineVerifier/test_g_store.mir b/llvm/test/MachineVerifier/test_g_store.mir
index e6ec032..072e306 100644
--- a/llvm/test/MachineVerifier/test_g_store.mir
+++ b/llvm/test/MachineVerifier/test_g_store.mir
@@ -21,4 +21,10 @@ body: |
; CHECK: Bad machine code: store memory size cannot exceed value size
G_STORE %3, %2 :: (store (s16))
+ ; CHECK: Bad machine code: atomic store cannot use acquire ordering
+ G_STORE %1, %2 :: (store acquire (s32))
+
+ ; CHECK: Bad machine code: atomic store cannot use acquire ordering
+ G_STORE %1, %2 :: (store acq_rel (s32))
+
...