int MetType(dots, histoire, xLoc, yLoc, zLoc)
double ***dots;
struct story **histoire;
double xLoc, yLoc, zLoc;
{
  int sox;
  int type = 0;
  int age = 0;
  double dip = 0.0, dipdir = 0.0;
  sox = 2;
  find(dots, histoire, xLoc, yLoc, zLoc, sox, age, type, &dip, &dipdir);
  return (1);
}


x86 assembly (clang, -O0):
<MetType>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movsd  %xmm0,-0x18(%rbp)
movsd  %xmm1,-0x20(%rbp)
movsd  %xmm2,-0x28(%rbp)
movl   $0x0,-0x30(%rbp)
movl   $0x0,-0x34(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x2,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
movsd  -0x18(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
mov    -0x2c(%rbp),%edx
mov    -0x34(%rbp),%ecx
mov    -0x30(%rbp),%r8d
lea    -0x40(%rbp),%r9
lea    -0x48(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x3,%al
call   1030 <find@plt>
mov    $0x1,%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<MetType>:
sub    $0x18,%rsp
movq   $0x0,0x10(%rsp)
movq   $0x0,0x8(%rsp)
lea    0x8(%rsp),%rax
mov    %rax,(%rsp)
lea    0x10(%rsp),%r9
mov    $0x2,%edx
xor    %ecx,%ecx
xor    %r8d,%r8d
mov    $0x3,%al
call   1030 <find@plt>
mov    $0x1,%eax
add    $0x18,%rsp
ret

LLVM IR (-O0):
%struct.story = type opaque
define i32 @MetType(double*** %0, %struct.story** %1, double %2, double %3, double %4) {
%6 = alloca double***
%7 = alloca %struct.story**
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca double
%15 = alloca double
store double*** %0, double**** %6
store %struct.story** %1, %struct.story*** %7
store double %2, double* %8
store double %3, double* %9
store double %4, double* %10
store i32 0, i32* %12
store i32 0, i32* %13
store double 0.000000e+00, double* %14
store double 0.000000e+00, double* %15
store i32 2, i32* %11
%16 = load double***, double**** %6
%17 = load %struct.story**, %struct.story*** %7
%18 = load double, double* %8
%19 = load double, double* %9
%20 = load double, double* %10
%21 = load i32, i32* %11
%22 = load i32, i32* %13
%23 = load i32, i32* %12
%24 = call i32 (double***, %struct.story**, double, double, double, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @find to i32 (double***, %struct.story**, double, double, double, i32, i32, i32, double*, double*, ...)*)(double*** %16, %struct.story** %17, double %18, double %19, double %20, i32 %21, i32 %22, i32 %23, double* %14, double* %15)
ret i32 1
}

LLVM IR (-O2):
%struct.story = type opaque
define i32 @MetType(double*** %0, %struct.story** %1, double %2, double %3, double %4) {
%6 = alloca double
%7 = alloca double
%8 = bitcast double* %6 to i8*
store double 0.000000e+00, double* %6
%9 = bitcast double* %7 to i8*
store double 0.000000e+00, double* %7
%10 = call i32 (double***, %struct.story**, double, double, double, i32, i32, i32, double*, double*, ...) bitcast (i32 (...)* @find to i32 (double***, %struct.story**, double, double, double, i32, i32, i32, double*, double*, ...)*)(double*** %0, %struct.story** %1, double %2, double %3, double %4, i32 2, i32 0, i32 0, double* %6, double* %7)
ret i32 1
}