Commit 73bc34b2 authored by Tsung-Yu Chan's avatar Tsung-Yu Chan Committed by Robert Schmidt

fix / compile on ARM

parent 5c7c5108
...@@ -1268,9 +1268,9 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB, ...@@ -1268,9 +1268,9 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
for (int group=0;group<ngroup;group++) { for (int group=0;group<ngroup;group++) {
// each group has 8*nc_group_size elements, compute 1 complex correlation with DMRS per group // each group has 8*nc_group_size elements, compute 1 complex correlation with DMRS per group
// non-coherent combining across groups // non-coherent combining across groups
__m64 dmrs_re = byte2m64_re[sGold8[(group & 1) << 1]]; simde__m64 dmrs_re = byte2m64_re[sGold8[(group & 1) << 1]];
int16_t *dmrs_re16 = (int16_t *)&dmrs_re; int16_t *dmrs_re16 = (int16_t *)&dmrs_re;
__m64 dmrs_im = byte2m64_im[sGold8[(group & 1) << 1]]; simde__m64 dmrs_im = byte2m64_im[sGold8[(group & 1) << 1]];
int16_t *dmrs_im16 = (int16_t *)&dmrs_im; int16_t *dmrs_im16 = (int16_t *)&dmrs_im;
#ifdef DEBUG_NR_PUCCH_RX #ifdef DEBUG_NR_PUCCH_RX
printf("Group %d: s %x x2 %x ((%d,%d),(%d,%d),(%d,%d),(%d,%d))\n", printf("Group %d: s %x x2 %x ((%d,%d),(%d,%d),(%d,%d),(%d,%d))\n",
......
...@@ -80,6 +80,7 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y, ...@@ -80,6 +80,7 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y,
// stores result in y // stores result in y
// N is the number of complex numbers // N is the number of complex numbers
// output_shift reduces the result of the multiplication by this number of bits // output_shift reduces the result of the multiplication by this number of bits
#if defined(__x86_64__) || defined (__i386__)
if ( __builtin_cpu_supports("avx2")) { if ( __builtin_cpu_supports("avx2")) {
// output is 32 bytes aligned, but not the input // output is 32 bytes aligned, but not the input
...@@ -137,6 +138,7 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y, ...@@ -137,6 +138,7 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y,
*yLast=c16mulShift(*xTail,*alpha16,output_shift); *yLast=c16mulShift(*xTail,*alpha16,output_shift);
} }
} else { } else {
#endif
// Multiply elementwise two complex vectors of N elements // Multiply elementwise two complex vectors of N elements
// x - input 1 in the format |Re0 Im0 |,......,|Re(N-1) Im(N-1)| // x - input 1 in the format |Re0 Im0 |,......,|Re(N-1) Im(N-1)|
// We assume x1 with a dynamic of 15 bit maximum // We assume x1 with a dynamic of 15 bit maximum
...@@ -184,7 +186,9 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y, ...@@ -184,7 +186,9 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y,
xd+=4; xd+=4;
y_128+=1; y_128+=1;
} }
#if defined(__x86__) || defined(__x86_64__)
} }
#endif
} }
#ifdef MAIN #ifdef MAIN
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment