#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*/ limits;

/* Variables and functions */
float *movArray(float *, int);
float *getThirdOctaveLimits(void) {
  float limits[] = {17.8, 22.4,  28.2,  35.5,  44.7,  56.2, 70.8, 89.1, 112,
                    141,  178,   224,   282,   355,   447,  562,  708,  891,
                    1122, 1413,  1778,  2239,  2818,  3548, 4467, 5623, 7079,
                    8913, 11220, 14130, 17780, 22390, 28210};
  return movArray(limits, sizeof(limits) / sizeof(float));
}


x86 assembly (clang, -O0):
<getThirdOctaveLimits>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
lea    -0x90(%rbp),%rdi
lea    0xec7(%rip),%rsi
mov    $0x84,%edx
call   1040 <memcpy@plt>
lea    -0x90(%rbp),%rdi
mov    $0x21,%esi
call   1030 <movArray@plt>
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<getThirdOctaveLimits>:
push   %rbx
sub    $0x90,%rsp
lea    0xed1(%rip),%rsi
mov    %rsp,%rbx
mov    $0x84,%edx
mov    %rbx,%rdi
call   1040 <memcpy@plt>
mov    %rbx,%rdi
mov    $0x21,%esi
call   1030 <movArray@plt>
add    $0x90,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@__const.getThirdOctaveLimits.limits = [33 x float] [float 0x4031CCCCC0000000, float 0x4036666660000000, float 0x403C333340000000, float 3.550000e+01, float 0x40465999A0000000, float 0x404C1999A0000000, float 0x4051B33340000000, float 0x4056466660000000, float 1.120000e+02, float 1.410000e+02, float 1.780000e+02, float 2.240000e+02, float 2.820000e+02, float 3.550000e+02, float 4.470000e+02, float 5.620000e+02, float 7.080000e+02, float 8.910000e+02, float 1.122000e+03, float 1.413000e+03, float 1.778000e+03, float 2.239000e+03, float 2.818000e+03, float 3.548000e+03, float 4.467000e+03, float 5.623000e+03, float 7.079000e+03, float 8.913000e+03, float 1.122000e+04, float 1.413000e+04, float 1.778000e+04, float 2.239000e+04, float 2.821000e+04]
define float* @getThirdOctaveLimits() {
%1 = alloca [33 x float]
%2 = bitcast [33 x float]* %1 to i8*
%3 = getelementptr inbounds [33 x float], [33 x float]* %1, i64 0, i64 0
%4 = call float* @movArray(float* %3, i32 33)
ret float* %4
}

LLVM IR (-O2):
@__const.getThirdOctaveLimits.limits = [33 x float] [float 0x4031CCCCC0000000, float 0x4036666660000000, float 0x403C333340000000, float 3.550000e+01, float 0x40465999A0000000, float 0x404C1999A0000000, float 0x4051B33340000000, float 0x4056466660000000, float 1.120000e+02, float 1.410000e+02, float 1.780000e+02, float 2.240000e+02, float 2.820000e+02, float 3.550000e+02, float 4.470000e+02, float 5.620000e+02, float 7.080000e+02, float 8.910000e+02, float 1.122000e+03, float 1.413000e+03, float 1.778000e+03, float 2.239000e+03, float 2.818000e+03, float 3.548000e+03, float 4.467000e+03, float 5.623000e+03, float 7.079000e+03, float 8.913000e+03, float 1.122000e+04, float 1.413000e+04, float 1.778000e+04, float 2.239000e+04, float 2.821000e+04]
define float* @getThirdOctaveLimits() {
%1 = alloca [33 x float]
%2 = bitcast [33 x float]* %1 to i8*
%3 = getelementptr inbounds [33 x float], [33 x float]* %1, i64 0, i64 0
%4 = call float* @movArray(float* %3, i32 33)
ret float* %4
}