// tvm target: c -keys=cpu -link-params=0
#define TVM_EXPORTS
#include "tvm/runtime/c_runtime_api.h"
#include "tvm/runtime/c_backend_api.h"
#include <math.h>
#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_nn_contrib_dense_pack_add(float* placeholder, float* T_add, uint8_t* global_const_workspace_6_var, uint8_t* global_workspace_7_var) {
  void* fused_nn_contrib_dense_pack_constant_2_let = (&(global_const_workspace_6_var[352]));
  void* fused_constant_1_let = (&(global_const_workspace_6_var[160]));
  void* compute_global_let = (&(global_workspace_7_var[16]));
  for (int32_t x_c_init = 0; x_c_init < 8; ++x_c_init) {
    ((float*)compute_global_let)[x_c_init] = 0.000000e+00f;
  }
  for (int32_t k_outer = 0; k_outer < 5; ++k_outer) {
    for (int32_t x_c = 0; x_c < 8; ++x_c) {
      ((float*)compute_global_let)[x_c] = (((float*)compute_global_let)[x_c] + (placeholder[k_outer] * ((float*)fused_constant_1_let)[((k_outer * 8) + x_c)]));
    }
  }
  for (int32_t ax1_inner_inner = 0; ax1_inner_inner < 8; ++ax1_inner_inner) {
    T_add[ax1_inner_inner] = (((float*)compute_global_let)[ax1_inner_inner] + ((float*)fused_nn_contrib_dense_pack_constant_2_let)[ax1_inner_inner]);
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_nn_contrib_dense_pack_add_1(float* placeholder, float* T_add, uint8_t* global_const_workspace_16_var, uint8_t* global_workspace_17_var) {
  void* fused_nn_contrib_dense_pack_constant_5_let = (&(global_const_workspace_16_var[320]));
  void* fused_constant_4_let = (&(global_const_workspace_16_var[0]));
  void* compute_global_let = (&(global_workspace_17_var[32]));
  for (int32_t x_c_init = 0; x_c_init < 8; ++x_c_init) {
    ((float*)compute_global_let)[x_c_init] = 0.000000e+00f;
  }
  for (int32_t k_outer = 0; k_outer < 5; ++k_outer) {
    for (int32_t x_c = 0; x_c < 8; ++x_c) {
      ((float*)compute_global_let)[x_c] = (((float*)compute_global_let)[x_c] + (placeholder[k_outer] * ((float*)fused_constant_4_let)[((k_outer * 8) + x_c)]));
    }
  }
  for (int32_t ax1_inner_inner = 0; ax1_inner_inner < 8; ++ax1_inner_inner) {
    T_add[ax1_inner_inner] = (((float*)compute_global_let)[ax1_inner_inner] + ((float*)fused_nn_contrib_dense_pack_constant_5_let)[ax1_inner_inner]);
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_nn_contrib_dense_pack_add_2(float* placeholder, float* T_add, uint8_t* global_const_workspace_20_var, uint8_t* global_workspace_21_var) {
  void* fused_nn_contrib_dense_pack_constant_7_let = (&(global_const_workspace_20_var[432]));
  void* fused_constant_6_let = (&(global_const_workspace_20_var[384]));
  void* compute_global_let = (&(global_workspace_21_var[0]));
  for (int32_t x_c_init = 0; x_c_init < 2; ++x_c_init) {
    ((float*)compute_global_let)[x_c_init] = 0.000000e+00f;
  }
  for (int32_t k_outer = 0; k_outer < 2; ++k_outer) {
    for (int32_t x_c = 0; x_c < 2; ++x_c) {
      ((float*)compute_global_let)[x_c] = (((float*)compute_global_let)[x_c] + (placeholder[k_outer] * ((float*)fused_constant_6_let)[((k_outer * 2) + x_c)]));
    }
  }
  for (int32_t ax1_inner_inner = 0; ax1_inner_inner < 2; ++ax1_inner_inner) {
    T_add[ax1_inner_inner] = (((float*)compute_global_let)[ax1_inner_inner] + ((float*)fused_nn_contrib_dense_pack_constant_7_let)[ax1_inner_inner]);
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_reshape_split(float* placeholder, float* T_split_sections, float* T_split_sections1, uint8_t* global_const_workspace_2_var, uint8_t* global_workspace_3_var) {
  for (int32_t ax2_inner = 0; ax2_inner < 3; ++ax2_inner) {
    T_split_sections[ax2_inner] = placeholder[ax2_inner];
  }
  for (int32_t ax2_inner1 = 0; ax2_inner1 < 3; ++ax2_inner1) {
    T_split_sections1[ax2_inner1] = placeholder[(ax2_inner1 + 3)];
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_sigmoid_multiply_sigmoid_tanh_multiply_add(float* placeholder, float* placeholder1, float* placeholder2, float* placeholder3, float* T_add, uint8_t* global_const_workspace_10_var, uint8_t* global_workspace_11_var) {
  void* fused_sigmoid_constant_3_let = (&(global_const_workspace_10_var[416]));
  for (int32_t ax1_inner = 0; ax1_inner < 2; ++ax1_inner) {
    T_add[ax1_inner] = (((1.000000e+00f / (1.000000e+00f + expf((0.000000e+00f - placeholder1[ax1_inner])))) * ((float*)fused_sigmoid_constant_3_let)[ax1_inner]) + ((1.000000e+00f / (1.000000e+00f + expf((0.000000e+00f - placeholder[ax1_inner])))) * tanhf(placeholder2[ax1_inner])));
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_sigmoid_tanh_multiply(float* placeholder, float* placeholder1, float* placeholder2, float* placeholder3, float* placeholder4, float* T_multiply, uint8_t* global_const_workspace_12_var, uint8_t* global_workspace_13_var) {
  for (int32_t ax1_inner = 0; ax1_inner < 2; ++ax1_inner) {
    T_multiply[ax1_inner] = ((1.000000e+00f / (1.000000e+00f + expf((0.000000e+00f - placeholder3[ax1_inner])))) * tanhf(placeholder4[ax1_inner]));
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_split(float* placeholder, float* T_split_sections, float* T_split_sections1, float* T_split_sections2, float* T_split_sections3, uint8_t* global_const_workspace_8_var, uint8_t* global_workspace_9_var) {
  for (int32_t ax1_inner = 0; ax1_inner < 2; ++ax1_inner) {
    T_split_sections[ax1_inner] = placeholder[ax1_inner];
  }
  for (int32_t ax1_inner1 = 0; ax1_inner1 < 2; ++ax1_inner1) {
    T_split_sections1[ax1_inner1] = placeholder[(ax1_inner1 + 2)];
  }
  for (int32_t ax1_inner2 = 0; ax1_inner2 < 2; ++ax1_inner2) {
    T_split_sections2[ax1_inner2] = placeholder[(ax1_inner2 + 4)];
  }
  for (int32_t ax1_inner3 = 0; ax1_inner3 < 2; ++ax1_inner3) {
    T_split_sections3[ax1_inner3] = placeholder[(ax1_inner3 + 6)];
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_split_sigmoid_sigmoid_multiply_sigmoid_tanh_multiply_add_tanh_multiply_sta_71b3153361648375_(float* placeholder, float* placeholder1, float* placeholder2, float* T_squeeze, uint8_t* global_const_workspace_18_var, uint8_t* global_workspace_19_var) {
  for (int32_t ax1_inner = 0; ax1_inner < 2; ++ax1_inner) {
    T_squeeze[ax1_inner] = ((1.000000e+00f / (1.000000e+00f + expf((0.000000e+00f - placeholder[(ax1_inner + 6)])))) * tanhf((((1.000000e+00f / (1.000000e+00f + expf((0.000000e+00f - placeholder[(ax1_inner + 2)])))) * placeholder1[ax1_inner]) + ((1.000000e+00f / (1.000000e+00f + expf((0.000000e+00f - placeholder[ax1_inner])))) * tanhf(placeholder[(ax1_inner + 4)])))));
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_squeeze_concatenate(float* placeholder, float* placeholder1, float* concatenate_ext, uint8_t* global_const_workspace_4_var, uint8_t* global_workspace_5_var) {
  void* fused_squeeze_constant_0_let = (&(global_const_workspace_4_var[400]));
  void* T_squeeze_let = (&(global_workspace_5_var[16]));
  for (int32_t ax0_ax1_fused = 0; ax0_ax1_fused < 3; ++ax0_ax1_fused) {
    ((float*)T_squeeze_let)[ax0_ax1_fused] = placeholder[ax0_ax1_fused];
  }
  for (int32_t j = 0; j < 3; ++j) {
    concatenate_ext[j] = ((float*)T_squeeze_let)[j];
  }
  for (int32_t j1 = 0; j1 < 2; ++j1) {
    concatenate_ext[(j1 + 3)] = ((float*)fused_squeeze_constant_0_let)[j1];
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default_fused_squeeze_concatenate_1(float* placeholder, float* placeholder1, float* placeholder2, float* concatenate_ext, uint8_t* global_const_workspace_14_var, uint8_t* global_workspace_15_var) {
  void* T_squeeze_let = (&(global_workspace_15_var[32]));
  for (int32_t ax0_ax1_fused = 0; ax0_ax1_fused < 3; ++ax0_ax1_fused) {
    ((float*)T_squeeze_let)[ax0_ax1_fused] = placeholder1[ax0_ax1_fused];
  }
  for (int32_t j = 0; j < 3; ++j) {
    concatenate_ext[j] = ((float*)T_squeeze_let)[j];
  }
  for (int32_t j1 = 0; j1 < 2; ++j1) {
    concatenate_ext[(j1 + 3)] = placeholder2[j1];
  }
  return 0;
}

#ifdef __cplusplus
extern "C"
#endif
TVM_DLL int32_t tvmgen_default___tvm_main__(float* input_1_buffer_var, float* output_buffer_var, uint8_t* global_const_workspace_0_var, uint8_t* global_workspace_1_var) {
  void* sid_9_let = (&(global_workspace_1_var[64]));
  void* sid_4_let = (&(global_workspace_1_var[64]));
  void* sid_8_let = (&(global_workspace_1_var[32]));
  void* sid_7_let = (&(global_workspace_1_var[48]));
  void* sid_6_let = (&(global_workspace_1_var[16]));
  void* sid_5_let = (&(global_workspace_1_var[96]));
  void* sid_10_let = (&(global_workspace_1_var[48]));
  void* sid_3_let = (&(global_workspace_1_var[48]));
  void* sid_2_let = (&(global_workspace_1_var[0]));
  void* sid_1_let = (&(global_workspace_1_var[32]));
  void* sid_11_let = (&(global_workspace_1_var[0]));
  void* sid_12_let = (&(global_workspace_1_var[0]));
  void* sid_13_let = (&(global_workspace_1_var[32]));
  if (tvmgen_default_fused_reshape_split(input_1_buffer_var, sid_1_let, sid_2_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_squeeze_concatenate(sid_1_let, sid_2_let, sid_3_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_nn_contrib_dense_pack_add(sid_3_let, sid_4_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_split(sid_4_let, sid_5_let, sid_6_let, sid_7_let, sid_8_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_sigmoid_multiply_sigmoid_tanh_multiply_add(sid_5_let, sid_6_let, sid_7_let, sid_8_let, sid_9_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_sigmoid_tanh_multiply(sid_5_let, sid_6_let, sid_7_let, sid_8_let, sid_9_let, sid_10_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_squeeze_concatenate_1(sid_1_let, sid_2_let, sid_10_let, sid_11_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_nn_contrib_dense_pack_add_1(sid_11_let, sid_12_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_split_sigmoid_sigmoid_multiply_sigmoid_tanh_multiply_add_tanh_multiply_sta_71b3153361648375_(sid_12_let, sid_9_let, sid_10_let, sid_13_let, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  if (tvmgen_default_fused_nn_contrib_dense_pack_add_2(sid_13_let, output_buffer_var, global_const_workspace_0_var, global_workspace_1_var) != 0 ) return -1;
  return 0;
}

