double *circleCosTable(void) {
  static double theTable[33] = {1.0,
                                0.98078528040323,
                                0.923879532511287,
                                0.831469612302545,
                                0.7071067811865475,
                                0.555570233019602,
                                0.38268343236509,
                                0.1950903220161286,
                                0.0,
                                -0.1950903220161283,
                                -0.3826834323650896,
                                -0.555570233019602,
                                -0.707106781186547,
                                -0.831469612302545,
                                -0.9238795325112865,
                                -0.98078528040323,
                                -1.0,
                                -0.98078528040323,
                                -0.923879532511287,
                                -0.831469612302545,
                                -0.707106781186548,
                                -0.555570233019602,
                                -0.3826834323650903,
                                -0.1950903220161287,
                                0.0,
                                0.1950903220161282,
                                0.38268343236509,
                                0.555570233019602,
                                0.707106781186547,
                                0.831469612302545,
                                0.9238795325112865,
                                0.98078528040323,
                                1.0};
  return theTable;
}


x86 assembly (clang, -O0):
<circleCosTable>:
push   %rbp
mov    %rsp,%rbp
lea    0x2f25(%rip),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<circleCosTable>:
lea    0x2f29(%rip),%rax
ret

LLVM IR (-O0):
@circleCosTable.theTable = internal global [33 x double] [double 1.000000e+00, double 0x3FEF6297CFF75CAC, double 0x3FED906BCF328D48, double 0x3FEA9B66290EA1A1, double 0x3FE6A09E667F3BCC, double 0x3FE1C73B39AE68C6, double 0x3FD87DE2A6AEA967, double 0x3FC8F8B83C69A617, double 0.000000e+00, double 0xBFC8F8B83C69A60C, double 0xBFD87DE2A6AEA960, double 0xBFE1C73B39AE68C6, double 0xBFE6A09E667F3BC8, double 0xBFEA9B66290EA1A1, double 0xBFED906BCF328D44, double 0xBFEF6297CFF75CAC, double -1.000000e+00, double 0xBFEF6297CFF75CAC, double 0xBFED906BCF328D48, double 0xBFEA9B66290EA1A1, double 0xBFE6A09E667F3BD1, double 0xBFE1C73B39AE68C6, double 0xBFD87DE2A6AEA96C, double 0xBFC8F8B83C69A61A, double 0.000000e+00, double 0x3FC8F8B83C69A608, double 0x3FD87DE2A6AEA967, double 0x3FE1C73B39AE68C6, double 0x3FE6A09E667F3BC8, double 0x3FEA9B66290EA1A1, double 0x3FED906BCF328D44, double 0x3FEF6297CFF75CAC, double 1.000000e+00]
define double* @circleCosTable() {
ret double* getelementptr inbounds ([33 x double], [33 x double]* @circleCosTable.theTable, i64 0, i64 0)
}

LLVM IR (-O2):
@circleCosTable.theTable = internal global [33 x double] [double 1.000000e+00, double 0x3FEF6297CFF75CAC, double 0x3FED906BCF328D48, double 0x3FEA9B66290EA1A1, double 0x3FE6A09E667F3BCC, double 0x3FE1C73B39AE68C6, double 0x3FD87DE2A6AEA967, double 0x3FC8F8B83C69A617, double 0.000000e+00, double 0xBFC8F8B83C69A60C, double 0xBFD87DE2A6AEA960, double 0xBFE1C73B39AE68C6, double 0xBFE6A09E667F3BC8, double 0xBFEA9B66290EA1A1, double 0xBFED906BCF328D44, double 0xBFEF6297CFF75CAC, double -1.000000e+00, double 0xBFEF6297CFF75CAC, double 0xBFED906BCF328D48, double 0xBFEA9B66290EA1A1, double 0xBFE6A09E667F3BD1, double 0xBFE1C73B39AE68C6, double 0xBFD87DE2A6AEA96C, double 0xBFC8F8B83C69A61A, double 0.000000e+00, double 0x3FC8F8B83C69A608, double 0x3FD87DE2A6AEA967, double 0x3FE1C73B39AE68C6, double 0x3FE6A09E667F3BC8, double 0x3FEA9B66290EA1A1, double 0x3FED906BCF328D44, double 0x3FEF6297CFF75CAC, double 1.000000e+00]
define double* @circleCosTable() {
ret double* getelementptr inbounds ([33 x double], [33 x double]* @circleCosTable.theTable, i64 0, i64 0)
}