#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 */
typedef int /*<<< orphan*/ sqlite3_value;
typedef int /*<<< orphan*/ sqlite3_context;

/* Variables and functions */
double acos(double);
double atan(int);
double cos(double);
double fabs(double);
double pow(double, int);
double sin(double);
int /*<<< orphan*/ sqlite3_result_double(int /*<<< orphan*/ *, double);
double sqlite3_value_double(int /*<<< orphan*/ *);
int tan(double);
void calculateDis(sqlite3_context *ctx, int nargs, sqlite3_value **values) {
  double lat1, lat2, long1, long2;
  lat1 = sqlite3_value_double(values[0]);
  long1 = sqlite3_value_double(values[1]);
  lat2 = sqlite3_value_double(values[2]);
  long2 = sqlite3_value_double(values[3]);
  lat1 = lat1 * 3.1415926 / 180;
  lat2 = lat2 * 3.1415926 / 180;
  long1 = long1 * 3.1415926 / 180;
  long2 = long2 * 3.1415926 / 180;
  double rLat1 = atan((1 - 1 / 298.257223563) * tan(lat1));
  double rLat2 = atan((1 - 1 / 298.257223563) * tan(lat2));
  double ca =
      acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * fabs(long1 - long2));
  double P = (lat1 + lat2) / 2;
  double Q = (lat2 - lat1) / 2;
  double X =
      (ca - sin(ca)) * pow(sin(P), 2) * pow(cos(Q), 2) / pow(cos(ca / 2), 2);
  double Y =
      (ca + sin(ca)) * pow(cos(P), 2) * pow(sin(Q), 2) / pow(sin(ca / 2), 2);
  double distance = 6378137 * (ca - (1 / 298.257223563 / 2) * (X - Y));
  sqlite3_result_double(ctx, distance);
}


x86 assembly (clang, -O0):
<calculateDis>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%rdi
call   10a0 <sqlite3_value_double@plt>
movsd  %xmm0,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rdi
call   10a0 <sqlite3_value_double@plt>
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%rdi
call   10a0 <sqlite3_value_double@plt>
movsd  %xmm0,-0x28(%rbp)
mov    -0x18(%rbp),%rax
mov    0x18(%rax),%rdi
call   10a0 <sqlite3_value_double@plt>
movsd  %xmm0,-0x38(%rbp)
movsd  0xe43(%rip),%xmm0
mulsd  -0x20(%rbp),%xmm0
movsd  0xe2e(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xe25(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xe10(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xe07(%rip),%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  0xdf2(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0xde9(%rip),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  0xdd4(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1060 <tan@plt>
cvtsi2sd %eax,%xmm1
movsd  0xdad(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1050 <atan@plt>
movsd  %xmm0,-0x40(%rbp)
movsd  -0x28(%rbp),%xmm0
call   1060 <tan@plt>
cvtsi2sd %eax,%xmm1
movsd  0xd85(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1050 <atan@plt>
movsd  %xmm0,-0x48(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1040 <sin@plt>
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
call   1040 <sin@plt>
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
call   1080 <cos@plt>
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
call   1080 <cos@plt>
movsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
movsd  -0x30(%rbp),%xmm3
subsd  -0x38(%rbp),%xmm3
movaps 0xd1b(%rip),%xmm4
pand   %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1030 <acos@plt>
movsd  %xmm0,-0x50(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  0xccf(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x28(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  0xcb4(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
call   1040 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0xb8(%rbp),%xmm0
ff
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
call   1040 <sin@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
call   1080 <cos@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xa8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  0xc1a(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1080 <cos@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
call   1040 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x98(%rbp),%xmm0
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
call   1080 <cos@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x90(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
call   1040 <sin@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x88(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  0xb65(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <sin@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm1
subsd  -0x70(%rbp),%xmm1
movsd  0xb22(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xb0a(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x8(%rbp),%rdi
movsd  -0x78(%rbp),%xmm0
call   1070 <sqlite3_result_double@plt>
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<calculateDis>:
push   %r14
push   %rbx
sub    $0x78,%rsp
mov    %rdx,%rbx
mov    %rdi,%r14
mov    (%rdx),%rdi
call   10a0 <sqlite3_value_double@plt>
movapd %xmm0,(%rsp)
mov    0x8(%rbx),%rdi
call   10a0 <sqlite3_value_double@plt>
movapd %xmm0,0x20(%rsp)
mov    0x10(%rbx),%rdi
call   10a0 <sqlite3_value_double@plt>
movapd %xmm0,0x10(%rsp)
mov    0x18(%rbx),%rdi
call   10a0 <sqlite3_value_double@plt>
movapd 0x10(%rsp),%xmm3
unpcklpd (%rsp),%xmm3
movapd 0xe2c(%rip),%xmm1
mulpd  %xmm1,%xmm3
movapd 0xe30(%rip),%xmm2
divpd  %xmm2,%xmm3
movapd %xmm3,0x10(%rsp)
movapd 0x20(%rsp),%xmm4
unpcklpd %xmm0,%xmm4
mulpd  %xmm1,%xmm4
divpd  %xmm2,%xmm4
movapd %xmm4,0x20(%rsp)
movapd %xmm3,%xmm0
unpckhpd %xmm3,%xmm0
movapd %xmm0,(%rsp)
call   1060 <tan@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe0d(%rip),%xmm0
cvttsd2si %xmm0,%edi
call   1050 <atan@plt>
movaps 0x10(%rsp),%xmm0
call   1060 <tan@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xdeb(%rip),%xmm0
cvttsd2si %xmm0,%edi
call   1050 <atan@plt>
movaps (%rsp),%xmm0
call   1040 <sin@plt>
movsd  %xmm0,0x30(%rsp)
movaps 0x10(%rsp),%xmm0
call   1040 <sin@plt>
movsd  %xmm0,0x40(%rsp)
movaps (%rsp),%xmm0
call   1080 <cos@plt>
movsd  %xmm0,0x60(%rsp)
movapd 0x10(%rsp),%xmm0
call   1080 <cos@plt>
movapd 0x20(%rsp),%xmm2
movapd %xmm2,%xmm1
unpckhpd %xmm2,%xmm1
subsd  %xmm1,%xmm2
andpd  0xd7f(%rip),%xmm2
mulsd  0x60(%rsp),%xmm0
mulsd  %xmm2,%xmm0
movsd  0x40(%rsp),%xmm1
mulsd  0x30(%rsp),%xmm1
addsd  %xmm1,%xmm0
call   1030 <acos@plt>
movapd %xmm0,0x20(%rsp)
movapd (%rsp),%xmm1
movapd %xmm1,%xmm2
movapd 0x10(%rsp),%xmm3
addsd  %xmm3,%xmm2
movsd  0xd57(%rip),%xmm4
mulsd  %xmm4,%xmm2
movapd %xmm2,0x40(%rsp)
subsd  %xmm1,%xmm3
mulsd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
call   1040 <sin@plt>
movsd  %xmm0,0x50(%rsp)
movaps 0x40(%rsp),%xmm0
call   1040 <sin@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,0x30(%rsp)
movaps 0x10(%rsp),%xmm0
call   1080 <cos@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movaps %xmm0,(%rsp)
movsd  0xcfb(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x70(%rsp)
call   1080 <cos@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movapd %xmm0,0x60(%rsp)
movapd 0x20(%rsp),%xmm0
call   1040 <sin@plt>
movapd 0x20(%rsp),%xmm2
movapd %xmm2,%xmm1
unpcklpd %xmm2,%xmm1
unpcklpd %xmm0,%xmm0
addpd  %xmm1,%xmm0
subsd  0x50(%rsp),%xmm2
shufpd $0x2,%xmm0,%xmm2
movapd %xmm2,0x50(%rsp)
movapd 0x40(%rsp),%xmm0
call   1080 <cos@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movapd 0x30(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  0x50(%rsp),%xmm1
movapd %xmm1,0x30(%rsp)
movapd 0x10(%rsp),%xmm0
call   1040 <sin@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movapd (%rsp),%xmm1
unpcklpd %xmm0,%xmm1
mulpd  0x30(%rsp),%xmm1
movapd %xmm1,(%rsp)
movsd  0x70(%rsp),%xmm0
call   1040 <sin@plt>
mov    $0x2,%edi
call   1090 <pow@plt>
movapd 0x60(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
movapd (%rsp),%xmm1
divpd  %xmm2,%xmm1
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
subsd  %xmm0,%xmm1
mulsd  0xc20(%rip),%xmm1
addsd  0x20(%rsp),%xmm1
mulsd  0xc1a(%rip),%xmm1
movapd %xmm1,%xmm0
mov    %r14,%rdi
add    $0x78,%rsp
pop    %rbx
pop    %r14
jmp    1070 <sqlite3_result_double@plt>

LLVM IR (-O0):
define void @calculateDis(i32* %0, i32 %1, i32** %2) {
%4 = alloca i32*
%5 = alloca i32
%6 = alloca i32**
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
store i32* %0, i32** %4
store i32 %1, i32* %5
store i32** %2, i32*** %6
%19 = load i32**, i32*** %6
%20 = getelementptr inbounds i32*, i32** %19, i64 0
%21 = load i32*, i32** %20
%22 = call double @sqlite3_value_double(i32* %21)
store double %22, double* %7
%23 = load i32**, i32*** %6
%24 = getelementptr inbounds i32*, i32** %23, i64 1
%25 = load i32*, i32** %24
%26 = call double @sqlite3_value_double(i32* %25)
store double %26, double* %9
%27 = load i32**, i32*** %6
%28 = getelementptr inbounds i32*, i32** %27, i64 2
%29 = load i32*, i32** %28
%30 = call double @sqlite3_value_double(i32* %29)
store double %30, double* %8
%31 = load i32**, i32*** %6
%32 = getelementptr inbounds i32*, i32** %31, i64 3
%33 = load i32*, i32** %32
%34 = call double @sqlite3_value_double(i32* %33)
store double %34, double* %10
%35 = load double, double* %7
%36 = fmul double %35, 0x400921FB4D12D84A
%37 = fdiv double %36, 1.800000e+02
store double %37, double* %7
%38 = load double, double* %8
%39 = fmul double %38, 0x400921FB4D12D84A
%40 = fdiv double %39, 1.800000e+02
store double %40, double* %8
%41 = load double, double* %9
%42 = fmul double %41, 0x400921FB4D12D84A
%43 = fdiv double %42, 1.800000e+02
store double %43, double* %9
%44 = load double, double* %10
%45 = fmul double %44, 0x400921FB4D12D84A
%46 = fdiv double %45, 1.800000e+02
store double %46, double* %10
%47 = load double, double* %7
%48 = call i32 @tan(double %47)
%49 = sitofp i32 %48 to double
%50 = fmul double 0x3FEFE488A57B0C1F, %49
%51 = fptosi double %50 to i32
%52 = call double @atan(i32 %51)
store double %52, double* %11
%53 = load double, double* %8
%54 = call i32 @tan(double %53)
%55 = sitofp i32 %54 to double
%56 = fmul double 0x3FEFE488A57B0C1F, %55
%57 = fptosi double %56 to i32
%58 = call double @atan(i32 %57)
store double %58, double* %12
%59 = load double, double* %7
%60 = call double @sin(double %59)
%61 = load double, double* %8
%62 = call double @sin(double %61)
%63 = load double, double* %7
%64 = call double @cos(double %63)
%65 = load double, double* %8
%66 = call double @cos(double %65)
%67 = fmul double %64, %66
%68 = load double, double* %9
%69 = load double, double* %10
%70 = fsub double %68, %69
%71 = call double @llvm.fabs.f64(double %70)
%72 = fmul double %67, %71
%73 = call double @llvm.fmuladd.f64(double %60, double %62, double %72)
%74 = call double @acos(double %73)
store double %74, double* %13
%75 = load double, double* %7
%76 = load double, double* %8
%77 = fadd double %75, %76
%78 = fdiv double %77, 2.000000e+00
store double %78, double* %14
%79 = load double, double* %8
%80 = load double, double* %7
%81 = fsub double %79, %80
%82 = fdiv double %81, 2.000000e+00
store double %82, double* %15
%83 = load double, double* %13
%84 = load double, double* %13
%85 = call double @sin(double %84)
%86 = fsub double %83, %85
%87 = load double, double* %14
%88 = call double @sin(double %87)
%89 = call double @pow(double %88, i32 2)
%90 = fmul double %86, %89
%91 = load double, double* %15
%92 = call double @cos(double %91)
%93 = call double @pow(double %92, i32 2)
%94 = fmul double %90, %93
%95 = load double, double* %13
%96 = fdiv double %95, 2.000000e+00
%97 = call double @cos(double %96)
%98 = call double @pow(double %97, i32 2)
%99 = fdiv double %94, %98
store double %99, double* %16
%100 = load double, double* %13
%101 = load double, double* %13
%102 = call double @sin(double %101)
%103 = fadd double %100, %102
%104 = load double, double* %14
%105 = call double @cos(double %104)
%106 = call double @pow(double %105, i32 2)
%107 = fmul double %103, %106
%108 = load double, double* %15
%109 = call double @sin(double %108)
%110 = call double @pow(double %109, i32 2)
%111 = fmul double %107, %110
%112 = load double, double* %13
%113 = fdiv double %112, 2.000000e+00
%114 = call double @sin(double %113)
%115 = call double @pow(double %114, i32 2)
%116 = fdiv double %111, %115
store double %116, double* %17
%117 = load double, double* %13
%118 = load double, double* %16
%119 = load double, double* %17
%120 = fsub double %118, %119
%121 = call double @llvm.fmuladd.f64(double 0xBF5B775A84F3E128, double %120, double %117)
%122 = fmul double 0x415854A640000000, %121
store double %122, double* %18
%123 = load i32*, i32** %4
%124 = load double, double* %18
%125 = call i32 @sqlite3_result_double(i32* %123, double %124)
ret void
}

LLVM IR (-O2):
define void @calculateDis(i32* %0, i32 %1, i32** nocapture %2) {
%4 = load i32*, i32** %2
%5 = tail call double @sqlite3_value_double(i32* %4)
%6 = getelementptr inbounds i32*, i32** %2, i64 1
%7 = load i32*, i32** %6
%8 = tail call double @sqlite3_value_double(i32* %7)
%9 = getelementptr inbounds i32*, i32** %2, i64 2
%10 = load i32*, i32** %9
%11 = tail call double @sqlite3_value_double(i32* %10)
%12 = getelementptr inbounds i32*, i32** %2, i64 3
%13 = load i32*, i32** %12
%14 = tail call double @sqlite3_value_double(i32* %13)
%15 = insertelement <2 x double> poison, double %11, i64 0
%16 = insertelement <2 x double> %15, double %5, i64 1
%17 = fmul <2 x double> %16, <double 0x400921FB4D12D84A, double 0x400921FB4D12D84A>
%18 = fdiv <2 x double> %17, <double 1.800000e+02, double 1.800000e+02>
%19 = insertelement <2 x double> poison, double %8, i64 0
%20 = insertelement <2 x double> %19, double %14, i64 1
%21 = fmul <2 x double> %20, <double 0x400921FB4D12D84A, double 0x400921FB4D12D84A>
%22 = fdiv <2 x double> %21, <double 1.800000e+02, double 1.800000e+02>
%23 = extractelement <2 x double> %18, i64 1
%24 = tail call i32 @tan(double %23)
%25 = sitofp i32 %24 to double
%26 = fmul double %25, 0x3FEFE488A57B0C1F
%27 = fptosi double %26 to i32
%28 = tail call double @atan(i32 %27)
%29 = extractelement <2 x double> %18, i64 0
%30 = tail call i32 @tan(double %29)
%31 = sitofp i32 %30 to double
%32 = fmul double %31, 0x3FEFE488A57B0C1F
%33 = fptosi double %32 to i32
%34 = tail call double @atan(i32 %33)
%35 = tail call double @sin(double %23)
%36 = tail call double @sin(double %29)
%37 = tail call double @cos(double %23)
%38 = tail call double @cos(double %29)
%39 = fmul double %37, %38
%40 = shufflevector <2 x double> %22, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%41 = fsub <2 x double> %22, %40
%42 = extractelement <2 x double> %41, i64 0
%43 = tail call double @llvm.fabs.f64(double %42)
%44 = fmul double %43, %39
%45 = tail call double @llvm.fmuladd.f64(double %35, double %36, double %44)
%46 = tail call double @acos(double %45)
%47 = fadd double %23, %29
%48 = fmul double %47, 5.000000e-01
%49 = fsub double %29, %23
%50 = fmul double %49, 5.000000e-01
%51 = tail call double @sin(double %46)
%52 = tail call double @sin(double %48)
%53 = tail call double @pow(double %52, i32 2)
%54 = tail call double @cos(double %50)
%55 = tail call double @pow(double %54, i32 2)
%56 = fmul double %46, 5.000000e-01
%57 = tail call double @cos(double %56)
%58 = tail call double @pow(double %57, i32 2)
%59 = tail call double @sin(double %46)
%60 = insertelement <2 x double> poison, double %46, i64 0
%61 = shufflevector <2 x double> %60, <2 x double> poison, <2 x i32> zeroinitializer
%62 = insertelement <2 x double> poison, double %51, i64 0
%63 = insertelement <2 x double> %62, double %59, i64 1
%64 = fsub <2 x double> %61, %63
%65 = fadd <2 x double> %61, %63
%66 = shufflevector <2 x double> %64, <2 x double> %65, <2 x i32> <i32 0, i32 3>
%67 = tail call double @cos(double %48)
%68 = tail call double @pow(double %67, i32 2)
%69 = insertelement <2 x double> poison, double %53, i64 0
%70 = insertelement <2 x double> %69, double %68, i64 1
%71 = fmul <2 x double> %66, %70
%72 = tail call double @sin(double %50)
%73 = tail call double @pow(double %72, i32 2)
%74 = insertelement <2 x double> poison, double %55, i64 0
%75 = insertelement <2 x double> %74, double %73, i64 1
%76 = fmul <2 x double> %71, %75
%77 = tail call double @sin(double %56)
%78 = tail call double @pow(double %77, i32 2)
%79 = insertelement <2 x double> poison, double %58, i64 0
%80 = insertelement <2 x double> %79, double %78, i64 1
%81 = fdiv <2 x double> %76, %80
%82 = shufflevector <2 x double> %81, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%83 = fsub <2 x double> %81, %82
%84 = extractelement <2 x double> %83, i64 0
%85 = tail call double @llvm.fmuladd.f64(double %84, double 0xBF5B775A84F3E128, double %46)
%86 = fmul double %85, 0x415854A640000000
%87 = tail call i32 @sqlite3_result_double(i32* %0, double %86)
ret void
}