Cog Audio: Fix >16 <=32 integer bits per sample to float conversion on Apple Silicon

CQTexperiment
Christopher Snowhill 2022-01-14 18:51:12 -08:00
parent 2d32381bc1
commit 59aea2966f
1 changed files with 3 additions and 3 deletions

View File

@ -43,12 +43,12 @@ void convert_s32_to_float(float *out,
if (s32_to_float_neon_enabled)
{
float gf = gain / (1 << 31);
float gf = gain / UINT32_C(1U << 31);
float32x4_t vgf = {gf, gf, gf, gf};
while (samples >= 8)
{
float32x4x2_t oreg;
int32x4x2_t inreg = vld1q_s32_x2(in);
int32x4x2_t inreg = vld2q_s32(in);
oreg.val[0] = vmulq_f32(vcvtq_f32_s32(inreg.val[0]), vgf);
oreg.val[1] = vmulq_f32(vcvtq_f32_s32(inreg.val[1]), vgf);
vst2q_f32(out, oreg);
@ -58,7 +58,7 @@ void convert_s32_to_float(float *out,
}
}
gain /= 0x80000000L;
gain /= UINT32_C(0x80000000);
for (; i < samples; i++)
out[i] = (float)in[i] * gain;