#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_CPU_X86_VECTOR_MATH_AVX_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_CPU_X86_VECTOR_MATH_AVX_H_
#include <cstddef>
#include "third_party/blink/renderer/platform/audio/audio_array.h"
namespace blink {
namespace vector_math {
namespace avx {
constexpr uint32_t kBitsPerRegister = …;
constexpr uint32_t kPackedFloatsPerRegister = …;
constexpr size_t kFramesToProcessMask = …;
bool IsAligned(const float*);
void Conv(const float* source_p,
const float* prepared_filter_p,
float* dest_p,
uint32_t frames_to_process,
size_t filter_size);
void PrepareFilterForConv(const float* filter_p,
int filter_stride,
size_t filter_size,
AudioFloatArray* prepared_filter);
void Vadd(const float* source1p,
const float* source2p,
float* dest_p,
uint32_t frames_to_process);
void Vsub(const float* source1p,
const float* source2p,
float* dest_p,
uint32_t frames_to_process);
void Vclip(const float* source_p,
const float* low_threshold_p,
const float* high_threshold_p,
float* dest_p,
uint32_t frames_to_process);
void Vmaxmgv(const float* source_p, float* max_p, uint32_t frames_to_process);
void Vmul(const float* source1p,
const float* source2p,
float* dest_p,
uint32_t frames_to_process);
void Vsma(const float* source_p,
const float* scale,
float* dest_p,
uint32_t frames_to_process);
void Vsmul(const float* source_p,
const float* scale,
float* dest_p,
uint32_t frames_to_process);
void Vsadd(const float* source_p,
const float* addend,
float* dest_p,
uint32_t frames_to_process);
void Vsadd(const float* source_p,
float addend,
float* dest_p,
uint32_t frames_to_process);
void Vsvesq(const float* source_p, float* sum_p, uint32_t frames_to_process);
void Zvmul(const float* real1p,
const float* imag1p,
const float* real2p,
const float* imag2p,
float* real_dest_p,
float* imag_dest_p,
uint32_t frames_to_process);
}
}
}
#endif