#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*/ fexpectf(char *, int, int, float);
void many_floats(float v01, float v02, float v03, float v04, float v05,
                 float v06, float v07, float v08, float v09, float v10,
                 float v11, float v12, float v13, float v14, float v15,
                 float v16, float v17) {
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           15, 1, v01);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           15, 2, v02);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           15, 3, v03);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           15, 4, v04);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           16, 5, v05);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           16, 6, v06);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           16, 7, v07);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           16, 8, v08);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           17, 9, v09);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           17, 10, v10);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           17, 11, v11);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           17, 12, v12);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           18, 13, v13);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           18, 14, v14);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           18, 15, v15);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           18, 16, v16);
  ;
  fexpectf("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
           "2022-01-22/02-19-57/repos/8l/8cc/refs/heads/master/test/funcargs.c",
           19, 17, v17);
  ;
}


x86 assembly (clang, -O0):
<many_floats>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
movss  0x50(%rbp),%xmm8
movss  0x48(%rbp),%xmm8
movss  0x40(%rbp),%xmm8
movss  0x38(%rbp),%xmm8
movss  0x30(%rbp),%xmm8
movss  0x28(%rbp),%xmm8
movss  0x20(%rbp),%xmm8
movss  0x18(%rbp),%xmm8
movss  0x10(%rbp),%xmm8
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  %xmm2,-0xc(%rbp)
movss  %xmm3,-0x10(%rbp)
movss  %xmm4,-0x14(%rbp)
movss  %xmm5,-0x18(%rbp)
movss  %xmm6,-0x1c(%rbp)
movss  %xmm7,-0x20(%rbp)
movss  -0x4(%rbp),%xmm0
lea    0xe7e(%rip),%rdi
mov    $0xf,%esi
mov    $0x1,%edx
call   1030 <fexpectf@plt>
movss  -0x8(%rbp),%xmm0
lea    0xe63(%rip),%rdi
mov    $0xf,%esi
mov    $0x2,%edx
call   1030 <fexpectf@plt>
movss  -0xc(%rbp),%xmm0
lea    0xe48(%rip),%rdi
mov    $0xf,%esi
mov    $0x3,%edx
call   1030 <fexpectf@plt>
movss  -0x10(%rbp),%xmm0
lea    0xe2d(%rip),%rdi
mov    $0xf,%esi
mov    $0x4,%edx
call   1030 <fexpectf@plt>
movss  -0x14(%rbp),%xmm0
lea    0xe12(%rip),%rdi
mov    $0x10,%esi
mov    $0x5,%edx
call   1030 <fexpectf@plt>
movss  -0x18(%rbp),%xmm0
lea    0xdf7(%rip),%rdi
mov    $0x10,%esi
mov    $0x6,%edx
call   1030 <fexpectf@plt>
movss  -0x1c(%rbp),%xmm0
lea    0xddc(%rip),%rdi
mov    $0x10,%esi
mov    $0x7,%edx
call   1030 <fexpectf@plt>
movss  -0x20(%rbp),%xmm0
lea    0xdc1(%rip),%rdi
mov    $0x10,%esi
mov    $0x8,%edx
call   1030 <fexpectf@plt>
movss  0x10(%rbp),%xmm0
lea    0xda6(%rip),%rdi
mov    $0x11,%esi
mov    $0x9,%edx
call   1030 <fexpectf@plt>
movss  0x18(%rbp),%xmm0
lea    0xd8b(%rip),%rdi
mov    $0x11,%esi
mov    $0xa,%edx
call   1030 <fexpectf@plt>
movss  0x20(%rbp),%xmm0
lea    0xd70(%rip),%rdi
mov    $0x11,%esi
mov    $0xb,%edx
call   1030 <fexpectf@plt>
movss  0x28(%rbp),%xmm0
lea    0xd55(%rip),%rdi
mov    $0x11,%esi
mov    $0xc,%edx
call   1030 <fexpectf@plt>
movss  0x30(%rbp),%xmm0
lea    0xd3a(%rip),%rdi
mov    $0x12,%esi
mov    $0xd,%edx
call   1030 <fexpectf@plt>
movss  0x38(%rbp),%xmm0
lea    0xd1f(%rip),%rdi
mov    $0x12,%esi
mov    $0xe,%edx
call   1030 <fexpectf@plt>
movss  0x40(%rbp),%xmm0
lea    0xd04(%rip),%rdi
mov    $0x12,%esi
mov    $0xf,%edx
call   1030 <fexpectf@plt>
movss  0x48(%rbp),%xmm0
lea    0xce9(%rip),%rdi
mov    $0x12,%esi
mov    $0x10,%edx
call   1030 <fexpectf@plt>
movss  0x50(%rbp),%xmm0
lea    0xcce(%rip),%rdi
mov    $0x13,%esi
mov    $0x11,%edx
call   1030 <fexpectf@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<many_floats>:
push   %rbx
sub    $0x40,%rsp
movss  %xmm7,0x1c(%rsp)
movss  %xmm6,0x14(%rsp)
movss  %xmm5,0x10(%rsp)
movss  %xmm4,0xc(%rsp)
movss  %xmm3,0x8(%rsp)
movss  %xmm2,0x4(%rsp)
movss  %xmm1,(%rsp)
movss  0x90(%rsp),%xmm1
movss  %xmm1,0x3c(%rsp)
movss  0x88(%rsp),%xmm1
movss  %xmm1,0x38(%rsp)
movss  0x80(%rsp),%xmm1
movss  %xmm1,0x34(%rsp)
movss  0x78(%rsp),%xmm1
movss  %xmm1,0x30(%rsp)
movss  0x70(%rsp),%xmm1
movss  %xmm1,0x2c(%rsp)
movss  0x68(%rsp),%xmm1
movss  %xmm1,0x28(%rsp)
movss  0x60(%rsp),%xmm1
movss  %xmm1,0x24(%rsp)
movss  0x58(%rsp),%xmm1
movss  %xmm1,0x20(%rsp)
movss  0x50(%rsp),%xmm1
movss  %xmm1,0x18(%rsp)
lea    0xe46(%rip),%rbx
mov    %rbx,%rdi
mov    $0xf,%esi
mov    $0x1,%edx
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0xf,%esi
mov    $0x2,%edx
movss  (%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0xf,%esi
mov    $0x3,%edx
movss  0x4(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0xf,%esi
mov    $0x4,%edx
movss  0x8(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x10,%esi
mov    $0x5,%edx
movss  0xc(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x10,%esi
mov    $0x6,%edx
movss  0x10(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x10,%esi
mov    $0x7,%edx
movss  0x14(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x10,%esi
mov    $0x8,%edx
movss  0x1c(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x11,%esi
mov    $0x9,%edx
movss  0x18(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x11,%esi
mov    $0xa,%edx
movss  0x20(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x11,%esi
mov    $0xb,%edx
movss  0x24(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x11,%esi
mov    $0xc,%edx
movss  0x28(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x12,%esi
mov    $0xd,%edx
movss  0x2c(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x12,%esi
mov    $0xe,%edx
movss  0x30(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x12,%esi
mov    $0xf,%edx
movss  0x34(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x12,%esi
mov    $0x10,%edx
movss  0x38(%rsp),%xmm0
call   1030 <fexpectf@plt>
mov    %rbx,%rdi
mov    $0x13,%esi
mov    $0x11,%edx
movss  0x3c(%rsp),%xmm0
add    $0x40,%rsp
pop    %rbx
jmp    1030 <fexpectf@plt>

LLVM IR (-O0):
@.str = [131 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/funcargs.c\00"
define void @many_floats(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9, float %10, float %11, float %12, float %13, float %14, float %15, float %16) {
%18 = alloca float
%19 = alloca float
%20 = alloca float
%21 = alloca float
%22 = alloca float
%23 = alloca float
%24 = alloca float
%25 = alloca float
%26 = alloca float
%27 = alloca float
%28 = alloca float
%29 = alloca float
%30 = alloca float
%31 = alloca float
%32 = alloca float
%33 = alloca float
%34 = alloca float
store float %0, float* %18
store float %1, float* %19
store float %2, float* %20
store float %3, float* %21
store float %4, float* %22
store float %5, float* %23
store float %6, float* %24
store float %7, float* %25
store float %8, float* %26
store float %9, float* %27
store float %10, float* %28
store float %11, float* %29
store float %12, float* %30
store float %13, float* %31
store float %14, float* %32
store float %15, float* %33
store float %16, float* %34
%35 = load float, float* %18
%36 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 1, float %35)
%37 = load float, float* %19
%38 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 2, float %37)
%39 = load float, float* %20
%40 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 3, float %39)
%41 = load float, float* %21
%42 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 4, float %41)
%43 = load float, float* %22
%44 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 5, float %43)
%45 = load float, float* %23
%46 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 6, float %45)
%47 = load float, float* %24
%48 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 7, float %47)
%49 = load float, float* %25
%50 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 8, float %49)
%51 = load float, float* %26
%52 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 9, float %51)
%53 = load float, float* %27
%54 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 10, float %53)
%55 = load float, float* %28
%56 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 11, float %55)
%57 = load float, float* %29
%58 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 12, float %57)
%59 = load float, float* %30
%60 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 13, float %59)
%61 = load float, float* %31
%62 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 14, float %61)
%63 = load float, float* %32
%64 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 15, float %63)
%65 = load float, float* %33
%66 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 16, float %65)
%67 = load float, float* %34
%68 = call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 19, i32 17, float %67)
ret void
}

LLVM IR (-O2):
@.str = [131 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/funcargs.c\00"
define void @many_floats(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9, float %10, float %11, float %12, float %13, float %14, float %15, float %16) {
%18 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 1, float %0)
%19 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 2, float %1)
%20 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 3, float %2)
%21 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 15, i32 4, float %3)
%22 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 5, float %4)
%23 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 6, float %5)
%24 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 7, float %6)
%25 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 16, i32 8, float %7)
%26 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 9, float %8)
%27 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 10, float %9)
%28 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 11, float %10)
%29 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 17, i32 12, float %11)
%30 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 13, float %12)
%31 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 14, float %13)
%32 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 15, float %14)
%33 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 18, i32 16, float %15)
%34 = tail call i32 @fexpectf(i8* getelementptr inbounds ([131 x i8], [131 x i8]* @.str, i64 0, i64 0), i32 19, i32 17, float %16)
ret void
}