#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 */

/* Variables and functions */
int /*<<< orphan*/ clear_traces_J();
int /*<<< orphan*/ clear_traces_d(double, double, double, double, double,
                                  double, double, double, double, double,
                                  double, double, double, double, double,
                                  double);
int /*<<< orphan*/ clear_traces_f(double, double, double, double, double,
                                  double, double, double, double, double,
                                  double, double, double, double, double,
                                  double);
int /*<<< orphan*/ clear_traces_i(int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/,
                                  int /*<<< orphan*/, int /*<<< orphan*/);
void clear_traces() {
  clear_traces_i(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  clear_traces_f(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                 0.0, 0.0, 0.0, 0.0);
  clear_traces_d(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                 0.0, 0.0, 0.0, 0.0);
  clear_traces_J();
}


x86 assembly (clang, -O0):
<clear_traces>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
xor    %r9d,%r9d
mov    %r9d,%edi
mov    %r9d,%esi
mov    %r9d,%edx
mov    %r9d,%ecx
mov    %r9d,%r8d
movl   $0x0,(%rsp)
movl   $0x0,0x8(%rsp)
movl   $0x0,0x10(%rsp)
movl   $0x0,0x18(%rsp)
movl   $0x0,0x20(%rsp)
movl   $0x0,0x28(%rsp)
movl   $0x0,0x30(%rsp)
movl   $0x0,0x38(%rsp)
movl   $0x0,0x40(%rsp)
movl   $0x0,0x48(%rsp)
call   1060 <clear_traces_i@plt>
xorps  %xmm8,%xmm8
movaps %xmm8,%xmm0
movaps %xmm8,%xmm1
movaps %xmm8,%xmm2
movaps %xmm8,%xmm3
movaps %xmm8,%xmm4
movaps %xmm8,%xmm5
movaps %xmm8,%xmm6
movaps %xmm8,%xmm7
movsd  %xmm8,(%rsp)
movsd  %xmm8,0x8(%rsp)
movsd  %xmm8,0x10(%rsp)
movsd  %xmm8,0x18(%rsp)
movsd  %xmm8,0x20(%rsp)
movsd  %xmm8,0x28(%rsp)
movsd  %xmm8,0x30(%rsp)
movsd  %xmm8,0x38(%rsp)
call   1040 <clear_traces_f@plt>
xorps  %xmm8,%xmm8
movaps %xmm8,%xmm0
movaps %xmm8,%xmm1
movaps %xmm8,%xmm2
movaps %xmm8,%xmm3
movaps %xmm8,%xmm4
movaps %xmm8,%xmm5
movaps %xmm8,%xmm6
movaps %xmm8,%xmm7
movsd  %xmm8,(%rsp)
movsd  %xmm8,0x8(%rsp)
movsd  %xmm8,0x10(%rsp)
movsd  %xmm8,0x18(%rsp)
movsd  %xmm8,0x20(%rsp)
movsd  %xmm8,0x28(%rsp)
movsd  %xmm8,0x30(%rsp)
movsd  %xmm8,0x38(%rsp)
call   1030 <clear_traces_d@plt>
mov    $0x0,%al
call   1050 <clear_traces_J@plt>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<clear_traces>:
push   %rax
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %r9d,%r9d
push   $0x0
push   $0x0
push   $0x0
push   $0x0
push   $0x0
push   $0x0
push   $0x0
push   $0x0
push   $0x0
push   $0x0
call   1060 <clear_traces_i@plt>
add    $0x10,%rsp
xorps  %xmm0,%xmm0
movups %xmm0,0x30(%rsp)
movups %xmm0,0x20(%rsp)
movups %xmm0,0x10(%rsp)
movups %xmm0,(%rsp)
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
xorps  %xmm4,%xmm4
xorps  %xmm5,%xmm5
xorps  %xmm6,%xmm6
xorps  %xmm7,%xmm7
call   1040 <clear_traces_f@plt>
xorps  %xmm0,%xmm0
movups %xmm0,0x30(%rsp)
movups %xmm0,0x20(%rsp)
movups %xmm0,0x10(%rsp)
movups %xmm0,(%rsp)
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
xorps  %xmm4,%xmm4
xorps  %xmm5,%xmm5
xorps  %xmm6,%xmm6
xorps  %xmm7,%xmm7
call   1030 <clear_traces_d@plt>
add    $0x40,%rsp
xor    %eax,%eax
pop    %rcx
jmp    1050 <clear_traces_J@plt>

LLVM IR (-O0):
define void @clear_traces() {
%1 = call i32 @clear_traces_i(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
%2 = call i32 @clear_traces_f(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%3 = call i32 @clear_traces_d(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%4 = call i32 (...) @clear_traces_J()
ret void
}

LLVM IR (-O2):
define void @clear_traces() {
%1 = tail call i32 @clear_traces_i(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
%2 = tail call i32 @clear_traces_f(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%3 = tail call i32 @clear_traces_d(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%4 = tail call i32 (...) @clear_traces_J()
ret void
}