float Back__easeInOut(float t, float b, float c, float d, float s, float p1) {
  if (-1 == s) {
    s = 1.70158f;
  }
  if ((t /= d / 2) < 1)
    return c / 2 * (t * t * (((s *= (1.525f)) + 1) * t - s)) + b;
  float postFix = t -= 2;
  return c / 2 * ((postFix)*t * (((s *= (1.525f)) + 1) * t + s) + 2) + b;
}


x86 assembly (clang, -O0):
<Back__easeInOut>:
push   %rbp
mov    %rsp,%rbp
movss  %xmm0,-0x8(%rbp)
movss  %xmm1,-0xc(%rbp)
movss  %xmm2,-0x10(%rbp)
movss  %xmm3,-0x14(%rbp)
movss  %xmm4,-0x18(%rbp)
movss  %xmm5,-0x1c(%rbp)
movss  0xed6(%rip),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    1147 <Back__easeInOut+0x47>
jp     1147 <Back__easeInOut+0x47>
movss  0xec2(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x14(%rbp),%xmm0
movss  0xeb8(%rip),%xmm1
divss  %xmm1,%xmm0
movss  -0x8(%rbp),%xmm1
divss  %xmm0,%xmm1
movss  %xmm1,-0x8(%rbp)
movss  0xe9a(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    11ea <Back__easeInOut+0xea>
movss  -0x10(%rbp),%xmm0
movss  0xe88(%rip),%xmm1
divss  %xmm1,%xmm0
movss  -0x8(%rbp),%xmm2
mulss  -0x8(%rbp),%xmm2
movss  0xe76(%rip),%xmm1
mulss  -0x18(%rbp),%xmm1
movss  %xmm1,-0x18(%rbp)
movss  0xe5c(%rip),%xmm3
addss  %xmm3,%xmm1
movss  -0x8(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm1
addss  %xmm3,%xmm1
mulss  %xmm1,%xmm2
movss  -0xc(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1272 <Back__easeInOut+0x172>
movss  -0x8(%rbp),%xmm0
movss  0xe15(%rip),%xmm1
subss  %xmm1,%xmm0
movss  %xmm0,-0x8(%rbp)
movss  %xmm0,-0x20(%rbp)
movss  -0x10(%rbp),%xmm0
movss  0xdfa(%rip),%xmm1
divss  %xmm1,%xmm0
movss  -0x20(%rbp),%xmm2
mulss  -0x8(%rbp),%xmm2
movss  0xde8(%rip),%xmm1
mulss  -0x18(%rbp),%xmm1
movss  %xmm1,-0x18(%rbp)
movss  0xdce(%rip),%xmm3
addss  %xmm3,%xmm1
movss  -0x8(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  %xmm4,%xmm1
addss  %xmm3,%xmm1
mulss  %xmm1,%xmm2
movss  0xdb0(%rip),%xmm1
addss  %xmm1,%xmm2
movss  -0xc(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x4(%rbp)
movss  -0x4(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<Back__easeInOut>:
movss  0xef8(%rip),%xmm5
cmpeqss %xmm4,%xmm5
movss  0xeef(%rip),%xmm6
andps  %xmm5,%xmm6
andnps %xmm4,%xmm5
orps   %xmm6,%xmm5
mulss  0xee2(%rip),%xmm3
divss  %xmm3,%xmm0
movss  0xeda(%rip),%xmm3
ucomiss %xmm0,%xmm3
jbe    1165 <Back__easeInOut+0x65>
mulss  0xec9(%rip),%xmm2
mulss  0xecd(%rip),%xmm5
movss  0xebd(%rip),%xmm3
addss  %xmm5,%xmm3
mulss  %xmm0,%xmm3
mulss  %xmm0,%xmm0
subss  %xmm5,%xmm3
mulss  %xmm0,%xmm3
jmp    11a1 <Back__easeInOut+0xa1>
addss  0xea3(%rip),%xmm0
mulss  0xe93(%rip),%xmm2
mulss  0xe97(%rip),%xmm5
movss  0xe87(%rip),%xmm3
addss  %xmm5,%xmm3
mulss  %xmm0,%xmm3
mulss  %xmm0,%xmm0
addss  %xmm5,%xmm3
mulss  %xmm0,%xmm3
addss  0xe77(%rip),%xmm3
mulss  %xmm2,%xmm3
addss  %xmm1,%xmm3
movaps %xmm3,%xmm0
ret

LLVM IR (-O0):
define float @Back__easeInOut(float %0, float %1, float %2, float %3, float %4, float %5) {
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca float
%14 = alloca float
store float %0, float* %8
store float %1, float* %9
store float %2, float* %10
store float %3, float* %11
store float %4, float* %12
store float %5, float* %13
%15 = load float, float* %12
%16 = fcmp oeq float -1.000000e+00, %15
br i1 %16, label %17, label %18
17: ; preds = %6
store float 0x3FFB39AC00000000, float* %12
br label %18
18: ; preds = %17, %6
%19 = load float, float* %11
%20 = fdiv float %19, 2.000000e+00
%21 = load float, float* %8
%22 = fdiv float %21, %20
store float %22, float* %8
%23 = fcmp olt float %22, 1.000000e+00
br i1 %23, label %24, label %40
24: ; preds = %18
%25 = load float, float* %10
%26 = fdiv float %25, 2.000000e+00
%27 = load float, float* %8
%28 = load float, float* %8
%29 = fmul float %27, %28
%30 = load float, float* %12
%31 = fmul float %30, 0x3FF8666660000000
store float %31, float* %12
%32 = fadd float %31, 1.000000e+00
%33 = load float, float* %8
%34 = load float, float* %12
%35 = fneg float %34
%36 = call float @llvm.fmuladd.f32(float %32, float %33, float %35)
%37 = fmul float %29, %36
%38 = load float, float* %9
%39 = call float @llvm.fmuladd.f32(float %26, float %37, float %38)
store float %39, float* %7
br label %57
40: ; preds = %18
%41 = load float, float* %8
%42 = fsub float %41, 2.000000e+00
store float %42, float* %8
store float %42, float* %14
%43 = load float, float* %10
%44 = fdiv float %43, 2.000000e+00
%45 = load float, float* %14
%46 = load float, float* %8
%47 = fmul float %45, %46
%48 = load float, float* %12
%49 = fmul float %48, 0x3FF8666660000000
store float %49, float* %12
%50 = fadd float %49, 1.000000e+00
%51 = load float, float* %8
%52 = load float, float* %12
%53 = call float @llvm.fmuladd.f32(float %50, float %51, float %52)
%54 = call float @llvm.fmuladd.f32(float %47, float %53, float 2.000000e+00)
%55 = load float, float* %9
%56 = call float @llvm.fmuladd.f32(float %44, float %54, float %55)
store float %56, float* %7
br label %57
57: ; preds = %40, %24
%58 = load float, float* %7
ret float %58
}

LLVM IR (-O2):
define float @Back__easeInOut(float %0, float %1, float %2, float %3, float %4, float %5) {
%7 = fcmp oeq float %4, -1.000000e+00
%8 = select i1 %7, float 0x3FFB39AC00000000, float %4
%9 = fmul float %3, 5.000000e-01
%10 = fdiv float %0, %9
%11 = fcmp olt float %10, 1.000000e+00
br i1 %11, label %12, label %21
12: ; preds = %6
%13 = fmul float %2, 5.000000e-01
%14 = fmul float %10, %10
%15 = fmul float %8, 0x3FF8666660000000
%16 = fadd float %15, 1.000000e+00
%17 = fneg float %15
%18 = tail call float @llvm.fmuladd.f32(float %16, float %10, float %17)
%19 = fmul float %14, %18
%20 = tail call float @llvm.fmuladd.f32(float %13, float %19, float %1)
br label %30
21: ; preds = %6
%22 = fadd float %10, -2.000000e+00
%23 = fmul float %2, 5.000000e-01
%24 = fmul float %22, %22
%25 = fmul float %8, 0x3FF8666660000000
%26 = fadd float %25, 1.000000e+00
%27 = tail call float @llvm.fmuladd.f32(float %26, float %22, float %25)
%28 = tail call float @llvm.fmuladd.f32(float %24, float %27, float 2.000000e+00)
%29 = tail call float @llvm.fmuladd.f32(float %23, float %28, float %1)
br label %30
30: ; preds = %21, %12
%31 = phi float [ %20, %12 ], [ %29, %21 ]
ret float %31
}