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

/* Variables and functions */
int /*<<< orphan*/ printf(char *, double);
main() {
  int i;
  double result;
  printf("size of double = %d\n", sizeof(result));
  result = 1;
  for (i = 0; i < 8; i++)
    result = result * 2;
  printf("result8=%f\n", result);
  result = 1;
  for (i = 0; i < 16; i++)
    result = result * 2;
  printf("result16=%f\n", result);
  result = 1;
  for (i = 0; i < 32; i++)
    result = result * 2;
  printf("result32=%f\n", result);
  result = 1;
  for (i = 0; i < 64; i++)
    result = result * 2;
  printf("result64=%f\n", result);
  result = 1;
  for (i = 0; i < 96; i++)
    result = result * 2;
  printf("result96=%f\n", result);
  result = 1;
  for (i = 0; i < 128; i++)
    result = result * 2;
  printf("result128=%f\n", result);
  result = 1;
  for (i = 0; i < 256; i++)
    result = result * 2;
  printf("result256=%f\n", result);
  result = 1;
  for (i = 0; i < 512; i++)
    result = result * 2;
  printf("result512=%f\n", result);
  result = 1;
  for (i = 0; i < 1024; i++)
    result = result * 2;
  printf("result1024=%f\n", result);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xef2(%rip),%rdi
movsd  0xeda(%rip),%xmm0
call   1030 <printf@plt>
movsd  0xec5(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x8,-0x8(%rbp)
jge    1171 <main+0x61>
movsd  0xeb7(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1147 <main+0x37>
movsd  -0x10(%rbp),%xmm0
lea    0xeb0(%rip),%rdi
call   1030 <printf@plt>
movsd  0xe76(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x10,-0x8(%rbp)
jge    11c0 <main+0xb0>
movsd  0xe68(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1196 <main+0x86>
movsd  -0x10(%rbp),%xmm0
lea    0xe6d(%rip),%rdi
call   1030 <printf@plt>
movsd  0xe27(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x20,-0x8(%rbp)
jge    120f <main+0xff>
movsd  0xe19(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11e5 <main+0xd5>
movsd  -0x10(%rbp),%xmm0
lea    0xe2b(%rip),%rdi
call   1030 <printf@plt>
movsd  0xdd8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x40,-0x8(%rbp)
jge    125e <main+0x14e>
movsd  0xdca(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1234 <main+0x124>
movsd  -0x10(%rbp),%xmm0
lea    0xde9(%rip),%rdi
call   1030 <printf@plt>
movsd  0xd89(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x60,-0x8(%rbp)
jge    12ad <main+0x19d>
movsd  0xd7b(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1283 <main+0x173>
movsd  -0x10(%rbp),%xmm0
lea    0xda7(%rip),%rdi
call   1030 <printf@plt>
movsd  0xd3a(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x80,-0x8(%rbp)
jge    12ff <main+0x1ef>
movsd  0xd29(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    12d2 <main+0x1c2>
movsd  -0x10(%rbp),%xmm0
lea    0xd62(%rip),%rdi
call   1030 <printf@plt>
movsd  0xce8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x100,-0x8(%rbp)
jge    1351 <main+0x241>
movsd  0xcd7(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1324 <main+0x214>
movsd  -0x10(%rbp),%xmm0
lea    0xd1e(%rip),%rdi
call   1030 <printf@plt>
movsd  0xc96(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x200,-0x8(%rbp)
jge    13a3 <main+0x293>
movsd  0xc85(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1376 <main+0x266>
movsd  -0x10(%rbp),%xmm0
lea    0xcda(%rip),%rdi
call   1030 <printf@plt>
movsd  0xc44(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x400,-0x8(%rbp)
jge    13f5 <main+0x2e5>
movsd  0xc33(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    13c8 <main+0x2b8>
movsd  -0x10(%rbp),%xmm0
lea    0xc96(%rip),%rdi
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0xf18(%rip),%rdi
movsd  0xee0(%rip),%xmm0
call   1030 <printf@plt>
lea    0xf19(%rip),%rdi
movsd  0xed4(%rip),%xmm0
call   1030 <printf@plt>
lea    0xf11(%rip),%rdi
movsd  0xec8(%rip),%xmm0
call   1030 <printf@plt>
lea    0xf0a(%rip),%rdi
movsd  0xebc(%rip),%xmm0
call   1030 <printf@plt>
lea    0xf03(%rip),%rdi
movsd  0xeb0(%rip),%xmm0
call   1030 <printf@plt>
movsd  0xeab(%rip),%xmm0
mov    $0x60,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
add    $0xfffffff4,%eax
jne    1190 <main+0x80>
lea    0xeac(%rip),%rdi
call   1030 <printf@plt>
movsd  0xe4f(%rip),%xmm0
mov    $0x80,%eax
xchg   %ax,%ax
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
add    $0xfffffff8,%eax
jne    11e0 <main+0xd0>
lea    0xe79(%rip),%rdi
call   1030 <printf@plt>
movsd  0xe0f(%rip),%xmm0
mov    $0x100,%eax
xchg   %ax,%ax
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
add    $0xfffffff8,%eax
jne    1220 <main+0x110>
lea    0xe47(%rip),%rdi
call   1030 <printf@plt>
movsd  0xdcf(%rip),%xmm0
mov    $0x200,%eax
xchg   %ax,%ax
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
add    $0xfffffff8,%eax
jne    1260 <main+0x150>
lea    0xe15(%rip),%rdi
call   1030 <printf@plt>
movsd  0xd8f(%rip),%xmm0
mov    $0x400,%eax
xchg   %ax,%ax
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm0,%xmm0
add    $0xfffffff8,%eax
jne    12a0 <main+0x190>
lea    0xde3(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [21 x i8] c"size of double = %d\0A\00"
@.str.1 = [12 x i8] c"result8=%f\0A\00"
@.str.2 = [13 x i8] c"result16=%f\0A\00"
@.str.3 = [13 x i8] c"result32=%f\0A\00"
@.str.4 = [13 x i8] c"result64=%f\0A\00"
@.str.5 = [13 x i8] c"result96=%f\0A\00"
@.str.6 = [14 x i8] c"result128=%f\0A\00"
@.str.7 = [14 x i8] c"result256=%f\0A\00"
@.str.8 = [14 x i8] c"result512=%f\0A\00"
@.str.9 = [15 x i8] c"result1024=%f\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca double
store i32 0, i32* %1
%4 = call i32 @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), double 8.000000e+00)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %5
5: ; preds = %11, %0
%6 = load i32, i32* %2
%7 = icmp slt i32 %6, 8
br i1 %7, label %8, label %14
8: ; preds = %5
%9 = load double, double* %3
%10 = fmul double %9, 2.000000e+00
store double %10, double* %3
br label %11
11: ; preds = %8
%12 = load i32, i32* %2
%13 = add nsw i32 %12, 1
store i32 %13, i32* %2
br label %5
14: ; preds = %5
%15 = load double, double* %3
%16 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i64 0, i64 0), double %15)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %17
17: ; preds = %23, %14
%18 = load i32, i32* %2
%19 = icmp slt i32 %18, 16
br i1 %19, label %20, label %26
20: ; preds = %17
%21 = load double, double* %3
%22 = fmul double %21, 2.000000e+00
store double %22, double* %3
br label %23
23: ; preds = %20
%24 = load i32, i32* %2
%25 = add nsw i32 %24, 1
store i32 %25, i32* %2
br label %17
26: ; preds = %17
%27 = load double, double* %3
%28 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2, i64 0, i64 0), double %27)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %29
29: ; preds = %35, %26
%30 = load i32, i32* %2
%31 = icmp slt i32 %30, 32
br i1 %31, label %32, label %38
32: ; preds = %29
%33 = load double, double* %3
%34 = fmul double %33, 2.000000e+00
store double %34, double* %3
br label %35
35: ; preds = %32
%36 = load i32, i32* %2
%37 = add nsw i32 %36, 1
store i32 %37, i32* %2
br label %29
38: ; preds = %29
%39 = load double, double* %3
%40 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0), double %39)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %41
41: ; preds = %47, %38
%42 = load i32, i32* %2
%43 = icmp slt i32 %42, 64
br i1 %43, label %44, label %50
44: ; preds = %41
%45 = load double, double* %3
%46 = fmul double %45, 2.000000e+00
store double %46, double* %3
br label %47
47: ; preds = %44
%48 = load i32, i32* %2
%49 = add nsw i32 %48, 1
store i32 %49, i32* %2
br label %41
50: ; preds = %41
%51 = load double, double* %3
%52 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0), double %51)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %53
53: ; preds = %59, %50
%54 = load i32, i32* %2
%55 = icmp slt i32 %54, 96
br i1 %55, label %56, label %62
56: ; preds = %53
%57 = load double, double* %3
%58 = fmul double %57, 2.000000e+00
store double %58, double* %3
br label %59
59: ; preds = %56
%60 = load i32, i32* %2
%61 = add nsw i32 %60, 1
store i32 %61, i32* %2
br label %53
62: ; preds = %53
%63 = load double, double* %3
%64 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0), double %63)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %65
65: ; preds = %71, %62
%66 = load i32, i32* %2
%67 = icmp slt i32 %66, 128
br i1 %67, label %68, label %74
68: ; preds = %65
%69 = load double, double* %3
%70 = fmul double %69, 2.000000e+00
store double %70, double* %3
br label %71
71: ; preds = %68
%72 = load i32, i32* %2
%73 = add nsw i32 %72, 1
store i32 %73, i32* %2
br label %65
74: ; preds = %65
%75 = load double, double* %3
%76 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.6, i64 0, i64 0), double %75)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %77
77: ; preds = %83, %74
%78 = load i32, i32* %2
%79 = icmp slt i32 %78, 256
br i1 %79, label %80, label %86
80: ; preds = %77
%81 = load double, double* %3
%82 = fmul double %81, 2.000000e+00
store double %82, double* %3
br label %83
83: ; preds = %80
%84 = load i32, i32* %2
%85 = add nsw i32 %84, 1
store i32 %85, i32* %2
br label %77
86: ; preds = %77
%87 = load double, double* %3
%88 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.7, i64 0, i64 0), double %87)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %89
89: ; preds = %95, %86
%90 = load i32, i32* %2
%91 = icmp slt i32 %90, 512
br i1 %91, label %92, label %98
92: ; preds = %89
%93 = load double, double* %3
%94 = fmul double %93, 2.000000e+00
store double %94, double* %3
br label %95
95: ; preds = %92
%96 = load i32, i32* %2
%97 = add nsw i32 %96, 1
store i32 %97, i32* %2
br label %89
98: ; preds = %89
%99 = load double, double* %3
%100 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.8, i64 0, i64 0), double %99)
store double 1.000000e+00, double* %3
store i32 0, i32* %2
br label %101
101: ; preds = %107, %98
%102 = load i32, i32* %2
%103 = icmp slt i32 %102, 1024
br i1 %103, label %104, label %110
104: ; preds = %101
%105 = load double, double* %3
%106 = fmul double %105, 2.000000e+00
store double %106, double* %3
br label %107
107: ; preds = %104
%108 = load i32, i32* %2
%109 = add nsw i32 %108, 1
store i32 %109, i32* %2
br label %101
110: ; preds = %101
%111 = load double, double* %3
%112 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.9, i64 0, i64 0), double %111)
%113 = load i32, i32* %1
ret i32 %113
}

LLVM IR (-O2):
@.str = [21 x i8] c"size of double = %d\0A\00"
@.str.1 = [12 x i8] c"result8=%f\0A\00"
@.str.2 = [13 x i8] c"result16=%f\0A\00"
@.str.3 = [13 x i8] c"result32=%f\0A\00"
@.str.4 = [13 x i8] c"result64=%f\0A\00"
@.str.5 = [13 x i8] c"result96=%f\0A\00"
@.str.6 = [14 x i8] c"result128=%f\0A\00"
@.str.7 = [14 x i8] c"result256=%f\0A\00"
@.str.8 = [14 x i8] c"result512=%f\0A\00"
@.str.9 = [15 x i8] c"result1024=%f\0A\00"
define i32 @main() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), double 8.000000e+00)
%2 = tail call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i64 0, i64 0), double 2.560000e+02)
%3 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2, i64 0, i64 0), double 6.553600e+04)
%4 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0), double 0x41F0000000000000)
%5 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0), double 0x43F0000000000000)
br label %6
6: ; preds = %6, %0
%7 = phi double [ 1.000000e+00, %0 ], [ %20, %6 ]
%8 = phi i32 [ 0, %0 ], [ %21, %6 ]
%9 = fmul double %7, 2.000000e+00
%10 = fmul double %9, 2.000000e+00
%11 = fmul double %10, 2.000000e+00
%12 = fmul double %11, 2.000000e+00
%13 = fmul double %12, 2.000000e+00
%14 = fmul double %13, 2.000000e+00
%15 = fmul double %14, 2.000000e+00
%16 = fmul double %15, 2.000000e+00
%17 = fmul double %16, 2.000000e+00
%18 = fmul double %17, 2.000000e+00
%19 = fmul double %18, 2.000000e+00
%20 = fmul double %19, 2.000000e+00
%21 = add nuw nsw i32 %8, 12
%22 = icmp eq i32 %21, 96
br i1 %22, label %23, label %6
23: ; preds = %6
%24 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0), double %20)
br label %25
25: ; preds = %25, %23
%26 = phi double [ 1.000000e+00, %23 ], [ %35, %25 ]
%27 = phi i32 [ 0, %23 ], [ %36, %25 ]
%28 = fmul double %26, 2.000000e+00
%29 = fmul double %28, 2.000000e+00
%30 = fmul double %29, 2.000000e+00
%31 = fmul double %30, 2.000000e+00
%32 = fmul double %31, 2.000000e+00
%33 = fmul double %32, 2.000000e+00
%34 = fmul double %33, 2.000000e+00
%35 = fmul double %34, 2.000000e+00
%36 = add nuw nsw i32 %27, 8
%37 = icmp eq i32 %36, 128
br i1 %37, label %38, label %25
38: ; preds = %25
%39 = tail call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.6, i64 0, i64 0), double %35)
br label %40
40: ; preds = %40, %38
%41 = phi double [ 1.000000e+00, %38 ], [ %50, %40 ]
%42 = phi i32 [ 0, %38 ], [ %51, %40 ]
%43 = fmul double %41, 2.000000e+00
%44 = fmul double %43, 2.000000e+00
%45 = fmul double %44, 2.000000e+00
%46 = fmul double %45, 2.000000e+00
%47 = fmul double %46, 2.000000e+00
%48 = fmul double %47, 2.000000e+00
%49 = fmul double %48, 2.000000e+00
%50 = fmul double %49, 2.000000e+00
%51 = add nuw nsw i32 %42, 8
%52 = icmp eq i32 %51, 256
br i1 %52, label %53, label %40
53: ; preds = %40
%54 = tail call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.7, i64 0, i64 0), double %50)
br label %55
55: ; preds = %55, %53
%56 = phi double [ 1.000000e+00, %53 ], [ %65, %55 ]
%57 = phi i32 [ 0, %53 ], [ %66, %55 ]
%58 = fmul double %56, 2.000000e+00
%59 = fmul double %58, 2.000000e+00
%60 = fmul double %59, 2.000000e+00
%61 = fmul double %60, 2.000000e+00
%62 = fmul double %61, 2.000000e+00
%63 = fmul double %62, 2.000000e+00
%64 = fmul double %63, 2.000000e+00
%65 = fmul double %64, 2.000000e+00
%66 = add nuw nsw i32 %57, 8
%67 = icmp eq i32 %66, 512
br i1 %67, label %68, label %55
68: ; preds = %55
%69 = tail call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.8, i64 0, i64 0), double %65)
br label %70
70: ; preds = %70, %68
%71 = phi double [ 1.000000e+00, %68 ], [ %80, %70 ]
%72 = phi i32 [ 0, %68 ], [ %81, %70 ]
%73 = fmul double %71, 2.000000e+00
%74 = fmul double %73, 2.000000e+00
%75 = fmul double %74, 2.000000e+00
%76 = fmul double %75, 2.000000e+00
%77 = fmul double %76, 2.000000e+00
%78 = fmul double %77, 2.000000e+00
%79 = fmul double %78, 2.000000e+00
%80 = fmul double %79, 2.000000e+00
%81 = add nuw nsw i32 %72, 8
%82 = icmp eq i32 %81, 1024
br i1 %82, label %83, label %70
83: ; preds = %70
%84 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.9, i64 0, i64 0), double %80)
ret i32 0
}