#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
double M_PI;
double cos(double);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, ...);
double sin(double);
void gentbl_afsk1200(FILE *f) {
  int i, v, sum;
  fprintf(f,
          "\n/*\n * afsk1200 specific tables\n */\n"
          "#define AFSK12_SAMPLE_RATE %u\n"
          "#define AFSK12_TX_FREQ_LO %u\n"
          "#define AFSK12_TX_FREQ_HI %u\n"
          "#define AFSK12_CORRLEN %u\n\n",
          9600, 1200, 2200, 8);
  fprintf(f, "static const int afsk12_tx_lo_i[] = {\n\t");
  for (sum = i = 0; i < 8; i++) {
    sum +=
        (v = 127.0 * cos(2.0 * M_PI * (double)i * (double)1200 / (double)9600));
    fprintf(f, " %4i%c", v, (i < 8 - 1) ? ',' : ' ');
  }
  fprintf(f,
          "\n};\n#define SUM_AFSK12_TX_LO_I %d\n\n"
          "static const int afsk12_tx_lo_q[] = {\n\t",
          sum);
  for (sum = i = 0; i < 8; i++) {
    sum +=
        (v = 127.0 * sin(2.0 * M_PI * (double)i * (double)1200 / (double)9600));
    fprintf(f, " %4i%c", v, (i < 8 - 1) ? ',' : ' ');
  }
  fprintf(f,
          "\n};\n#define SUM_AFSK12_TX_LO_Q %d\n\n"
          "static const int afsk12_tx_hi_i[] = {\n\t",
          sum);
  for (sum = i = 0; i < 8; i++) {
    sum +=
        (v = 127.0 * cos(2.0 * M_PI * (double)i * (double)2200 / (double)9600));
    fprintf(f, " %4i%c", v, (i < 8 - 1) ? ',' : ' ');
  }
  fprintf(f,
          "\n};\n#define SUM_AFSK12_TX_HI_I %d\n\n"
          "static const int afsk12_tx_hi_q[] = {\n\t",
          sum);
  for (sum = i = 0; i < 8; i++) {
    sum +=
        (v = 127.0 * sin(2.0 * M_PI * (double)i * (double)2200 / (double)9600));
    fprintf(f, " %4i%c", v, (i < 8 - 1) ? ',' : ' ');
  }
  fprintf(f, "\n};\n#define SUM_AFSK12_TX_HI_Q %d\n\n", sum);
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xee1(%rip),%rsi
mov    $0x2580,%edx
mov    $0x4b0,%ecx
mov    $0x898,%r8d
mov    $0x8,%r9d
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0x8(%rbp),%rdi
lea    0xf51(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x8,-0xc(%rbp)
jge    1219 <gentbl_afsk1200+0xe9>
movsd  0xe82(%rip),%xmm0
mov    0x2e4b(%rip),%rax
mulsd  (%rax),%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe6e(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe4a(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1050 <cos@plt>
movaps %xmm0,%xmm1
movsd  0xe2e(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x10(%rbp)
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%edx
mov    -0xc(%rbp),%esi
mov    $0x20,%ecx
mov    $0x2c,%eax
cmp    $0x7,%esi
cmovl  %eax,%ecx
lea    0xee4(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1184 <gentbl_afsk1200+0x54>
mov    -0x8(%rbp),%rdi
mov    -0x14(%rbp),%edx
lea    0xec8(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x8,-0xc(%rbp)
jge    12d1 <gentbl_afsk1200+0x1a1>
movsd  0xdca(%rip),%xmm0
mov    0x2d93(%rip),%rax
mulsd  (%rax),%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xdb6(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd92(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <sin@plt>
movaps %xmm0,%xmm1
movsd  0xd76(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x10(%rbp)
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%edx
mov    -0xc(%rbp),%esi
mov    $0x20,%ecx
mov    $0x2c,%eax
cmp    $0x7,%esi
cmovl  %eax,%ecx
lea    0xe2c(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    123c <gentbl_afsk1200+0x10c>
mov    -0x8(%rbp),%rdi
mov    -0x14(%rbp),%edx
lea    0xe5b(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x8,-0xc(%rbp)
jge    1389 <gentbl_afsk1200+0x259>
movsd  0xd12(%rip),%xmm0
mov    0x2cdb(%rip),%rax
mulsd  (%rax),%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcee(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcda(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1050 <cos@plt>
movaps %xmm0,%xmm1
movsd  0xcbe(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x10(%rbp)
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%edx
mov    -0xc(%rbp),%esi
mov    $0x20,%ecx
mov    $0x2c,%eax
cmp    $0x7,%esi
cmovl  %eax,%ecx
lea    0xd74(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    12f4 <gentbl_afsk1200+0x1c4>
mov    -0x8(%rbp),%rdi
mov    -0x14(%rbp),%edx
lea    0xdee(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x8,-0xc(%rbp)
jge    1441 <gentbl_afsk1200+0x311>
movsd  0xc5a(%rip),%xmm0
mov    0x2c23(%rip),%rax
mulsd  (%rax),%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc36(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc22(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <sin@plt>
movaps %xmm0,%xmm1
movsd  0xc06(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x10(%rbp)
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%edx
mov    -0xc(%rbp),%esi
mov    $0x20,%ecx
mov    $0x2c,%eax
cmp    $0x7,%esi
cmovl  %eax,%ecx
lea    0xcbc(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    13ac <gentbl_afsk1200+0x27c>
mov    -0x8(%rbp),%rdi
mov    -0x14(%rbp),%edx
lea    0xd81(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %rdi,%r12
lea    0xed3(%rip),%rsi
mov    $0x8,%ebx
mov    $0x2580,%edx
mov    $0x4b0,%ecx
mov    $0x898,%r8d
mov    $0x8,%r9d
xor    %eax,%eax
call   1030 <fprintf@plt>
lea    0xf42(%rip),%rdi
mov    $0x27,%esi
mov    $0x1,%edx
mov    %r12,%rcx
call   1060 <fwrite@plt>
xorpd  %xmm1,%xmm1
mov    0x2e4d(%rip),%r15
mov    $0x20,%r13d
lea    0xf40(%rip),%r14
xor    %ebp,%ebp
nopw   0x0(%rax,%rax,1)
movsd  %xmm1,(%rsp)
movsd  (%r15),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm1,%xmm0
mulsd  0xe36(%rip),%xmm0
divsd  0xe36(%rip),%xmm0
call   1050 <cos@plt>
mulsd  0xe31(%rip),%xmm0
cvttsd2si %xmm0,%edx
add    %edx,%ebp
cmp    $0x1,%ebx
mov    $0x2c,%ecx
cmove  %r13d,%ecx
mov    %r12,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
movsd  (%rsp),%xmm1
addsd  0xe0d(%rip),%xmm1
add    $0xffffffff,%ebx
jne    11b0 <gentbl_afsk1200+0x70>
lea    0xed8(%rip),%rsi
mov    %r12,%rdi
mov    %ebp,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
xorpd  %xmm1,%xmm1
mov    $0x8,%ebx
mov    $0x20,%r13d
lea    0xeaf(%rip),%r14
xor    %ebp,%ebp
nopl   0x0(%rax,%rax,1)
movsd  %xmm1,(%rsp)
movsd  (%r15),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm1,%xmm0
mulsd  0xda6(%rip),%xmm0
divsd  0xda6(%rip),%xmm0
call   1040 <sin@plt>
mulsd  0xda1(%rip),%xmm0
cvttsd2si %xmm0,%edx
add    %edx,%ebp
cmp    $0x1,%ebx
mov    $0x2c,%ecx
cmove  %r13d,%ecx
mov    %r12,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
movsd  (%rsp),%xmm1
addsd  0xd7d(%rip),%xmm1
add    $0xffffffff,%ebx
jne    1240 <gentbl_afsk1200+0x100>
lea    0xe93(%rip),%rsi
mov    %r12,%rdi
mov    %ebp,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
xorpd  %xmm1,%xmm1
mov    $0x8,%ebx
mov    $0x20,%r13d
lea    0xe1f(%rip),%r14
xor    %ebp,%ebp
nopl   0x0(%rax,%rax,1)
movsd  %xmm1,(%rsp)
movsd  (%r15),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm1,%xmm0
mulsd  0xd36(%rip),%xmm0
divsd  0xd16(%rip),%xmm0
call   1050 <cos@plt>
mulsd  0xd11(%rip),%xmm0
cvttsd2si %xmm0,%edx
add    %edx,%ebp
cmp    $0x1,%ebx
mov    $0x2c,%ecx
cmove  %r13d,%ecx
mov    %r12,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
movsd  (%rsp),%xmm1
addsd  0xced(%rip),%xmm1
add    $0xffffffff,%ebx
jne    12d0 <gentbl_afsk1200+0x190>
lea    0xe4e(%rip),%rsi
mov    %r12,%rdi
mov    %ebp,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
xorpd  %xmm1,%xmm1
mov    $0x8,%ebx
mov    $0x20,%r13d
lea    0xd8f(%rip),%r14
xor    %ebp,%ebp
nopl   0x0(%rax,%rax,1)
movsd  %xmm1,(%rsp)
movsd  (%r15),%xmm0
addsd  %xmm0,%xmm0
mulsd  %xmm1,%xmm0
mulsd  0xca6(%rip),%xmm0
divsd  0xc86(%rip),%xmm0
call   1040 <sin@plt>
mulsd  0xc81(%rip),%xmm0
cvttsd2si %xmm0,%edx
add    %edx,%ebp
cmp    $0x1,%ebx
mov    $0x2c,%ecx
cmove  %r13d,%ecx
mov    %r12,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
movsd  (%rsp),%xmm1
addsd  0xc5d(%rip),%xmm1
add    $0xffffffff,%ebx
jne    1360 <gentbl_afsk1200+0x220>
lea    0xe09(%rip),%rsi
mov    %r12,%rdi
mov    %ebp,%edx
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@.str = [152 x i8] c"\0A/*\0A * afsk1200 specific tables\0A */\0A#define AFSK12_SAMPLE_RATE %u\0A#define AFSK12_TX_FREQ_LO %u\0A#define AFSK12_TX_FREQ_HI %u\0A#define AFSK12_CORRLEN %u\0A\0A\00"
@.str.1 = [40 x i8] c"static const int afsk12_tx_lo_i[] = {\0A\09\00"
@M_PI = global double 0.000000e+00
@.str.2 = [7 x i8] c" %4i%c\00"
@.str.3 = [75 x i8] c"\0A};\0A#define SUM_AFSK12_TX_LO_I %d\0A\0Astatic const int afsk12_tx_lo_q[] = {\0A\09\00"
@.str.4 = [75 x i8] c"\0A};\0A#define SUM_AFSK12_TX_LO_Q %d\0A\0Astatic const int afsk12_tx_hi_i[] = {\0A\09\00"
@.str.5 = [75 x i8] c"\0A};\0A#define SUM_AFSK12_TX_HI_I %d\0A\0Astatic const int afsk12_tx_hi_q[] = {\0A\09\00"
@.str.6 = [36 x i8] c"\0A};\0A#define SUM_AFSK12_TX_HI_Q %d\0A\0A\00"
define void @gentbl_afsk1200(i32* %0) {
%2 = alloca i32*
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
store i32* %0, i32** %2
%6 = load i32*, i32** %2
%7 = call i32 (i32*, i8*, ...) @fprintf(i32* %6, i8* getelementptr inbounds ([152 x i8], [152 x i8]* @.str, i64 0, i64 0), i32 9600, i32 1200, i32 2200, i32 8)
%8 = load i32*, i32** %2
%9 = call i32 (i32*, i8*, ...) @fprintf(i32* %8, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.1, i64 0, i64 0))
store i32 0, i32* %3
store i32 0, i32* %5
br label %10
10: ; preds = %33, %1
%11 = load i32, i32* %3
%12 = icmp slt i32 %11, 8
br i1 %12, label %13, label %36
13: ; preds = %10
%14 = load double, double* @M_PI
%15 = fmul double 2.000000e+00, %14
%16 = load i32, i32* %3
%17 = sitofp i32 %16 to double
%18 = fmul double %15, %17
%19 = fmul double %18, 1.200000e+03
%20 = fdiv double %19, 9.600000e+03
%21 = call double @cos(double %20)
%22 = fmul double 1.270000e+02, %21
%23 = fptosi double %22 to i32
store i32 %23, i32* %4
%24 = load i32, i32* %5
%25 = add nsw i32 %24, %23
store i32 %25, i32* %5
%26 = load i32*, i32** %2
%27 = load i32, i32* %4
%28 = load i32, i32* %3
%29 = icmp slt i32 %28, 7
%30 = zext i1 %29 to i64
%31 = select i1 %29, i32 44, i32 32
%32 = call i32 (i32*, i8*, ...) @fprintf(i32* %26, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %27, i32 %31)
br label %33
33: ; preds = %13
%34 = load i32, i32* %3
%35 = add nsw i32 %34, 1
store i32 %35, i32* %3
br label %10
36: ; preds = %10
%37 = load i32*, i32** %2
%38 = load i32, i32* %5
%39 = call i32 (i32*, i8*, ...) @fprintf(i32* %37, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.3, i64 0, i64 0), i32 %38)
store i32 0, i32* %3
store i32 0, i32* %5
br label %40
40: ; preds = %63, %36
%41 = load i32, i32* %3
%42 = icmp slt i32 %41, 8
br i1 %42, label %43, label %66
43: ; preds = %40
%44 = load double, double* @M_PI
%45 = fmul double 2.000000e+00, %44
%46 = load i32, i32* %3
%47 = sitofp i32 %46 to double
%48 = fmul double %45, %47
%49 = fmul double %48, 1.200000e+03
%50 = fdiv double %49, 9.600000e+03
%51 = call double @sin(double %50)
%52 = fmul double 1.270000e+02, %51
%53 = fptosi double %52 to i32
store i32 %53, i32* %4
%54 = load i32, i32* %5
%55 = add nsw i32 %54, %53
store i32 %55, i32* %5
%56 = load i32*, i32** %2
%57 = load i32, i32* %4
%58 = load i32, i32* %3
%59 = icmp slt i32 %58, 7
%60 = zext i1 %59 to i64
%61 = select i1 %59, i32 44, i32 32
%62 = call i32 (i32*, i8*, ...) @fprintf(i32* %56, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %57, i32 %61)
br label %63
63: ; preds = %43
%64 = load i32, i32* %3
%65 = add nsw i32 %64, 1
store i32 %65, i32* %3
br label %40
66: ; preds = %40
%67 = load i32*, i32** %2
%68 = load i32, i32* %5
%69 = call i32 (i32*, i8*, ...) @fprintf(i32* %67, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.4, i64 0, i64 0), i32 %68)
store i32 0, i32* %3
store i32 0, i32* %5
br label %70
70: ; preds = %93, %66
%71 = load i32, i32* %3
%72 = icmp slt i32 %71, 8
br i1 %72, label %73, label %96
73: ; preds = %70
%74 = load double, double* @M_PI
%75 = fmul double 2.000000e+00, %74
%76 = load i32, i32* %3
%77 = sitofp i32 %76 to double
%78 = fmul double %75, %77
%79 = fmul double %78, 2.200000e+03
%80 = fdiv double %79, 9.600000e+03
%81 = call double @cos(double %80)
%82 = fmul double 1.270000e+02, %81
%83 = fptosi double %82 to i32
store i32 %83, i32* %4
%84 = load i32, i32* %5
%85 = add nsw i32 %84, %83
store i32 %85, i32* %5
%86 = load i32*, i32** %2
%87 = load i32, i32* %4
%88 = load i32, i32* %3
%89 = icmp slt i32 %88, 7
%90 = zext i1 %89 to i64
%91 = select i1 %89, i32 44, i32 32
%92 = call i32 (i32*, i8*, ...) @fprintf(i32* %86, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %87, i32 %91)
br label %93
93: ; preds = %73
%94 = load i32, i32* %3
%95 = add nsw i32 %94, 1
store i32 %95, i32* %3
br label %70
96: ; preds = %70
%97 = load i32*, i32** %2
%98 = load i32, i32* %5
%99 = call i32 (i32*, i8*, ...) @fprintf(i32* %97, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.5, i64 0, i64 0), i32 %98)
store i32 0, i32* %3
store i32 0, i32* %5
br label %100
100: ; preds = %123, %96
%101 = load i32, i32* %3
%102 = icmp slt i32 %101, 8
br i1 %102, label %103, label %126
103: ; preds = %100
%104 = load double, double* @M_PI
%105 = fmul double 2.000000e+00, %104
%106 = load i32, i32* %3
%107 = sitofp i32 %106 to double
%108 = fmul double %105, %107
%109 = fmul double %108, 2.200000e+03
%110 = fdiv double %109, 9.600000e+03
%111 = call double @sin(double %110)
%112 = fmul double 1.270000e+02, %111
%113 = fptosi double %112 to i32
store i32 %113, i32* %4
%114 = load i32, i32* %5
%115 = add nsw i32 %114, %113
store i32 %115, i32* %5
%116 = load i32*, i32** %2
%117 = load i32, i32* %4
%118 = load i32, i32* %3
%119 = icmp slt i32 %118, 7
%120 = zext i1 %119 to i64
%121 = select i1 %119, i32 44, i32 32
%122 = call i32 (i32*, i8*, ...) @fprintf(i32* %116, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %117, i32 %121)
br label %123
123: ; preds = %103
%124 = load i32, i32* %3
%125 = add nsw i32 %124, 1
store i32 %125, i32* %3
br label %100
126: ; preds = %100
%127 = load i32*, i32** %2
%128 = load i32, i32* %5
%129 = call i32 (i32*, i8*, ...) @fprintf(i32* %127, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.6, i64 0, i64 0), i32 %128)
ret void
}

LLVM IR (-O2):
@.str = [152 x i8] c"\0A/*\0A * afsk1200 specific tables\0A */\0A#define AFSK12_SAMPLE_RATE %u\0A#define AFSK12_TX_FREQ_LO %u\0A#define AFSK12_TX_FREQ_HI %u\0A#define AFSK12_CORRLEN %u\0A\0A\00"
@.str.1 = [40 x i8] c"static const int afsk12_tx_lo_i[] = {\0A\09\00"
@M_PI = global double 0.000000e+00
@.str.2 = [7 x i8] c" %4i%c\00"
@.str.3 = [75 x i8] c"\0A};\0A#define SUM_AFSK12_TX_LO_I %d\0A\0Astatic const int afsk12_tx_lo_q[] = {\0A\09\00"
@.str.4 = [75 x i8] c"\0A};\0A#define SUM_AFSK12_TX_LO_Q %d\0A\0Astatic const int afsk12_tx_hi_i[] = {\0A\09\00"
@.str.5 = [75 x i8] c"\0A};\0A#define SUM_AFSK12_TX_HI_I %d\0A\0Astatic const int afsk12_tx_hi_q[] = {\0A\09\00"
@.str.6 = [36 x i8] c"\0A};\0A#define SUM_AFSK12_TX_HI_Q %d\0A\0A\00"
define void @gentbl_afsk1200(i32* nocapture %0) {
%2 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([152 x i8], [152 x i8]* @.str, i64 0, i64 0), i32 9600, i32 1200, i32 2200, i32 8)
%3 = tail call i64 @fwrite(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.1, i64 0, i64 0), i64 39, i64 1, i32* %0)
br label %4
4: ; preds = %1, %4
%5 = phi i32 [ 0, %1 ], [ %16, %4 ]
%6 = phi i32 [ 0, %1 ], [ %20, %4 ]
%7 = load double, double* @M_PI
%8 = fmul double %7, 2.000000e+00
%9 = sitofp i32 %6 to double
%10 = fmul double %8, %9
%11 = fmul double %10, 1.200000e+03
%12 = fdiv double %11, 9.600000e+03
%13 = tail call double @cos(double %12)
%14 = fmul double %13, 1.270000e+02
%15 = fptosi double %14 to i32
%16 = add nsw i32 %5, %15
%17 = icmp eq i32 %6, 7
%18 = select i1 %17, i32 32, i32 44
%19 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %15, i32 %18)
%20 = add nuw nsw i32 %6, 1
%21 = icmp eq i32 %20, 8
br i1 %21, label %22, label %4
22: ; preds = %4
%23 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.3, i64 0, i64 0), i32 %16)
br label %24
24: ; preds = %22, %24
%25 = phi i32 [ 0, %22 ], [ %36, %24 ]
%26 = phi i32 [ 0, %22 ], [ %40, %24 ]
%27 = load double, double* @M_PI
%28 = fmul double %27, 2.000000e+00
%29 = sitofp i32 %26 to double
%30 = fmul double %28, %29
%31 = fmul double %30, 1.200000e+03
%32 = fdiv double %31, 9.600000e+03
%33 = tail call double @sin(double %32)
%34 = fmul double %33, 1.270000e+02
%35 = fptosi double %34 to i32
%36 = add nsw i32 %25, %35
%37 = icmp eq i32 %26, 7
%38 = select i1 %37, i32 32, i32 44
%39 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %35, i32 %38)
%40 = add nuw nsw i32 %26, 1
%41 = icmp eq i32 %40, 8
br i1 %41, label %42, label %24
42: ; preds = %24
%43 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.4, i64 0, i64 0), i32 %36)
br label %44
44: ; preds = %42, %44
%45 = phi i32 [ 0, %42 ], [ %56, %44 ]
%46 = phi i32 [ 0, %42 ], [ %60, %44 ]
%47 = load double, double* @M_PI
%48 = fmul double %47, 2.000000e+00
%49 = sitofp i32 %46 to double
%50 = fmul double %48, %49
%51 = fmul double %50, 2.200000e+03
%52 = fdiv double %51, 9.600000e+03
%53 = tail call double @cos(double %52)
%54 = fmul double %53, 1.270000e+02
%55 = fptosi double %54 to i32
%56 = add nsw i32 %45, %55
%57 = icmp eq i32 %46, 7
%58 = select i1 %57, i32 32, i32 44
%59 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %55, i32 %58)
%60 = add nuw nsw i32 %46, 1
%61 = icmp eq i32 %60, 8
br i1 %61, label %62, label %44
62: ; preds = %44
%63 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.5, i64 0, i64 0), i32 %56)
br label %64
64: ; preds = %62, %64
%65 = phi i32 [ 0, %62 ], [ %76, %64 ]
%66 = phi i32 [ 0, %62 ], [ %80, %64 ]
%67 = load double, double* @M_PI
%68 = fmul double %67, 2.000000e+00
%69 = sitofp i32 %66 to double
%70 = fmul double %68, %69
%71 = fmul double %70, 2.200000e+03
%72 = fdiv double %71, 9.600000e+03
%73 = tail call double @sin(double %72)
%74 = fmul double %73, 1.270000e+02
%75 = fptosi double %74 to i32
%76 = add nsw i32 %65, %75
%77 = icmp eq i32 %66, 7
%78 = select i1 %77, i32 32, i32 44
%79 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i32 %75, i32 %78)
%80 = add nuw nsw i32 %66, 1
%81 = icmp eq i32 %80, 8
br i1 %81, label %82, label %64
82: ; preds = %64
%83 = tail call i32 (i32*, i8*, ...) @fprintf(i32* %0, i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.6, i64 0, i64 0), i32 %76)
ret void
}