From cb562c27695f8dbbf956639c7cb4dbb1dad18bfb Mon Sep 17 00:00:00 2001 From: Quency Lin Date: Wed, 5 Jul 2023 09:05:24 +0200 Subject: [PATCH] Remove partial 256 SIMDe dependence for ARM --- CMakeLists.txt | 1 - openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c | 10 ++++++++++ .../PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ba4412b38..8a09e1664c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1112,7 +1112,6 @@ if (${SMBV}) endif (${SMBV}) set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c) -set(PHY_NR_UE_SRC ${PHY_NR_UE_SRC} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c) add_library(PHY_COMMON ${PHY_SRC_COMMON}) target_link_libraries(PHY_COMMON PRIVATE shlib_loader) diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c index 383218def9..c3c3f0d006 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c @@ -8001,6 +8001,7 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, memcpy(ch_mag_i_256i, ch_mag_i, len*4); memcpy(rho_256i, rho, len*4); +#if defined(__x86_64__) qam64_qam64_avx2((int32_t *)rxF_256i, (int32_t *)rxF_i_256i, (int32_t *)ch_mag_256i, @@ -8008,6 +8009,15 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, (int16_t *)llr16, (int32_t *) rho_256i, len); +#else // defined(__arm__) || defined(__aarch64__) + qam64_qam64((int32_t *)rxF_256i, + (int32_t *)rxF_i_256i, + (int32_t *)ch_mag_256i, + (int32_t *)ch_mag_i_256i, + (int16_t *)llr16, + (int32_t *) rho_256i, + len); +#endif free16(rxF_256i, sizeof(rxF_256i)); free16(rxF_i_256i, sizeof(rxF_i_256i)); diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c index bb800afe9c..9995f9b8d9 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c @@ -35,6 +35,8 @@ #include "PHY/phy_extern_ue.h" #include "PHY/sse_intrin.h" +#if defined(__x86_64__) + static const int16_t ones256[16] __attribute__((aligned(32))) = {0xffff, 0xffff, 0xffff, @@ -3500,3 +3502,5 @@ void qam64_qam64_avx2(int32_t *stream0_in, simde_mm_empty(); simde_m_empty(); } + +#endif \ No newline at end of file