#ifndef __TILINGDATA_HEADER__
#define __TILINGDATA_HEADER__
#include "kernel_tiling/kernel_tiling.h"
#ifdef ASCENDC_CPU_DEBUG
#include "kernel_log.h"
#else
#ifndef __aicore__
#define __aicore__ [aicore]
#endif
#endif
class TilingData_A
{
public:
uint32_t A_xxx1 = 0;
uint32_t A_xxx2 = 0;
uint32_t totalLength = 0;
uint32_t tileNum = 0;
};
class TilingData_B
{
public:
uint32_t B_xxx1 = 0;
uint32_t B_xxx2 = 0;
TilingData_A A_in_B;
};
class TilingData_C
{
public:
uint32_t C_xxx1 = 0;
uint32_t C_xxx2 = 0;
TilingData_B B_in_C;
};
class TilingData_E
{
public:
uint32_t E_xxx1 = 0;
uint32_t E_xxx2 = 0;
TilingData_B B_in_E;
};
class TilingData_D
{
public:
uint32_t D_xxx1 = 0;
uint8_t C_in_DPH[4] = {};
TilingData_C C_in_D;
uint32_t D_xxx2 = 0;
uint8_t E_in_DPH[4] = {};
TilingData_E E_in_D;
};
class TilingData_D2
{
public:
__aicore__ __inline__ __attribute__ ((always_inline)) TilingData_D2 () { }
uint32_t totalLength;
uint8_t D_in_tilingPH[4];
TilingData_D D_in_tiling;
uint32_t tileNum;
uint8_t TilingData_D2PH[4];
}__attribute__((__may_alias__));
class TilingData
{
public:
uint32_t totalLength = 0;
uint8_t D_in_tilingPH[4] = {0, 0, 0, 0};
TilingData_D D_in_tiling = {0, {0, 0, 0, 0}, {0, 0, {0, 0, {0, 0, 16384, 8, }, }, }, 0, {0, 0, 0, 0}, {0, 0, {0, 0, {0, 0, 0, 0, }, }, }, };
uint32_t tileNum = 0;
uint8_t TilingDataPH[4] = {0, 0, 0, 0};
};
#ifdef ASCENDC_TIME_STAMP_ON
#define GET_TILING_DATA(tiling_data, tiling_arg) \
const TilingData tiling_data; \
AscendC::PrintTimeStamp(static_cast<uint32_t>(AscendC::TimeStampId::TIME_STAMP_TILING_DATA));
#define GET_TILING_DATA_WITH_STRUCT(tiling_struct, tiling_data, tiling_arg) \
const tiling_struct tiling_data; \
AscendC::PrintTimeStamp(static_cast<uint32_t>(AscendC::TimeStampId::TIME_STAMP_TILING_DATA_STRUCT));
#define GET_TILING_DATA_MEMBER(tiling_type, member, var, tiling) \
const tiling_type point##var; \
auto& var = point##var.member; \
AscendC::PrintTimeStamp(static_cast<uint32_t>(AscendC::TimeStampId::TIME_STAMP_TILING_DATA_MEMBER));
#else
#define GET_TILING_DATA(tiling_data, tiling_arg) \
const TilingData tiling_data;
#define GET_TILING_DATA_WITH_STRUCT(tiling_struct, tiling_data, tiling_arg) \
const tiling_struct tiling_data;
#define GET_TILING_DATA_MEMBER(tiling_type, member, var, tiling) \
const tiling_type point##var; \
auto& var = point##var.member;
#endif
#endif