julian2std(inputyear, inputday, inputhour, inputmin, inputsec, std_ext,
           str) int inputyear,
    inputday, inputhour, inputmin, inputsec;
char *std_ext;
char *str;
{
  int year, day, hour, min, sec;
  static int days_per_month[] = {31, 28, 31, 30, 31, 30,
                                 31, 31, 30, 31, 30, 31};
  int days_per_year;
  register int i, j, k, found;
  year = inputyear;
  day = inputday;
  hour = inputhour;
  min = inputmin;
  sec = inputsec;
  days_per_year = 365;
  days_per_month[1] = 28;
  if ((!(year % 4)) && (year % 100)) {
    days_per_month[1] = 29;
    days_per_year = 366;
  }
  if (!(year % 400)) {
    days_per_month[1] = 29;
    days_per_year = 366;
  }
  while (day >= days_per_year) {
    ++year;
    day -= days_per_year;
  }
  while (hour >= 24) {
    ++day;
    hour -= 24;
    while (day >= days_per_year) {
      ++year;
      day -= days_per_year;
    }
  }
  found = j = k = 0;
  for (i = 0; ((i < 12) && (!found)); ++i) {
    j += days_per_month[i];
    if (day <= j) {
      sprintf(str, "%2d/%2d/%2d  %2d:%02d:%02d  %s", i + 1, day - k,
              year - 1900, hour, min, sec, std_ext);
      found = 1;
    }
    k = j;
  }
  if (!found)
    sprintf(str, "%d%d  %2d:%02d:%02d:02d:02d JULIAN", year, day, hour, min,
            sec);
}


x86 assembly (clang, -O0):
<julian2std>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    0x10(%rbp),%rax
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8d,-0x18(%rbp)
mov    %r9,-0x20(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x34(%rbp)
movl   $0x16d,-0x38(%rbp)
movl   $0x1c,0x2ed5(%rip)
mov    -0x24(%rbp),%eax
mov    $0x4,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1198 <julian2std+0x88>
mov    -0x24(%rbp),%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     1198 <julian2std+0x88>
movl   $0x1d,0x2ea3(%rip)
movl   $0x16e,-0x38(%rbp)
mov    -0x24(%rbp),%eax
mov    $0x190,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    11bd <julian2std+0xad>
movl   $0x1d,0x2e7e(%rip)
movl   $0x16e,-0x38(%rbp)
jmp    11c2 <julian2std+0xb2>
mov    -0x28(%rbp),%eax
cmp    -0x38(%rbp),%eax
jl     11e7 <julian2std+0xd7>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
jmp    11c2 <julian2std+0xb2>
jmp    11ec <julian2std+0xdc>
cmpl   $0x18,-0x2c(%rbp)
jl     1232 <julian2std+0x122>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
sub    $0x18,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x28(%rbp),%eax
cmp    -0x38(%rbp),%eax
jl     122d <julian2std+0x11d>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
jmp    1208 <julian2std+0xf8>
jmp    11ec <julian2std+0xdc>
movl   $0x0,-0x44(%rbp)
movl   $0x0,-0x40(%rbp)
movl   $0x0,-0x48(%rbp)
movl   $0x0,-0x3c(%rbp)
xor    %eax,%eax
cmpl   $0xc,-0x3c(%rbp)
mov    %al,-0x49(%rbp)
jge    1269 <julian2std+0x159>
cmpl   $0x0,-0x48(%rbp)
setne  %al
xor    $0xff,%al
mov    %al,-0x49(%rbp)
mov    -0x49(%rbp),%al
test   $0x1,%al
jne    1279 <julian2std+0x169>
jmp    12fb <julian2std+0x1eb>
movslq -0x3c(%rbp),%rcx
lea    0x2dac(%rip),%rax
mov    (%rax,%rcx,4),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x28(%rbp),%eax
cmp    -0x40(%rbp),%eax
jg     12e7 <julian2std+0x1d7>
mov    0x10(%rbp),%rdi
mov    -0x3c(%rbp),%edx
add    $0x1,%edx
mov    -0x28(%rbp),%ecx
sub    -0x44(%rbp),%ecx
mov    -0x24(%rbp),%r8d
sub    $0x76c,%r8d
mov    -0x2c(%rbp),%r9d
mov    -0x30(%rbp),%r11d
mov    -0x34(%rbp),%r10d
mov    -0x20(%rbp),%rax
lea    0xd35(%rip),%rsi
mov    %r11d,(%rsp)
mov    %r10d,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1030 <sprintf@plt>
movl   $0x1,-0x48(%rbp)
mov    -0x40(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    124e <julian2std+0x13e>
cmpl   $0x0,-0x48(%rbp)
jne    132b <julian2std+0x21b>
mov    0x10(%rbp),%rdi
mov    -0x24(%rbp),%edx
mov    -0x28(%rbp),%ecx
mov    -0x2c(%rbp),%r8d
mov    -0x30(%rbp),%r9d
mov    -0x34(%rbp),%eax
lea    0xcfe(%rip),%rsi
mov    %eax,(%rsp)
mov    $0x0,%al
call   1030 <sprintf@plt>
mov    -0x4(%rbp),%eax
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<julian2std>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %edi,%ebx
test   $0x3,%bl
setne  %al
imul   $0xc28f5c29,%edi,%ebp
add    $0x51eb850,%ebp
mov    %ebp,%edi
ror    $0x2,%edi
mov    %r9,%r14
mov    %r8d,%r10d
mov    %ecx,%r11d
mov    %edx,%r8d
cmp    $0x28f5c29,%edi
setb   %cl
or     %al,%cl
movzbl %cl,%eax
mov    $0x16e,%ecx
mov    $0x16e,%edi
sub    %eax,%edi
ror    $0x4,%ebp
cmp    $0xa3d70b,%ebp
setb   %dl
cmovb  %ecx,%edi
xor    $0x1,%al
or     %dl,%al
movzbl %al,%eax
or     $0x1c,%eax
mov    %eax,0x2ebf(%rip)
cmp    %esi,%edi
jg     1229 <julian2std+0x119>
mov    %esi,%eax
sub    %edi,%eax
xor    %edx,%edx
div    %edi
cmp    $0x7,%eax
jb     1220 <julian2std+0x110>
add    $0x1,%eax
mov    %eax,%ecx
and    $0x1fffff8,%ecx
movd   %ebx,%xmm0
lea    -0x8(%rcx),%ebp
mov    %ebp,%edx
shr    $0x3,%edx
add    $0x1,%edx
mov    %edx,%ebx
and    $0x7,%ebx
cmp    $0x38,%ebp
jae    11b8 <julian2std+0xa8>
pxor   %xmm1,%xmm1
jmp    11df <julian2std+0xcf>
and    $0xfffffff8,%edx
xor    %ebp,%ebp
pxor   %xmm1,%xmm1
movdqa 0xe37(%rip),%xmm2
nopl   0x0(%rax)
paddd  %xmm2,%xmm0
paddd  %xmm2,%xmm1
add    $0x8,%ebp
cmp    %edx,%ebp
jne    11d0 <julian2std+0xc0>
mov    %edi,%ebp
imul   %ecx,%ebp
test   %ebx,%ebx
je     11ff <julian2std+0xef>
xor    %edx,%edx
pcmpeqd %xmm2,%xmm2
xchg   %ax,%ax
psubd  %xmm2,%xmm0
psubd  %xmm2,%xmm1
add    $0x1,%edx
cmp    %ebx,%edx
jne    11f0 <julian2std+0xe0>
paddd  %xmm1,%xmm0
sub    %ebp,%esi
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%ebx
cmp    %ecx,%eax
je     1229 <julian2std+0x119>
nop
add    $0x1,%ebx
sub    %edi,%esi
cmp    %edi,%esi
jge    1220 <julian2std+0x110>
cmp    $0x18,%r8d
jl     131e <julian2std+0x20e>
mov    $0x1,%r15d
sub    %edi,%r15d
pcmpeqd %xmm0,%xmm0
movdqa 0xdb8(%rip),%xmm1
jmp    1263 <julian2std+0x153>
nopw   0x0(%rax,%rax,1)
lea    -0x18(%r8),%r9d
mov    %ecx,%esi
cmp    $0x2f,%r8d
mov    %r9d,%r8d
jle    1323 <julian2std+0x213>
lea    0x1(%rsi),%ecx
cmp    %edi,%ecx
jl     1250 <julian2std+0x140>
add    %r15d,%esi
mov    %esi,%eax
xor    %edx,%edx
div    %edi
cmp    $0x7,%eax
jb     1310 <julian2std+0x200>
add    $0x1,%eax
mov    %eax,%edx
and    $0x1fffff8,%edx
movd   %ebx,%xmm2
lea    -0x8(%rdx),%ebp
mov    %ebp,%esi
shr    $0x3,%esi
add    $0x1,%esi
mov    %esi,%ebx
and    $0x7,%ebx
pxor   %xmm3,%xmm3
cmp    $0x38,%ebp
jb     12bf <julian2std+0x1af>
and    $0xfffffff8,%esi
xor    %ebp,%ebp
pxor   %xmm3,%xmm3
nopl   (%rax)
paddd  %xmm1,%xmm2
paddd  %xmm1,%xmm3
add    $0x8,%ebp
cmp    %esi,%ebp
jne    12b0 <julian2std+0x1a0>
mov    %edi,%esi
imul   %edx,%esi
test   %ebx,%ebx
je     12df <julian2std+0x1cf>
xor    %ebp,%ebp
nopw   0x0(%rax,%rax,1)
psubd  %xmm0,%xmm2
psubd  %xmm0,%xmm3
add    $0x1,%ebp
cmp    %ebx,%ebp
jne    12d0 <julian2std+0x1c0>
paddd  %xmm3,%xmm2
sub    %esi,%ecx
pshufd $0xee,%xmm2,%xmm3
paddd  %xmm2,%xmm3
pshufd $0x55,%xmm3,%xmm2
paddd  %xmm3,%xmm2
movd   %xmm2,%ebx
cmp    %edx,%eax
je     1250 <julian2std+0x140>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%ebx
sub    %edi,%ecx
cmp    %edi,%ecx
jge    1310 <julian2std+0x200>
jmp    1250 <julian2std+0x140>
mov    %r8d,%r9d
mov    %esi,%ecx
mov    0x30(%rsp),%rdi
lea    -0x76c(%rbx),%r8d
xor    %edx,%edx
lea    0x2cf8(%rip),%rax
xor    %ebp,%ebp
nopw   0x0(%rax,%rax,1)
mov    (%rax),%esi
add    %ebp,%esi
cmp    %esi,%ecx
jle    137e <julian2std+0x26e>
cmp    $0xa,%rdx
ja     135c <julian2std+0x24c>
add    $0x1,%rdx
add    $0x4,%rax
mov    %esi,%ebp
cmp    %esi,%ecx
jg     1340 <julian2std+0x230>
sub    $0x8,%rsp
lea    0xcc8(%rip),%rsi
mov    %ebx,%edx
mov    %r9d,%r8d
mov    %r11d,%r9d
xor    %eax,%eax
push   %r10
call   1030 <sprintf@plt>
add    $0x10,%rsp
jmp    139f <julian2std+0x28f>
sub    %ebp,%ecx
add    $0x1,%edx
sub    $0x8,%rsp
lea    0xc82(%rip),%rsi
xor    %eax,%eax
push   %r14
push   %r10
push   %r11
call   1030 <sprintf@plt>
add    $0x20,%rsp
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@julian2std.days_per_month = internal global [12 x i32] [i32 31, i32 28, i32 31, i32 30, i32 31, i32 30, i32 31, i32 31, i32 30, i32 31, i32 30, i32 31]
@.str = [31 x i8] c"%2d/%2d/%2d %2d:%02d:%02d %s\00"
@.str.1 = [35 x i8] c"%d%d %2d:%02d:%02d:02d:02d JULIAN\00"
define i32 @julian2std(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i8* %5, i8* %6) {
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i8*
%15 = alloca i8*
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
store i32 %0, i32* %9
store i32 %1, i32* %10
store i32 %2, i32* %11
store i32 %3, i32* %12
store i32 %4, i32* %13
store i8* %5, i8** %14
store i8* %6, i8** %15
%26 = load i32, i32* %9
store i32 %26, i32* %16
%27 = load i32, i32* %10
store i32 %27, i32* %17
%28 = load i32, i32* %11
store i32 %28, i32* %18
%29 = load i32, i32* %12
store i32 %29, i32* %19
%30 = load i32, i32* %13
store i32 %30, i32* %20
store i32 365, i32* %21
store i32 28, i32* getelementptr inbounds ([12 x i32], [12 x i32]* @julian2std.days_per_month, i64 0, i64 1)
%31 = load i32, i32* %16
%32 = srem i32 %31, 4
%33 = icmp ne i32 %32, 0
br i1 %33, label %39, label %34
34: ; preds = %7
%35 = load i32, i32* %16
%36 = srem i32 %35, 100
%37 = icmp ne i32 %36, 0
br i1 %37, label %38, label %39
38: ; preds = %34
store i32 29, i32* getelementptr inbounds ([12 x i32], [12 x i32]* @julian2std.days_per_month, i64 0, i64 1)
store i32 366, i32* %21
br label %39
39: ; preds = %38, %34, %7
%40 = load i32, i32* %16
%41 = srem i32 %40, 400
%42 = icmp ne i32 %41, 0
br i1 %42, label %44, label %43
43: ; preds = %39
store i32 29, i32* getelementptr inbounds ([12 x i32], [12 x i32]* @julian2std.days_per_month, i64 0, i64 1)
store i32 366, i32* %21
br label %44
44: ; preds = %43, %39
br label %45
45: ; preds = %49, %44
%46 = load i32, i32* %17
%47 = load i32, i32* %21
%48 = icmp sge i32 %46, %47
br i1 %48, label %49, label %55
49: ; preds = %45
%50 = load i32, i32* %16
%51 = add nsw i32 %50, 1
store i32 %51, i32* %16
%52 = load i32, i32* %21
%53 = load i32, i32* %17
%54 = sub nsw i32 %53, %52
store i32 %54, i32* %17
br label %45
55: ; preds = %45
br label %56
56: ; preds = %74, %55
%57 = load i32, i32* %18
%58 = icmp sge i32 %57, 24
br i1 %58, label %59, label %75
59: ; preds = %56
%60 = load i32, i32* %17
%61 = add nsw i32 %60, 1
store i32 %61, i32* %17
%62 = load i32, i32* %18
%63 = sub nsw i32 %62, 24
store i32 %63, i32* %18
br label %64
64: ; preds = %68, %59
%65 = load i32, i32* %17
%66 = load i32, i32* %21
%67 = icmp sge i32 %65, %66
br i1 %67, label %68, label %74
68: ; preds = %64
%69 = load i32, i32* %16
%70 = add nsw i32 %69, 1
store i32 %70, i32* %16
%71 = load i32, i32* %21
%72 = load i32, i32* %17
%73 = sub nsw i32 %72, %71
store i32 %73, i32* %17
br label %64
74: ; preds = %64
br label %56
75: ; preds = %56
store i32 0, i32* %24
store i32 0, i32* %23
store i32 0, i32* %25
store i32 0, i32* %22
br label %76
76: ; preds = %111, %75
%77 = load i32, i32* %22
%78 = icmp slt i32 %77, 12
br i1 %78, label %79, label %83
79: ; preds = %76
%80 = load i32, i32* %25
%81 = icmp ne i32 %80, 0
%82 = xor i1 %81, true
br label %83
83: ; preds = %79, %76
%84 = phi i1 [ false, %76 ], [ %82, %79 ]
br i1 %84, label %85, label %114
85: ; preds = %83
%86 = load i32, i32* %22
%87 = sext i32 %86 to i64
%88 = getelementptr inbounds [12 x i32], [12 x i32]* @julian2std.days_per_month, i64 0, i64 %87
%89 = load i32, i32* %88
%90 = load i32, i32* %23
%91 = add nsw i32 %90, %89
store i32 %91, i32* %23
%92 = load i32, i32* %17
%93 = load i32, i32* %23
%94 = icmp sle i32 %92, %93
br i1 %94, label %95, label %109
95: ; preds = %85
%96 = load i8*, i8** %15
%97 = load i32, i32* %22
%98 = add nsw i32 %97, 1
%99 = load i32, i32* %17
%100 = load i32, i32* %24
%101 = sub nsw i32 %99, %100
%102 = load i32, i32* %16
%103 = sub nsw i32 %102, 1900
%104 = load i32, i32* %18
%105 = load i32, i32* %19
%106 = load i32, i32* %20
%107 = load i8*, i8** %14
%108 = call i32 (i8*, i8*, ...) @sprintf(i8* %96, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str, i64 0, i64 0), i32 %98, i32 %101, i32 %103, i32 %104, i32 %105, i32 %106, i8* %107)
store i32 1, i32* %25
br label %109
109: ; preds = %95, %85
%110 = load i32, i32* %23
store i32 %110, i32* %24
br label %111
111: ; preds = %109
%112 = load i32, i32* %22
%113 = add nsw i32 %112, 1
store i32 %113, i32* %22
br label %76
114: ; preds = %83
%115 = load i32, i32* %25
%116 = icmp ne i32 %115, 0
br i1 %116, label %125, label %117
117: ; preds = %114
%118 = load i8*, i8** %15
%119 = load i32, i32* %16
%120 = load i32, i32* %17
%121 = load i32, i32* %18
%122 = load i32, i32* %19
%123 = load i32, i32* %20
%124 = call i32 (i8*, i8*, ...) @sprintf(i8* %118, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i32 %119, i32 %120, i32 %121, i32 %122, i32 %123)
br label %125
125: ; preds = %117, %114
%126 = load i32, i32* %8
ret i32 %126
}

LLVM IR (-O2):
@julian2std.days_per_month = internal unnamed_addr global [12 x i32] [i32 31, i32 28, i32 31, i32 30, i32 31, i32 30, i32 31, i32 31, i32 30, i32 31, i32 30, i32 31]
@.str = [31 x i8] c"%2d/%2d/%2d %2d:%02d:%02d %s\00"
@.str.1 = [35 x i8] c"%d%d %2d:%02d:%02d:02d:02d JULIAN\00"
define i32 @julian2std(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i8* %5, i8* nocapture writeonly %6) {
%8 = and i32 %0, 3
%9 = icmp ne i32 %8, 0
%10 = srem i32 %0, 100
%11 = icmp eq i32 %10, 0
%12 = or i1 %9, %11
%13 = select i1 %12, i32 365, i32 366
%14 = srem i32 %0, 400
%15 = icmp eq i32 %14, 0
%16 = select i1 %15, i32 366, i32 %13
%17 = or i1 %9, %11
%18 = xor i1 %17, true
%19 = or i1 %15, %18
%20 = select i1 %19, i32 29, i32 28
store i32 %20, i32* getelementptr inbounds ([12 x i32], [12 x i32]* @julian2std.days_per_month, i64 0, i64 1)
%21 = icmp sgt i32 %16, %1
br i1 %21, label %70, label %22
22: ; preds = %7
%23 = sub i32 %1, %16
%24 = udiv i32 %23, %16
%25 = add nuw nsw i32 %24, 1
%26 = icmp ult i32 %24, 7
br i1 %26, label %67, label %27
27: ; preds = %22
%28 = and i32 %25, 33554424
%29 = mul i32 %16, %28
%30 = sub i32 %1, %29
%31 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %0, i64 0
%32 = add nsw i32 %28, -8
%33 = lshr exact i32 %32, 3
%34 = add nuw nsw i32 %33, 1
%35 = and i32 %34, 7
%36 = icmp ult i32 %32, 56
br i1 %36, label %47, label %37
37: ; preds = %27
%38 = and i32 %34, 1073741816
br label %39
39: ; preds = %39, %37
%40 = phi <4 x i32> [ %31, %37 ], [ %43, %39 ]
%41 = phi <4 x i32> [ zeroinitializer, %37 ], [ %44, %39 ]
%42 = phi i32 [ 0, %37 ], [ %45, %39 ]
%43 = add <4 x i32> %40, <i32 8, i32 8, i32 8, i32 8>
%44 = add <4 x i32> %41, <i32 8, i32 8, i32 8, i32 8>
%45 = add nuw i32 %42, 8
%46 = icmp eq i32 %45, %38
br i1 %46, label %47, label %39
47: ; preds = %39, %27
%48 = phi <4 x i32> [ undef, %27 ], [ %43, %39 ]
%49 = phi <4 x i32> [ undef, %27 ], [ %44, %39 ]
%50 = phi <4 x i32> [ %31, %27 ], [ %43, %39 ]
%51 = phi <4 x i32> [ zeroinitializer, %27 ], [ %44, %39 ]
%52 = icmp eq i32 %35, 0
br i1 %52, label %61, label %53
53: ; preds = %47, %53
%54 = phi <4 x i32> [ %57, %53 ], [ %50, %47 ]
%55 = phi <4 x i32> [ %58, %53 ], [ %51, %47 ]
%56 = phi i32 [ %59, %53 ], [ 0, %47 ]
%57 = add <4 x i32> %54, <i32 1, i32 1, i32 1, i32 1>
%58 = add <4 x i32> %55, <i32 1, i32 1, i32 1, i32 1>
%59 = add i32 %56, 1
%60 = icmp eq i32 %59, %35
br i1 %60, label %61, label %53
61: ; preds = %53, %47
%62 = phi <4 x i32> [ %48, %47 ], [ %57, %53 ]
%63 = phi <4 x i32> [ %49, %47 ], [ %58, %53 ]
%64 = add <4 x i32> %63, %62
%65 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %64)
%66 = icmp eq i32 %25, %28
br i1 %66, label %70, label %67
67: ; preds = %22, %61
%68 = phi i32 [ %0, %22 ], [ %65, %61 ]
%69 = phi i32 [ %1, %22 ], [ %30, %61 ]
br label %76
70: ; preds = %76, %61, %7
%71 = phi i32 [ %1, %7 ], [ %30, %61 ], [ %80, %76 ]
%72 = phi i32 [ %0, %7 ], [ %65, %61 ], [ %79, %76 ]
%73 = icmp sgt i32 %2, 23
br i1 %73, label %74, label %86
74: ; preds = %70
%75 = sub nsw i32 1, %16
br label %91
76: ; preds = %67, %76
%77 = phi i32 [ %79, %76 ], [ %68, %67 ]
%78 = phi i32 [ %80, %76 ], [ %69, %67 ]
%79 = add nsw i32 %77, 1
%80 = sub nsw i32 %78, %16
%81 = icmp slt i32 %80, %16
br i1 %81, label %70, label %76
82: ; preds = %146, %137, %91
%83 = phi i32 [ %95, %91 ], [ %106, %137 ], [ %150, %146 ]
%84 = phi i32 [ %92, %91 ], [ %141, %137 ], [ %149, %146 ]
%85 = icmp sgt i32 %94, 47
br i1 %85, label %91, label %86
86: ; preds = %82, %70
%87 = phi i32 [ %2, %70 ], [ %96, %82 ]
%88 = phi i32 [ %71, %70 ], [ %83, %82 ]
%89 = phi i32 [ %72, %70 ], [ %84, %82 ]
%90 = add nsw i32 %89, -1900
br label %152
91: ; preds = %74, %82
%92 = phi i32 [ %84, %82 ], [ %72, %74 ]
%93 = phi i32 [ %83, %82 ], [ %71, %74 ]
%94 = phi i32 [ %96, %82 ], [ %2, %74 ]
%95 = add nsw i32 %93, 1
%96 = add nsw i32 %94, -24
%97 = icmp slt i32 %95, %16
br i1 %97, label %82, label %98
98: ; preds = %91
%99 = add i32 %75, %93
%100 = udiv i32 %99, %16
%101 = add nuw nsw i32 %100, 1
%102 = icmp ult i32 %100, 7
br i1 %102, label %143, label %103
103: ; preds = %98
%104 = and i32 %101, 33554424
%105 = mul i32 %16, %104
%106 = sub i32 %95, %105
%107 = insertelement <4 x i32> <i32 poison, i32 0, i32 0, i32 0>, i32 %92, i64 0
%108 = add nsw i32 %104, -8
%109 = lshr exact i32 %108, 3
%110 = add nuw nsw i32 %109, 1
%111 = and i32 %110, 7
%112 = icmp ult i32 %108, 56
br i1 %112, label %123, label %113
113: ; preds = %103
%114 = and i32 %110, 1073741816
br label %115
115: ; preds = %115, %113
%116 = phi <4 x i32> [ %107, %113 ], [ %119, %115 ]
%117 = phi <4 x i32> [ zeroinitializer, %113 ], [ %120, %115 ]
%118 = phi i32 [ 0, %113 ], [ %121, %115 ]
%119 = add <4 x i32> %116, <i32 8, i32 8, i32 8, i32 8>
%120 = add <4 x i32> %117, <i32 8, i32 8, i32 8, i32 8>
%121 = add nuw i32 %118, 8
%122 = icmp eq i32 %121, %114
br i1 %122, label %123, label %115
123: ; preds = %115, %103
%124 = phi <4 x i32> [ undef, %103 ], [ %119, %115 ]
%125 = phi <4 x i32> [ undef, %103 ], [ %120, %115 ]
%126 = phi <4 x i32> [ %107, %103 ], [ %119, %115 ]
%127 = phi <4 x i32> [ zeroinitializer, %103 ], [ %120, %115 ]
%128 = icmp eq i32 %111, 0
br i1 %128, label %137, label %129
129: ; preds = %123, %129
%130 = phi <4 x i32> [ %133, %129 ], [ %126, %123 ]
%131 = phi <4 x i32> [ %134, %129 ], [ %127, %123 ]
%132 = phi i32 [ %135, %129 ], [ 0, %123 ]
%133 = add <4 x i32> %130, <i32 1, i32 1, i32 1, i32 1>
%134 = add <4 x i32> %131, <i32 1, i32 1, i32 1, i32 1>
%135 = add i32 %132, 1
%136 = icmp eq i32 %135, %111
br i1 %136, label %137, label %129
137: ; preds = %129, %123
%138 = phi <4 x i32> [ %124, %123 ], [ %133, %129 ]
%139 = phi <4 x i32> [ %125, %123 ], [ %134, %129 ]
%140 = add <4 x i32> %139, %138
%141 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %140)
%142 = icmp eq i32 %101, %104
br i1 %142, label %82, label %143
143: ; preds = %98, %137
%144 = phi i32 [ %92, %98 ], [ %141, %137 ]
%145 = phi i32 [ %95, %98 ], [ %106, %137 ]
br label %146
146: ; preds = %143, %146
%147 = phi i32 [ %149, %146 ], [ %144, %143 ]
%148 = phi i32 [ %150, %146 ], [ %145, %143 ]
%149 = add nsw i32 %147, 1
%150 = sub nsw i32 %148, %16
%151 = icmp slt i32 %150, %16
br i1 %151, label %82, label %146
152: ; preds = %86, %159
%153 = phi i64 [ 0, %86 ], [ %160, %159 ]
%154 = phi i32 [ 0, %86 ], [ %157, %159 ]
%155 = getelementptr inbounds [12 x i32], [12 x i32]* @julian2std.days_per_month, i64 0, i64 %153
%156 = load i32, i32* %155
%157 = add nsw i32 %156, %154
%158 = icmp sgt i32 %88, %157
br i1 %158, label %159, label %163
159: ; preds = %152
%160 = add nuw nsw i64 %153, 1
%161 = icmp ult i64 %153, 11
%162 = and i1 %161, %158
br i1 %162, label %152, label %168
163: ; preds = %152
%164 = sub nsw i32 %88, %154
%165 = trunc i64 %153 to i32
%166 = add i32 %165, 1
%167 = tail call i32 (i8*, i8*, ...) @sprintf(i8* dereferenceable(1) %6, i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str, i64 0, i64 0), i32 %166, i32 %164, i32 %90, i32 %87, i32 %3, i32 %4, i8* %5)
br label %170
168: ; preds = %159
%169 = tail call i32 (i8*, i8*, ...) @sprintf(i8* dereferenceable(1) %6, i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i32 %89, i32 %88, i32 %87, i32 %3, i32 %4)
br label %170
170: ; preds = %163, %168
ret i32 undef
}