#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 */
struct daisy {
  int dummy;
};

/* Variables and functions */
int /*<<< orphan*/ daisy_compute_descriptors(struct daisy *);
int daisy_descriptor_size(struct daisy *);
float *daisy_get_descriptor(struct daisy *, int, int);
int /*<<< orphan*/ daisy_initialize_single_descriptor_mode(struct daisy *);
int /*<<< orphan*/ daisy_normalize_descriptors(struct daisy *);
int /*<<< orphan*/ daisy_set_float_image(struct daisy *, float *, int, int);
int /*<<< orphan*/ daisy_set_parameters(struct daisy *, int, int, int, int);
int /*<<< orphan*/ delete_daisy(struct daisy *);
struct daisy *new_daisy();
int /*<<< orphan*/ printf(char *, ...);
int main(int argc, char *argv[]) {
  struct daisy *desc = new_daisy();
  float im[] = {
      0.4902, 0.4824, 0.5137, 0.5529, 0.5451, 0.5490, 0.5490, 0.5804, 0.6039,
      0.6039, 0.5882, 0.5961, 0.5176, 0.5020, 0.4941, 0.5255, 0.5569, 0.5529,
      0.5647, 0.5647, 0.5725, 0.5882, 0.6039, 0.5882, 0.6078, 0.5804, 0.4980,
      0.5333, 0.5882, 0.5843, 0.5882, 0.5882, 0.5765, 0.5922, 0.5882, 0.5961,
      0.6118, 0.6039, 0.6000, 0.4980, 0.5843, 0.6078, 0.5843, 0.5608, 0.6000,
      0.6000, 0.5804, 0.6078, 0.5922, 0.6118, 0.6078, 0.6000, 0.5647, 0.5804,
      0.6118, 0.5608, 0.5647, 0.5725, 0.6157, 0.5608, 0.6000, 0.6078, 0.6157,
      0.6000, 0.5922, 0.5686, 0.5882, 0.5961, 0.6078, 0.7216, 0.7490, 0.7216,
      0.7373, 0.5961, 0.6078, 0.6196, 0.6078, 0.6039, 0.5569, 0.5451, 0.6078,
      0.6941, 0.7098, 0.8275, 0.7608, 0.7020, 0.5804, 0.5412, 0.5882, 0.6000,
      0.5529, 0.5922, 0.5882, 0.7922, 0.6706, 0.6941, 0.8118, 0.6275, 0.6824,
      0.5176, 0.4745, 0.5725, 0.5882, 0.5765, 0.5412, 0.5451, 0.7255, 0.6118,
      0.7765, 0.7961, 0.7137, 0.7294, 0.4510, 0.4588, 0.5882, 0.5725, 0.5843,
      0.9882, 0.8235, 0.6235, 0.6863, 0.7490, 0.6980, 0.6314, 0.4706, 0.4824,
      0.4471, 0.5882, 0.5608, 0.6118, 0.8588, 0.9765, 0.8627, 0.6627, 0.6824,
      0.6392, 0.6275, 0.5059, 0.4314, 0.5137, 0.5451, 0.5490, 0.5490, 0.7373,
      0.9529, 0.8431, 0.5843, 0.6000, 0.5529, 0.4667, 0.4314, 0.5098, 0.5529,
      0.5373, 0.5882, 0.5843, 0.6863, 0.8941, 0.8941, 0.5373, 0.5490, 0.5451,
      0.4510, 0.4078, 0.5098, 0.4941, 0.5529, 0.5294, 0.5412, 0.6902, 0.7255,
      0.6588, 0.4549, 0.5020, 0.5059, 0.4980, 0.3804, 0.4980, 0.5608, 0.6275,
      0.5765, 0.6000};
  int h = 14.;
  int w = 13.;
  daisy_set_float_image(desc, im, h, w);
  daisy_set_parameters(desc, 3., 3, 8, 8);
  daisy_initialize_single_descriptor_mode(desc);
  daisy_compute_descriptors(desc);
  daisy_normalize_descriptors(desc);
  int desc_size = daisy_descriptor_size(desc);
  float *thor = daisy_get_descriptor(desc, 7, 7);
  printf("[");
  int i = 0;
  for (i; i < desc_size; i++) {
    printf(" %f \n", thor[i]);
  }
  printf("]");
  delete_daisy(desc);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x310,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    $0x0,%al
call   10b0 <new_daisy@plt>
mov    %rax,-0x18(%rbp)
lea    -0x2f0(%rbp),%rdi
lea    0xe1e(%rip),%rsi
mov    $0x2d8,%edx
call   1090 <memcpy@plt>
movl   $0xe,-0x2f4(%rbp)
movl   $0xd,-0x2f8(%rbp)
mov    -0x18(%rbp),%rdi
lea    -0x2f0(%rbp),%rsi
mov    -0x2f4(%rbp),%edx
mov    -0x2f8(%rbp),%ecx
call   10d0 <daisy_set_float_image@plt>
mov    -0x18(%rbp),%rdi
mov    $0x3,%edx
mov    $0x8,%r8d
mov    %edx,%esi
mov    %r8d,%ecx
call   10c0 <daisy_set_parameters@plt>
mov    -0x18(%rbp),%rdi
call   1080 <daisy_initialize_single_descriptor_mode@plt>
mov    -0x18(%rbp),%rdi
call   1050 <daisy_compute_descriptors@plt>
mov    -0x18(%rbp),%rdi
call   1030 <daisy_normalize_descriptors@plt>
mov    -0x18(%rbp),%rdi
call   1070 <daisy_descriptor_size@plt>
mov    %eax,-0x2fc(%rbp)
mov    -0x18(%rbp),%rdi
mov    $0x7,%edx
mov    %edx,%esi
call   10a0 <daisy_get_descriptor@plt>
mov    %rax,-0x308(%rbp)
lea    0x105b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x30c(%rbp)
mov    -0x30c(%rbp),%eax
cmp    -0x2fc(%rbp),%eax
jge    12d9 <main+0x129>
mov    -0x308(%rbp),%rax
movslq -0x30c(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x101c(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x30c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30c(%rbp)
jmp    128e <main+0xde>
lea    0x1000(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x18(%rbp),%rdi
call   1060 <delete_daisy@plt>
xor    %eax,%eax
add    $0x310,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x2e0,%rsp
xor    %eax,%eax
call   10c0 <new_daisy@plt>
mov    %rax,%r14
lea    0xe20(%rip),%rsi
mov    %rsp,%rbx
mov    $0x2d8,%edx
mov    %rbx,%rdi
call   10a0 <memcpy@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
mov    $0xe,%edx
mov    $0xd,%ecx
call   10e0 <daisy_set_float_image@plt>
mov    %r14,%rdi
mov    $0x3,%esi
mov    $0x3,%edx
mov    $0x8,%ecx
mov    $0x8,%r8d
call   10d0 <daisy_set_parameters@plt>
mov    %r14,%rdi
call   1090 <daisy_initialize_single_descriptor_mode@plt>
mov    %r14,%rdi
call   1060 <daisy_compute_descriptors@plt>
mov    %r14,%rdi
call   1030 <daisy_normalize_descriptors@plt>
mov    %r14,%rdi
call   1080 <daisy_descriptor_size@plt>
mov    %eax,%ebp
mov    %r14,%rdi
mov    $0x7,%esi
mov    $0x7,%edx
call   10b0 <daisy_get_descriptor@plt>
mov    %rax,%r12
mov    $0x5b,%edi
call   1040 <putchar@plt>
test   %ebp,%ebp
jle    129d <main+0xdd>
mov    %ebp,%ebp
xor    %ebx,%ebx
lea    0x1066(%rip),%r15
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movss  (%r12,%rbx,4),%xmm0
cvtss2sd %xmm0,%xmm0
mov    %r15,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
add    $0x1,%rbx
cmp    %rbx,%rbp
jne    1280 <main+0xc0>
mov    $0x5d,%edi
call   1040 <putchar@plt>
mov    %r14,%rdi
call   1070 <delete_daisy@plt>
xor    %eax,%eax
add    $0x2e0,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
%struct.daisy = type { i32 }
@__const.main.im = [182 x float] [float 0x3FDF5F6FE0000000, float 0x3FDEDFA440000000, float 0x3FE0703B00000000, float 0x3FE1B15B60000000, float 0x3FE1717580000000, float 0x3FE1916880000000, float 0x3FE1916880000000, float 0x3FE292A300000000, float 0x3FE3532620000000, float 0x3FE3532620000000, float 0x3FE2D288C0000000, float 0x3FE3134040000000, float 0x3FE0902DE0000000, float 0x3FE0106240000000, float 0x3FDF9F55A0000000, float 0x3FE0D0E560000000, float 0x3FE1D22000000000, float 0x3FE1B15B60000000, float 0x3FE21205C0000000, float 0x3FE21205C0000000, float 0x3FE251EB80000000, float 0x3FE2D288C0000000, float 0x3FE3532620000000, float 0x3FE2D288C0000000, float 0x3FE3731900000000, float 0x3FE292A300000000, float 0x3FDFDF3B60000000, float 0x3FE110CB20000000, float 0x3FE2D288C0000000, float 0x3FE2B295E0000000, float 0x3FE2D288C0000000, float 0x3FE2D288C0000000, float 0x3FE272B020000000, float 0x3FE2F34D60000000, float 0x3FE2D288C0000000, float 0x3FE3134040000000, float 0x3FE393DDA0000000, float 0x3FE3532620000000, float 0x3FE3333340000000, float 0x3FDFDF3B60000000, float 0x3FE2B295E0000000, float 0x3FE3731900000000, float 0x3FE2B295E0000000, float 0x3FE1F212E0000000, float 0x3FE3333340000000, float 0x3FE3333340000000, float 0x3FE292A300000000, float 0x3FE3731900000000, float 0x3FE2F34D60000000, float 0x3FE393DDA0000000, float 0x3FE3731900000000, float 0x3FE3333340000000, float 0x3FE21205C0000000, float 0x3FE292A300000000, float 0x3FE393DDA0000000, float 0x3FE1F212E0000000, float 0x3FE21205C0000000, float 0x3FE251EB80000000, float 0x3FE3B3D080000000, float 0x3FE1F212E0000000, float 0x3FE3333340000000, float 0x3FE3731900000000, float 0x3FE3B3D080000000, float 0x3FE3333340000000, float 0x3FE2F34D60000000, float 0x3FE231F8A0000000, float 0x3FE2D288C0000000, float 0x3FE3134040000000, float 0x3FE3731900000000, float 0x3FE71758E0000000, float 0x3FE7F7CEE0000000, float 0x3FE71758E0000000, float 0x3FE797F620000000, float 0x3FE3134040000000, float 0x3FE3731900000000, float 0x3FE3D3C360000000, float 0x3FE3731900000000, float 0x3FE3532620000000, float 0x3FE1D22000000000, float 0x3FE1717580000000, float 0x3FE3731900000000, float 0x3FE6361140000000, float 0x3FE6B6AE80000000, float 0x3FEA7AE140000000, float 0x3FE8587940000000, float 0x3FE676C8C0000000, float 0x3FE292A300000000, float 0x3FE15182A0000000, float 0x3FE2D288C0000000, float 0x3FE3333340000000, float 0x3FE1B15B60000000, float 0x3FE2F34D60000000, float 0x3FE2D288C0000000, float 0x3FE959B3E0000000, float 0x3FE5758E20000000, float 0x3FE6361140000000, float 0x3FE9FA4400000000, float 0x3FE4147AE0000000, float 0x3FE5D63880000000, float 0x3FE0902DE0000000, float 0x3FDE5E3540000000, float 0x3FE251EB80000000, float 0x3FE2D288C0000000, float 0x3FE272B020000000, float 0x3FE15182A0000000, float 0x3FE1717580000000, float 0x3FE7374BC0000000, float 0x3FE393DDA0000000, float 0x3FE8D91680000000, float 0x3FE979A6C0000000, float 0x3FE6D6A160000000, float 0x3FE7573EA0000000, float 0x3FDCDD2F20000000, float 0x3FDD5CFAA0000000, float 0x3FE2D288C0000000, float 0x3FE251EB80000000, float 0x3FE2B295E0000000, float 0x3FEF9F55A0000000, float 0x3FEA5A1CA0000000, float 0x3FE3F3B640000000, float 0x3FE5F62B60000000, float 0x3FE7F7CEE0000000, float 0x3FE6560420000000, float 0x3FE4346DC0000000, float 0x3FDE1E4F80000000, float 0x3FDEDFA440000000, float 0x3FDC9D4960000000, float 0x3FE2D288C0000000, float 0x3FE1F212E0000000, float 0x3FE393DDA0000000, float 0x3FEB7B4A20000000, float 0x3FEF3F7CE0000000, float 0x3FEB9B3D00000000, float 0x3FE534D6A0000000, float 0x3FE5D63880000000, float 0x3FE4745380000000, float 0x3FE4147AE0000000, float 0x3FE0305540000000, float 0x3FDB9C0EC0000000, float 0x3FE0703B00000000, float 0x3FE1717580000000, float 0x3FE1916880000000, float 0x3FE1916880000000, float 0x3FE797F620000000, float 0x3FEE7E2820000000, float 0x3FEAFAACE0000000, float 0x3FE2B295E0000000, float 0x3FE3333340000000, float 0x3FE1B15B60000000, float 0x3FDDDE69A0000000, float 0x3FDB9C0EC0000000, float 0x3FE0504820000000, float 0x3FE1B15B60000000, float 0x3FE1318FC0000000, float 0x3FE2D288C0000000, float 0x3FE2B295E0000000, float 0x3FE5F62B60000000, float 0x3FEC9C77A0000000, float 0x3FEC9C77A0000000, float 0x3FE1318FC0000000, float 0x3FE1916880000000, float 0x3FE1717580000000, float 0x3FDCDD2F20000000, float 0x3FDA196520000000, float 0x3FE0504820000000, float 0x3FDF9F55A0000000, float 0x3FE1B15B60000000, float 0x3FE0F0D840000000, float 0x3FE15182A0000000, float 0x3FE6161E40000000, float 0x3FE7374BC0000000, float 0x3FE514E3C0000000, float 0x3FDD1D14E0000000, float 0x3FE0106240000000, float 0x3FE0305540000000, float 0x3FDFDF3B60000000, float 0x3FD8587940000000, float 0x3FDFDF3B60000000, float 0x3FE1F212E0000000, float 0x3FE4147AE0000000, float 0x3FE272B020000000, float 0x3FE3333340000000]
@.str = [2 x i8] c"[\00"
@.str.1 = [6 x i8] c" %f \0A\00"
@.str.2 = [2 x i8] c"]\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca %struct.daisy*
%7 = alloca [182 x float]
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca float*
%12 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%13 = call %struct.daisy* (...) @new_daisy()
store %struct.daisy* %13, %struct.daisy** %6
%14 = bitcast [182 x float]* %7 to i8*
store i32 14, i32* %8
store i32 13, i32* %9
%15 = load %struct.daisy*, %struct.daisy** %6
%16 = getelementptr inbounds [182 x float], [182 x float]* %7, i64 0, i64 0
%17 = load i32, i32* %8
%18 = load i32, i32* %9
%19 = call i32 @daisy_set_float_image(%struct.daisy* %15, float* %16, i32 %17, i32 %18)
%20 = load %struct.daisy*, %struct.daisy** %6
%21 = call i32 @daisy_set_parameters(%struct.daisy* %20, i32 3, i32 3, i32 8, i32 8)
%22 = load %struct.daisy*, %struct.daisy** %6
%23 = call i32 @daisy_initialize_single_descriptor_mode(%struct.daisy* %22)
%24 = load %struct.daisy*, %struct.daisy** %6
%25 = call i32 @daisy_compute_descriptors(%struct.daisy* %24)
%26 = load %struct.daisy*, %struct.daisy** %6
%27 = call i32 @daisy_normalize_descriptors(%struct.daisy* %26)
%28 = load %struct.daisy*, %struct.daisy** %6
%29 = call i32 @daisy_descriptor_size(%struct.daisy* %28)
store i32 %29, i32* %10
%30 = load %struct.daisy*, %struct.daisy** %6
%31 = call float* @daisy_get_descriptor(%struct.daisy* %30, i32 7, i32 7)
store float* %31, float** %11
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %12
%33 = load i32, i32* %12
br label %34
34: ; preds = %46, %2
%35 = load i32, i32* %12
%36 = load i32, i32* %10
%37 = icmp slt i32 %35, %36
br i1 %37, label %38, label %49
38: ; preds = %34
%39 = load float*, float** %11
%40 = load i32, i32* %12
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds float, float* %39, i64 %41
%43 = load float, float* %42
%44 = fpext float %43 to double
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), double %44)
br label %46
46: ; preds = %38
%47 = load i32, i32* %12
%48 = add nsw i32 %47, 1
store i32 %48, i32* %12
br label %34
49: ; preds = %34
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%51 = load %struct.daisy*, %struct.daisy** %6
%52 = call i32 @delete_daisy(%struct.daisy* %51)
ret i32 0
}

LLVM IR (-O2):
%struct.daisy = type { i32 }
@__const.main.im = [182 x float] [float 0x3FDF5F6FE0000000, float 0x3FDEDFA440000000, float 0x3FE0703B00000000, float 0x3FE1B15B60000000, float 0x3FE1717580000000, float 0x3FE1916880000000, float 0x3FE1916880000000, float 0x3FE292A300000000, float 0x3FE3532620000000, float 0x3FE3532620000000, float 0x3FE2D288C0000000, float 0x3FE3134040000000, float 0x3FE0902DE0000000, float 0x3FE0106240000000, float 0x3FDF9F55A0000000, float 0x3FE0D0E560000000, float 0x3FE1D22000000000, float 0x3FE1B15B60000000, float 0x3FE21205C0000000, float 0x3FE21205C0000000, float 0x3FE251EB80000000, float 0x3FE2D288C0000000, float 0x3FE3532620000000, float 0x3FE2D288C0000000, float 0x3FE3731900000000, float 0x3FE292A300000000, float 0x3FDFDF3B60000000, float 0x3FE110CB20000000, float 0x3FE2D288C0000000, float 0x3FE2B295E0000000, float 0x3FE2D288C0000000, float 0x3FE2D288C0000000, float 0x3FE272B020000000, float 0x3FE2F34D60000000, float 0x3FE2D288C0000000, float 0x3FE3134040000000, float 0x3FE393DDA0000000, float 0x3FE3532620000000, float 0x3FE3333340000000, float 0x3FDFDF3B60000000, float 0x3FE2B295E0000000, float 0x3FE3731900000000, float 0x3FE2B295E0000000, float 0x3FE1F212E0000000, float 0x3FE3333340000000, float 0x3FE3333340000000, float 0x3FE292A300000000, float 0x3FE3731900000000, float 0x3FE2F34D60000000, float 0x3FE393DDA0000000, float 0x3FE3731900000000, float 0x3FE3333340000000, float 0x3FE21205C0000000, float 0x3FE292A300000000, float 0x3FE393DDA0000000, float 0x3FE1F212E0000000, float 0x3FE21205C0000000, float 0x3FE251EB80000000, float 0x3FE3B3D080000000, float 0x3FE1F212E0000000, float 0x3FE3333340000000, float 0x3FE3731900000000, float 0x3FE3B3D080000000, float 0x3FE3333340000000, float 0x3FE2F34D60000000, float 0x3FE231F8A0000000, float 0x3FE2D288C0000000, float 0x3FE3134040000000, float 0x3FE3731900000000, float 0x3FE71758E0000000, float 0x3FE7F7CEE0000000, float 0x3FE71758E0000000, float 0x3FE797F620000000, float 0x3FE3134040000000, float 0x3FE3731900000000, float 0x3FE3D3C360000000, float 0x3FE3731900000000, float 0x3FE3532620000000, float 0x3FE1D22000000000, float 0x3FE1717580000000, float 0x3FE3731900000000, float 0x3FE6361140000000, float 0x3FE6B6AE80000000, float 0x3FEA7AE140000000, float 0x3FE8587940000000, float 0x3FE676C8C0000000, float 0x3FE292A300000000, float 0x3FE15182A0000000, float 0x3FE2D288C0000000, float 0x3FE3333340000000, float 0x3FE1B15B60000000, float 0x3FE2F34D60000000, float 0x3FE2D288C0000000, float 0x3FE959B3E0000000, float 0x3FE5758E20000000, float 0x3FE6361140000000, float 0x3FE9FA4400000000, float 0x3FE4147AE0000000, float 0x3FE5D63880000000, float 0x3FE0902DE0000000, float 0x3FDE5E3540000000, float 0x3FE251EB80000000, float 0x3FE2D288C0000000, float 0x3FE272B020000000, float 0x3FE15182A0000000, float 0x3FE1717580000000, float 0x3FE7374BC0000000, float 0x3FE393DDA0000000, float 0x3FE8D91680000000, float 0x3FE979A6C0000000, float 0x3FE6D6A160000000, float 0x3FE7573EA0000000, float 0x3FDCDD2F20000000, float 0x3FDD5CFAA0000000, float 0x3FE2D288C0000000, float 0x3FE251EB80000000, float 0x3FE2B295E0000000, float 0x3FEF9F55A0000000, float 0x3FEA5A1CA0000000, float 0x3FE3F3B640000000, float 0x3FE5F62B60000000, float 0x3FE7F7CEE0000000, float 0x3FE6560420000000, float 0x3FE4346DC0000000, float 0x3FDE1E4F80000000, float 0x3FDEDFA440000000, float 0x3FDC9D4960000000, float 0x3FE2D288C0000000, float 0x3FE1F212E0000000, float 0x3FE393DDA0000000, float 0x3FEB7B4A20000000, float 0x3FEF3F7CE0000000, float 0x3FEB9B3D00000000, float 0x3FE534D6A0000000, float 0x3FE5D63880000000, float 0x3FE4745380000000, float 0x3FE4147AE0000000, float 0x3FE0305540000000, float 0x3FDB9C0EC0000000, float 0x3FE0703B00000000, float 0x3FE1717580000000, float 0x3FE1916880000000, float 0x3FE1916880000000, float 0x3FE797F620000000, float 0x3FEE7E2820000000, float 0x3FEAFAACE0000000, float 0x3FE2B295E0000000, float 0x3FE3333340000000, float 0x3FE1B15B60000000, float 0x3FDDDE69A0000000, float 0x3FDB9C0EC0000000, float 0x3FE0504820000000, float 0x3FE1B15B60000000, float 0x3FE1318FC0000000, float 0x3FE2D288C0000000, float 0x3FE2B295E0000000, float 0x3FE5F62B60000000, float 0x3FEC9C77A0000000, float 0x3FEC9C77A0000000, float 0x3FE1318FC0000000, float 0x3FE1916880000000, float 0x3FE1717580000000, float 0x3FDCDD2F20000000, float 0x3FDA196520000000, float 0x3FE0504820000000, float 0x3FDF9F55A0000000, float 0x3FE1B15B60000000, float 0x3FE0F0D840000000, float 0x3FE15182A0000000, float 0x3FE6161E40000000, float 0x3FE7374BC0000000, float 0x3FE514E3C0000000, float 0x3FDD1D14E0000000, float 0x3FE0106240000000, float 0x3FE0305540000000, float 0x3FDFDF3B60000000, float 0x3FD8587940000000, float 0x3FDFDF3B60000000, float 0x3FE1F212E0000000, float 0x3FE4147AE0000000, float 0x3FE272B020000000, float 0x3FE3333340000000]
@.str.1 = [6 x i8] c" %f \0A\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = alloca [182 x float]
%4 = tail call %struct.daisy* (...) @new_daisy()
%5 = bitcast [182 x float]* %3 to i8*
%6 = getelementptr inbounds [182 x float], [182 x float]* %3, i64 0, i64 0
%7 = call i32 @daisy_set_float_image(%struct.daisy* %4, float* %6, i32 14, i32 13)
%8 = call i32 @daisy_set_parameters(%struct.daisy* %4, i32 3, i32 3, i32 8, i32 8)
%9 = call i32 @daisy_initialize_single_descriptor_mode(%struct.daisy* %4)
%10 = call i32 @daisy_compute_descriptors(%struct.daisy* %4)
%11 = call i32 @daisy_normalize_descriptors(%struct.daisy* %4)
%12 = call i32 @daisy_descriptor_size(%struct.daisy* %4)
%13 = call float* @daisy_get_descriptor(%struct.daisy* %4, i32 7, i32 7)
%14 = call i32 @putchar(i32 91)
%15 = icmp sgt i32 %12, 0
br i1 %15, label %16, label %26
16: ; preds = %2
%17 = zext i32 %12 to i64
br label %18
18: ; preds = %16, %18
%19 = phi i64 [ 0, %16 ], [ %24, %18 ]
%20 = getelementptr inbounds float, float* %13, i64 %19
%21 = load float, float* %20
%22 = fpext float %21 to double
%23 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), double %22)
%24 = add nuw nsw i64 %19, 1
%25 = icmp eq i64 %24, %17
br i1 %25, label %26, label %18
26: ; preds = %18, %2
%27 = call i32 @putchar(i32 93)
%28 = call i32 @delete_daisy(%struct.daisy* %4)
ret i32 0
}