Skip to content

Commit acb1b2b

Browse files
committed
phy: disable AVX512 extensions in the demodulation mapper for GCC version 9 and lower
1 parent 8d2288f commit acb1b2b

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

lib/phy/upper/channel_modulation/avx512_helpers.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,26 @@
1212

1313
#include <immintrin.h>
1414

15+
#ifndef __AVX512F__
16+
#error "Architecture missmatch. Missing avx512f."
17+
#endif // __AVX512F__
18+
19+
#ifndef __AVX512BW__
20+
#error "Architecture missmatch. Missing avx512bw."
21+
#endif // __AVX512BW__
22+
23+
#ifndef __AVX512DQ__
24+
#error "Architecture missmatch. Missing avx512dq."
25+
#endif // __AVX512DQ__
26+
27+
#ifndef __AVX512VBMI__
28+
#error "Architecture missmatch. Missing avx512vbmi."
29+
#endif // __AVX512VBMI__
30+
31+
#if defined(__GNUC__) && (__GNUC__ <= 9)
32+
#error "GCC version must be greater than 9."
33+
#endif // defined(__GNUC__) && (__GNUC__ <= 9)
34+
1535
namespace srsran {
1636

1737
namespace mm512 {

lib/phy/upper/channel_modulation/demodulation_mapper_qam256.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@
1111
#include "demodulation_mapper_intervals.h"
1212
#include "srsran/phy/upper/log_likelihood_ratio.h"
1313

14-
#if defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512DQ__) && defined(__AVX512VBMI__)
14+
#if defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512DQ__) && defined(__AVX512VBMI__) && \
15+
(!defined(__GNUC__) || (__GNUC__ > 9))
1516
#define HAVE_AVX512
1617
#include "avx512_helpers.h"
17-
#endif // defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512DQ__) && defined(__AVX512VBMI__)
18+
#endif
1819

1920
#ifdef __AVX2__
2021
#include "avx2_helpers.h"

lib/phy/upper/channel_modulation/demodulation_mapper_qam64.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@
1111
#include "demodulation_mapper_intervals.h"
1212
#include "srsran/phy/upper/log_likelihood_ratio.h"
1313

14-
#if defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512DQ__) && defined(__AVX512VBMI__)
14+
#if defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512DQ__) && defined(__AVX512VBMI__) && \
15+
(!defined(__GNUC__) || (__GNUC__ > 9))
1516
#define HAVE_AVX512
1617
#include "avx512_helpers.h"
17-
#endif // defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512DQ__) && defined(__AVX512VBMI__)
18+
#endif
1819

1920
#ifdef __AVX2__
2021
#include "avx2_helpers.h"

0 commit comments

Comments
 (0)