#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 EXIT_SUCCESS;
int /*<<< orphan*/ O_WRONLY;
int /*<<< orphan*/ close(int);
int /*<<< orphan*/ exit(int);
int fileno(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *);
int open(char *, int /*<<< orphan*/);
int /*<<< orphan*/ perror(char *);
int /*<<< orphan*/ printf(char *, int, int);
int /*<<< orphan*/ stderr;
int /*<<< orphan*/ stdout;
int /*<<< orphan*/ strcmp(char *, char *);
scalar_t__ write(int, unsigned char *, int);
int main(int argc, char *argv[]) {
  int sec, fd;
  if (argc != 2) {
    fprintf(stderr, "Usage: %s device\n", argv[0]);
    exit(-1);
  }
  if (!strcmp(argv[1], "-"))
    fd = fileno(stdout);
  else {
    fd = open(argv[1], O_WRONLY);
    if (fd < 0) {
      perror(argv[1]);
      exit(-2);
    }
  }
  for (sec = 0;; sec++) {
    unsigned char buf[512];
    int i;
    for (i = 0; i < 512; i += 2) {
      buf[i] = (sec >> 8);
      buf[i + 1] = sec;
    }
    if (write(fd, buf, sizeof buf) <= 0)
      break;
  }
  close(fd);
  printf("%d sectors written (%.02f MB)\n", sec, sec * 512 / (1024.0 * 1024));
  return EXIT_SUCCESS;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x230,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
cmpl   $0x2,-0x8(%rbp)
je     11d9 <main+0x49>
mov    0x2e26(%rip),%rax
mov    (%rax),%edi
mov    -0x10(%rbp),%rax
mov    (%rax),%rdx
lea    0xe3e(%rip),%rsi
call   1070 <fprintf@plt>
mov    $0xffffffff,%edi
call   10b0 <exit@plt>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0xe32(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%eax
jne    120c <main+0x7c>
mov    0x2ddb(%rip),%rax
mov    (%rax),%edi
call   1080 <fileno@plt>
mov    %eax,-0x18(%rbp)
jmp    124b <main+0xbb>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
mov    0x2da5(%rip),%rax
mov    (%rax),%esi
call   1090 <open@plt>
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
jge    1246 <main+0xb6>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
call   10a0 <perror@plt>
mov    $0xfffffffe,%edi
call   10b0 <exit@plt>
jmp    124b <main+0xbb>
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x224(%rbp)
cmpl   $0x200,-0x224(%rbp)
jge    12ad <main+0x11d>
mov    -0x14(%rbp),%eax
sar    $0x8,%eax
mov    %al,%cl
movslq -0x224(%rbp),%rax
mov    %cl,-0x220(%rbp,%rax,1)
mov    -0x14(%rbp),%eax
mov    %al,%cl
mov    -0x224(%rbp),%eax
add    $0x1,%eax
cltq
mov    %cl,-0x220(%rbp,%rax,1)
mov    -0x224(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x224(%rbp)
jmp    125c <main+0xcc>
mov    -0x18(%rbp),%edi
lea    -0x220(%rbp),%rsi
mov    $0x200,%edx
call   1030 <write@plt>
cmp    $0x0,%rax
jg     12d0 <main+0x140>
jmp    12e3 <main+0x153>
jmp    12d5 <main+0x145>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1252 <main+0xc2>
mov    -0x18(%rbp),%edi
call   1050 <close@plt>
mov    -0x14(%rbp),%esi
mov    -0x14(%rbp),%eax
shl    $0x9,%eax
cvtsi2sd %eax,%xmm0
movsd  0xd00(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edx
lea    0xd0d(%rip),%rdi
call   1040 <printf@plt>
mov    0x2cb5(%rip),%rax
mov    (%rax),%eax
add    $0x230,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %rbx
sub    $0x208,%rsp
mov    %rsi,%rbx
cmp    $0x2,%edi
jne    139f <main+0x20f>
mov    0x8(%rbx),%rbp
lea    0xe66(%rip),%rsi
mov    %rbp,%rdi
call   1060 <strcmp@plt>
test   %eax,%eax
je     11eb <main+0x5b>
mov    0x2df9(%rip),%rax
mov    (%rax),%esi
mov    %rbp,%rdi
call   1090 <open@plt>
mov    %eax,%r15d
test   %eax,%eax
jns    11fc <main+0x6c>
mov    0x8(%rbx),%rdi
call   10a0 <perror@plt>
mov    $0xfffffffe,%edi
call   10b0 <exit@plt>
mov    0x2de6(%rip),%rax
mov    (%rax),%edi
call   1080 <fileno@plt>
mov    %eax,%r15d
xor    %ebx,%ebx
mov    $0xfffffe00,%ebp
mov    %rsp,%r14
cs nopw 0x0(%rax,%rax,1)
mov    %ebx,%eax
shr    $0x8,%eax
movd   %ebx,%xmm0
punpcklbw %xmm0,%xmm0
pshuflw $0x0,%xmm0,%xmm1
movd   %eax,%xmm0
punpcklbw %xmm0,%xmm0
pshuflw $0x0,%xmm0,%xmm0
punpcklbw %xmm1,%xmm0
movdqa %xmm0,(%rsp)
movdqa %xmm0,0x10(%rsp)
movdqa %xmm0,0x20(%rsp)
movdqa %xmm0,0x30(%rsp)
movdqa %xmm0,0x40(%rsp)
movdqa %xmm0,0x50(%rsp)
movdqa %xmm0,0x60(%rsp)
movdqa %xmm0,0x70(%rsp)
movdqa %xmm0,0x80(%rsp)
movdqa %xmm0,0x90(%rsp)
movdqa %xmm0,0xa0(%rsp)
movdqa %xmm0,0xb0(%rsp)
movdqa %xmm0,0xc0(%rsp)
movdqa %xmm0,0xd0(%rsp)
movdqa %xmm0,0xe0(%rsp)
movdqa %xmm0,0xf0(%rsp)
movdqa %xmm0,0x100(%rsp)
movdqa %xmm0,0x110(%rsp)
movdqa %xmm0,0x120(%rsp)
movdqa %xmm0,0x130(%rsp)
movdqa %xmm0,0x140(%rsp)
movdqa %xmm0,0x150(%rsp)
movdqa %xmm0,0x160(%rsp)
movdqa %xmm0,0x170(%rsp)
movdqa %xmm0,0x180(%rsp)
movdqa %xmm0,0x190(%rsp)
movdqa %xmm0,0x1a0(%rsp)
movdqa %xmm0,0x1b0(%rsp)
movdqa %xmm0,0x1c0(%rsp)
movdqa %xmm0,0x1d0(%rsp)
movdqa %xmm0,0x1e0(%rsp)
movdqa %xmm0,0x1f0(%rsp)
mov    %r15d,%edi
mov    %r14,%rsi
mov    $0x200,%edx
call   1030 <write@plt>
add    $0x1,%ebx
add    $0x200,%ebp
test   %rax,%rax
jg     1210 <main+0x80>
mov    %r15d,%edi
call   1050 <close@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
mulsd  0xc8d(%rip),%xmm0
cvttsd2si %xmm0,%edx
add    $0xffffffff,%ebx
lea    0xc9b(%rip),%rdi
mov    %ebx,%esi
call   1040 <printf@plt>
mov    0x2c41(%rip),%rax
mov    (%rax),%eax
add    $0x208,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
mov    0x2c3a(%rip),%rax
mov    (%rax),%edi
mov    (%rbx),%rdx
lea    0xc56(%rip),%rsi
call   1070 <fprintf@plt>
mov    $0xffffffff,%edi
call   10b0 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [18 x i8] c"Usage: %s device\0A\00"
@.str.1 = [2 x i8] c"-\00"
@stdout = global i32 0
@O_WRONLY = global i32 0
@.str.2 = [31 x i8] c"%d sectors written (%.02f MB)\0A\00"
@EXIT_SUCCESS = global i32 0
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca i32
%8 = alloca [512 x i8]
%9 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%10 = load i32, i32* %4
%11 = icmp ne i32 %10, 2
br i1 %11, label %12, label %19
12: ; preds = %2
%13 = load i32, i32* @stderr
%14 = load i8**, i8*** %5
%15 = getelementptr inbounds i8*, i8** %14, i64 0
%16 = load i8*, i8** %15
%17 = call i32 @fprintf(i32 %13, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), i8* %16)
%18 = call i32 @exit(i32 -1)
unreachable
19: ; preds = %2
%20 = load i8**, i8*** %5
%21 = getelementptr inbounds i8*, i8** %20, i64 1
%22 = load i8*, i8** %21
%23 = call i32 @strcmp(i8* %22, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%24 = icmp ne i32 %23, 0
br i1 %24, label %28, label %25
25: ; preds = %19
%26 = load i32, i32* @stdout
%27 = call i32 @fileno(i32 %26)
store i32 %27, i32* %7
br label %43
28: ; preds = %19
%29 = load i8**, i8*** %5
%30 = getelementptr inbounds i8*, i8** %29, i64 1
%31 = load i8*, i8** %30
%32 = load i32, i32* @O_WRONLY
%33 = call i32 @open(i8* %31, i32 %32)
store i32 %33, i32* %7
%34 = load i32, i32* %7
%35 = icmp slt i32 %34, 0
br i1 %35, label %36, label %42
36: ; preds = %28
%37 = load i8**, i8*** %5
%38 = getelementptr inbounds i8*, i8** %37, i64 1
%39 = load i8*, i8** %38
%40 = call i32 @perror(i8* %39)
%41 = call i32 @exit(i32 -2)
unreachable
42: ; preds = %28
br label %43
43: ; preds = %42, %25
store i32 0, i32* %6
br label %44
44: ; preds = %71, %43
store i32 0, i32* %9
br label %45
45: ; preds = %61, %44
%46 = load i32, i32* %9
%47 = icmp slt i32 %46, 512
br i1 %47, label %48, label %64
48: ; preds = %45
%49 = load i32, i32* %6
%50 = ashr i32 %49, 8
%51 = trunc i32 %50 to i8
%52 = load i32, i32* %9
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 %53
store i8 %51, i8* %54
%55 = load i32, i32* %6
%56 = trunc i32 %55 to i8
%57 = load i32, i32* %9
%58 = add nsw i32 %57, 1
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 %59
store i8 %56, i8* %60
br label %61
61: ; preds = %48
%62 = load i32, i32* %9
%63 = add nsw i32 %62, 2
store i32 %63, i32* %9
br label %45
64: ; preds = %45
%65 = load i32, i32* %7
%66 = getelementptr inbounds [512 x i8], [512 x i8]* %8, i64 0, i64 0
%67 = call i64 @write(i32 %65, i8* %66, i32 512)
%68 = icmp sle i64 %67, 0
br i1 %68, label %69, label %70
69: ; preds = %64
br label %74
70: ; preds = %64
br label %71
71: ; preds = %70
%72 = load i32, i32* %6
%73 = add nsw i32 %72, 1
store i32 %73, i32* %6
br label %44
74: ; preds = %69
%75 = load i32, i32* %7
%76 = call i32 @close(i32 %75)
%77 = load i32, i32* %6
%78 = load i32, i32* %6
%79 = mul nsw i32 %78, 512
%80 = sitofp i32 %79 to double
%81 = fdiv double %80, 0x4130000000000000
%82 = fptosi double %81 to i32
%83 = call i32 @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i32 %77, i32 %82)
%84 = load i32, i32* @EXIT_SUCCESS
ret i32 %84
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [18 x i8] c"Usage: %s device\0A\00"
@.str.1 = [2 x i8] c"-\00"
@stdout = global i32 0
@O_WRONLY = global i32 0
@.str.2 = [31 x i8] c"%d sectors written (%.02f MB)\0A\00"
@EXIT_SUCCESS = global i32 0
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca [512 x i8]
%4 = icmp eq i32 %0, 2
br i1 %4, label %10, label %5
5: ; preds = %2
%6 = load i32, i32* @stderr
%7 = load i8*, i8** %1
%8 = tail call i32 @fprintf(i32 %6, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), i8* %7)
%9 = tail call i32 @exit(i32 -1)
unreachable
10: ; preds = %2
%11 = getelementptr inbounds i8*, i8** %1, i64 1
%12 = load i8*, i8** %11
%13 = tail call i32 @strcmp(i8* dereferenceable(1) %12, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%14 = icmp eq i32 %13, 0
br i1 %14, label %15, label %18
15: ; preds = %10
%16 = load i32, i32* @stdout
%17 = tail call i32 @fileno(i32 %16)
br label %26
18: ; preds = %10
%19 = load i32, i32* @O_WRONLY
%20 = tail call i32 @open(i8* %12, i32 %19)
%21 = icmp slt i32 %20, 0
br i1 %21, label %22, label %26
22: ; preds = %18
%23 = load i8*, i8** %11
%24 = tail call i32 @perror(i8* %23)
%25 = tail call i32 @exit(i32 -2)
unreachable
26: ; preds = %18, %15
%27 = phi i32 [ %20, %18 ], [ %17, %15 ]
%28 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%29 = bitcast [512 x i8]* %3 to <16 x i8>*
%30 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 16
%31 = bitcast i8* %30 to <16 x i8>*
%32 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 32
%33 = bitcast i8* %32 to <16 x i8>*
%34 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 48
%35 = bitcast i8* %34 to <16 x i8>*
%36 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 64
%37 = bitcast i8* %36 to <16 x i8>*
%38 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 80
%39 = bitcast i8* %38 to <16 x i8>*
%40 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 96
%41 = bitcast i8* %40 to <16 x i8>*
%42 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 112
%43 = bitcast i8* %42 to <16 x i8>*
%44 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 128
%45 = bitcast i8* %44 to <16 x i8>*
%46 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 144
%47 = bitcast i8* %46 to <16 x i8>*
%48 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 160
%49 = bitcast i8* %48 to <16 x i8>*
%50 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 176
%51 = bitcast i8* %50 to <16 x i8>*
%52 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 192
%53 = bitcast i8* %52 to <16 x i8>*
%54 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 208
%55 = bitcast i8* %54 to <16 x i8>*
%56 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 224
%57 = bitcast i8* %56 to <16 x i8>*
%58 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 240
%59 = bitcast i8* %58 to <16 x i8>*
%60 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 256
%61 = bitcast i8* %60 to <16 x i8>*
%62 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 272
%63 = bitcast i8* %62 to <16 x i8>*
%64 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 288
%65 = bitcast i8* %64 to <16 x i8>*
%66 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 304
%67 = bitcast i8* %66 to <16 x i8>*
%68 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 320
%69 = bitcast i8* %68 to <16 x i8>*
%70 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 336
%71 = bitcast i8* %70 to <16 x i8>*
%72 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 352
%73 = bitcast i8* %72 to <16 x i8>*
%74 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 368
%75 = bitcast i8* %74 to <16 x i8>*
%76 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 384
%77 = bitcast i8* %76 to <16 x i8>*
%78 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 400
%79 = bitcast i8* %78 to <16 x i8>*
%80 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 416
%81 = bitcast i8* %80 to <16 x i8>*
%82 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 432
%83 = bitcast i8* %82 to <16 x i8>*
%84 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 448
%85 = bitcast i8* %84 to <16 x i8>*
%86 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 464
%87 = bitcast i8* %86 to <16 x i8>*
%88 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 480
%89 = bitcast i8* %88 to <16 x i8>*
%90 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 496
%91 = bitcast i8* %90 to <16 x i8>*
br label %92
92: ; preds = %92, %26
%93 = phi i32 [ 0, %26 ], [ %139, %92 ]
%94 = lshr i32 %93, 8
%95 = trunc i32 %94 to i8
%96 = trunc i32 %93 to i8
%97 = insertelement <8 x i8> poison, i8 %95, i64 0
%98 = shufflevector <8 x i8> %97, <8 x i8> poison, <8 x i32> zeroinitializer
%99 = insertelement <8 x i8> poison, i8 %96, i64 0
%100 = shufflevector <8 x i8> %99, <8 x i8> poison, <8 x i32> zeroinitializer
%101 = insertelement <8 x i8> poison, i8 %95, i64 0
%102 = shufflevector <8 x i8> %101, <8 x i8> poison, <8 x i32> zeroinitializer
%103 = insertelement <8 x i8> poison, i8 %96, i64 0
%104 = shufflevector <8 x i8> %103, <8 x i8> poison, <8 x i32> zeroinitializer
%105 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %105, <16 x i8>* %29
%106 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %106, <16 x i8>* %31
%107 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %107, <16 x i8>* %33
%108 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %108, <16 x i8>* %35
%109 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %109, <16 x i8>* %37
%110 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %110, <16 x i8>* %39
%111 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %111, <16 x i8>* %41
%112 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %112, <16 x i8>* %43
%113 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %113, <16 x i8>* %45
%114 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %114, <16 x i8>* %47
%115 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %115, <16 x i8>* %49
%116 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %116, <16 x i8>* %51
%117 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %117, <16 x i8>* %53
%118 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %118, <16 x i8>* %55
%119 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %119, <16 x i8>* %57
%120 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %120, <16 x i8>* %59
%121 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %121, <16 x i8>* %61
%122 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %122, <16 x i8>* %63
%123 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %123, <16 x i8>* %65
%124 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %124, <16 x i8>* %67
%125 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %125, <16 x i8>* %69
%126 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %126, <16 x i8>* %71
%127 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %127, <16 x i8>* %73
%128 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %128, <16 x i8>* %75
%129 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %129, <16 x i8>* %77
%130 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %130, <16 x i8>* %79
%131 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %131, <16 x i8>* %81
%132 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %132, <16 x i8>* %83
%133 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %133, <16 x i8>* %85
%134 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %134, <16 x i8>* %87
%135 = shufflevector <8 x i8> %98, <8 x i8> %100, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %135, <16 x i8>* %89
%136 = shufflevector <8 x i8> %102, <8 x i8> %104, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
store <16 x i8> %136, <16 x i8>* %91
%137 = call i64 @write(i32 %27, i8* %28, i32 512)
%138 = icmp slt i64 %137, 1
%139 = add nuw nsw i32 %93, 1
br i1 %138, label %140, label %92
140: ; preds = %92
%141 = tail call i32 @close(i32 %27)
%142 = shl nsw i32 %93, 9
%143 = sitofp i32 %142 to double
%144 = fmul double %143, 0x3EB0000000000000
%145 = fptosi double %144 to i32
%146 = tail call i32 @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i32 %93, i32 %145)
%147 = load i32, i32* @EXIT_SUCCESS
ret i32 %147
}