text: /* Provide Declarations */
  #include <stdarg.h>
  #include <setjmp.h>
  #include <limits.h>
  #ifdef NEED_CBEAPINT
  #include <autopilot_cbe.h>
  #else
  #define aesl_fopen fopen
  #define aesl_freopen freopen
  #define aesl_tmpfile tmpfile
  #endif
  #include <stdio.h>
  #include <string.h>
  #include <stdlib.h>
  #include <math.h>
  #ifdef __STRICT_ANSI__
  #define inline __inline__
  #define typeof __typeof__ 
  #endif
  #define __isoc99_fscanf fscanf
  #define __isoc99_sscanf sscanf
  #undef ferror
  #undef feof
  /* get a declaration for alloca */
  #if defined(__CYGWIN__) || defined(__MINGW32__)
  #define  alloca(x) __builtin_alloca((x))
  #define _alloca(x) __builtin_alloca((x))
  #elif defined(__APPLE__)
  extern void *__builtin_alloca(unsigned long);
  #define alloca(x) __builtin_alloca(x)
  #define longjmp _longjmp
  #define setjmp _setjmp
  #elif defined(__sun__)
  #if defined(__sparcv9)
  extern void *__builtin_alloca(unsigned long);
  #else
  extern void *__builtin_alloca(unsigned int);
  #endif
  #define alloca(x) __builtin_alloca(x)
  #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__arm__)
  #define alloca(x) __builtin_alloca(x)
  #elif defined(_MSC_VER)
  #define inline _inline
  #define alloca(x) _alloca(x)
  #else
  #include <alloca.h>
  #endif
  
  #ifndef __GNUC__  /* Can only support "linkonce" vars with GCC */
  #define __attribute__(X)
  #endif
  
  #if defined(__GNUC__) && defined(__APPLE_CC__)
  #define __EXTERNAL_WEAK__ __attribute__((weak_import))
  #elif defined(__GNUC__)
  #define __EXTERNAL_WEAK__ __attribute__((weak))
  #else
  #define __EXTERNAL_WEAK__
  #endif
  
  #if defined(__GNUC__) && (defined(__APPLE_CC__) || defined(__CYGWIN__) || defined(__MINGW32__))
  #define __ATTRIBUTE_WEAK__
  #elif defined(__GNUC__)
  #define __ATTRIBUTE_WEAK__ __attribute__((weak))
  #else
  #define __ATTRIBUTE_WEAK__
  #endif
  
  #if defined(__GNUC__)
  #define __HIDDEN__ __attribute__((visibility("hidden")))
  #endif
  
  #ifdef __GNUC__
  #define LLVM_NAN(NanStr)   __builtin_nan(NanStr)   /* Double */
  #define LLVM_NANF(NanStr)  __builtin_nanf(NanStr)  /* Float */
  #define LLVM_NANS(NanStr)  __builtin_nans(NanStr)  /* Double */
  #define LLVM_NANSF(NanStr) __builtin_nansf(NanStr) /* Float */
  #define LLVM_INF           __builtin_inf()         /* Double */
  #define LLVM_INFF          __builtin_inff()        /* Float */
  #define LLVM_PREFETCH(addr,rw,locality) __builtin_prefetch(addr,rw,locality)
  #define __ATTRIBUTE_CTOR__ __attribute__((constructor))
  #define __ATTRIBUTE_DTOR__ __attribute__((destructor))
  #define LLVM_ASM           __asm__
  #else
  #define LLVM_NAN(NanStr)   ((double)0.0)           /* Double */
  #define LLVM_NANF(NanStr)  0.0F                    /* Float */
  #define LLVM_NANS(NanStr)  ((double)0.0)           /* Double */
  #define LLVM_NANSF(NanStr) 0.0F                    /* Float */
  #define LLVM_INF           ((double)0.0)           /* Double */
  #define LLVM_INFF          0.0F                    /* Float */
  #define LLVM_PREFETCH(addr,rw,locality)            /* PREFETCH */
  #define __ATTRIBUTE_CTOR__
  #define __ATTRIBUTE_DTOR__
  #define LLVM_ASM(X)
  #endif
  
  #if __GNUC__ < 4 /* Old GCC's, or compilers not GCC */ 
  #define __builtin_stack_save() 0   /* not implemented */
  #define __builtin_stack_restore(X) /* noop */
  #endif
  
  #if __GNUC__ && __LP64__ /* 128-bit integer types */
  typedef int __attribute__((mode(TI))) llvmInt128;
  typedef unsigned __attribute__((mode(TI))) llvmUInt128;
  #endif
  
  #define CODE_FOR_MAIN() /* Any target-specific code for main()*/
  
  #ifndef __cplusplus
  typedef unsigned char bool;
  #endif
  
  
  /* Support for floating point constants */
  typedef unsigned long long ConstantDoubleTy;
  typedef unsigned int        ConstantFloatTy;
  typedef struct { unsigned long long f1; unsigned short f2; unsigned short pad[3]; } ConstantFP80Ty;
  typedef struct { unsigned long long f1; unsigned long long f2; } ConstantFP128Ty;
  
  
  /* Global Declarations */
  /* Helper union for bitcasts */
  typedef union {
    unsigned int Int32;
    unsigned long long Int64;
    float Float;
    double Double;
  } llvmBitCastUnion;
  /* Structure forward decls */
  typedef struct l_struct_OC__iobuf l_struct_OC__iobuf;
  
  /* Structure contents */
  struct l_struct_OC__iobuf {
     char *field0;
    unsigned int field1;
     char *field2;
    unsigned int field3;
    unsigned int field4;
    unsigned int field5;
    unsigned int field6;
     char *field7;
  };
  
  
  /* External Global Variable Declarations */
  
  /* Function Declarations */
  double fmod(double, double);
  float fmodf(float, float);
  long double fmodl(long double, long double);
  signed int main(void);
  void duc(signed int , signed short , signed int *, signed int *);
  
  
  /* Global Variable Definitions and Initialization */
  static  char aesl_internal__OC_str[10] = "duc_i.dat";
  static  char aesl_internal__OC_str1[2] = "w";
  static  char aesl_internal__OC_str2[10] = "duc_q.dat";
  static  char aesl_internal__OC_str3[10] = "%i %d %d\n";
  static  char aesl_internal__OC_str4[43] = "diff --brief -w duc_i.dat golden/duc_i.dat";
  static  char aesl_internal__OC_str5[43] = "diff --brief -w duc_q.dat golden/duc_q.dat";
  static  char aesl_internal_str[39] = "\n *** DUC hardware test FAILED ! *** \n";
  static  char aesl_internal_str1[39] = "\n *** DUC hardware test PASSED ! *** \n";
  
  
  /* Function Bodies */
  static inline int llvm_fcmp_ord(double X, double Y) { return X == X && Y == Y; }
  static inline int llvm_fcmp_uno(double X, double Y) { return X != X || Y != Y; }
  static inline int llvm_fcmp_ueq(double X, double Y) { return X == Y || llvm_fcmp_uno(X, Y); }
  static inline int llvm_fcmp_une(double X, double Y) { return X != Y; }
  static inline int llvm_fcmp_ult(double X, double Y) { return X <  Y || llvm_fcmp_uno(X, Y); }
  static inline int llvm_fcmp_ugt(double X, double Y) { return X >  Y || llvm_fcmp_uno(X, Y); }
  static inline int llvm_fcmp_ule(double X, double Y) { return X <= Y || llvm_fcmp_uno(X, Y); }
  static inline int llvm_fcmp_uge(double X, double Y) { return X >= Y || llvm_fcmp_uno(X, Y); }
  static inline int llvm_fcmp_oeq(double X, double Y) { return X == Y ; }
  static inline int llvm_fcmp_one(double X, double Y) { return X != Y && llvm_fcmp_ord(X, Y); }
  static inline int llvm_fcmp_olt(double X, double Y) { return X <  Y ; }
  static inline int llvm_fcmp_ogt(double X, double Y) { return X >  Y ; }
  static inline int llvm_fcmp_ole(double X, double Y) { return X <= Y ; }
  static inline int llvm_fcmp_oge(double X, double Y) { return X >= Y ; }
  
  signed int main(void) {
    static  unsigned long long aesl_llvm_cbe_i_o_count = 0;
    signed int llvm_cbe_i_o[32];    /* Address-exposed local */
    static  unsigned long long aesl_llvm_cbe_q_o_count = 0;
    signed int llvm_cbe_q_o[32];    /* Address-exposed local */
    static  unsigned long long aesl_llvm_cbe_tmp_i_o_count = 0;
    signed int llvm_cbe_tmp_i_o[1];    /* Address-exposed local */
    static  unsigned long long aesl_llvm_cbe_tmp_q_o_count = 0;
    signed int llvm_cbe_tmp_q_o[1];    /* Address-exposed local */
    static  unsigned long long aesl_llvm_cbe_1_count = 0;
    static  unsigned long long aesl_llvm_cbe_2_count = 0;
    l_struct_OC__iobuf *llvm_cbe_tmp__1;
    static  unsigned long long aesl_llvm_cbe_3_count = 0;
    static  unsigned long long aesl_llvm_cbe_4_count = 0;
    static  unsigned long long aesl_llvm_cbe_5_count = 0;
    static  unsigned long long aesl_llvm_cbe_6_count = 0;
    l_struct_OC__iobuf *llvm_cbe_tmp__2;
    static  unsigned long long aesl_llvm_cbe_7_count = 0;
    static  unsigned long long aesl_llvm_cbe_8_count = 0;
    static  unsigned long long aesl_llvm_cbe_9_count = 0;
    static  unsigned long long aesl_llvm_cbe_10_count = 0;
    static  unsigned long long aesl_llvm_cbe_11_count = 0;
    static  unsigned long long aesl_llvm_cbe_12_count = 0;
    static  unsigned long long aesl_llvm_cbe_13_count = 0;
    static  unsigned long long aesl_llvm_cbe_14_count = 0;
    static  unsigned long long aesl_llvm_cbe_15_count = 0;
    static  unsigned long long aesl_llvm_cbe_16_count = 0;
    static  unsigned long long aesl_llvm_cbe_17_count = 0;
    static  unsigned long long aesl_llvm_cbe_18_count = 0;
    static  unsigned long long aesl_llvm_cbe_19_count = 0;
    static  unsigned long long aesl_llvm_cbe_20_count = 0;
    static  unsigned long long aesl_llvm_cbe_21_count = 0;
    static  unsigned long long aesl_llvm_cbe_22_count = 0;
    static  unsigned long long aesl_llvm_cbe_23_count = 0;
    static  unsigned long long aesl_llvm_cbe_24_count = 0;
    static  unsigned long long aesl_llvm_cbe_25_count = 0;
    static  unsigned long long aesl_llvm_cbe_26_count = 0;
    static  unsigned long long aesl_llvm_cbe_27_count = 0;
    static  unsigned long long aesl_llvm_cbe_28_count = 0;
    static  unsigned long long aesl_llvm_cbe_29_count = 0;
    static  unsigned long long aesl_llvm_cbe_30_count = 0;
    static  unsigned long long aesl_llvm_cbe_31_count = 0;
    static  unsigned long long aesl_llvm_cbe_32_count = 0;
    static  unsigned long long aesl_llvm_cbe_33_count = 0;
    static  unsigned long long aesl_llvm_cbe_34_count = 0;
    static  unsigned long long aesl_llvm_cbe_35_count = 0;
    static  unsigned long long aesl_llvm_cbe_36_count = 0;
    static  unsigned long long aesl_llvm_cbe_37_count = 0;
    static  unsigned long long aesl_llvm_cbe_38_count = 0;
    signed int *llvm_cbe_tmp__3;
    static  unsigned long long aesl_llvm_cbe_39_count = 0;
    signed int *llvm_cbe_tmp__4;
    static  unsigned long long aesl_llvm_cbe_40_count = 0;
    static  unsigned long long aesl_llvm_cbe_storemerge10_count = 0;
    unsigned int llvm_cbe_storemerge10;
    unsigned int llvm_cbe_storemerge10__PHI_TEMPORARY;
    static  unsigned long long aesl_llvm_cbe_41_count = 0;
    static  unsigned long long aesl_llvm_cbe_42_count = 0;
    static  unsigned long long aesl_llvm_cbe_43_count = 0;
    static  unsigned long long aesl_llvm_cbe_44_count = 0;
    static  unsigned long long aesl_llvm_cbe_45_count = 0;
    static  unsigned long long aesl_llvm_cbe_46_count = 0;
    static  unsigned long long aesl_llvm_cbe_47_count = 0;
    unsigned int llvm_cbe_tmp__5;
    static  unsigned long long aesl_llvm_cbe_48_count = 0;
    static  unsigned long long aesl_llvm_cbe_49_count = 0;
    static  unsigned long long aesl_llvm_cbe_50_count = 0;
    static  unsigned long long aesl_llvm_cbe_51_count = 0;
    static  unsigned long long aesl_llvm_cbe_52_count = 0;
    static  unsigned long long aesl_llvm_cbe_53_count = 0;
    static  unsigned long long aesl_llvm_cbe_54_count = 0;
    static  unsigned long long aesl_llvm_cbe_55_count = 0;
    static  unsigned long long aesl_llvm_cbe_56_count = 0;
    static  unsigned long long aesl_llvm_cbe_57_count = 0;
    static  unsigned long long aesl_llvm_cbe_58_count = 0;
    static  unsigned long long aesl_llvm_cbe_59_count = 0;
    static  unsigned long long aesl_llvm_cbe_60_count = 0;
    static  unsigned long long aesl_llvm_cbe_61_count = 0;
    static  unsigned long long aesl_llvm_cbe_62_count = 0;
    static  unsigned long long aesl_llvm_cbe_exitcond13_count = 0;
    static  unsigned long long aesl_llvm_cbe_63_count = 0;
    static  unsigned long long aesl_llvm_cbe_storemerge19_count = 0;
    unsigned int llvm_cbe_storemerge19;
    unsigned int llvm_cbe_storemerge19__PHI_TEMPORARY;
    static  unsigned long long aesl_llvm_cbe_64_count = 0;
    static  unsigned long long aesl_llvm_cbe_65_count = 0;
    static  unsigned long long aesl_llvm_cbe_storemerge2_count = 0;
    unsigned int llvm_cbe_storemerge2;
    static  unsigned long long aesl_llvm_cbe_66_count = 0;
    static  unsigned long long aesl_llvm_cbe_67_count = 0;
    static  unsigned long long aesl_llvm_cbe_68_count = 0;
    static  unsigned long long aesl_llvm_cbe_69_count = 0;
    static  unsigned long long aesl_llvm_cbe_70_count = 0;
    unsigned int llvm_cbe_tmp__6;
    static  unsigned long long aesl_llvm_cbe_71_count = 0;
    static  unsigned long long aesl_llvm_cbe_72_count = 0;
    static  unsigned long long aesl_llvm_cbe_73_count = 0;
    static  unsigned long long aesl_llvm_cbe_74_count = 0;
    static  unsigned long long aesl_llvm_cbe_75_count = 0;
    static  unsigned long long aesl_llvm_cbe_76_count = 0;
    static  unsigned long long aesl_llvm_cbe_77_count = 0;
    static  unsigned long long aesl_llvm_cbe_78_count = 0;
    static  unsigned long long aesl_llvm_cbe_79_count = 0;
    static  unsigned long long aesl_llvm_cbe_80_count = 0;
    static  unsigned long long aesl_llvm_cbe_81_count = 0;
    static  unsigned long long aesl_llvm_cbe_82_count = 0;
    static  unsigned long long aesl_llvm_cbe_83_count = 0;
    static  unsigned long long aesl_llvm_cbe_84_count = 0;
    static  unsigned long long aesl_llvm_cbe_85_count = 0;
    static  unsigned long long aesl_llvm_cbe_86_count = 0;
    static  unsigned long long aesl_llvm_cbe_87_count = 0;
    static  unsigned long long aesl_llvm_cbe_88_count = 0;
    static  unsigned long long aesl_llvm_cbe_89_count = 0;
    static  unsigned long long aesl_llvm_cbe_90_count = 0;
    static  unsigned long long aesl_llvm_cbe_91_count = 0;
    static  unsigned long long aesl_llvm_cbe_92_count = 0;
    static  unsigned long long aesl_llvm_cbe_93_count = 0;
    static  unsigned long long aesl_llvm_cbe_94_count = 0;
    static  unsigned long long aesl_llvm_cbe_95_count = 0;
    static  unsigned long long aesl_llvm_cbe_96_count = 0;
    static  unsigned long long aesl_llvm_cbe_97_count = 0;
    static  unsigned long long aesl_llvm_cbe_98_count = 0;
    static  unsigned long long aesl_llvm_cbe_99_count = 0;
    static  unsigned long long aesl_llvm_cbe_100_count = 0;
    static  unsigned long long aesl_llvm_cbe_101_count = 0;
    static  unsigned long long aesl_llvm_cbe_102_count = 0;
    static  unsigned long long aesl_llvm_cbe_103_count = 0;
    static  unsigned long long aesl_llvm_cbe_104_count = 0;
    static  unsigned long long aesl_llvm_cbe_105_count = 0;
    static  unsigned long long aesl_llvm_cbe_106_count = 0;
    static  unsigned long long aesl_llvm_cbe_107_count = 0;
    static  unsigned long long aesl_llvm_cbe_108_count = 0;
    static  unsigned long long aesl_llvm_cbe_109_count = 0;
    unsigned int llvm_cbe_tmp__7;
    static  unsigned long long aesl_llvm_cbe_110_count = 0;
    unsigned int llvm_cbe_tmp__8;
    static  unsigned long long aesl_llvm_cbe_111_count = 0;
    unsigned int llvm_cbe_tmp__9;
    static  unsigned long long aesl_llvm_cbe_112_count = 0;
    unsigned int llvm_cbe_tmp__10;
    static  unsigned long long aesl_llvm_cbe_113_count = 0;
    static  unsigned long long aesl_llvm_cbe_storemerge37_count = 0;
    unsigned int llvm_cbe_storemerge37;
    unsigned int llvm_cbe_storemerge37__PHI_TEMPORARY;
    static  unsigned long long aesl_llvm_cbe_114_count = 0;
    unsigned int llvm_cbe_tmp__11;
    unsigned int llvm_cbe_tmp__11__PHI_TEMPORARY;
    static  unsigned long long aesl_llvm_cbe_115_count = 0;
    static  unsigned long long aesl_llvm_cbe_116_count = 0;
    static  unsigned long long aesl_llvm_cbe_117_count = 0;
    unsigned int llvm_cbe_tmp__12;
    static  unsigned long long aesl_llvm_cbe_118_count = 0;
    static  unsigned long long aesl_llvm_cbe_119_count = 0;
    unsigned int llvm_cbe_tmp__13;
    static  unsigned long long aesl_llvm_cbe_120_count = 0;
    static  unsigned long long aesl_llvm_cbe_121_count = 0;
    static  unsigned long long aesl_llvm_cbe_122_count = 0;
    static  unsigned long long aesl_llvm_cbe_123_count = 0;
    static  unsigned long long aesl_llvm_cbe__2e__count = 0;
    unsigned int llvm_cbe__2e_;
    static  unsigned long long aesl_llvm_cbe_124_count = 0;
    static  unsigned long long aesl_llvm_cbe_125_count = 0;
    static  unsigned long long aesl_llvm_cbe_126_count = 0;
    static  unsigned long long aesl_llvm_cbe_127_count = 0;
    static  unsigned long long aesl_llvm_cbe_128_count = 0;
    unsigned int llvm_cbe_tmp__14;
    static  unsigned long long aesl_llvm_cbe_129_count = 0;
    unsigned long long llvm_cbe_tmp__15;
    static  unsigned long long aesl_llvm_cbe_130_count = 0;
    signed int *llvm_cbe_tmp__16;
    static  unsigned long long aesl_llvm_cbe_131_count = 0;
    static  unsigned long long aesl_llvm_cbe_132_count = 0;
    unsigned int llvm_cbe_tmp__17;
    static  unsigned long long aesl_llvm_cbe_133_count = 0;
    signed int *llvm_cbe_tmp__18;
    static  unsigned long long aesl_llvm_cbe_134_count = 0;
    static  unsigned long long aesl_llvm_cbe_135_count = 0;
    static  unsigned long long aesl_llvm_cbe_136_count = 0;
    unsigned int llvm_cbe_tmp__19;
    unsigned int llvm_cbe_tmp__19__PHI_TEMPORARY;
    static  unsigned long long aesl_llvm_cbe_137_count = 0;
    unsigned int llvm_cbe_tmp__20;
    static  unsigned long long aesl_llvm_cbe_138_count = 0;
    static  unsigned long long aesl_llvm_cbe_139_count = 0;
    static  unsigned long long aesl_llvm_cbe_140_count = 0;
    static  unsigned long long aesl_llvm_cbe_141_count = 0;
    static  unsigned long long aesl_llvm_cbe_142_count = 0;
    static  unsigned long long aesl_llvm_cbe_143_count = 0;
    static  unsigned long long aesl_llvm_cbe_144_count = 0;
    static  unsigned long long aesl_llvm_cbe_145_count = 0;
    static  unsigned long long aesl_llvm_cbe_146_count = 0;
    static  unsigned long long aesl_llvm_cbe_147_count = 0;
    static  unsigned long long aesl_llvm_cbe_148_count = 0;
    static  unsigned long long aesl_llvm_cbe_149_count = 0;
    static  unsigned long long aesl_llvm_cbe_150_count = 0;
    static  unsigned long long aesl_llvm_cbe_151_count = 0;
    static  unsigned long long aesl_llvm_cbe_152_count = 0;
    static  unsigned long long aesl_llvm_cbe_exitcond11_count = 0;
    static  unsigned long long aesl_llvm_cbe_153_count = 0;
    static  unsigned long long aesl_llvm_cbe_storemerge46_count = 0;
    unsigned int llvm_cbe_storemerge46;
    unsigned int llvm_cbe_storemerge46__PHI_TEMPORARY;
    static  unsigned long long aesl_llvm_cbe_154_count = 0;
    unsigned long long llvm_cbe_tmp__21;
    static  unsigned long long aesl_llvm_cbe_155_count = 0;
    signed int *llvm_cbe_tmp__22;
    static  unsigned long long aesl_llvm_cbe_156_count = 0;
    unsigned int llvm_cbe_tmp__23;
    static  unsigned long long aesl_llvm_cbe_157_count = 0;
    static  unsigned long long aesl_llvm_cbe_158_count = 0;
    static  unsigned long long aesl_llvm_cbe_159_count = 0;
    unsigned int llvm_cbe_tmp__24;
    static  unsigned long long aesl_llvm_cbe_160_count = 0;
    unsigned int llvm_cbe_tmp__25;
    static  unsigned long long aesl_llvm_cbe_161_count = 0;
    signed int *llvm_cbe_tmp__26;
    static  unsigned long long aesl_llvm_cbe_162_count = 0;
    unsigned int llvm_cbe_tmp__27;
    static  unsigned long long aesl_llvm_cbe_163_count = 0;
    static  unsigned long long aesl_llvm_cbe_164_count = 0;
    static  unsigned long long aesl_llvm_cbe_165_count = 0;
    unsigned int llvm_cbe_tmp__28;
    static  unsigned long long aesl_llvm_cbe_166_count = 0;
    unsigned int llvm_cbe_tmp__29;
    static  unsigned long long aesl_llvm_cbe_167_count = 0;
    unsigned int llvm_cbe_tmp__30;
    static  unsigned long long aesl_llvm_cbe_168_count = 0;
    static  unsigned long long aesl_llvm_cbe_169_count = 0;
    static  unsigned long long aesl_llvm_cbe_170_count = 0;
    static  unsigned long long aesl_llvm_cbe_171_count = 0;
    static  unsigned long long aesl_llvm_cbe_172_count = 0;
    static  unsigned long long aesl_llvm_cbe_173_count = 0;
    static  unsigned long long aesl_llvm_cbe_174_count = 0;
    static  unsigned long long aesl_llvm_cbe_175_count = 0;
    static  unsigned long long aesl_llvm_cbe_176_count = 0;
    static  unsigned long long aesl_llvm_cbe_177_count = 0;
    static  unsigned long long aesl_llvm_cbe_178_count = 0;
    static  unsigned long long aesl_llvm_cbe_179_count = 0;
    static  unsigned long long aesl_llvm_cbe_180_count = 0;
    static  unsigned long long aesl_llvm_cbe_181_count = 0;
    static  unsigned long long aesl_llvm_cbe_182_count = 0;
    static  unsigned long long aesl_llvm_cbe_exitcond_count = 0;
    static  unsigned long long aesl_llvm_cbe_183_count = 0;
    static  unsigned long long aesl_llvm_cbe_184_count = 0;
    unsigned int llvm_cbe_tmp__31;
    static  unsigned long long aesl_llvm_cbe_185_count = 0;
    static  unsigned long long aesl_llvm_cbe_186_count = 0;
    static  unsigned long long aesl_llvm_cbe_187_count = 0;
    static  unsigned long long aesl_llvm_cbe_188_count = 0;
    static  unsigned long long aesl_llvm_cbe_189_count = 0;
    static  unsigned long long aesl_llvm_cbe_190_count = 0;
    static  unsigned long long aesl_llvm_cbe_exitcond12_count = 0;
    static  unsigned long long aesl_llvm_cbe_191_count = 0;
    static  unsigned long long aesl_llvm_cbe_192_count = 0;
    unsigned int llvm_cbe_tmp__32;
    static  unsigned long long aesl_llvm_cbe_193_count = 0;
    unsigned int llvm_cbe_tmp__33;
    static  unsigned long long aesl_llvm_cbe_194_count = 0;
    unsigned int llvm_cbe_tmp__34;
    static  unsigned long long aesl_llvm_cbe_195_count = 0;
    static  unsigned long long aesl_llvm_cbe_196_count = 0;
    static  unsigned long long aesl_llvm_cbe_197_count = 0;
    static  unsigned long long aesl_llvm_cbe_198_count = 0;
    unsigned int llvm_cbe_tmp__35;
    static  unsigned long long aesl_llvm_cbe_199_count = 0;
    static  unsigned long long aesl_llvm_cbe_200_count = 0;
    static  unsigned long long aesl_llvm_cbe_201_count = 0;
    static  unsigned long long aesl_llvm_cbe_202_count = 0;
    unsigned int llvm_cbe_tmp__36;
    static  unsigned long long aesl_llvm_cbe_203_count = 0;
    static  unsigned long long aesl_llvm_cbe_204_count = 0;
    static  unsigned long long aesl_llvm_cbe_puts_count = 0;
    unsigned int llvm_cbe_puts;
    static  unsigned long long aesl_llvm_cbe_205_count = 0;
    static  unsigned long long aesl_llvm_cbe_puts5_count = 0;
    unsigned int llvm_cbe_puts5;
    static  unsigned long long aesl_llvm_cbe_206_count = 0;
    static  unsigned long long aesl_llvm_cbe_207_count = 0;
    static  unsigned long long aesl_llvm_cbe_208_count = 0;
    unsigned int llvm_cbe_tmp__37;
    static  unsigned long long aesl_llvm_cbe_209_count = 0;
  
    CODE_FOR_MAIN();
  const char* AESL_DEBUG_TRACE = getenv("DEBUG_TRACE");
  if (AESL_DEBUG_TRACE)
  printf("\n\{ BEGIN @main\n");
  if (AESL_DEBUG_TRACE)
  printf("\n  %%1 = call %%struct._iobuf* @fopen(i8* getelementptr inbounds ([10 x i8]* @aesl_internal_.str, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8]* @aesl_internal_.str1, i64 0, i64 0)) nounwind, !dbg !2 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_2_count);
    llvm_cbe_tmp__1 = (l_struct_OC__iobuf *)aesl_fopen(( char *)((&aesl_internal__OC_str[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 10
  #endif
  ])), ( char *)((&aesl_internal__OC_str1[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 2
  #endif
  ])));
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__1);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%2 = call %%struct._iobuf* @fopen(i8* getelementptr inbounds ([10 x i8]* @aesl_internal_.str2, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8]* @aesl_internal_.str1, i64 0, i64 0)) nounwind, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_6_count);
    llvm_cbe_tmp__2 = (l_struct_OC__iobuf *)aesl_fopen(( char *)((&aesl_internal__OC_str2[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 10
  #endif
  ])), ( char *)((&aesl_internal__OC_str1[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 2
  #endif
  ])));
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__2);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%3 = getelementptr inbounds [1 x i18]* %%tmp_i_o, i64 0, i64 0, !dbg !7 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_38_count);
    llvm_cbe_tmp__3 = (signed int *)(&llvm_cbe_tmp_i_o[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 1
  #endif
  ]);
  if (AESL_DEBUG_TRACE) {
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%4 = getelementptr inbounds [1 x i18]* %%tmp_q_o, i64 0, i64 0, !dbg !7 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_39_count);
    llvm_cbe_tmp__4 = (signed int *)(&llvm_cbe_tmp_q_o[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 1
  #endif
  ]);
  if (AESL_DEBUG_TRACE) {
  }
    llvm_cbe_storemerge10__PHI_TEMPORARY = (unsigned int )0u;   /* for PHI node */
    goto llvm_cbe_tmp__38;
  
    do {     /* Syntactic loop '' to make GCC happy */
  llvm_cbe_tmp__38:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%storemerge10 = phi i32 [ 0, %%0 ], [ %%10, %%9  for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_storemerge10_count);
    llvm_cbe_storemerge10 = (unsigned int )llvm_cbe_storemerge10__PHI_TEMPORARY;
  if (AESL_DEBUG_TRACE) {
  printf("\nstoremerge10 = 0x%X",llvm_cbe_storemerge10);
  printf("\n = 0x%X",0u);
  printf("\n = 0x%X",llvm_cbe_tmp__5);
  }
    if ((((signed int )llvm_cbe_storemerge10) < ((signed int )48u))) {
      goto llvm_cbe_tmp__39;
    } else {
      goto llvm_cbe_tmp__40;
    }
  
  llvm_cbe_tmp__41:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%10 = add nsw i32 %%storemerge10, 1, !dbg !8 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_47_count);
    llvm_cbe_tmp__5 = (unsigned int )((unsigned int )(llvm_cbe_storemerge10&4294967295ull)) + ((unsigned int )(1u&4294967295ull));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((unsigned int )(llvm_cbe_tmp__5&4294967295ull)));
    if (((llvm_cbe_tmp__5&4294967295U) == (96u&4294967295U))) {
      llvm_cbe_storemerge19__PHI_TEMPORARY = (unsigned int )0u;   /* for PHI node */
      goto llvm_cbe__2e_preheader8;
    } else {
      llvm_cbe_storemerge10__PHI_TEMPORARY = (unsigned int )llvm_cbe_tmp__5;   /* for PHI node */
      goto llvm_cbe_tmp__38;
    }
  
  llvm_cbe_tmp__39:
  if (AESL_DEBUG_TRACE)
  printf("\n  call void @duc(i18 signext 0, i16 zeroext 6628, i18* %%3, i18* %%4) nounwind, !dbg !7 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_43_count);
    duc(((unsigned int )0), ((unsigned short )6628), (signed int *)llvm_cbe_tmp__3, (signed int *)llvm_cbe_tmp__4);
  if (AESL_DEBUG_TRACE) {
  printf("\nArgument  = 0x%X",((unsigned int )0));
  printf("\nArgument  = 0x%X",((unsigned short )6628));
  }
    goto llvm_cbe_tmp__41;
  
  llvm_cbe_tmp__40:
  if (AESL_DEBUG_TRACE)
  printf("\n  call void @duc(i18 signext 0, i16 zeroext 6628, i18* %%3, i18* %%4) nounwind, !dbg !8 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_45_count);
    duc(((unsigned int )0), ((unsigned short )6628), (signed int *)llvm_cbe_tmp__3, (signed int *)llvm_cbe_tmp__4);
  if (AESL_DEBUG_TRACE) {
  printf("\nArgument  = 0x%X",((unsigned int )0));
  printf("\nArgument  = 0x%X",((unsigned short )6628));
  }
    goto llvm_cbe_tmp__41;
  
    } while (1); /* end of syntactic loop '' */
    do {     /* Syntactic loop '.preheader8' to make GCC happy */
  llvm_cbe__2e_preheader8:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%storemerge19 = phi i32 [ %%45, %%44 ], [ 0, %%9  for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_storemerge19_count);
    llvm_cbe_storemerge19 = (unsigned int )llvm_cbe_storemerge19__PHI_TEMPORARY;
  if (AESL_DEBUG_TRACE) {
  printf("\nstoremerge19 = 0x%X",llvm_cbe_storemerge19);
  printf("\n = 0x%X",llvm_cbe_tmp__31);
  printf("\n = 0x%X",0u);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%storemerge2 = select i1 %%11, i18 -131072, i18 0, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_storemerge2_count);
    llvm_cbe_storemerge2 = (unsigned int )((((llvm_cbe_storemerge19&4294967295U) == (0u&4294967295U))) ? ((unsigned int )((unsigned int )131072u)) : ((unsigned int )((unsigned int )0)));
  if (AESL_DEBUG_TRACE)
  printf("\nstoremerge2 = 0x%X\n", llvm_cbe_storemerge2);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%12 = sub i18 0, %%storemerge2, !dbg !7 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_70_count);
    llvm_cbe_tmp__6 = (unsigned int )-(llvm_cbe_storemerge2);
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((unsigned int )(llvm_cbe_tmp__6&262143ull)));
    llvm_cbe_storemerge37__PHI_TEMPORARY = (unsigned int )0u;   /* for PHI node */
    llvm_cbe_tmp__11__PHI_TEMPORARY = (unsigned int )4294967295u;   /* for PHI node */
    goto llvm_cbe_tmp__42;
  
  llvm_cbe_tmp__43:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%45 = add nsw i32 %%storemerge19, 1, !dbg !11 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_184_count);
    llvm_cbe_tmp__31 = (unsigned int )((unsigned int )(llvm_cbe_storemerge19&4294967295ull)) + ((unsigned int )(1u&4294967295ull));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((unsigned int )(llvm_cbe_tmp__31&4294967295ull)));
    if (((llvm_cbe_tmp__31&4294967295U) == (34u&4294967295U))) {
      goto llvm_cbe_tmp__44;
    } else {
      llvm_cbe_storemerge19__PHI_TEMPORARY = (unsigned int )llvm_cbe_tmp__31;   /* for PHI node */
      goto llvm_cbe__2e_preheader8;
    }
  
    do {     /* Syntactic loop '' to make GCC happy */
  llvm_cbe_tmp__45:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%storemerge46 = phi i32 [ 0, %%.preheader ], [ %%43, %%33  for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_storemerge46_count);
    llvm_cbe_storemerge46 = (unsigned int )llvm_cbe_storemerge46__PHI_TEMPORARY;
  if (AESL_DEBUG_TRACE) {
  printf("\nstoremerge46 = 0x%X",llvm_cbe_storemerge46);
  printf("\n = 0x%X",0u);
  printf("\n = 0x%X",llvm_cbe_tmp__30);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%34 = sext i32 %%storemerge46 to i64, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_154_count);
    llvm_cbe_tmp__21 = (unsigned long long )((signed long long )(signed int )llvm_cbe_storemerge46);
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%I64X\n", llvm_cbe_tmp__21);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%35 = getelementptr inbounds [32 x i18]* %%i_o, i64 0, i64 %%34, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_155_count);
    llvm_cbe_tmp__22 = (signed int *)(&llvm_cbe_i_o[(((signed long long )llvm_cbe_tmp__21))
  #ifdef AESL_BC_SIM
   % 32
  #endif
  ]);
  if (AESL_DEBUG_TRACE) {
  printf("\n = 0x%I64X",((signed long long )llvm_cbe_tmp__21));
  }
  
  #ifdef AESL_BC_SIM
    if (!(((signed long long )llvm_cbe_tmp__21) < 32)) fprintf(stderr, "%s:%d: warning: Read access out of array 'i_o' bound?\n", __FILE__, __LINE__);
  
  #endif
  if (AESL_DEBUG_TRACE)
  printf("\n  %%36 = load i18* %%35, align 4, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_156_count);
    llvm_cbe_tmp__23 = (unsigned int )*llvm_cbe_tmp__22;
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__23);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%37 = sext i18 %%36 to i32, !dbg !3 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_159_count);
    llvm_cbe_tmp__24 = (unsigned int )((signed int )(signed int )(llvm_cbe_tmp__23 & (1U << 17U )  ? llvm_cbe_tmp__23 | 4294705152U : llvm_cbe_tmp__23 & 262143U));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__24);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%38 = call i32 (%%struct._iobuf*, i8*, ...)* @fprintf(%%struct._iobuf* %%1, i8* getelementptr inbounds ([10 x i8]* @aesl_internal_.str3, i64 0, i64 0), i32 %%storemerge19, i32 %%14, i32 %%37) nounwind, !dbg !3 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_160_count);
    fprintf((l_struct_OC__iobuf *)llvm_cbe_tmp__1, ( char *)((&aesl_internal__OC_str3[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 10
  #endif
  ])), llvm_cbe_storemerge19, llvm_cbe_tmp__8, llvm_cbe_tmp__24);
  if (AESL_DEBUG_TRACE) {
  printf("\nArgument storemerge19 = 0x%X",llvm_cbe_storemerge19);
  printf("\nArgument  = 0x%X",llvm_cbe_tmp__8);
  printf("\nArgument  = 0x%X",llvm_cbe_tmp__24);
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__25);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%39 = getelementptr inbounds [32 x i18]* %%q_o, i64 0, i64 %%34, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_161_count);
    llvm_cbe_tmp__26 = (signed int *)(&llvm_cbe_q_o[(((signed long long )llvm_cbe_tmp__21))
  #ifdef AESL_BC_SIM
   % 32
  #endif
  ]);
  if (AESL_DEBUG_TRACE) {
  printf("\n = 0x%I64X",((signed long long )llvm_cbe_tmp__21));
  }
  
  #ifdef AESL_BC_SIM
    if (!(((signed long long )llvm_cbe_tmp__21) < 32)) fprintf(stderr, "%s:%d: warning: Read access out of array 'q_o' bound?\n", __FILE__, __LINE__);
  
  #endif
  if (AESL_DEBUG_TRACE)
  printf("\n  %%40 = load i18* %%39, align 4, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_162_count);
    llvm_cbe_tmp__27 = (unsigned int )*llvm_cbe_tmp__26;
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__27);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%41 = sext i18 %%40 to i32, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_165_count);
    llvm_cbe_tmp__28 = (unsigned int )((signed int )(signed int )(llvm_cbe_tmp__27 & (1U << 17U )  ? llvm_cbe_tmp__27 | 4294705152U : llvm_cbe_tmp__27 & 262143U));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__28);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%42 = call i32 (%%struct._iobuf*, i8*, ...)* @fprintf(%%struct._iobuf* %%2, i8* getelementptr inbounds ([10 x i8]* @aesl_internal_.str3, i64 0, i64 0), i32 %%storemerge19, i32 %%16, i32 %%41) nounwind, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_166_count);
    fprintf((l_struct_OC__iobuf *)llvm_cbe_tmp__2, ( char *)((&aesl_internal__OC_str3[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 10
  #endif
  ])), llvm_cbe_storemerge19, llvm_cbe_tmp__10, llvm_cbe_tmp__28);
  if (AESL_DEBUG_TRACE) {
  printf("\nArgument storemerge19 = 0x%X",llvm_cbe_storemerge19);
  printf("\nArgument  = 0x%X",llvm_cbe_tmp__10);
  printf("\nArgument  = 0x%X",llvm_cbe_tmp__28);
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__29);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%43 = add nsw i32 %%storemerge46, 1, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_167_count);
    llvm_cbe_tmp__30 = (unsigned int )((unsigned int )(llvm_cbe_storemerge46&4294967295ull)) + ((unsigned int )(1u&4294967295ull));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((unsigned int )(llvm_cbe_tmp__30&4294967295ull)));
    if (((llvm_cbe_tmp__30&4294967295U) == (16u&4294967295U))) {
      goto llvm_cbe_tmp__43;
    } else {
      llvm_cbe_storemerge46__PHI_TEMPORARY = (unsigned int )llvm_cbe_tmp__30;   /* for PHI node */
      goto llvm_cbe_tmp__45;
    }
  
    } while (1); /* end of syntactic loop '' */
  llvm_cbe__2e_preheader:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%13 = sext i18 %%storemerge2 to i32, !dbg !3 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_109_count);
    llvm_cbe_tmp__7 = (unsigned int )((signed int )(signed int )(llvm_cbe_storemerge2 & (1U << 17U )  ? llvm_cbe_storemerge2 | 4294705152U : llvm_cbe_storemerge2 & 262143U));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__7);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%14 = ashr exact i32 %%13, 17, !dbg !3 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_110_count);
    llvm_cbe_tmp__8 = (unsigned int )((signed int )(((signed int )llvm_cbe_tmp__7) >> ((signed int )17u)));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((signed int )llvm_cbe_tmp__8));
  if (AESL_DEBUG_TRACE)
  printf("\n  %%15 = sext i18 %%12 to i32, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_111_count);
    llvm_cbe_tmp__9 = (unsigned int )((signed int )(signed int )(llvm_cbe_tmp__6 & (1U << 17U )  ? llvm_cbe_tmp__6 | 4294705152U : llvm_cbe_tmp__6 & 262143U));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__9);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%16 = ashr exact i32 %%15, 17, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_112_count);
    llvm_cbe_tmp__10 = (unsigned int )((signed int )(((signed int )llvm_cbe_tmp__9) >> ((signed int )17u)));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((signed int )llvm_cbe_tmp__10));
    llvm_cbe_storemerge46__PHI_TEMPORARY = (unsigned int )0u;   /* for PHI node */
    goto llvm_cbe_tmp__45;
  
    do {     /* Syntactic loop '' to make GCC happy */
  llvm_cbe_tmp__42:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%storemerge37 = phi i32 [ 0, %%.preheader8 ], [ %%32, %%30  for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_storemerge37_count);
    llvm_cbe_storemerge37 = (unsigned int )llvm_cbe_storemerge37__PHI_TEMPORARY;
  if (AESL_DEBUG_TRACE) {
  printf("\nstoremerge37 = 0x%X",llvm_cbe_storemerge37);
  printf("\n = 0x%X",0u);
  printf("\n = 0x%X",llvm_cbe_tmp__20);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%18 = phi i32 [ -1, %%.preheader8 ], [ %%31, %%30  for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_114_count);
    llvm_cbe_tmp__11 = (unsigned int )llvm_cbe_tmp__11__PHI_TEMPORARY;
  if (AESL_DEBUG_TRACE) {
  printf("\n = 0x%X",llvm_cbe_tmp__11);
  printf("\n = 0x%X",4294967295u);
  printf("\n = 0x%X",llvm_cbe_tmp__19);
  }
    if ((((signed int )llvm_cbe_storemerge37) > ((signed int )47u))) {
      goto llvm_cbe_tmp__46;
    } else {
      goto llvm_cbe__2e_thread;
    }
  
  llvm_cbe_tmp__47:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%31 = phi i32 [ %%18, %%.thread ], [ %%., %%20 ], [ %%., %%24  for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_136_count);
    llvm_cbe_tmp__19 = (unsigned int )llvm_cbe_tmp__19__PHI_TEMPORARY;
  if (AESL_DEBUG_TRACE) {
  printf("\n = 0x%X",llvm_cbe_tmp__19);
  printf("\n = 0x%X",llvm_cbe_tmp__11);
  printf("\n. = 0x%X",llvm_cbe__2e_);
  printf("\n. = 0x%X",llvm_cbe__2e_);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%32 = add nsw i32 %%storemerge37, 1, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_137_count);
    llvm_cbe_tmp__20 = (unsigned int )((unsigned int )(llvm_cbe_storemerge37&4294967295ull)) + ((unsigned int )(1u&4294967295ull));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((unsigned int )(llvm_cbe_tmp__20&4294967295ull)));
    if (((llvm_cbe_tmp__20&4294967295U) == (96u&4294967295U))) {
      goto llvm_cbe__2e_preheader;
    } else {
      llvm_cbe_storemerge37__PHI_TEMPORARY = (unsigned int )llvm_cbe_tmp__20;   /* for PHI node */
      llvm_cbe_tmp__11__PHI_TEMPORARY = (unsigned int )llvm_cbe_tmp__19;   /* for PHI node */
      goto llvm_cbe_tmp__42;
    }
  
  llvm_cbe_tmp__46:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%21 = srem i32 %%storemerge37, 6, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_117_count);
    llvm_cbe_tmp__12 = (unsigned int )((signed int )(((signed int )llvm_cbe_storemerge37) % ((signed int )6u)));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((signed int )llvm_cbe_tmp__12));
  if (AESL_DEBUG_TRACE)
  printf("\n  %%23 = add nsw i32 %%18, 1, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_119_count);
    llvm_cbe_tmp__13 = (unsigned int )((unsigned int )(llvm_cbe_tmp__11&4294967295ull)) + ((unsigned int )(1u&4294967295ull));
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", ((unsigned int )(llvm_cbe_tmp__13&4294967295ull)));
  if (AESL_DEBUG_TRACE)
  printf("\n  %%. = select i1 %%22, i32 %%23, i32 %%18, !dbg !9 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe__2e__count);
    llvm_cbe__2e_ = (unsigned int )(((((signed int )llvm_cbe_tmp__12) < ((signed int )2u))) ? ((unsigned int )llvm_cbe_tmp__13) : ((unsigned int )llvm_cbe_tmp__11));
  if (AESL_DEBUG_TRACE)
  printf("\n. = 0x%X\n", llvm_cbe__2e_);
  if (AESL_DEBUG_TRACE)
  printf("\n  call void @duc(i18 signext %%12, i16 zeroext 6628, i18* %%3, i18* %%4) nounwind, !dbg !8 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_124_count);
    duc(llvm_cbe_tmp__6, ((unsigned short )6628), (signed int *)llvm_cbe_tmp__3, (signed int *)llvm_cbe_tmp__4);
  if (AESL_DEBUG_TRACE) {
  printf("\nArgument  = 0x%X",llvm_cbe_tmp__6);
  printf("\nArgument  = 0x%X",((unsigned short )6628));
  }
    if ((((signed int )llvm_cbe_tmp__12) < ((signed int )2u))) {
      goto llvm_cbe_tmp__48;
    } else {
      llvm_cbe_tmp__19__PHI_TEMPORARY = (unsigned int )llvm_cbe__2e_;   /* for PHI node */
      goto llvm_cbe_tmp__47;
    }
  
  llvm_cbe__2e_thread:
  if (AESL_DEBUG_TRACE)
  printf("\n  call void @duc(i18 signext %%storemerge2, i16 zeroext 6628, i18* %%3, i18* %%4) nounwind, !dbg !7 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_126_count);
    duc(llvm_cbe_storemerge2, ((unsigned short )6628), (signed int *)llvm_cbe_tmp__3, (signed int *)llvm_cbe_tmp__4);
  if (AESL_DEBUG_TRACE) {
  printf("\nArgument storemerge2 = 0x%X",llvm_cbe_storemerge2);
  printf("\nArgument  = 0x%X",((unsigned short )6628));
  }
    llvm_cbe_tmp__19__PHI_TEMPORARY = (unsigned int )llvm_cbe_tmp__11;   /* for PHI node */
    goto llvm_cbe_tmp__47;
  
  llvm_cbe_tmp__48:
  
  #ifdef AESL_BC_SIM
    if (!(((signed long long )0ull) < 1)) fprintf(stderr, "%s:%d: warning: Read access out of array 'tmp_i_o' bound?\n", __FILE__, __LINE__);
  
  #endif
  if (AESL_DEBUG_TRACE)
  printf("\n  %%25 = load i18* %%3, align 4, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_128_count);
    llvm_cbe_tmp__14 = (unsigned int )*llvm_cbe_tmp__3;
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__14);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%26 = sext i32 %%. to i64, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_129_count);
    llvm_cbe_tmp__15 = (unsigned long long )((signed long long )(signed int )llvm_cbe__2e_);
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%I64X\n", llvm_cbe_tmp__15);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%27 = getelementptr inbounds [32 x i18]* %%i_o, i64 0, i64 %%26, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_130_count);
    llvm_cbe_tmp__16 = (signed int *)(&llvm_cbe_i_o[(((signed long long )llvm_cbe_tmp__15))
  #ifdef AESL_BC_SIM
   % 32
  #endif
  ]);
  if (AESL_DEBUG_TRACE) {
  printf("\n = 0x%I64X",((signed long long )llvm_cbe_tmp__15));
  }
  
  #ifdef AESL_BC_SIM
    assert(((signed long long )llvm_cbe_tmp__15) < 32 && "Write access out of array 'i_o' bound?");
  
  #endif
  if (AESL_DEBUG_TRACE)
  printf("\n  store i18 %%25, i18* %%27, align 4, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_131_count);
    *llvm_cbe_tmp__16 = ((llvm_cbe_tmp__14) & 262143ull);
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__14);
  
  #ifdef AESL_BC_SIM
    if (!(((signed long long )0ull) < 1)) fprintf(stderr, "%s:%d: warning: Read access out of array 'tmp_q_o' bound?\n", __FILE__, __LINE__);
  
  #endif
  if (AESL_DEBUG_TRACE)
  printf("\n  %%28 = load i18* %%4, align 4, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_132_count);
    llvm_cbe_tmp__17 = (unsigned int )*llvm_cbe_tmp__4;
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__17);
  if (AESL_DEBUG_TRACE)
  printf("\n  %%29 = getelementptr inbounds [32 x i18]* %%q_o, i64 0, i64 %%26, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_133_count);
    llvm_cbe_tmp__18 = (signed int *)(&llvm_cbe_q_o[(((signed long long )llvm_cbe_tmp__15))
  #ifdef AESL_BC_SIM
   % 32
  #endif
  ]);
  if (AESL_DEBUG_TRACE) {
  printf("\n = 0x%I64X",((signed long long )llvm_cbe_tmp__15));
  }
  
  #ifdef AESL_BC_SIM
    assert(((signed long long )llvm_cbe_tmp__15) < 32 && "Write access out of array 'q_o' bound?");
  
  #endif
  if (AESL_DEBUG_TRACE)
  printf("\n  store i18 %%28, i18* %%29, align 4, !dbg !10 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_134_count);
    *llvm_cbe_tmp__18 = ((llvm_cbe_tmp__17) & 262143ull);
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__17);
    llvm_cbe_tmp__19__PHI_TEMPORARY = (unsigned int )llvm_cbe__2e_;   /* for PHI node */
    goto llvm_cbe_tmp__47;
  
    } while (1); /* end of syntactic loop '' */
    } while (1); /* end of syntactic loop '.preheader8' */
  llvm_cbe_tmp__44:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%47 = call i32 @fclose(%%struct._iobuf* %%1) nounwind, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_192_count);
    fclose((l_struct_OC__iobuf *)llvm_cbe_tmp__1);
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__32);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%48 = call i32 @fclose(%%struct._iobuf* %%2) nounwind, !dbg !4 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_193_count);
    fclose((l_struct_OC__iobuf *)llvm_cbe_tmp__2);
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__33);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%49 = call i32 @system(i8* getelementptr inbounds ([43 x i8]* @aesl_internal_.str4, i64 0, i64 0)) nounwind, !dbg !11 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_194_count);
    llvm_cbe_tmp__34 = (unsigned int )system(( char *)((&aesl_internal__OC_str4[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 43
  #endif
  ])));
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__34);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%50 = call i32 @system(i8* getelementptr inbounds ([43 x i8]* @aesl_internal_.str5, i64 0, i64 0)) nounwind, !dbg !12 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_198_count);
    llvm_cbe_tmp__35 = (unsigned int )system(( char *)((&aesl_internal__OC_str5[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 43
  #endif
  ])));
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn  = 0x%X",llvm_cbe_tmp__35);
  }
  if (AESL_DEBUG_TRACE)
  printf("\n  %%51 = or i32 %%50, %%49, !dbg !11 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_202_count);
    llvm_cbe_tmp__36 = (unsigned int )llvm_cbe_tmp__35 | llvm_cbe_tmp__34;
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__36);
    if (((llvm_cbe_tmp__36&4294967295U) == (0u&4294967295U))) {
      goto llvm_cbe_tmp__49;
    } else {
      goto llvm_cbe_tmp__50;
    }
  
  llvm_cbe_tmp__50:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%puts = call i32 @puts(i8* getelementptr inbounds ([39 x i8]* @aesl_internal_str, i64 0, i64 0)), !dbg !12 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_puts_count);
    puts(( char *)((&aesl_internal_str[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 39
  #endif
  ])));
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn puts = 0x%X",llvm_cbe_puts);
  }
    goto llvm_cbe_tmp__51;
  
  llvm_cbe_tmp__49:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%puts5 = call i32 @puts(i8* getelementptr inbounds ([39 x i8]* @aesl_internal_str1, i64 0, i64 0)), !dbg !12 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_puts5_count);
    puts(( char *)((&aesl_internal_str1[(((signed long long )0ull))
  #ifdef AESL_BC_SIM
   % 39
  #endif
  ])));
  if (AESL_DEBUG_TRACE) {
  printf("\nReturn puts5 = 0x%X",llvm_cbe_puts5);
  }
    goto llvm_cbe_tmp__51;
  
  llvm_cbe_tmp__51:
  if (AESL_DEBUG_TRACE)
  printf("\n  %%57 = zext i1 %%56 to i32, !dbg !12 for 0x%I64xth hint within @main  --> \n", ++aesl_llvm_cbe_208_count);
    llvm_cbe_tmp__37 = (unsigned int )((unsigned int )(bool )((llvm_cbe_tmp__36&4294967295U) != (0u&4294967295U))&1U);
  if (AESL_DEBUG_TRACE)
  printf("\n = 0x%X\n", llvm_cbe_tmp__37);
    if (AESL_DEBUG_TRACE)
        printf("\nEND @main}\n");
    return llvm_cbe_tmp__37;
  }
  
  