blob: 54ddfb3055b0492c7d02851cb050c0b0b7f98341 [file] [log] [blame]
Alessio Bazzica253f8362020-11-27 16:02:38 +01001/*
2 * Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef MODULES_AUDIO_PROCESSING_AGC2_CPU_FEATURES_H_
12#define MODULES_AUDIO_PROCESSING_AGC2_CPU_FEATURES_H_
13
14#include <string>
15
16namespace webrtc {
17
18// Collection of flags indicating which CPU features are available on the
19// current platform. True means available.
20struct AvailableCpuFeatures {
21 AvailableCpuFeatures(bool sse2, bool avx2, bool neon)
22 : sse2(sse2), avx2(avx2), neon(neon) {}
23 // Intel.
24 bool sse2;
25 bool avx2;
26 // ARM.
27 bool neon;
28 std::string ToString() const;
29};
30
31// Detects what CPU features are available.
32AvailableCpuFeatures GetAvailableCpuFeatures();
33
Alessio Bazzicae8ee4622020-12-08 11:30:47 +010034// Returns the CPU feature flags all set to false.
35AvailableCpuFeatures NoAvailableCpuFeatures();
36
Alessio Bazzica253f8362020-11-27 16:02:38 +010037} // namespace webrtc
38
39#endif // MODULES_AUDIO_PROCESSING_AGC2_CPU_FEATURES_H_