// Copyright Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include #include #include namespace rocRoller { class CommandArgument; using CommandArgumentPtr = std::shared_ptr; using CommandArgumentValue = std::variant< // int16_t, int32_t, int64_t, // uint16_t, uint32_t, uint64_t, float, double, Half, BFloat16, FP8, BF8, FP6, BF6, FP4, bool, Raw32, Buffer, TDM, // int16_t*, int32_t*, int64_t*, // uint16_t*, uint8_t*, uint32_t*, uint64_t*, float*, double*, Half*, BFloat16*, FP8*, BF8*, FP6*, BF6*, FP4*, E8M0, E8M0*, E5M3, E5M3*, E4M3, E4M3*>; template concept CCommandArgumentValue = requires(T& val) { {CommandArgumentValue(val)}; {!std::same_as}; }; static_assert(!CCommandArgumentValue); using RuntimeArguments = std::span; }