#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*/ fexpect(char *, int, double, double);
int /*<<< orphan*/ fexpectd(char *, int, double, double);
int /*<<< orphan*/ fexpectf(char *, int, double, double);
int /*<<< orphan*/ print(char *);
double recursive(int);
int /*<<< orphan*/ std();
double tf1(int);
double tf2(int);
double tf3(int);
void testmain() {
  print("float");
  std();
  fexpect("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
          "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
          82, 0.7, .7);
  ;
  float v1 = 10.0;
  float v2 = v1;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           85, 10.0, v1);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           86, 10.0, v2);
  ;
  return;
  double v3 = 20.0;
  double v4 = v3;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           90, 20.0, v3);
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           91, 20.0, v4);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           93, 1.0, 1.0);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           94, 1.5, 1.0 + 0.5);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           95, 0.5, 1.0 - 0.5);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           96, 2.0, 1.0 * 2.0);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           97, 0.25, 1.0 / 4.0);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           99, 3.0, 1.0 + 2);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           100, 2.5, 5 - 2.5);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           101, 2.0, 1.0 * 2);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           102, 0.25, 1.0 / 4);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           104, 10.5, tf1(10.5));
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           105, 10.0, tf1(10));
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           106, 10.6, tf2(10.6));
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           107, 10.0, tf2(10));
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           108, 10.0, tf3(10.7));
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           109, 10.0, tf3(10));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           111, 1.0, tf1(1.0));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           112, 10.0, tf1(10));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           113, 2.0, tf2(2.0));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           114, 10.0, tf2(10));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           115, 11.0, tf3(11.5));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           116, 10.0, tf3(10));
  ;
  fexpectd("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c",
           118, 3.33, recursive(100));
  ;
}


x86 assembly (clang, -O0):
<testmain>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
lea    0xec5(%rip),%rdi
call   1030 <print@plt>
mov    $0x0,%al
call   1040 <std@plt>
lea    0xeb8(%rip),%rdi
mov    $0x52,%esi
movsd  0xe99(%rip),%xmm1
movaps %xmm1,%xmm0
call   1050 <fexpect@plt>
movss  0xe91(%rip),%xmm0
movss  %xmm0,-0x4(%rbp)
movss  -0x4(%rbp),%xmm0
movss  %xmm0,-0x8(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
lea    0xe7c(%rip),%rdi
mov    $0x55,%esi
movsd  0xe55(%rip),%xmm0
call   1060 <fexpectf@plt>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
lea    0xe5a(%rip),%rdi
mov    $0x56,%esi
movsd  0xe33(%rip),%xmm0
call   1060 <fexpectf@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<testmain>:
push   %rbx
lea    0xec8(%rip),%rdi
call   1030 <print@plt>
xor    %eax,%eax
call   1040 <std@plt>
lea    0xebb(%rip),%rbx
movsd  0xe9d(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x52,%esi
movaps %xmm0,%xmm1
call   1050 <fexpect@plt>
movsd  0xe8d(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x55,%esi
movaps %xmm0,%xmm1
call   1060 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x56,%esi
movsd  0xe6d(%rip),%xmm0
movaps %xmm0,%xmm1
pop    %rbx
jmp    1060 <fexpectf@plt>

LLVM IR (-O0):
@.str = [6 x i8] c"float\00"
@.str.1 = [128 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c\00"
define void @testmain() {
%1 = alloca float
%2 = alloca float
%3 = alloca double
%4 = alloca double
%5 = call i32 @print(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%6 = call i32 (...) @std()
%7 = call i32 @fexpect(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 82, double 0x3FE6666666666666, double 0x3FE6666666666666)
store float 1.000000e+01, float* %1
%8 = load float, float* %1
store float %8, float* %2
%9 = load float, float* %1
%10 = fpext float %9 to double
%11 = call i32 @fexpectf(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 85, double 1.000000e+01, double %10)
%12 = load float, float* %2
%13 = fpext float %12 to double
%14 = call i32 @fexpectf(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 86, double 1.000000e+01, double %13)
ret void
}

LLVM IR (-O2):
@.str = [6 x i8] c"float\00"
@.str.1 = [128 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/float.c\00"
define void @testmain() {
%1 = tail call i32 @print(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 (...) @std()
%3 = tail call i32 @fexpect(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 82, double 0x3FE6666666666666, double 0x3FE6666666666666)
%4 = tail call i32 @fexpectf(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 85, double 1.000000e+01, double 1.000000e+01)
%5 = tail call i32 @fexpectf(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.1, i64 0, i64 0), i32 86, double 1.000000e+01, double 1.000000e+01)
ret void
}