#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*/ f77skernel400_(int *, int *, int *, int *, int *, float *,
                                  float *, int *, float *, float *, float *,
                                  float *, float *, float *, float *, int *,
                                  int *, float *, float *, float *, float *,
                                  float *, float *, float *, float *, int *,
                                  int *, void *, int *, int *, float *);
void nb_kernel400_f77_single(int *nri, int *iinr, int *jindex, int *jjnr,
                             int *shift, float *shiftvec, float *fshift,
                             int *gid, float *pos, float *faction,
                             float *charge, float *facel, float *krf,
                             float *crf, float *Vc, int *type, int *ntype,
                             float *vdwparam, float *Vvdw, float *tadirale,
                             float *VFtab, float *invsqrta, float *dvda,
                             float *gbtadirale, float *GBtab, int *nthreads,
                             int *count, void *mtx, int *outeriter,
                             int *inneriter, float *work) {
  f77skernel400_(nri, iinr, jindex, jjnr, shift, shiftvec, fshift, gid, pos,
                 faction, charge, facel, krf, crf, Vc, type, ntype, vdwparam,
                 Vvdw, tadirale, VFtab, invsqrta, dvda, gbtadirale, GBtab,
                 nthreads, count, mtx, outeriter, inneriter, work);
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x188,%rsp
mov    0xd0(%rbp),%rax
mov    0xc8(%rbp),%rax
mov    0xc0(%rbp),%rax
mov    0xb8(%rbp),%rax
mov    0xb0(%rbp),%rax
mov    0xa8(%rbp),%rax
mov    0xa0(%rbp),%rax
mov    0x98(%rbp),%rax
mov    0x90(%rbp),%rax
mov    0x88(%rbp),%rax
mov    0x80(%rbp),%rax
mov    0x78(%rbp),%rax
mov    0x70(%rbp),%rax
mov    0x68(%rbp),%rax
mov    0x60(%rbp),%rax
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
mov    %rdx,-0x40(%rbp)
mov    %rcx,-0x48(%rbp)
mov    %r8,-0x50(%rbp)
mov    %r9,-0x58(%rbp)
mov    -0x30(%rbp),%rdi
mov    -0x38(%rbp),%rsi
mov    -0x40(%rbp),%rdx
mov    -0x48(%rbp),%rcx
mov    -0x50(%rbp),%r8
mov    -0x58(%rbp),%r9
mov    0x10(%rbp),%rax
mov    %rax,-0xe8(%rbp)
mov    0x18(%rbp),%rax
mov    %rax,-0xe0(%rbp)
mov    0x20(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    0x28(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    0x30(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    0x38(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    0x40(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    0x48(%rbp),%rax
mov    %rax,-0xb0(%rbp)
mov    0x50(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    0x58(%rbp),%rax
mov    %rax,-0xa0(%rbp)
mov    0x60(%rbp),%rax
mov    %rax,-0x98(%rbp)
mov    0x68(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    0x70(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    0x78(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    0x80(%rbp),%rax
mov    %rax,-0x78(%rbp)
mov    0x88(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    0x90(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    0x98(%rbp),%r13
mov    0xa0(%rbp),%r12
mov    0xa8(%rbp),%r15
mov    0xb0(%rbp),%r14
mov    0xb8(%rbp),%rbx
mov    0xc0(%rbp),%r11
mov    0xc8(%rbp),%r10
mov    0xd0(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0xe8(%rbp),%rax
mov    %rax,(%rsp)
mov    -0xe0(%rbp),%rax
mov    %rax,0x8(%rsp)
mov    -0xd8(%rbp),%rax
mov    %rax,0x10(%rsp)
mov    -0xd0(%rbp),%rax
mov    %rax,0x18(%rsp)
mov    -0xc8(%rbp),%rax
mov    %rax,0x20(%rsp)
mov    -0xc0(%rbp),%rax
mov    %rax,0x28(%rsp)
mov    -0xb8(%rbp),%rax
mov    %rax,0x30(%rsp)
mov    -0xb0(%rbp),%rax
mov    %rax,0x38(%rsp)
mov    -0xa8(%rbp),%rax
mov    %rax,0x40(%rsp)
mov    -0xa0(%rbp),%rax
mov    %rax,0x48(%rsp)
mov    -0x98(%rbp),%rax
mov    %rax,0x50(%rsp)
mov    -0x90(%rbp),%rax
mov    %rax,0x58(%rsp)
mov    -0x88(%rbp),%rax
mov    %rax,0x60(%rsp)
mov    -0x80(%rbp),%rax
mov    %rax,0x68(%rsp)
mov    -0x78(%rbp),%rax
mov    %rax,0x70(%rsp)
mov    -0x70(%rbp),%rax
mov    %rax,0x78(%rsp)
mov    -0x68(%rbp),%rax
mov    %rax,0x80(%rsp)
mov    -0x60(%rbp),%rax
mov    %r13,0x88(%rsp)
mov    %r12,0x90(%rsp)
mov    %r15,0x98(%rsp)
mov    %r14,0xa0(%rsp)
mov    %rbx,0xa8(%rsp)
mov    %r11,0xb0(%rsp)
mov    %r10,0xb8(%rsp)
mov    %rax,0xc0(%rsp)
call   1030 <f77skernel400_@plt>
add    $0x188,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
jmp    1030 <f77skernel400_@plt>

LLVM IR (-O0):
define void @nb_kernel400_f77_single(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, float* %5, float* %6, i32* %7, float* %8, float* %9, float* %10, float* %11, float* %12, float* %13, float* %14, i32* %15, i32* %16, float* %17, float* %18, float* %19, float* %20, float* %21, float* %22, float* %23, float* %24, i32* %25, i32* %26, i8* %27, i32* %28, i32* %29, float* %30) {
%32 = alloca i32*
%33 = alloca i32*
%34 = alloca i32*
%35 = alloca i32*
%36 = alloca i32*
%37 = alloca float*
%38 = alloca float*
%39 = alloca i32*
%40 = alloca float*
%41 = alloca float*
%42 = alloca float*
%43 = alloca float*
%44 = alloca float*
%45 = alloca float*
%46 = alloca float*
%47 = alloca i32*
%48 = alloca i32*
%49 = alloca float*
%50 = alloca float*
%51 = alloca float*
%52 = alloca float*
%53 = alloca float*
%54 = alloca float*
%55 = alloca float*
%56 = alloca float*
%57 = alloca i32*
%58 = alloca i32*
%59 = alloca i8*
%60 = alloca i32*
%61 = alloca i32*
%62 = alloca float*
store i32* %0, i32** %32
store i32* %1, i32** %33
store i32* %2, i32** %34
store i32* %3, i32** %35
store i32* %4, i32** %36
store float* %5, float** %37
store float* %6, float** %38
store i32* %7, i32** %39
store float* %8, float** %40
store float* %9, float** %41
store float* %10, float** %42
store float* %11, float** %43
store float* %12, float** %44
store float* %13, float** %45
store float* %14, float** %46
store i32* %15, i32** %47
store i32* %16, i32** %48
store float* %17, float** %49
store float* %18, float** %50
store float* %19, float** %51
store float* %20, float** %52
store float* %21, float** %53
store float* %22, float** %54
store float* %23, float** %55
store float* %24, float** %56
store i32* %25, i32** %57
store i32* %26, i32** %58
store i8* %27, i8** %59
store i32* %28, i32** %60
store i32* %29, i32** %61
store float* %30, float** %62
%63 = load i32*, i32** %32
%64 = load i32*, i32** %33
%65 = load i32*, i32** %34
%66 = load i32*, i32** %35
%67 = load i32*, i32** %36
%68 = load float*, float** %37
%69 = load float*, float** %38
%70 = load i32*, i32** %39
%71 = load float*, float** %40
%72 = load float*, float** %41
%73 = load float*, float** %42
%74 = load float*, float** %43
%75 = load float*, float** %44
%76 = load float*, float** %45
%77 = load float*, float** %46
%78 = load i32*, i32** %47
%79 = load i32*, i32** %48
%80 = load float*, float** %49
%81 = load float*, float** %50
%82 = load float*, float** %51
%83 = load float*, float** %52
%84 = load float*, float** %53
%85 = load float*, float** %54
%86 = load float*, float** %55
%87 = load float*, float** %56
%88 = load i32*, i32** %57
%89 = load i32*, i32** %58
%90 = load i8*, i8** %59
%91 = load i32*, i32** %60
%92 = load i32*, i32** %61
%93 = load float*, float** %62
%94 = call i32 @f77skernel400_(i32* %63, i32* %64, i32* %65, i32* %66, i32* %67, float* %68, float* %69, i32* %70, float* %71, float* %72, float* %73, float* %74, float* %75, float* %76, float* %77, i32* %78, i32* %79, float* %80, float* %81, float* %82, float* %83, float* %84, float* %85, float* %86, float* %87, i32* %88, i32* %89, i8* %90, i32* %91, i32* %92, float* %93)
ret void
}

LLVM IR (-O2):
define void @nb_kernel400_f77_single(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, float* %5, float* %6, i32* %7, float* %8, float* %9, float* %10, float* %11, float* %12, float* %13, float* %14, i32* %15, i32* %16, float* %17, float* %18, float* %19, float* %20, float* %21, float* %22, float* %23, float* %24, i32* %25, i32* %26, i8* %27, i32* %28, i32* %29, float* %30) {
%32 = tail call i32 @f77skernel400_(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, float* %5, float* %6, i32* %7, float* %8, float* %9, float* %10, float* %11, float* %12, float* %13, float* %14, i32* %15, i32* %16, float* %17, float* %18, float* %19, float* %20, float* %21, float* %22, float* %23, float* %24, i32* %25, i32* %26, i8* %27, i32* %28, i32* %29, float* %30)
ret void
}