/* * Copyright (c) Advanced Micro Devices, Inc., or its affiliates. * * SPDX-License-Identifier: MIT */ #include #include "memory_order_common.hh" HIP_TEST_CASE(Unit___hip_atomic_load_store_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_exchange_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_compare_exchange_strong_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_compare_exchange_weak_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_fetch_add_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_fetch_and_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_fetch_or_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_fetch_xor_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_fetch_min_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } } HIP_TEST_CASE(Unit___hip_atomic_fetch_max_Positive_Acquire_Release) { SECTION("ACQUIRE/RELEASE") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("ACQ_REL") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } SECTION("SEQ_CST") { SECTION("WAVEFRONT") { AcquireRelease::Test(); } SECTION("WORKGROUP") { AcquireRelease::Test(); } SECTION("AGENT") { AcquireRelease::Test(); } SECTION("SYSTEM") { AcquireRelease::SystemTest(); } } }