float LIBRARYN(int k5, int k6) {
  float mb;
  static float Sc[27] = {.0624, .004,  .0002, .0002, .0002, .0003, .0004,
                         .0007, .0018, .0002, .0029, .0027, .0002, .0003,
                         .0015, .012,  .1606, .0165, .0088, .0077, .008,
                         .0088, .0115, .0181, .0298, .065,  1.8959};
  static float St[27] = {1.6997, 1.983,  2.49,   2.7009,  3.6807,   4.8441,
                         3.4525, 4.198,  3.4019, 3.5606,  5.8435,   3.8273,
                         4.1147, 4.7631, 6.7045, 22.5407, 135.4947, 7.1825,
                         3.7014, 3.2684, 3.2164, 3.167,   3.1517,   3.1531,
                         3.1661, 3.2399, 5.2291};
  static float Se[27] = {.7397,  1.1014, 1.7866, 2.183,   3.1705,   4.6032,
                         3.4502, 4.1973, 3.4001, 3.5603,  5.8406,   3.8246,
                         4.1145, 4.7628, 6.7031, 22.5287, 135.3341, 7.1659,
                         3.6925, 3.2607, 3.2084, 3.1582,  3.1401,   3.135,
                         3.1363, 3.1749, 3.3331};
  static float Sre[27] = {.1085, .138,   .1779, .2425,  .3629, .688,  .5524,
                          .6804, .5799,  .6077, .9995,  .6596, .7061, .8132,
                          1.143, 3.8416, 0,     1.2219, .6296, .556,  .5471,
                          .2693, .2677,  .2673, .2674,  .1353, .0322};
  static float Mue[27] = {.6057, .5065, .4844, .3685, .3491, .1495, .0887,
                          .0773, .0292, .0284, .0258, .0182, .023,  .028,
                          .0293, .0293, .0293, .0293, .0293, .0293, .0293,
                          .0293, .0293, .0293, .0293, .0293, .0293};
  static float Sin[27] = {.8976, .8776, .7032, .5177, .51, .2406, .0019};
  switch (k6) {
  case (0):
    mb = Sc[k5];
    break;
  case (1):
    mb = St[k5];
    break;
  case (2):
    mb = Se[k5];
    break;
  case (3):
    mb = Sre[k5];
    break;
  case (4):
    mb = Mue[k5];
    break;
  case (5):
    mb = Sin[k5];
    break;
  }
  return mb;
}


x86 assembly (clang, -O0):
<LIBRARYN>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %rax,-0x18(%rbp)
sub    $0x5,%rax
ja     11c6 <LIBRARYN+0xc6>
mov    -0x18(%rbp),%rax
lea    0xeda(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movslq -0x4(%rbp),%rcx
lea    0x2ef6(%rip),%rax
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    11c6 <LIBRARYN+0xc6>
movslq -0x4(%rbp),%rcx
lea    0x2f4c(%rip),%rax
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    11c6 <LIBRARYN+0xc6>
movslq -0x4(%rbp),%rcx
lea    0x2fa2(%rip),%rax
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    11c6 <LIBRARYN+0xc6>
movslq -0x4(%rbp),%rcx
lea    0x2ff8(%rip),%rax
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    11c6 <LIBRARYN+0xc6>
movslq -0x4(%rbp),%rcx
lea    0x304e(%rip),%rax
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    11c6 <LIBRARYN+0xc6>
movslq -0x4(%rbp),%rcx
lea    0x30a4(%rip),%rax
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0xc(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<LIBRARYN>:
cmp    $0x5,%esi
ja     111e <LIBRARYN+0x1e>
movslq %esi,%rax
lea    0x118d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
movslq %edi,%rcx
movss  (%rax,%rcx,4),%xmm0
ret

LLVM IR (-O0):
@LIBRARYN.Sc = internal global [27 x float] [float 0x3FAFF2E480000000, float 0x3F70624DE0000000, float 0x3F2A36E2E0000000, float 0x3F2A36E2E0000000, float 0x3F2A36E2E0000000, float 0x3F33A92A40000000, float 0x3F3A36E2E0000000, float 0x3F46F00680000000, float 0x3F5D7DBF40000000, float 0x3F2A36E2E0000000, float 0x3F67C1BDA0000000, float 0x3F661E4F80000000, float 0x3F2A36E2E0000000, float 0x3F33A92A40000000, float 0x3F589374C0000000, float 0x3F889374C0000000, float 0x3FC48E8A80000000, float 0x3F90E56040000000, float 0x3F8205BC00000000, float 0x3F7F8A0900000000, float 0x3F80624DE0000000, float 0x3F8205BC00000000, float 0x3F878D4FE0000000, float 0x3F9288CE80000000, float 0x3F9E83E420000000, float 0x3FB0A3D700000000, float 0x3FFE559B40000000]
@LIBRARYN.St = internal global [27 x float] [float 0x3FFB31F8A0000000, float 0x3FFFBA5E40000000, float 0x4003EB8520000000, float 0x40059B7180000000, float 0x400D7212E0000000, float 0x4013605BC0000000, float 0x400B9EB860000000, float 0x4010CAC080000000, float 0x400B371760000000, float 0x400C7C1BE0000000, float 0x40175FBE80000000, float 0x400E9E4F80000000, float 0x40107573E0000000, float 0x40130D6A20000000, float 0x401AD16880000000, float 0x40368A6B60000000, float 0x4060EFD4A0000000, float 0x401CBAE140000000, float 0x400D9C77A0000000, float 0x400A25AEE0000000, float 0x4009BB2FE0000000, float 0x4009560420000000, float 0x400936AE80000000, float 0x4009398C80000000, float 0x4009542C40000000, float 0x4009EB50C0000000, float 0x4014EA9940000000]
@LIBRARYN.Se = internal global [27 x float] [float 0x3FE7AB9F60000000, float 0x3FF19F55A0000000, float 0x3FFC95E9E0000000, float 0x400176C8C0000000, float 0x40095D2F20000000, float 0x401269AD40000000, float 0x400B9A0280000000, float 0x4010CA0900000000, float 0x400B3367A0000000, float 0x400C7B7EA0000000, float 0x40175CC640000000, float 0x400E98C7E0000000, float 0x4010753F80000000, float 0x40130D1B80000000, float 0x401ACFF980000000, float 0x40368758E0000000, float 0x4060EAB100000000, float 0x401CA9E1C0000000, float 0x400D8A3D80000000, float 0x400A15E9E0000000, float 0x4009AACDA0000000, float 0x400943FE60000000, float 0x40091EECC0000000, float 0x4009147AE0000000, float 0x4009172480000000, float 0x4009663200000000, float 0x400AAA3060000000]
@LIBRARYN.Sre = internal global [27 x float] [float 0x3FBBC6A7E0000000, float 0x3FC1A9FBE0000000, float 0x3FC6C56D60000000, float 0x3FCF0A3D80000000, float 0x3FD739C0E0000000, float 0x3FE60418A0000000, float 0x3FE1AD42C0000000, float 0x3FE5C5D640000000, float 0x3FE28E8A80000000, float 0x3FE3724740000000, float 0x3FEFFBE760000000, float 0x3FE51B7180000000, float 0x3FE6985F00000000, float 0x3FEA05BC00000000, float 0x3FF249BA60000000, float 0x400EBB98C0000000, float 0.000000e+00, float 0x3FF38CE700000000, float 0x3FE425AEE0000000, float 0x3FE1CAC080000000, float 0x3FE181D7E0000000, float 0x3FD13C3620000000, float 0x3FD121FF20000000, float 0x3FD11B7180000000, float 0x3FD11D14E0000000, float 0x3FC15182A0000000, float 0x3FA07C84C0000000]
@LIBRARYN.Mue = internal global [27 x float] [float 0x3FE361E500000000, float 0x3FE0353F80000000, float 0x3FDF0068E0000000, float 0x3FD7958100000000, float 0x3FD657A780000000, float 0x3FC322D0E0000000, float 0x3FB6B50B00000000, float 0x3FB3C9EEC0000000, float 0x3F9DE69AE0000000, float 0x3F9D14E3C0000000, float 0x3F9A6B50C0000000, float 0x3F92A30560000000, float 0x3F978D4FE0000000, float 0x3F9CAC0840000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000]
@LIBRARYN.Sin = internal global <{ float, float, float, float, float, float, float, [20 x float] }> <{ float 0x3FECB923A0000000, float 0x3FEC154CA0000000, float 0x3FE6809D40000000, float 0x3FE090FFA0000000, float 0x3FE051EB80000000, float 0x3FCECBFB20000000, float 0x3F5F212D80000000, [20 x float] zeroinitializer }>
define float @LIBRARYN(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca float
store i32 %0, i32* %3
store i32 %1, i32* %4
%6 = load i32, i32* %4
switch i32 %6, label %37 [
i32 0, label %7
i32 1, label %12
i32 2, label %17
i32 3, label %22
i32 4, label %27
i32 5, label %32
]
7: ; preds = %2
%8 = load i32, i32* %3
%9 = sext i32 %8 to i64
%10 = getelementptr inbounds [27 x float], [27 x float]* @LIBRARYN.Sc, i64 0, i64 %9
%11 = load float, float* %10
store float %11, float* %5
br label %37
12: ; preds = %2
%13 = load i32, i32* %3
%14 = sext i32 %13 to i64
%15 = getelementptr inbounds [27 x float], [27 x float]* @LIBRARYN.St, i64 0, i64 %14
%16 = load float, float* %15
store float %16, float* %5
br label %37
17: ; preds = %2
%18 = load i32, i32* %3
%19 = sext i32 %18 to i64
%20 = getelementptr inbounds [27 x float], [27 x float]* @LIBRARYN.Se, i64 0, i64 %19
%21 = load float, float* %20
store float %21, float* %5
br label %37
22: ; preds = %2
%23 = load i32, i32* %3
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [27 x float], [27 x float]* @LIBRARYN.Sre, i64 0, i64 %24
%26 = load float, float* %25
store float %26, float* %5
br label %37
27: ; preds = %2
%28 = load i32, i32* %3
%29 = sext i32 %28 to i64
%30 = getelementptr inbounds [27 x float], [27 x float]* @LIBRARYN.Mue, i64 0, i64 %29
%31 = load float, float* %30
store float %31, float* %5
br label %37
32: ; preds = %2
%33 = load i32, i32* %3
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds [27 x float], [27 x float]* bitcast (<{ float, float, float, float, float, float, float, [20 x float] }>* @LIBRARYN.Sin to [27 x float]*), i64 0, i64 %34
%36 = load float, float* %35
store float %36, float* %5
br label %37
37: ; preds = %2, %32, %27, %22, %17, %12, %7
%38 = load float, float* %5
ret float %38
}

LLVM IR (-O2):
@LIBRARYN.Sc = internal unnamed_addr constant [27 x float] [float 0x3FAFF2E480000000, float 0x3F70624DE0000000, float 0x3F2A36E2E0000000, float 0x3F2A36E2E0000000, float 0x3F2A36E2E0000000, float 0x3F33A92A40000000, float 0x3F3A36E2E0000000, float 0x3F46F00680000000, float 0x3F5D7DBF40000000, float 0x3F2A36E2E0000000, float 0x3F67C1BDA0000000, float 0x3F661E4F80000000, float 0x3F2A36E2E0000000, float 0x3F33A92A40000000, float 0x3F589374C0000000, float 0x3F889374C0000000, float 0x3FC48E8A80000000, float 0x3F90E56040000000, float 0x3F8205BC00000000, float 0x3F7F8A0900000000, float 0x3F80624DE0000000, float 0x3F8205BC00000000, float 0x3F878D4FE0000000, float 0x3F9288CE80000000, float 0x3F9E83E420000000, float 0x3FB0A3D700000000, float 0x3FFE559B40000000]
@LIBRARYN.St = internal unnamed_addr constant [27 x float] [float 0x3FFB31F8A0000000, float 0x3FFFBA5E40000000, float 0x4003EB8520000000, float 0x40059B7180000000, float 0x400D7212E0000000, float 0x4013605BC0000000, float 0x400B9EB860000000, float 0x4010CAC080000000, float 0x400B371760000000, float 0x400C7C1BE0000000, float 0x40175FBE80000000, float 0x400E9E4F80000000, float 0x40107573E0000000, float 0x40130D6A20000000, float 0x401AD16880000000, float 0x40368A6B60000000, float 0x4060EFD4A0000000, float 0x401CBAE140000000, float 0x400D9C77A0000000, float 0x400A25AEE0000000, float 0x4009BB2FE0000000, float 0x4009560420000000, float 0x400936AE80000000, float 0x4009398C80000000, float 0x4009542C40000000, float 0x4009EB50C0000000, float 0x4014EA9940000000]
@LIBRARYN.Se = internal unnamed_addr constant [27 x float] [float 0x3FE7AB9F60000000, float 0x3FF19F55A0000000, float 0x3FFC95E9E0000000, float 0x400176C8C0000000, float 0x40095D2F20000000, float 0x401269AD40000000, float 0x400B9A0280000000, float 0x4010CA0900000000, float 0x400B3367A0000000, float 0x400C7B7EA0000000, float 0x40175CC640000000, float 0x400E98C7E0000000, float 0x4010753F80000000, float 0x40130D1B80000000, float 0x401ACFF980000000, float 0x40368758E0000000, float 0x4060EAB100000000, float 0x401CA9E1C0000000, float 0x400D8A3D80000000, float 0x400A15E9E0000000, float 0x4009AACDA0000000, float 0x400943FE60000000, float 0x40091EECC0000000, float 0x4009147AE0000000, float 0x4009172480000000, float 0x4009663200000000, float 0x400AAA3060000000]
@LIBRARYN.Sre = internal unnamed_addr constant [27 x float] [float 0x3FBBC6A7E0000000, float 0x3FC1A9FBE0000000, float 0x3FC6C56D60000000, float 0x3FCF0A3D80000000, float 0x3FD739C0E0000000, float 0x3FE60418A0000000, float 0x3FE1AD42C0000000, float 0x3FE5C5D640000000, float 0x3FE28E8A80000000, float 0x3FE3724740000000, float 0x3FEFFBE760000000, float 0x3FE51B7180000000, float 0x3FE6985F00000000, float 0x3FEA05BC00000000, float 0x3FF249BA60000000, float 0x400EBB98C0000000, float 0.000000e+00, float 0x3FF38CE700000000, float 0x3FE425AEE0000000, float 0x3FE1CAC080000000, float 0x3FE181D7E0000000, float 0x3FD13C3620000000, float 0x3FD121FF20000000, float 0x3FD11B7180000000, float 0x3FD11D14E0000000, float 0x3FC15182A0000000, float 0x3FA07C84C0000000]
@LIBRARYN.Mue = internal unnamed_addr constant [27 x float] [float 0x3FE361E500000000, float 0x3FE0353F80000000, float 0x3FDF0068E0000000, float 0x3FD7958100000000, float 0x3FD657A780000000, float 0x3FC322D0E0000000, float 0x3FB6B50B00000000, float 0x3FB3C9EEC0000000, float 0x3F9DE69AE0000000, float 0x3F9D14E3C0000000, float 0x3F9A6B50C0000000, float 0x3F92A30560000000, float 0x3F978D4FE0000000, float 0x3F9CAC0840000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000, float 0x3F9E00D1C0000000]
@LIBRARYN.Sin = internal unnamed_addr constant <{ float, float, float, float, float, float, float, [20 x float] }> <{ float 0x3FECB923A0000000, float 0x3FEC154CA0000000, float 0x3FE6809D40000000, float 0x3FE090FFA0000000, float 0x3FE051EB80000000, float 0x3FCECBFB20000000, float 0x3F5F212D80000000, [20 x float] zeroinitializer }>
@reltable.LIBRARYN = [6 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([27 x float]* @LIBRARYN.Sc to i64), i64 ptrtoint ([6 x i32]* @reltable.LIBRARYN to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x float]* @LIBRARYN.St to i64), i64 ptrtoint ([6 x i32]* @reltable.LIBRARYN to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x float]* @LIBRARYN.Se to i64), i64 ptrtoint ([6 x i32]* @reltable.LIBRARYN to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x float]* @LIBRARYN.Sre to i64), i64 ptrtoint ([6 x i32]* @reltable.LIBRARYN to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x float]* @LIBRARYN.Mue to i64), i64 ptrtoint ([6 x i32]* @reltable.LIBRARYN to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint (<{ float, float, float, float, float, float, float, [20 x float] }>* @LIBRARYN.Sin to i64), i64 ptrtoint ([6 x i32]* @reltable.LIBRARYN to i64)) to i32)]
define float @LIBRARYN(i32 %0, i32 %1) {
%3 = icmp ult i32 %1, 6
br i1 %3, label %4, label %12
4: ; preds = %2
%5 = sext i32 %1 to i64
%6 = shl i64 %5, 2
%7 = call i8* @llvm.load.relative.i64(i8* bitcast ([6 x i32]* @reltable.LIBRARYN to i8*), i64 %6)
%8 = bitcast i8* %7 to [27 x float]*
%9 = sext i32 %0 to i64
%10 = getelementptr inbounds [27 x float], [27 x float]* %8, i64 0, i64 %9
%11 = load float, float* %10
br label %12
12: ; preds = %2, %4
%13 = phi float [ undef, %2 ], [ %11, %4 ]
ret float %13
}