diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2022-04-10 10:47:12 -0400 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2022-04-11 20:12:22 -0400 |
commit | 5a5034d5081be4419ed464cc15d3af62426c0247 (patch) | |
tree | 1d7e2d5ef747b10472c0f212d14e39b711a0a959 /llvm/test/MachineVerifier | |
parent | 7e8ff962b315a2462e6b9e2804a6bfade887b310 (diff) | |
download | llvm-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.mir | 6 | ||||
-rw-r--r-- | llvm/test/MachineVerifier/test_g_store.mir | 6 |
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)) + ... |