#ifndef AD_TIGERSHARC_FI_H
#define AD_TIGERSHARC_FI_H

/* Compilers may use another function within the assert macro to exit the 
 * program. QAC thus does not see an "exit" function and assumes the 
 * function returns, which it does not.
 * The below pragma tells QAC the compiler supplied function does not
 * return.
 */

/* examples - GCC, ICC, BCC 3.1, BCC 5.5, CYGWIN gcc, Watcom 1.6 */
#pragma PRQA_NO_RETURN __assert_fail
#pragma PRQA_NO_RETURN __assert_perror_fail
#pragma PRQA_NO_RETURN __assert

/* SDCC, BCC 5.5, Digital Mars DM 8.4, LCC, Watcom 1.6, Fujitsu F2MM,FR */
#pragma PRQA_NO_RETURN _assert

/* HI-TECH PCCLite */
#pragma PRQA_NO_RETURN _fassert

/* DJGPP, D.J.Delorie gcc DOS port */
#pragma PRQA_NO_RETURN __dj_assert

/* Watcom 1.6, MSVS 08 */
#pragma PRQA_NO_RETURN _wassert
#pragma PRQA_NO_RETURN __wassert
#pragma PRQA_NO_RETURN _assert99
#pragma PRQA_NO_RETURN _wassert99
#pragma PRQA_NO_RETURN __assert99
#pragma PRQA_NO_RETURN __wassert99

/* Renesas M32R compiler */
#pragma PRQA_NO_RETURN _Assert

/* NEC 78K0 series 16bit compiler */
#pragma PRQA_NO_RETURN __assertfail
#pragma PRQA_NO_RETURN __assertfail_n
#pragma PRQA_NO_RETURN __assertfail_f


/* Depending on the code that the compiler maker uses within the assert macro,
 * QAC may issue warnings. It is also possible that when the NDEBUG macro is used
 * to suppress the assertion code, QAC may issue a "no side-effects" warning.
 * To eliminate these, we turn off all warnings for the assert macro.
 */
#pragma PRQA_MACRO_MESSAGES_OFF "assert"


/* Any other items that may be required in a "force-include" file should be placed below. */
typedef struct __builtin_quad
{
   long long data;
} __builtin_quad;
int __builtin_abs(int);
int __builtin_abs_2x16(int);
long long __builtin_abs_4x16(long long);
int __builtin_abs_4x8(int);
long long __builtin_abs_8x8(long long);
struct __builtin_quad __builtin_acs_max(long long, long long, int, long long);
struct __builtin_quad __builtin_acs_max_8s(long long, long long, int, long long);
long long __builtin_acs_res2(struct __builtin_quad);
struct __builtin_quad __builtin_acs_tmax(long long, long long, int, long long);
struct __builtin_quad __builtin_acs_tmax_8s(long long, long long, int, long long);
int __builtin_add_2x16(int, int);
int __builtin_add_2x16_sat(int, int);
long long __builtin_add_2x32(long long, long long);
long long __builtin_add_2x32_sat(long long, long long);
unsigned long long __builtin_add_2x32u(unsigned long long, unsigned long long);
long long __builtin_add_4x16(long long, long long);
long long __builtin_add_4x16_sat(long long, long long);
struct __builtin_quad __builtin_add_4x32(struct __builtin_quad, struct __builtin_quad);
struct __builtin_quad __builtin_add_4x32_sat(struct __builtin_quad, struct __builtin_quad);
int __builtin_add_4x8(int, int);
int __builtin_add_4x8_sat(int, int);
long long __builtin_add_8x8(long long, long long);
long long __builtin_add_8x8_sat(long long, long long);
int __builtin_add_sat(int, int);
unsigned int __builtin_add_u2x16(unsigned int, unsigned int);
unsigned int __builtin_add_u2x16_sat(unsigned int, unsigned int);
unsigned long long __builtin_add_u2x32_sat(unsigned long long, unsigned long long);
unsigned long long __builtin_add_u4x16_sat(unsigned long long, unsigned long long);
struct __builtin_quad __builtin_add_u4x32_sat(struct __builtin_quad, struct __builtin_quad);
unsigned int __builtin_add_u4x8_sat(unsigned int, unsigned int);
unsigned long long __builtin_add_u8x8_sat(unsigned long long, unsigned long long);
int __builtin_addbitrev(int, int);
void __builtin_aligned(const void *, int);
void *__builtin_alloca_aligned(int, int);
int __builtin_ashift_2x16(int, int);
long long __builtin_ashift_2x32(long long, int);
long long __builtin_ashift_4x16(long long, int);
int __builtin_ashift_4x8(int, int);
long long __builtin_ashift_8x8(long long, int);
int __builtin_avg(int, int);
int __builtin_avgt(int, int);
void __builtin_btben(void);
void __builtin_btbinv(void);
long __builtin_circindex(long, long, unsigned long);
void *__builtin_circptr(const void *, long, const void *, unsigned long);
int __builtin_clip(int, int);
int __builtin_clip_2x16(int, int);
long long __builtin_clip_4x16(long long, long long);
int __builtin_clip_4x8(int, int);
long long __builtin_clip_8x8(long long, long long);
int __builtin_cmult_conj_fr2x16(int, int);
int __builtin_cmult_conj_fr2x16_sat(int, int);
int __builtin_cmult_conj_i2x16(int, int);
int __builtin_cmult_conj_i2x16_sat(int, int);
long long __builtin_cmult_conj_i2x16_wide(int, int);
int __builtin_cmult_fr2x16(int, int);
int __builtin_cmult_fr2x16_sat(int, int);
int __builtin_cmult_i2x16(int, int);
int __builtin_cmult_i2x16_sat(int, int);
long long __builtin_cmult_i2x16_wide(int, int);
int __builtin_cmultr_conj_fr2x16(int, int);
int __builtin_cmultr_conj_fr2x16_sat(int, int);
int __builtin_cmultr_fr2x16(int, int);
int __builtin_cmultr_fr2x16_sat(int, int);
int __builtin_compact_to_fr2x16(long long);
int __builtin_compact_to_fr2x16_trunc(long long);
int __builtin_compact_to_fr4x8(long long);
int __builtin_compact_to_fr4x8_trunc(long long);
int __builtin_compact_to_i2x16(long long);
int __builtin_compact_to_i2x16_sat(long long);
int __builtin_compact_to_i4x8(long long);
int __builtin_compact_to_i4x8_sat(long long);
struct __builtin_quad __builtin_compose_128(long long, long long);
long long __builtin_compose_64(int, int);
unsigned long long __builtin_compose_64u(unsigned int, unsigned int);
int __builtin_conv_FtoR(float);
long __builtin_conv_LRtoR(int);
float __builtin_conv_RtoF(int);
int __builtin_conv_RtoLR(long);
float __builtin_copysignf(float, float);
int __builtin_count_ones(int);
void *__builtin_dab_2x16_res1(void *, int, void *, int);
int __builtin_dab_2x16_res2(void *);
void *__builtin_dab_2x32_res1(void *, void *, int);
long long __builtin_dab_2x32_res2(void *);
void *__builtin_dab_4x16_res1(void *, int, void *, int);
long long __builtin_dab_4x16_res2(void *);
void *__builtin_dab_4x32_res1(void *, void *, int);
struct __builtin_quad __builtin_dab_4x32_res2(void *);
void *__builtin_dab_8x16_res1(void *, int, void *, int);
struct __builtin_quad __builtin_dab_8x16_res2(void *);
int __builtin_despread(struct __builtin_quad, long long, int);
int __builtin_despread_i(struct __builtin_quad, long long, int);
long long __builtin_despread_res2(int);
int __builtin_exp(int);
int __builtin_exp2(long long);
long long __builtin_expand_fr2x16(int);
long long __builtin_expand_i2x16(int);
long long __builtin_expand_i2x16_ze(int);
long long __builtin_expand_i4x8(int);
long long __builtin_expand_i4x8_ze(int);
long double __builtin_f_compose_64(float, float);
float __builtin_f_high_32(long double);
float __builtin_f_low_32(long double);
long double __builtin_fabs(long double);
float __builtin_fabsf(float);
float __builtin_favgf(float, float);
float __builtin_fclipf(float, float);
int __builtin_fdep(int, int, int);
long long __builtin_fdep2(long long, long long, int);
long long __builtin_fdep2_long_control(long long, long long, long long);
long long __builtin_fdep2_long_control_se(long long, long long, long long);
long long __builtin_fdep2_long_control_zf(long long, long long, long long);
long long __builtin_fdep2_se(long long, long long, int);
long long __builtin_fdep2_zf(long long, long long, int);
int __builtin_fdep_long_control(int, int, long long);
int __builtin_fdep_long_control_se(int, int, long long);
int __builtin_fdep_long_control_zf(int, int, long long);
int __builtin_fdep_se(int, int, int);
int __builtin_fdep_zf(int, int, int);
int __builtin_fext(int, int);
long long __builtin_fext2(long long, int);
long long __builtin_fext2_long_control(long long, long long);
long long __builtin_fext2_long_control_se(long long, long long);
long long __builtin_fext2_long_control_ze(long long, long long);
long long __builtin_fext2_se(long long, int);
long long __builtin_fext2_ze(long long, int);
int __builtin_fext_long_control(int, long long);
int __builtin_fext_long_control_se(int, long long);
int __builtin_fext_long_control_ze(int, long long);
int __builtin_fext_se(int, int);
int __builtin_fext_ze(int, int);
int __builtin_fix(float);
float __builtin_fmaxf(float, float);
float __builtin_fminf(float, float);
int __builtin_high_32(long long);
unsigned int __builtin_high_32u(unsigned long long);
long long __builtin_high_64(struct __builtin_quad);
void __builtin_idle(void);
void __builtin_idle_lp(void);
long __builtin_labs(long);
long __builtin_lavg(long, long);
long __builtin_lavgt(long, long);
long __builtin_lclip(long, long);
int __builtin_lcount_ones(long);
int __builtin_lead_ones(int);
int __builtin_lead_zero(int);
long long __builtin_llabs(long long);
long long __builtin_llavg(long long, long long);
long long __builtin_llclip(long long, long long);
int __builtin_llcount_ones(long long);
int __builtin_lllead_ones(long long);
int __builtin_lllead_zero(long long);
long long __builtin_llmax(long long, long long);
long long __builtin_llmin(long long, long long);
long __builtin_lmax(long, long);
long __builtin_lmin(long, long);
int __builtin_low_32(long long);
unsigned int __builtin_low_32u(unsigned long long);
long long __builtin_low_64(struct __builtin_quad);
int __builtin_lshift_2x16(int, int);
long long __builtin_lshift_2x32(long long, int);
long long __builtin_lshift_4x16(long long, int);
int __builtin_lshift_4x8(int, int);
long long __builtin_lshift_8x8(long long, int);
int __builtin_max(int, int);
int __builtin_max_2x16(int, int);
long long __builtin_max_4x16(long long, long long);
int __builtin_max_4x8(int, int);
long long __builtin_max_8x8(long long, long long);
long long __builtin_max_add(long long, long long, struct __builtin_quad);
long long __builtin_max_add_8s(long long, long long, struct __builtin_quad);
long long __builtin_max_sub(long long, long long, struct __builtin_quad);
long long __builtin_max_sub_8s(long long, long long, struct __builtin_quad);
unsigned int __builtin_max_u2x16(unsigned int, unsigned int);
unsigned long long __builtin_max_u4x16(unsigned long long, unsigned long long);
void *__builtin_memcpy(void *, const void *, unsigned long);
void *__builtin_memmove(void *, const void *, unsigned long);
long long __builtin_merge_2x16(int, int);
long long __builtin_merge_4x8(int, int);
int __builtin_min(int, int);
int __builtin_min_2x16(int, int);
long long __builtin_min_4x16(long long, long long);
int __builtin_min_4x8(int, int);
long long __builtin_min_8x8(long long, long long);
unsigned int __builtin_min_u2x16(unsigned int, unsigned int);
unsigned long long __builtin_min_u4x16(unsigned long long, unsigned long long);
int __builtin_mult_fr1x32(int, int);
int __builtin_mult_fr1x32_sat(int, int);
int __builtin_mult_fr2x16(int, int);
int __builtin_mult_fr2x16_sat(int, int);
long long __builtin_mult_fr4x16(long long, long long);
long long __builtin_mult_fr4x16_sat(long long, long long);
long long __builtin_mult_i1x32_wide(int, int);
int __builtin_mult_i2x16(int, int);
int __builtin_mult_i2x16_sat(int, int);
long long __builtin_mult_i2x16_wide(int, int);
long long __builtin_mult_i2x16_wide_sat(int, int);
long long __builtin_mult_i4x16(long long, long long);
long long __builtin_mult_i4x16_sat(long long, long long);
struct __builtin_quad __builtin_mult_i4x16_wide(long long, long long);
struct __builtin_quad __builtin_mult_i4x16_wide_sat(long long, long long);
int __builtin_mult_sat(int, int);
unsigned long long __builtin_mult_u1x32_wide(unsigned int, unsigned int);
unsigned int __builtin_mult_u2x16(unsigned int, unsigned int);
unsigned long long __builtin_mult_u2x16_wide(unsigned int, unsigned int);
unsigned long long __builtin_mult_u4x16(unsigned long long, unsigned long long);
struct __builtin_quad __builtin_mult_u4x16_wide(unsigned long long, unsigned long long);
int __builtin_multr_fr1x32(int, int);
int __builtin_multr_fr1x32_sat(int, int);
int __builtin_multr_fr2x16(int, int);
int __builtin_multr_fr2x16_sat(int, int);
long long __builtin_multr_fr4x16(long long, long long);
long long __builtin_multr_fr4x16_sat(long long, long long);
int __builtin_neg_2x16_sat(int);
long long __builtin_neg_4x16_sat(long long);
int __builtin_neg_4x8_sat(int);
long long __builtin_neg_8x8_sat(long long);
int __builtin_neg_sat(int);
long long __builtin_permute_8b(long long, int);
struct __builtin_quad __builtin_permute_8s(long long, int);
float __builtin_recip(float);
int __builtin_rotate_1x32(int, int);
long long __builtin_rotate_1x64(long long, int);
long long __builtin_rotate_2x32(long long, int);
float __builtin_rsqrt(float);
char *__builtin_strcpy(char *, const char *);
unsigned long __builtin_strlen(const char *);
int __builtin_sub_2x16(int, int);
int __builtin_sub_2x16_sat(int, int);
long long __builtin_sub_2x32(long long, long long);
long long __builtin_sub_2x32_sat(long long, long long);
unsigned long long __builtin_sub_2x32u(unsigned long long, unsigned long long);
long long __builtin_sub_4x16(long long, long long);
long long __builtin_sub_4x16_sat(long long, long long);
struct __builtin_quad __builtin_sub_4x32(struct __builtin_quad, struct __builtin_quad);
struct __builtin_quad __builtin_sub_4x32_sat(struct __builtin_quad, struct __builtin_quad);
int __builtin_sub_4x8(int, int);
int __builtin_sub_4x8_sat(int, int);
long long __builtin_sub_8x8(long long, long long);
long long __builtin_sub_8x8_sat(long long, long long);
int __builtin_sub_sat(int, int);
unsigned int __builtin_sub_u2x16(unsigned int, unsigned int);
unsigned int __builtin_sub_u2x16_sat(unsigned int, unsigned int);
unsigned long long __builtin_sub_u2x32_sat(unsigned long long, unsigned long long);
unsigned long long __builtin_sub_u4x16_sat(unsigned long long, unsigned long long);
struct __builtin_quad __builtin_sub_u4x32_sat(struct __builtin_quad, struct __builtin_quad);
unsigned int __builtin_sub_u4x8_sat(unsigned int, unsigned int);
unsigned long long __builtin_sub_u8x8_sat(unsigned long long, unsigned long long);
int __builtin_sum_2x16(int);
int __builtin_sum_2x32(long long);
int __builtin_sum_4x16(long long);
int __builtin_sum_4x8(int);
int __builtin_sum_8x8(long long);
int __builtin_sysreg_read(int);
long long __builtin_sysreg_read2(int);
struct __builtin_quad __builtin_sysreg_read4(int);
void __builtin_sysreg_write(int, unsigned int);
void __builtin_sysreg_write2(int, unsigned long long);
void __builtin_sysreg_write4(int, struct __builtin_quad);
int __builtin_tmax(int, int);
int __builtin_tmax_4s(int, int);
long long __builtin_tmax_add(long long, long long, struct __builtin_quad);
long long __builtin_tmax_add_8s(long long, long long, struct __builtin_quad);
long long __builtin_tmax_sub(long long, long long, struct __builtin_quad);
long long __builtin_tmax_sub_8s(long long, long long, struct __builtin_quad);
unsigned int __builtin_uadd_sat(unsigned int, unsigned int);
unsigned int __builtin_usub_sat(unsigned int, unsigned int);
void *__builtin_va_start(const void *, int);
struct __builtin_quad __builtin_xcorrs(struct __builtin_quad, long long, long long, int, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad);
struct __builtin_quad __builtin_xcorrs_clr(struct __builtin_quad, long long, long long, int);
struct __builtin_quad __builtin_xcorrs_clr_ext(struct __builtin_quad, long long, long long, int);
struct __builtin_quad __builtin_xcorrs_ext(struct __builtin_quad, long long, long long, int, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad);
struct __builtin_quad __builtin_xcorrs_i(struct __builtin_quad, long long, long long, int, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad);
struct __builtin_quad __builtin_xcorrs_i_clr(struct __builtin_quad, long long, long long, int);
struct __builtin_quad __builtin_xcorrs_i_clr_ext(struct __builtin_quad, long long, long long, int);
struct __builtin_quad __builtin_xcorrs_i_ext(struct __builtin_quad, long long, long long, int, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad, struct __builtin_quad);
struct __builtin_quad __builtin_xcorrs_res2(struct __builtin_quad);
struct __builtin_quad __builtin_xcorrs_res3(struct __builtin_quad);
struct __builtin_quad __builtin_xcorrs_res4(struct __builtin_quad);
long long __builtin_xcorrs_res5(struct __builtin_quad);
long long __builtin_xcorrs_res6(struct __builtin_quad);

#else
#error "Multiple include"
#endif  /* ifndef AD_TIGERSHARC_FI_H */
