* Copyright (c) 2025 Huawei Technologies Co., Ltd.
* This program is free software, you can redistribute it and/or modify it under the terms and conditions of
* CANN Open Software License Agreement Version 2.0 (the "License")
* Please refer to the License for details. You may not use this file except in compliance with the License.
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
* See LICENSE in the root of the software repository for the full text of the License.
*/
* \file cast_struct.h
* \brief
*/
#ifndef OPS_BUILD_IN_OP_TILING_RUNTIME_CAST_STRUCT_H
#define OPS_BUILD_IN_OP_TILING_RUNTIME_CAST_STRUCT_H
#include "ascendc/host_api/tiling/template_argument.h"
#define CAST_TEMPLATE_DIRECT_CAST 1
#define CAST_TEMPLATE_DST_BOOL 2
#define CAST_TEMPLATE_THROUGH 3
#define CAST_TEMPLATE_SRC_UINT1 4
#define CAST_TEMPLATE_TWO_CAST 5
#define CAST_TEMPLATE_MIRCRO_INOUT 6
#define CAST_TEMPLATE_MIRCRO_CAST 7
#define CAST_TEMPLATE_MIRCRO_CAST_INTER 8
#define CAST_TEMPLATE_MIRCRO_CAST_DEINTER 9
#define CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER 10
#define CAST_TEMPLATE_MIRCRO_CAST_CAST 11
#define CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST 12
#define CAST_TEMPLATE_MIRCRO_CAST_DEINTER_CAST 13
#define CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST 14
#define CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST 15
#define CAST_TEMPLATE_MIRCRO_DEINTER_SHIFT 16
#define CAST_MODE_REG_COPYIN_NORM 0
#define CAST_MODE_REG_COPYIN_DS_B8 1
#define CAST_MODE_REG_COPYIN_DS_B16 2
#define CAST_MODE_REG_COPYIN_UNPACK_B8 3
#define CAST_MODE_REG_COPYIN_UNPACK_B16 4
#define CAST_MODE_REG_COPYIN_UNPACK_B32 5
#define CAST_MODE_REG_COPYIN_UNPACK4_B8 6
#define CAST_MODE_REG_COPYOUT_NORM 7
#define CAST_MODE_REG_COPYOUT_PACK_B16 8
#define CAST_MODE_REG_COPYOUT_PACK_B32 9
#define CAST_MODE_REG_COPYOUT_PACK_B64 10
#define CAST_MODE_REG_COPYOUT_PACK4_B32 11
#define CAST_MODE_BUTT 12
#define CAST_ROUND_MODE_UNKNOWN 0
#define CAST_ROUND_MODE_NONE 1
#define CAST_ROUND_MODE_RINT 2
#define CAST_ROUND_MODE_FLOOR 3
#define CAST_ROUND_MODE_CEIL 4
#define CAST_ROUND_MODE_ROUND 5
#define CAST_ROUND_MODE_TRUNC 6
#define CAST_ROUND_MODE_ODD 7
#define CAST_ROUND_MODE_HYBRID 8
#define CAST_TPL_BF16 1
#define CAST_TPL_FLOAT16 2
#define CAST_TPL_FLOAT 3
#define CAST_TPL_HIFLOAT8 4
#define CAST_TPL_FLOAT8_E5M2 5
#define CAST_TPL_FLOAT8_E4M3FN 6
#define CAST_TPL_BOOL 7
#define CAST_TPL_INT8 8
#define CAST_TPL_INT16 9
#define CAST_TPL_INT32 10
#define CAST_TPL_INT64 11
#define CAST_TPL_UINT1 12
#define CAST_TPL_UINT8 13
#define CAST_TPL_UINT16 14
#define CAST_TPL_UINT32 15
#define CAST_TPL_COMPLEX32 16
#define CAST_TPL_COMPLEX64 17
#define CAST_TPL_FLOAT4_E1M2 18
#define CAST_TPL_FLOAT4_E2M1 19
#define CAST_TPL_DOUBLE 20
#define CAST_TPL_INT4 21
#define CAST_TPL_MAX 100
ASCENDC_TPL_ARGS_DECL(Cast,
ASCENDC_TPL_UINT_DECL(id, ASCENDC_TPL_8_BW, ASCENDC_TPL_UI_LIST, 0),
);
ASCENDC_TPL_SEL(
ASCENDC_TPL_ARGS_SEL(
ASCENDC_TPL_UINT_SEL(id, ASCENDC_TPL_UI_LIST, 0),
),
);
#ifdef __CCE_AICORE__
template<int ST, int DT>
struct GetCastPolicy {
static constexpr bool isValid_ = false;
};
#endif
#ifdef __CCE_AICORE__
#define CAST_POLICY_DEFINE(STN, DTN, ST, DT, id, mapDtypeX, mapDtypeY, mapDtypeMid, \
castMode1, castMode2, regCopyInMode, regCopyOutMode) \
template<> \
struct GetCastPolicy<ST, DT> { \
static constexpr bool isValid_ = true; \
static constexpr int id_ = id; \
static constexpr int srcMapType_ = mapDtypeX; \
static constexpr int dstMapType_ = mapDtypeY; \
static constexpr int midType_ = mapDtypeMid; \
static constexpr int castMode1_ = castMode1; \
static constexpr int castMode2_ = castMode2; \
static constexpr int regCopyInMode_ = regCopyInMode; \
static constexpr int regCopyOutMode_ = regCopyOutMode; \
using srcType = STN; \
using dstType = DTN; \
};
#else
#define CAST_POLICY_DEFINE(STN, DTN, ST, DT, id, mapDtypeX, mapDtypeY, mapDtypeMid, \
castMode1, castMode2, regCopyInMode, regCopyOutMode) \
optiling::CastMapSt(ge::ST, ge::DT, id, mapDtypeX, mapDtypeY, mapDtypeMid, \
castMode1, castMode2, regCopyInMode, regCopyOutMode),
#endif
#ifndef __CCE_AICORE__
const optiling::CastMapSt castMap[] = {
#endif
CAST_POLICY_DEFINE(bfloat16_t, float, DT_BF16, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_BF16, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, int32_t, DT_BF16, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_BF16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, half, DT_BF16, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_BF16, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, float, DT_FLOAT16, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT16, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, int32_t, DT_FLOAT16, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, bfloat16_t, DT_FLOAT16, DT_BF16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT16, CAST_TPL_BF16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, hifloat8_t, DT_FLOAT16, DT_HIFLOAT8, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT16, CAST_TPL_HIFLOAT8, CAST_TPL_MAX,
CAST_ROUND_MODE_ROUND, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, half, DT_FLOAT, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, int32_t, DT_FLOAT, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, int64_t, DT_FLOAT, DT_INT64, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, bfloat16_t, DT_FLOAT, DT_BF16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_BF16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, fp8_e4m3fn_t, DT_FLOAT, DT_FLOAT8_E4M3FN, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, fp8_e5m2_t, DT_FLOAT, DT_FLOAT8_E5M2, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_FLOAT8_E5M2, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, hifloat8_t, DT_FLOAT, DT_HIFLOAT8, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT, CAST_TPL_HIFLOAT8, CAST_TPL_MAX,
CAST_ROUND_MODE_ROUND, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(hifloat8_t, float, DT_HIFLOAT8, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_HIFLOAT8, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(hifloat8_t, half, DT_HIFLOAT8, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_HIFLOAT8, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(fp8_e4m3fn_t, float, DT_FLOAT8_E4M3FN, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(fp8_e5m2_t, float, DT_FLOAT8_E5M2, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_FLOAT8_E5M2, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, half, DT_INT8, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, int32_t, DT_INT8, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, uint32_t, DT_INT8, DT_UINT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, int16_t, DT_INT8, DT_INT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_INT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, uint16_t, DT_INT8, DT_UINT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_INT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, half, DT_INT16, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT16, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, float, DT_INT16, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT16, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, int32_t, DT_INT16, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, uint32_t, DT_INT16, DT_UINT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int32_t, half, DT_INT32, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT32, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int32_t, float, DT_INT32, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT32, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int32_t, int64_t, DT_INT32, DT_INT64, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT32, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int64_t, float, DT_INT64, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT64, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, half, DT_UINT8, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT8, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, int32_t, DT_UINT8, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, uint32_t, DT_UINT8, DT_UINT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, int16_t, DT_UINT8, DT_INT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT8, CAST_TPL_UINT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, uint16_t, DT_UINT8, DT_UINT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT8, CAST_TPL_UINT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, int32_t, DT_UINT16, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT16, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, uint32_t, DT_UINT16, DT_UINT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_UINT16, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, half, DT_BOOL, DT_FLOAT16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, int32_t, DT_BOOL, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT8, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(double, float, DT_DOUBLE, DT_FLOAT, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_DOUBLE, CAST_TPL_FLOAT, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(double, bfloat16_t, DT_DOUBLE, DT_BF16, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_DOUBLE, CAST_TPL_BF16, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int64_t, double, DT_INT64, DT_DOUBLE, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_INT64, CAST_TPL_DOUBLE, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(double, int32_t, DT_DOUBLE, DT_INT32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_DOUBLE, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_TRUNC, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(double, int64_t, DT_DOUBLE, DT_INT64, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_DOUBLE, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_TRUNC, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(complex64, complex32, DT_COMPLEX64, DT_COMPLEX32, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_COMPLEX64, CAST_TPL_COMPLEX32, CAST_TPL_MAX,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(complex32, complex64, DT_COMPLEX32, DT_COMPLEX64, CAST_TEMPLATE_DIRECT_CAST, CAST_TPL_COMPLEX32, CAST_TPL_COMPLEX64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, bool, DT_BF16, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, bool, DT_FLOAT16, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(float, bool, DT_FLOAT, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, bool, DT_INT8, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int32_t, bool, DT_INT32, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int64_t, bool, DT_INT64, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, bool, DT_INT16, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, bool, DT_UINT8, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, bool, DT_UINT16, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint32_t, bool, DT_UINT32, DT_BOOL, CAST_TEMPLATE_DST_BOOL, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, uint8_t, DT_BOOL, DT_UINT8, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, int8_t, DT_BOOL, DT_INT8, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, uint8_t, DT_INT8, DT_UINT8, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, uint16_t, DT_INT16, DT_UINT16, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int32_t, uint32_t, DT_INT32, DT_UINT32, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, int8_t, DT_UINT8, DT_INT8, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, int16_t, DT_UINT16, DT_INT16, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint32_t, int32_t, DT_UINT32, DT_INT32, CAST_TEMPLATE_THROUGH, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, half, DT_UINT1, DT_FLOAT16, CAST_TEMPLATE_SRC_UINT1, CAST_TPL_MAX, CAST_TPL_MAX, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, hifloat8_t, DT_BF16, DT_HIFLOAT8, CAST_TEMPLATE_TWO_CAST, CAST_TPL_BF16, CAST_TPL_HIFLOAT8, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_ROUND, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, fp8_e4m3fn_t, DT_BF16, DT_FLOAT8_E4M3FN, CAST_TEMPLATE_TWO_CAST, CAST_TPL_BF16, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, fp8_e5m2_t, DT_BF16, DT_FLOAT8_E5M2, CAST_TEMPLATE_TWO_CAST, CAST_TPL_BF16, CAST_TPL_FLOAT8_E5M2, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, fp8_e4m3fn_t, DT_FLOAT16, DT_FLOAT8_E4M3FN, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT16, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, fp8_e5m2_t, DT_FLOAT16, DT_FLOAT8_E5M2, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT16, CAST_TPL_FLOAT8_E5M2, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(hifloat8_t, bfloat16_t, DT_HIFLOAT8, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_HIFLOAT8, CAST_TPL_BF16, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(fp8_e5m2_t, bfloat16_t, DT_FLOAT8_E5M2, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT8_E5M2, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(fp8_e5m2_t, half, DT_FLOAT8_E5M2, DT_FLOAT16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT8_E5M2, CAST_TPL_FLOAT16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(fp8_e4m3fn_t, bfloat16_t, DT_FLOAT8_E4M3FN, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(fp8_e4m3fn_t, half, DT_FLOAT8_E4M3FN, DT_FLOAT16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_FLOAT16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, float, DT_INT8, DT_FLOAT, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_FLOAT, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, bfloat16_t, DT_INT8, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_BF16, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int8_t, int64_t, DT_INT8, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_INT64, CAST_TPL_INT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, float, DT_BOOL, DT_FLOAT, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_FLOAT, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, bfloat16_t, DT_BOOL, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_BF16, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, int64_t, DT_BOOL, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_INT64, CAST_TPL_INT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, int64_t, DT_INT16, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT16, CAST_TPL_INT64, CAST_TPL_INT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int32_t, bfloat16_t, DT_INT32, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT32, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int64_t, half, DT_INT64, DT_FLOAT16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT64, CAST_TPL_FLOAT16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int64_t, bfloat16_t, DT_INT64, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT64, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, float, DT_UINT8, DT_FLOAT, CAST_TEMPLATE_TWO_CAST, CAST_TPL_UINT8, CAST_TPL_FLOAT, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, bfloat16_t, DT_UINT8, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_UINT8, CAST_TPL_BF16, CAST_TPL_FLOAT16,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bfloat16_t, int64_t, DT_BF16, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_BF16, CAST_TPL_INT64, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_TRUNC, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(bool, int16_t, DT_BOOL, DT_INT16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT8, CAST_TPL_INT16, CAST_TPL_INT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, int64_t, DT_FLOAT16, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_FLOAT16, CAST_TPL_INT64, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_TRUNC, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(int16_t, bfloat16_t, DT_INT16, DT_BF16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_INT16, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, half, DT_UINT16, DT_FLOAT16, CAST_TEMPLATE_TWO_CAST, CAST_TPL_UINT16, CAST_TPL_FLOAT16, CAST_TPL_UINT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, float, DT_UINT16, DT_FLOAT, CAST_TEMPLATE_TWO_CAST, CAST_TPL_UINT16, CAST_TPL_FLOAT, CAST_TPL_UINT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_RINT, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint8_t, int64_t, DT_UINT8, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_UINT8, CAST_TPL_INT64, CAST_TPL_UINT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(uint16_t, int64_t, DT_UINT16, DT_INT64, CAST_TEMPLATE_TWO_CAST, CAST_TPL_UINT16, CAST_TPL_INT64, CAST_TPL_UINT32,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_BUTT, CAST_MODE_BUTT)
CAST_POLICY_DEFINE(half, complex32, DT_FLOAT16, DT_COMPLEX32, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_FLOAT16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(float, complex64, DT_FLOAT, DT_COMPLEX64, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_FLOAT, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B32, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(int16_t, int8_t, DT_INT16, DT_INT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT8, CAST_TPL_INT8, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(int16_t, uint8_t, DT_INT16, DT_UINT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT8, CAST_TPL_UINT8, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(int32_t, int8_t, DT_INT32, DT_INT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT32, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(int32_t, uint8_t, DT_INT32, DT_UINT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT32, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(int32_t, int16_t, DT_INT32, DT_INT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT16, CAST_TPL_INT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(int32_t, uint16_t, DT_INT32, DT_UINT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT16, CAST_TPL_UINT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(int64_t, int32_t, DT_INT64, DT_INT32, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT64, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK_B64)
CAST_POLICY_DEFINE(int64_t, uint32_t, DT_INT64, DT_UINT32, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT64, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK_B64)
CAST_POLICY_DEFINE(int64_t, int16_t, DT_INT64, DT_INT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(int64_t, uint16_t, DT_INT64, DT_UINT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT16, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(int64_t, int8_t, DT_INT64, DT_INT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT16, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(int64_t, uint8_t, DT_INT64, DT_UINT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT16, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint16_t, int8_t, DT_UINT16, DT_INT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT8, CAST_TPL_INT8, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint16_t, uint8_t, DT_UINT16, DT_UINT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT8, CAST_TPL_UINT8, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint32_t, int64_t, DT_UINT32, DT_INT64, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT32, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B32, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint32_t, int16_t, DT_UINT32, DT_INT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT16, CAST_TPL_INT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint32_t, uint16_t, DT_UINT32, DT_UINT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT16, CAST_TPL_UINT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint32_t, int8_t, DT_UINT32, DT_INT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT32, CAST_TPL_INT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint32_t, uint8_t, DT_UINT32, DT_UINT8, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_UINT32, CAST_TPL_UINT32, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(complex32, half, DT_COMPLEX32, DT_FLOAT16, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_FLOAT16, CAST_TPL_FLOAT16, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(complex64, float, DT_COMPLEX64, DT_FLOAT, CAST_TEMPLATE_MIRCRO_INOUT, CAST_TPL_INT64, CAST_TPL_INT64, CAST_TPL_MAX,
CAST_ROUND_MODE_NONE, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK_B64)
CAST_POLICY_DEFINE(bfloat16_t, int8_t, DT_BF16, DT_INT8, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_BF16, CAST_TPL_INT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(half, int8_t, DT_FLOAT16, DT_INT8, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_FLOAT16, CAST_TPL_INT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(half, uint8_t, DT_FLOAT16, DT_UINT8, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_FLOAT16, CAST_TPL_UINT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(half, int16_t, DT_FLOAT16, DT_INT16, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_FLOAT16, CAST_TPL_INT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(float, int8_t, DT_FLOAT, DT_INT8, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_FLOAT, CAST_TPL_INT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(float, int16_t, DT_FLOAT, DT_INT16, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_FLOAT, CAST_TPL_INT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(uint8_t, bfloat16_t, DT_FLOAT4_E2M1, DT_BF16, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_UINT8, CAST_TPL_BF16, CAST_TPL_BF16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint8_t, bfloat16_t, DT_FLOAT4_E1M2, DT_BF16, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_UINT8, CAST_TPL_BF16, CAST_TPL_BF16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(bfloat16_t, uint8_t, DT_BF16, DT_FLOAT4_E2M1, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_BF16, CAST_TPL_INT32, CAST_TPL_FLOAT4_E2M1,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(bfloat16_t, uint8_t, DT_BF16, DT_FLOAT4_E1M2, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_BF16, CAST_TPL_INT32, CAST_TPL_FLOAT4_E1M2,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(bfloat16_t, int16_t, DT_BF16, DT_INT16, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_BF16, CAST_TPL_INT32, CAST_TPL_INT32,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(uint32_t, float, DT_UINT32, DT_FLOAT, CAST_TEMPLATE_MIRCRO_CAST, CAST_TPL_UINT32, CAST_TPL_FLOAT, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B32, CAST_MODE_REG_COPYOUT_PACK_B64)
CAST_POLICY_DEFINE(bfloat16_t, complex64, DT_BF16, DT_COMPLEX64, CAST_TEMPLATE_MIRCRO_CAST_INTER, CAST_TPL_BF16, CAST_TPL_INT64, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(float, uint8_t, DT_FLOAT, DT_UINT8, CAST_TEMPLATE_MIRCRO_CAST_DEINTER, CAST_TPL_FLOAT, CAST_TPL_UINT32, CAST_TPL_INT64,
CAST_ROUND_MODE_TRUNC, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_UNPACK_B32, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(complex64, bfloat16_t, DT_COMPLEX64, DT_BF16, CAST_TEMPLATE_MIRCRO_CAST_DEINTER, CAST_TPL_FLOAT, CAST_TPL_INT32, CAST_TPL_BF16,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_NONE, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(bfloat16_t, uint8_t, DT_BF16, DT_UINT8, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER, CAST_TPL_BF16, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_TRUNC, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, half, DT_FLOAT4_E2M1, DT_FLOAT16, CAST_TEMPLATE_MIRCRO_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_FLOAT16, CAST_TPL_BF16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint8_t, half, DT_FLOAT4_E1M2, DT_FLOAT16, CAST_TEMPLATE_MIRCRO_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_FLOAT16, CAST_TPL_BF16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(half, uint8_t, DT_FLOAT16, DT_FLOAT4_E2M1, CAST_TEMPLATE_MIRCRO_CAST_CAST, CAST_TPL_FLOAT16, CAST_TPL_UINT32, CAST_TPL_BF16,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(half, uint8_t, DT_FLOAT16, DT_FLOAT4_E1M2, CAST_TEMPLATE_MIRCRO_CAST_CAST, CAST_TPL_FLOAT16, CAST_TPL_UINT32, CAST_TPL_BF16,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint16_t, bfloat16_t, DT_UINT16, DT_BF16, CAST_TEMPLATE_MIRCRO_CAST_CAST, CAST_TPL_UINT16, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK_B16, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(uint8_t, float, DT_FLOAT4_E2M1, DT_FLOAT, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST, CAST_TPL_UINT8, CAST_TPL_FLOAT, CAST_TPL_BF16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_UNKNOWN, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(uint8_t, float, DT_FLOAT4_E1M2, DT_FLOAT, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST, CAST_TPL_UINT8, CAST_TPL_FLOAT, CAST_TPL_BF16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_UNKNOWN, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_NORM)
CAST_POLICY_DEFINE(float, uint8_t, DT_FLOAT, DT_FLOAT4_E2M1, CAST_TEMPLATE_MIRCRO_CAST_DEINTER_CAST, CAST_TPL_FLOAT, CAST_TPL_UINT32, CAST_TPL_BF16,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(float, uint8_t, DT_FLOAT, DT_FLOAT4_E1M2, CAST_TEMPLATE_MIRCRO_CAST_DEINTER_CAST, CAST_TPL_FLOAT, CAST_TPL_UINT32, CAST_TPL_BF16,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_NORM, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint32_t, half, DT_UINT32, DT_FLOAT16, CAST_TEMPLATE_MIRCRO_CAST_DEINTER_CAST, CAST_TPL_UINT32, CAST_TPL_FLOAT16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK_B32, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(uint32_t, bfloat16_t, DT_UINT32, DT_BF16, CAST_TEMPLATE_MIRCRO_CAST_DEINTER_CAST, CAST_TPL_UINT32, CAST_TPL_BF16, CAST_TPL_FLOAT,
CAST_ROUND_MODE_RINT, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK_B32, CAST_MODE_REG_COPYOUT_PACK_B32)
CAST_POLICY_DEFINE(hifloat8_t, uint8_t, DT_HIFLOAT8, DT_FLOAT4_E2M1, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST, CAST_TPL_HIFLOAT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(hifloat8_t, uint8_t, DT_HIFLOAT8, DT_FLOAT4_E1M2, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST, CAST_TPL_HIFLOAT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(fp8_e5m2_t, uint8_t, DT_FLOAT8_E5M2, DT_FLOAT4_E2M1, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST, CAST_TPL_FLOAT8_E5M2, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(fp8_e5m2_t, uint8_t, DT_FLOAT8_E5M2, DT_FLOAT4_E1M2, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST, CAST_TPL_FLOAT8_E5M2, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(fp8_e4m3fn_t, uint8_t, DT_FLOAT8_E4M3FN, DT_FLOAT4_E2M1, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(fp8_e4m3fn_t, uint8_t, DT_FLOAT8_E4M3FN, DT_FLOAT4_E1M2, CAST_TEMPLATE_MIRCRO_CAST_CAST_DEINTER_CAST, CAST_TPL_FLOAT8_E4M3FN, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, hifloat8_t, DT_FLOAT4_E2M1, DT_HIFLOAT8, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_ROUND, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, hifloat8_t, DT_FLOAT4_E1M2, DT_HIFLOAT8, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_ROUND, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, fp8_e5m2_t, DT_FLOAT4_E2M1, DT_FLOAT8_E5M2, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, fp8_e5m2_t, DT_FLOAT4_E1M2, DT_FLOAT8_E5M2, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, fp8_e4m3fn_t, DT_FLOAT4_E2M1, DT_FLOAT8_E4M3FN, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(uint8_t, fp8_e4m3fn_t, DT_FLOAT4_E1M2, DT_FLOAT8_E4M3FN, CAST_TEMPLATE_MIRCRO_CAST_INTER_CAST_CAST, CAST_TPL_UINT8, CAST_TPL_UINT32, CAST_TPL_FLOAT,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_RINT, CAST_MODE_REG_COPYIN_UNPACK4_B8, CAST_MODE_REG_COPYOUT_PACK4_B32)
CAST_POLICY_DEFINE(int32_t, uint8_t, DT_INT32, DT_INT4, CAST_TEMPLATE_MIRCRO_DEINTER_SHIFT, CAST_TPL_INT16, CAST_TPL_INT16, CAST_TPL_INT16,
CAST_ROUND_MODE_UNKNOWN, CAST_ROUND_MODE_UNKNOWN, CAST_MODE_REG_COPYIN_DS_B16, CAST_MODE_REG_COPYOUT_PACK_B16)
#ifndef __CCE_AICORE__
};
#endif
#endif