#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*/ memcpy(double *, double const *, int);
void emissions_kmer_setGapProbsToDefaults(double *emissionGapProbs) {
  const double G = -3.2188758248682006;
  const double i[25] = {
      G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G, G,
  };
  memcpy(emissionGapProbs, i, sizeof(double) * 25);
}


x86 assembly (clang, -O0):
<emissions_kmer_setGapProbsToDefaults>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    %rdi,-0x8(%rbp)
movsd  0xed9(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
lea    -0xe0(%rbp),%rdi
lea    0xed6(%rip),%rsi
mov    $0xc8,%edx
call   1030 <memcpy@plt>
mov    -0x8(%rbp),%rdi
lea    -0xe0(%rbp),%rsi
mov    $0xc8,%edx
call   1030 <memcpy@plt>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<emissions_kmer_setGapProbsToDefaults>:
push   %r14
push   %rbx
sub    $0xc8,%rsp
mov    %rdi,%rbx
lea    0xedc(%rip),%rsi
mov    %rsp,%r14
mov    $0xc8,%edx
mov    %r14,%rdi
call   1030 <memcpy@plt>
mov    %rbx,%rdi
mov    %r14,%rsi
mov    $0xc8,%edx
call   1030 <memcpy@plt>
add    $0xc8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@__const.emissions_kmer_setGapProbsToDefaults.i = [25 x double] [double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33]
define void @emissions_kmer_setGapProbsToDefaults(double* %0) {
%2 = alloca double*
%3 = alloca double
%4 = alloca [25 x double]
store double* %0, double** %2
store double 0xC009C041F7ED8D33, double* %3
%5 = bitcast [25 x double]* %4 to i8*
%6 = load double*, double** %2
%7 = getelementptr inbounds [25 x double], [25 x double]* %4, i64 0, i64 0
%8 = call i32 @memcpy(double* %6, double* %7, i32 200)
ret void
}

LLVM IR (-O2):
@__const.emissions_kmer_setGapProbsToDefaults.i = [25 x double] [double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33, double 0xC009C041F7ED8D33]
define void @emissions_kmer_setGapProbsToDefaults(double* %0) {
%2 = alloca [25 x double]
%3 = bitcast [25 x double]* %2 to i8*
%4 = getelementptr inbounds [25 x double], [25 x double]* %2, i64 0, i64 0
%5 = call i32 @memcpy(double* %0, double* %4, i32 200)
ret void
}