From fe1dc24e2868c5e50a7fec22fc3f7a7610e2ce43 Mon Sep 17 00:00:00 2001 From: Bruno Mongazon-Cazavet Date: Wed, 28 Sep 2022 17:58:19 +0200 Subject: [PATCH] Add Intrinsics usage by SIMDE --- CMakeLists.txt | 86 +- ci-scripts/oai-ci-vm-tool | 10 +- ci-scripts/xml_files/gnb_usrp_build.xml | 2 +- cmake_targets/build_oai | 27 +- cmake_targets/tools/build_helper | 11 + common/utils/time_meas.h | 4 +- common/utils/utils.h | 12 - executables/main-fs6.c | 2 +- executables/main-ocp.c | 10 +- executables/softmodem-common.c | 3 +- openair1/PHY/CODING/3gpplte_sse.c | 228 +- .../CODING/3gpplte_turbo_decoder_avx2_16bit.c | 461 +- .../CODING/3gpplte_turbo_decoder_sse_16bit.c | 152 +- .../CODING/3gpplte_turbo_decoder_sse_8bit.c | 44 +- openair1/PHY/CODING/TESTBENCH/ldpctest.c | 4 - openair1/PHY/CODING/crc.h | 3 +- .../PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h | 778 +-- .../PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h | 250 +- .../CODING/nrLDPC_decoder/nrLDPC_decoder.c | 54 +- .../generator_bnProc/bnProcPc_gen_BG1_avx2.c | 722 +-- .../generator_bnProc/bnProcPc_gen_BG2_avx2.c | 724 +-- .../generator_bnProc/bnProc_gen_BG1_avx2.c | 1542 +++--- .../generator_bnProc/bnProc_gen_BG2_avx2.c | 1536 +++--- .../bnProcPc_gen_BG1_avx512.c | 2 +- .../bnProcPc_gen_BG2_avx512.c | 6 +- .../bnProc_gen_BG1_avx512.c | 4 +- .../bnProc_gen_BG2_avx512.c | 4 +- .../generator_cnProc/cnProc_gen_BG1_avx2.c | 222 +- .../generator_cnProc/cnProc_gen_BG2_avx2.c | 158 +- .../cnProc_gen_BG1_avx512.c | 815 ++-- .../cnProc_gen_BG2_avx512.c | 523 +- .../PHY/CODING/nrLDPC_encoder/ldpc192_byte.c | 92 +- .../PHY/CODING/nrLDPC_encoder/ldpc224_byte.c | 92 +- .../PHY/CODING/nrLDPC_encoder/ldpc256_byte.c | 92 +- .../PHY/CODING/nrLDPC_encoder/ldpc288_byte.c | 92 +- .../PHY/CODING/nrLDPC_encoder/ldpc320_byte.c | 92 +- .../PHY/CODING/nrLDPC_encoder/ldpc352_byte.c | 92 +- .../PHY/CODING/nrLDPC_encoder/ldpc384_byte.c | 92 +- .../nrLDPC_encoder/ldpc_BG2_Zc128_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc160_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc192_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc224_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc256_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc288_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc320_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc32_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc352_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc384_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc64_byte.c | 84 +- .../nrLDPC_encoder/ldpc_BG2_Zc96_byte.c | 84 +- .../PHY/CODING/nrLDPC_encoder/ldpc_encoder.c | 2 +- .../PHY/CODING/nrLDPC_encoder/ldpc_encoder2.c | 89 +- .../nrLDPC_encoder/ldpc_encoder_optim8seg.c | 43 +- .../ldpc_encoder_optim8segmulti.c | 46 +- .../nrPolar_tools/nr_polar_decoding_tools.c | 102 +- .../nrPolar_tools/nr_polar_kernal_operation.c | 46 +- .../CODING/nrSmallBlock/decodeSmallBlock.c | 60 +- openair1/PHY/CODING/nr_rate_matching.c | 219 +- openair1/PHY/CODING/viterbi.c | 6 +- openair1/PHY/CODING/viterbi_lte.c | 8 +- openair1/PHY/INIT/nr_init.c | 4 - .../PHY/LTE_ESTIMATION/freq_equalization.c | 4 +- .../PHY/LTE_ESTIMATION/lte_est_freq_offset.c | 6 +- .../PHY/LTE_ESTIMATION/lte_ue_measurements.c | 10 +- .../lte_ul_channel_estimation.c | 14 +- openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c | 17 +- .../PHY/LTE_TRANSPORT/ulsch_demodulation.c | 36 +- openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c | 36 +- .../PHY/LTE_UE_TRANSPORT/dlsch_decoding.c | 4 +- .../PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c | 30 +- .../LTE_UE_TRANSPORT/dlsch_llr_computation.c | 68 +- .../dlsch_llr_computation_avx2.c | 4232 ++++++++--------- openair1/PHY/LTE_UE_TRANSPORT/pbch_ue.c | 20 +- openair1/PHY/LTE_UE_TRANSPORT/pmch_ue.c | 88 +- .../PHY/LTE_UE_TRANSPORT/ulsch_modulation.c | 8 +- openair1/PHY/MODULATION/nr_modulation.c | 8 +- openair1/PHY/MODULATION/ofdm_mod.c | 11 - openair1/PHY/MODULATION/ul_7_5_kHz.c | 6 +- openair1/PHY/MODULATION/ul_7_5_kHz_ue.c | 6 +- openair1/PHY/NR_TRANSPORT/nr_scrambling.c | 33 +- .../PHY/NR_TRANSPORT/nr_ulsch_demodulation.c | 50 +- .../NR_TRANSPORT/nr_ulsch_llr_computation.c | 283 +- openair1/PHY/NR_TRANSPORT/pucch_rx.c | 88 +- openair1/PHY/NR_UE_TRANSPORT/dci_nr.c | 22 +- .../NR_UE_TRANSPORT/nr_dlsch_demodulation.c | 8 +- .../nr_dlsch_llr_computation.c | 74 +- openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c | 12 +- openair1/PHY/TOOLS/cdot_prod.c | 4 +- openair1/PHY/TOOLS/cmult_sv.c | 31 +- openair1/PHY/TOOLS/cmult_vv.c | 12 +- openair1/PHY/TOOLS/oai_dfts.c | 2457 ++-------- openair1/PHY/TOOLS/signal_energy.c | 5 +- openair1/PHY/TOOLS/tools_defs.h | 34 +- openair1/PHY/defs_L1_NB_IoT.h | 8 - openair1/PHY/defs_nr_UE.h | 4 - openair1/PHY/sse_intrin.h | 329 +- openair1/SCHED_NR/phy_procedures_nr_gNB.c | 9 +- openair1/SIMULATION/LTE_PHY/dlsim.c | 2 +- openair1/SIMULATION/LTE_PHY/dlsim_tm4.c | 2 +- openair1/SIMULATION/LTE_PHY/dlsim_tm7.c | 2 +- openair1/SIMULATION/LTE_PHY/mbmssim.c | 2 +- openair1/SIMULATION/NR_PHY/ulsim.c | 5 - openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c | 16 +- openair2/NETWORK_DRIVER/UE_IP/device.c | 4 +- openair2/RRC/LTE/rrc_eNB.c | 2 +- openair2/RRC/NR_UE/rrc_UE.c | 8 +- sdr/BLADERF/USERSPACE/LIB/bladerf_lib.c | 9 +- sdr/COMMON/record_player.h | 2 +- sdr/ETHERNET/USERSPACE/LIB/eth_udp.c | 12 +- sdr/IRIS/USERSPACE/LIB/iris_lib.cpp | 30 +- sdr/LMSSDR/USERSPACE/LIB/sodera_lib.cpp | 8 +- sdr/USRP/USERSPACE/LIB/usrp_lib.cpp | 61 +- sdr/iqplayer/iqplayer_lib.c | 17 +- targets/RT/USER/lte-ru.c | 6 +- 114 files changed, 7900 insertions(+), 11031 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53cdcc72bc..40950cdd7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,7 +178,6 @@ if (CUDA_FOUND) # Disable warnings for CUDA SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-lpthread;-w;-O3;--default-stream;per-thread;-I/usr/local/cuda/inc;-L/usr/local/cuda/lib -lcutil;-rdc=true;-lcudadevrt") SET(CUDA_VERBOSE_BUILD ON) - SET(CUDA_HOST_COMPILER "/usr/bin/g++") SET(CUDA_SEPARABLE_COMPILATION ON) @@ -198,44 +197,36 @@ message("CMAKE_BUILD_TYPE is ${CMAKE_BUILD_TYPE}") add_list_string_option(CMAKE_BUILD_TYPE "RelWithDebInfo" "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." Debug Release RelWithDebInfo MinSizeRel) Message("Architecture is ${CMAKE_SYSTEM_PROCESSOR}") -if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") - set(C_FLAGS_PROCESSOR "-gdwarf-2 -mfloat-abi=hard -mfpu=neon -lgcc -lrt") -else (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") - if(EXISTS "/proc/cpuinfo") - file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1) - message("NOAVX512 is ${NOAVX512}") - if (CPUINFO MATCHES "avx512bw" AND "${NOAVX512}" STREQUAL "False") - set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512 " ) - set(COMPILATION_AVX2 "True") - else() - if (CPUINFO MATCHES "avx2") - set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx2") - set(COMPILATION_AVX2 "True") - else() - set(COMPILATION_AVX2 "False") - endif() - if (CPUINFO MATCHES "sse4_1") - set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -msse4.1 -mpclmul") - endif() - if (CPUINFO MATCHES "ssse3") - set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mssse3") - endif() - endif() - else() - Message("/proc/cpuinfo does not exit. We will use manual CPU flags") - endif() +# in case /proc/cpuinfo exists we want to inspect available Intrinsics +# -so not to go always through SIMDE emulation +# -so to avoid AVX512 instructions generation by gcc +if(EXISTS "/proc/cpuinfo") + file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1) + message("AVX512 is ${AVX512}") + message("AVX2 is ${AVX2}") + if ("${AVX512}" STREQUAL "False") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mno-avx512f") + else() + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx512bw -march=skylake-avx512 -mtune=skylake-avx512") + endif() + if (CPUINFO MATCHES "avx2" AND "${AVX2}" STREQUAL "True") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_AVX2_NATIVE") + endif() + if (CPUINFO MATCHES "sse4_1") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_SSE4_1_NATIVE") + endif() + if (CPUINFO MATCHES "sse4_2") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_SSE4_2_NATIVE") + endif() + if (CPUINFO MATCHES "ssse3") + set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -DSIMDE_X86_SSSE3_NATIVE") + endif() endif() -set(C_FLAGS_PROCESSOR " ${C_FLAGS_PROCESSOR} ${CFLAGS_PROCESSOR_USER}") +set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -fno-var-tracking-assignments -march=native") Message("C_FLAGS_PROCESSOR is ${C_FLAGS_PROCESSOR}") -#if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86") -# if ( (NOT( C_FLAGS_PROCESSOR MATCHES "ssse3")) OR (NOT( C_FLAGS_PROCESSOR MATCHES "msse4.1")) ) -# Message(FATAL_ERROR "For x86 Architecture, you must have following flags: -mssse3 -msse4.1. The current detected flags are: ${C_FLAGS_PROCESSOR}. You can pass the flags manually in build script, for example: ./build_oai --cflags_processor \"-mssse3 -msse4.1 -mavx2\" ") -# endif() -#endif() - # # add autotools definitions that were maybe used! @@ -855,9 +846,6 @@ endif () include_directories ("${OPENAIR_DIR}/sdr/COMMON") -Message("DEADLINE_SCHEDULER flag is ${DEADLINE_SCHEDULER}") -Message("CPU_Affinity flag is ${CPU_AFFINITY}") - ############################################################## # ???!!! TO BE DOCUMENTED OPTIONS !!!??? ############################################################## @@ -1711,14 +1699,8 @@ if (${SMBV}) set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c") endif (${SMBV}) -if (${COMPILATION_AVX2} STREQUAL "True") - #set(PHY_SRC ${PHY_SRC} ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c) - set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c) -endif () - -if (${COMPILATION_AVX2} STREQUAL "True") - set(PHY_NR_UE_SRC ${PHY_NR_UE_SRC} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c) -endif () +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}) add_dependencies(PHY_COMMON rrc_flag) @@ -2829,16 +2811,14 @@ add_executable(nr-uesoftmodem target_link_libraries (nr-uesoftmodem -Wl,--start-group - RRC_LIB NR_RRC_LIB NGAP_LIB NGAP_GNB SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT SCHED_RU_LIB SCHED_UE_LIB SCHED_NR_UE_LIB - PHY_COMMON PHY_NR_COMMON PHY_UE PHY_NR_UE PHY_RU NR_L2_UE L2_UE_LTE_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB - NFAPI_USER_LIB MISC_NFAPI_NR_LIB S1AP_LIB S1AP_ENB - ${RAL_LIB} ${NAS_UE_LIB} ITTI ${FLPT_MSG_LIB} ${ATLAS_LIBRARIES} - NFAPI_USER_LIB S1AP_LIB S1AP_ENB - ${RAL_LIB} ${NAS_UE_LIB} ITTI ${FLPT_MSG_LIB} ${ATLAS_LIBRARIES} LIB_5GNAS_GNB LIB_NAS_SIMUE ${NAS_SIM_LIB} + NR_RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_RU_LIB SCHED_NR_UE_LIB + PHY_COMMON PHY_NR_COMMON PHY_NR_UE NR_L2_UE L2_UE_LTE_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB + NFAPI_USER_LIB MISC_NFAPI_NR_LIB + ${RAL_LIB} ITTI ${ATLAS_LIBRARIES} LIB_5GNAS_GNB LIB_NAS_SIMUE ${NAS_SIM_LIB} -Wl,--end-group z dl) target_link_libraries (nr-uesoftmodem ${LIBXML2_LIBRARIES}) -target_link_libraries (nr-uesoftmodem pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES}) +target_link_libraries (nr-uesoftmodem pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${XFORMS_LIBRARIES} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES}) target_link_libraries (nr-uesoftmodem ${LIB_LMS_LIBRARIES}) target_link_libraries (nr-uesoftmodem ${T_LIB}) @@ -3126,7 +3106,7 @@ function(make_driver name dir) endforeach() CONFIGURE_FILE(${OPENAIR_CMAKE}/tools/Kbuild.cmake ${OPENAIR_BIN_DIR}/${name}/Kbuild) add_custom_command(OUTPUT ${name}.ko - COMMAND make -j2 -C ${module_build_path} M=${OPENAIR_BIN_DIR}/${name} + COMMAND make -C ${module_build_path} M=${OPENAIR_BIN_DIR}/${name} WORKING_DIRECTORY ${OPENAIR_BIN_DIR}/${name} COMMENT "building ${module}.ko" VERBATIM diff --git a/ci-scripts/oai-ci-vm-tool b/ci-scripts/oai-ci-vm-tool index 73d95aadb9..7fec088c1a 100755 --- a/ci-scripts/oai-ci-vm-tool +++ b/ci-scripts/oai-ci-vm-tool @@ -177,7 +177,7 @@ function variant__v1__enb_usrp { function variant__v2__basic_sim { NB_PATTERN_FILES=11 - BUILD_OPTIONS="--eNB --UE" + BUILD_OPTIONS="--eNB --UE --noavx512" VM_MEMORY=8192 RUN_OPTIONS="complex" } @@ -201,28 +201,28 @@ function variant__v5__gnb_usrp { VM_MEMORY=10240 VM_CPU=8 NB_PATTERN_FILES=6 - BUILD_OPTIONS="--gNB -w USRP" + BUILD_OPTIONS="--gNB -w USRP --noavx512" } function variant__v6__nr_ue_usrp { VM_MEMORY=4096 VM_CPU=4 NB_PATTERN_FILES=6 - BUILD_OPTIONS="--nrUE -w USRP" + BUILD_OPTIONS="--nrUE -w USRP --noavx512" } function variant__v7__enb_ethernet { VM_MEMORY=4096 ARCHIVES_LOC=enb_eth NB_PATTERN_FILES=6 - BUILD_OPTIONS="--eNB -w USRP" + BUILD_OPTIONS="--eNB -w USRP --noavx512" } function variant__v8__ue_ethernet { VM_MEMORY=4096 ARCHIVES_LOC=ue_eth NB_PATTERN_FILES=10 - BUILD_OPTIONS="--UE -w USRP" + BUILD_OPTIONS="--UE -w USRP --noavx512" } function variant__v10__flexran_rtc { diff --git a/ci-scripts/xml_files/gnb_usrp_build.xml b/ci-scripts/xml_files/gnb_usrp_build.xml index f8ec797646..609e53bb73 100644 --- a/ci-scripts/xml_files/gnb_usrp_build.xml +++ b/ci-scripts/xml_files/gnb_usrp_build.xml @@ -34,7 +34,7 @@ TesteNB Build_eNB Build gNB (USRP) - --gNB -w USRP --ninja --cmake-opt -DBoost_INCLUDE_DIR=/usr/include/boost169 --noavx512 + --gNB -w USRP --ninja --cmake-opt -DBoost_INCLUDE_DIR=/usr/include/boost169 --cmake-opt -DCUDA_HOST_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/gcc True diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index ac15f58662..6fb185c4a3 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -55,7 +55,8 @@ BUILD_COVERITY_SCAN=0 DISABLE_HARDWARE_DEPENDENCY="False" CMAKE_BUILD_TYPE="RelWithDebInfo" CMAKE_CMD="$CMAKE" -NOAVX512="False" +AVX512="True" +AVX2="True" BUILD_ECLIPSE=0 NR="False" OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope" @@ -127,11 +128,9 @@ Options: -x | --xforms Will compile with software oscilloscope features --verbose-ci - Compile with verbose instructions in CI Docker env + Compile with verbose instructions in CI Docker env --verbose-compile Shows detailed compilation instructions in makefile ---cflags_processor - Manually Add CFLAGS of processor if they are not detected correctly by script. Only add these flags if you know your processor supports them. Example flags: -msse3 -msse4.1 -msse4.2 -mavx2 --build-doxygen Builds doxygen based documentation. --build-coverity-scan @@ -159,10 +158,10 @@ Options: Build eclipse project files. --build-lib Build optional shared library, can be one or several of $OPTIONAL_LIBRARIES or \"all\" ---usrp-recplay - Build for I/Q record-playback modes --noavx512 - Build without AVX512 if it is present on CPU + Disable AVX512 intrinsics whatever processor capability is +--noavx2 + Disable AVX2 intrinsics if processor supports it or use SIMDE emulation -k | --skip-shared-libraries Skip build for shared libraries to reduce compilation time when building frequently for debugging purposes --ninja @@ -349,10 +348,6 @@ function main() { VERBOSE_COMPILE=1 echo_info "Will compile with verbose instructions" shift;; - --cflags_processor) - CMAKE_CMD="$CMAKE_CMD -DCFLAGS_PROCESSOR_USER=\"$2\"" - echo_info "Setting CPU FLAGS from USER to: $2" - shift 2;; --build-doxygen) BUILD_DOXYGEN=1 echo_info "Will build doxygen support" @@ -430,8 +425,12 @@ function main() { fi shift 2;; --noavx512) - NOAVX512="True" - echo_info "Disabling AVX512" + AVX512="False" + echo_info "Disabling AVX512 instructions" + shift 1;; + --noavx2) + AVX2="False" + echo_info "Disabling AVX2 instructions" shift 1;; -k | --skip-shared-libraries) SKIP_SHARED_LIB_FLAG="True" @@ -616,7 +615,7 @@ function main() { if [[ ${#CMAKE_CXX_FLAGS[@]} > 0 ]]; then CMAKE_CMD="$CMAKE_CMD -DCMAKE_CXX_FLAGS=\"${CMAKE_CXX_FLAGS[*]}\""; fi # for historical reasons we build in a subdirectory cmake_targets/XYZ/build, # e.g., cmake_targets/ran_build/build, hence the ../../.. - CMAKE_CMD="$CMAKE_CMD -DNOAVX512=\"${NOAVX512[*]}\" ../../.." + CMAKE_CMD="$CMAKE_CMD -DAVX512=\"${AVX512[*]}\" -DAVX2=\"${AVX2[*]}\" ../../.." echo_info "running $CMAKE_CMD" eval $CMAKE_CMD diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index f4e206d0eb..ba9590d600 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -122,6 +122,7 @@ check_supported_distribution() { "rhel8.6") return 0 ;; "rhel8.7") return 0 ;; "centos7") return 0 ;; + "centos8") return 0 ;; esac return 1 } @@ -897,6 +898,7 @@ check_install_oai_software() { fi install_asn1c_from_source $1 + install_simde_from_source $1 } install_asn1c_from_source(){ @@ -923,6 +925,15 @@ install_asn1c_from_source(){ ) > $asn1_install_log 2>&1 } +install_simde_from_source(){ + echo_info "\nInstalling SIMDE from source without test cases (header files only)" + $SUDO rm -rf /tmp/simde + git clone https://github.com/simd-everywhere/simde-no-tests.git /tmp/simde + cd /tmp/simde + # brute force copy into /usr/include + $SUDO \cp -rv ../simde /usr/include +} + ################################################# # 2. compile ################################################ diff --git a/common/utils/time_meas.h b/common/utils/time_meas.h index eb81d09434..943856fa1f 100644 --- a/common/utils/time_meas.h +++ b/common/utils/time_meas.h @@ -37,7 +37,7 @@ extern double cpu_freq_GHz __attribute__ ((aligned(32)));; // structure to store data to compute cpu measurment #if defined(__x86_64__) || defined(__i386__) typedef long long oai_cputime_t; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) typedef uint32_t oai_cputime_t; #else #error "building on unsupported CPU architecture" @@ -107,7 +107,7 @@ static inline unsigned long long rdtsc_oai(void) { return (d<<32) | a; } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline uint32_t rdtsc_oai(void) __attribute__((always_inline)); static inline uint32_t rdtsc_oai(void) { uint32_t r = 0; diff --git a/common/utils/utils.h b/common/utils/utils.h index 5963ae0c8e..af90adc867 100644 --- a/common/utils/utils.h +++ b/common/utils/utils.h @@ -34,11 +34,7 @@ extern "C" { #endif #ifndef malloc16 -# ifdef __AVX2__ # define malloc16(x) memalign(32,x+32) -# else -# define malloc16(x) memalign(16,x+16) -# endif #endif #define free16(y,x) free(y) #define bigmalloc malloc @@ -54,11 +50,7 @@ extern "C" { } while (0) static inline void *malloc16_clear( size_t size ) { -#ifdef __AVX2__ void *ptr = memalign(32, size+32); -#else - void *ptr = memalign(16, size+16); -#endif DevAssert(ptr); memset( ptr, 0, size ); return ptr; @@ -91,11 +83,7 @@ static inline void *malloc_or_fail(size_t size) { # define msg(aRGS...) LOG_D(PHY, ##aRGS) #endif #ifndef malloc16 -# ifdef __AVX2__ # define malloc16(x) memalign(32,x) -# else -# define malloc16(x) memalign(16,x) -# endif #endif #define free16(y,x) free(y) diff --git a/executables/main-fs6.c b/executables/main-fs6.c index 01dfc526e9..acae580512 100644 --- a/executables/main-fs6.c +++ b/executables/main-fs6.c @@ -41,7 +41,7 @@ #include #include #include -#include +#include "PHY/sse_intrin.h" #define FS6_BUF_SIZE 1000*1000 static UDPsock_t sockFS6; diff --git a/executables/main-ocp.c b/executables/main-ocp.c index d05b683f39..54ae31f4aa 100644 --- a/executables/main-ocp.c +++ b/executables/main-ocp.c @@ -75,7 +75,8 @@ int oai_exit = 0; double cpuf; THREAD_STRUCT thread_struct; -uint16_t sf_ahead=4; +extern uint16_t sf_ahead; // Bell Labs +//uint16_t sf_ahead=4; //uint16_t slot_ahead=6; int otg_enabled; uint64_t downlink_frequency[MAX_NUM_CCs][4]; @@ -725,12 +726,8 @@ void ocp_tx_rf(RU_t *ru, L1_rxtx_proc_t *proc) { } #if defined(__x86_64) || defined(__i386__) -#ifdef __AVX2__ sf_extension = (sf_extension)&0xfffffff8; -#else - sf_extension = (sf_extension)&0xfffffffc; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) sf_extension = (sf_extension)&0xfffffffc; #endif @@ -1141,6 +1138,7 @@ int main ( int argc, char **argv ) { int i; int CC_id = 0; int node_type = ngran_eNB; + sf_ahead=4; // Bell Labs AssertFatal(load_configmodule(argc,argv,0), "[SOFTMODEM] Error, configuration module init failed\n"); logInit(); printf("Reading in command-line options\n"); diff --git a/executables/softmodem-common.c b/executables/softmodem-common.c index d42c46a895..5f06f85fa9 100644 --- a/executables/softmodem-common.c +++ b/executables/softmodem-common.c @@ -210,10 +210,11 @@ void set_softmodem_sighandler(void) { act.sa_handler=signal_handler; sigaction(SOFTMODEM_RTSIGNAL,&act,&oldact); // Disabled in order generate a core dump for analysis with gdb + // Enable for clean exit on CTRL-C (i.e. record player, USRP...) + signal(SIGINT, signal_handler); # if 0 printf("Send signal %d to display resource usage...\n",SIGRTMIN+1); signal(SIGSEGV, signal_handler); - signal(SIGINT, signal_handler); signal(SIGTERM, signal_handler); signal(SIGABRT, signal_handler); #endif diff --git a/openair1/PHY/CODING/3gpplte_sse.c b/openair1/PHY/CODING/3gpplte_sse.c index 393b0f4a5d..731f3710b4 100644 --- a/openair1/PHY/CODING/3gpplte_sse.c +++ b/openair1/PHY/CODING/3gpplte_sse.c @@ -58,7 +58,7 @@ struct treillis { int exit_state; } __attribute__ ((aligned(64))); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) struct treillis { union { @@ -127,29 +127,9 @@ char interleave_compact_byte(short *base_interleaver,unsigned char *input, unsig char expandInput[768*8] __attribute__((aligned(32))); int i,loop=n>>4; #if defined(__x86_64__) || defined(__i386__) -#ifndef __AVX2__ - __m128i *i_128=(__m128i *)input, *o_128=(__m128i *)expandInput; - __m128i tmp1, tmp2, tmp3, tmp4; - __m128i BIT_MASK = _mm_set_epi8( 0b00000001, - 0b00000010, - 0b00000100, - 0b00001000, - 0b00010000, - 0b00100000, - 0b01000000, - 0b10000000, - 0b00000001, - 0b00000010, - 0b00000100, - 0b00001000, - 0b00010000, - 0b00100000, - 0b01000000, - 0b10000000); -#else __m256i *i_256=(__m256i *)input, *o_256=(__m256i *)expandInput; __m256i tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - __m256i BIT_MASK = _mm256_set_epi8( 0b00000001, + __m256i BIT_MASK = simde_mm256_set_epi8( 0b00000001, 0b00000010, 0b00000100, 0b00001000, @@ -181,8 +161,7 @@ char interleave_compact_byte(short *base_interleaver,unsigned char *input, unsig 0b00100000, 0b01000000, 0b10000000); -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint8x16_t *i_128=(uint8x16_t *)input, *o_128=(uint8x16_t *)expandInput; uint8x16_t tmp1,tmp2; uint16x8_t tmp3; @@ -206,116 +185,82 @@ char interleave_compact_byte(short *base_interleaver,unsigned char *input, unsig 0b00000001 }; #endif -#ifndef __AVX2__ - - if ((n&15) > 0) - loop++; - -#else loop=n>>5; if ((n&31) > 0) loop++; -#endif - for (i=0; i>(7-b); #if defined(__x86_64__) || defined(__i386__) -#ifndef __AVX2__ - tmp1=_mm_load_si128(i_128++); // tmp1 = B0,B1,...,B15 - tmp2=_mm_unpacklo_epi8(tmp1,tmp1); // tmp2 = B0,B0,B1,B1,...,B7,B7 - tmp3=_mm_unpacklo_epi16(tmp2,tmp2); // tmp3 = B0,B0,B0,B0,B1,B1,B1,B1,B2,B2,B2,B2,B3,B3,B3,B3 - tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 - B0,B0,B0,B0,B0,B0,B0,B0,B1,B1,B1,B1,B1,B1,B1,B1 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK); - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 - B2,B2,B2,B2,B2,B2,B2,B2,B3,B3,B3,B3,B3,B3,B3,B3 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp3=_mm_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7 - tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp2=_mm_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8,B8,B9,B9,...,B15,B15 - tmp3=_mm_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B8,B8,B8,B9,B9,B9,B9,B10,B10,B10,B10,B11,B11,B11,B11 - tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 = B8,B8,B8,B8,B8,B8,B8,B8,B9,B9,B9,B9,B9,B9,B9,B9 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 = B10,B10,B10,B10,B10,B10,B10,B10,B11,B11,B11,B11,B11,B11,B11,B11 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp3=_mm_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12,B12,B12,B12,B13,B13,B13,B13,B14,B14,B14,B14,B15,B15,B15,B15 - tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12,B12,B12,B12,B12,B12,B12,B12,B13,B13,B13,B13,B13,B13,B13,B13 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 = B14,B14,B14,B14,B14,B14,B14,B14,B15,B15,B15,B15,B15,B15,B15,B15 - *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; -#else - tmp1=_mm256_load_si256(i_256++); // tmp1 = B0,B1,...,B15,...,B31 + tmp1=simde_mm256_load_si256(i_256++); // tmp1 = B0,B1,...,B15,...,B31 //print_bytes2("in",(uint8_t*)&tmp1); - tmp2=_mm256_unpacklo_epi8(tmp1,tmp1); // tmp2 = B0,B0,B1,B1,...,B7,B7,B16,B16,B17,B17,...,B23,B23 - tmp3=_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B0,B0,B0,B0,B1,B1,B1,B1,B2,B2,B2,B2,B3,B3,B3,B3,B16,B16,B16,B16,...,B19,B19,B19,B19 - tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B0,B0,B0,B0,B0,B0,B0,B0,B1,B1,B1,B1,B1,B1,B1,B1,B16,B16...,B17..,B17 - tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B2,B2,B2,B2,B2,B2,B2,B2,B3,B3,B3,B3,B3,B3,B3,B3,B18...,B18,B19,...,B19 - tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B0 B1 B2 B3 - tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B16 B17 B18 B19 + tmp2=simde_mm256_unpacklo_epi8(tmp1,tmp1); // tmp2 = B0,B0,B1,B1,...,B7,B7,B16,B16,B17,B17,...,B23,B23 + tmp3=simde_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B0,B0,B0,B0,B1,B1,B1,B1,B2,B2,B2,B2,B3,B3,B3,B3,B16,B16,B16,B16,...,B19,B19,B19,B19 + tmp4=simde_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B0,B0,B0,B0,B0,B0,B0,B0,B1,B1,B1,B1,B1,B1,B1,B1,B16,B16...,B17..,B17 + tmp5=simde_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B2,B2,B2,B2,B2,B2,B2,B2,B3,B3,B3,B3,B3,B3,B3,B3,B18...,B18,B19,...,B19 + tmp6=simde_mm256_insertf128_si256(tmp4,simde_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B0 B1 B2 B3 + tmp7=simde_mm256_insertf128_si256(tmp5,simde_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B16 B17 B18 B19 //print_bytes2("tmp2",(uint8_t*)&tmp2); //print_bytes2("tmp3",(uint8_t*)&tmp3); //print_bytes2("tmp4",(uint8_t*)&tmp4); //print_bytes2("tmp5",(uint8_t*)&tmp4); //print_bytes2("tmp6",(uint8_t*)&tmp6); //print_bytes2("tmp7",(uint8_t*)&tmp7); - o_256[0]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); + o_256[0]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); //print_bytes2("out",(uint8_t*)o_256); - o_256[4]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; + o_256[4]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+4)); - tmp3=_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7,B20,B20,B20,B20,...,B23,B23,B23,B23 - tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5,B20,B20...,B21..,B21 - tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7,B22...,B22,B23,...,B23 - tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B4 B5 B6 B7 - tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B20 B21 B22 B23 + tmp3=simde_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7,B20,B20,B20,B20,...,B23,B23,B23,B23 + tmp4=simde_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5,B20,B20...,B21..,B21 + tmp5=simde_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7,B22...,B22,B23,...,B23 + tmp6=simde_mm256_insertf128_si256(tmp4,simde_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B4 B5 B6 B7 + tmp7=simde_mm256_insertf128_si256(tmp5,simde_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B20 B21 B22 B23 //print_bytes2("tmp2",(uint8_t*)&tmp2); //print_bytes2("tmp3",(uint8_t*)&tmp3); //print_bytes2("tmp4",(uint8_t*)&tmp4); //print_bytes2("tmp5",(uint8_t*)&tmp4); //print_bytes2("tmp6",(uint8_t*)&tmp6); //print_bytes2("tmp7",(uint8_t*)&tmp7); - o_256[1]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); + o_256[1]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); //print_bytes2("out",(uint8_t*)(o_256+1)); - o_256[5]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; + o_256[5]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+4)); - tmp2=_mm256_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8 B9 B10 B11 B12 B13 B14 B15 B25 B26 B27 B28 B29 B30 B31 - tmp3=_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B9,B10,B11,B26,B27,B28,B29 - tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B8,B9,B26,B27 - tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B10,B11,B28,B29 - tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B8 B9 B10 B11 - tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B26 B27 B28 B29 + tmp2=simde_mm256_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8 B9 B10 B11 B12 B13 B14 B15 B25 B26 B27 B28 B29 B30 B31 + tmp3=simde_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B9,B10,B11,B26,B27,B28,B29 + tmp4=simde_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B8,B9,B26,B27 + tmp5=simde_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B10,B11,B28,B29 + tmp6=simde_mm256_insertf128_si256(tmp4,simde_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B8 B9 B10 B11 + tmp7=simde_mm256_insertf128_si256(tmp5,simde_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B26 B27 B28 B29 //print_bytes2("tmp2",(uint8_t*)&tmp2); //print_bytes2("tmp3",(uint8_t*)&tmp3); //print_bytes2("tmp4",(uint8_t*)&tmp4); //print_bytes2("tmp5",(uint8_t*)&tmp4); //print_bytes2("tmp6",(uint8_t*)&tmp6); //print_bytes2("tmp7",(uint8_t*)&tmp7); - o_256[2]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); + o_256[2]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); //print_bytes2("out",(uint8_t*)(o_256+2)); - o_256[6]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; + o_256[6]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+4)); - tmp3=_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12 B13 B14 B15 B28 B29 B30 B31 - tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12 B13 B28 B29 - tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 = B14 B15 B30 B31 - tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B12 B13 B14 B15 - tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B28 B29 B30 B31 + tmp3=simde_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12 B13 B14 B15 B28 B29 B30 B31 + tmp4=simde_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12 B13 B28 B29 + tmp5=simde_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 = B14 B15 B30 B31 + tmp6=simde_mm256_insertf128_si256(tmp4,simde_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B12 B13 B14 B15 + tmp7=simde_mm256_insertf128_si256(tmp5,simde_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B28 B29 B30 B31 //print_bytes2("tmp2",(uint8_t*)&tmp2); //print_bytes2("tmp3",(uint8_t*)&tmp3); //print_bytes2("tmp4",(uint8_t*)&tmp4); //print_bytes2("tmp5",(uint8_t*)&tmp4); //print_bytes2("tmp6",(uint8_t*)&tmp6); //print_bytes2("tmp7",(uint8_t*)&tmp7); - o_256[3]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); + o_256[3]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK); //print_bytes2("out",(uint8_t*)(o_256+3)); - o_256[7]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; + o_256[7]=simde_mm256_cmpeq_epi8(simde_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+7)); o_256+=8; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp1=vld1q_u8((uint8_t *)i_128); //print_bytes("tmp1:",(uint8_t*)&tmp1); uint8x16x2_t temp1 = vzipq_u8(tmp1,tmp1); @@ -372,14 +317,9 @@ char interleave_compact_byte(short *base_interleaver,unsigned char *input, unsig short *ptr_intl=base_interleaver; #if defined(__x86_64) || defined(__i386__) -#ifndef __AVX2__ - __m128i tmp={0}; - uint16_t *systematic2_ptr=(uint16_t *) output; -#else __m256i tmp={0}; uint32_t *systematic2_ptr=(uint32_t *) output; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint8x16_t tmp; const uint8_t __attribute__ ((aligned (16))) _Powers[16]= { 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 }; @@ -387,68 +327,44 @@ char interleave_compact_byte(short *base_interleaver,unsigned char *input, unsig uint8x16_t Powers= vld1q_u8(_Powers); uint8_t *systematic2_ptr=(uint8_t *) output; #endif -#ifndef __AVX2__ - int input_length_words=1+((n-1)>>1); -#else int input_length_words=1+((n-1)>>2); -#endif for ( i=0; i< input_length_words ; i ++ ) { #if defined(__x86_64__) || defined(__i386__) -#ifndef __AVX2__ - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],7); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],6); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],5); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],4); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],3); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],2); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],1); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],0); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+7); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+6); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+5); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+4); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+3); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+2); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+1); - tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+0); - *systematic2_ptr++=(unsigned short)_mm_movemask_epi8(tmp); -#else - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],7); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],6); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],5); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],4); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],3); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],2); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],1); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],0); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+7); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+6); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+5); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+4); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+3); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+2); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+1); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+0); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+7); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+6); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+5); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+4); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+3); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+2); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+1); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+0); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+7); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+6); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+5); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+4); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+3); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+2); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+1); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+0); - *systematic2_ptr++=(unsigned int)_mm256_movemask_epi8(tmp); -#endif -#elif defined(__arm__) + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],7); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],6); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],5); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],4); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],3); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],2); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],1); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],0); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+7); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+6); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+5); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+4); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+3); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+2); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+1); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+0); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+7); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+6); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+5); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+4); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+3); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+2); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+1); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+0); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+7); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+6); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+5); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+4); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+3); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+2); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+1); + tmp=simde_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+0); + *systematic2_ptr++=(unsigned int)simde_mm256_movemask_epi8(tmp); +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,7); tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,6); tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,5); @@ -514,7 +430,7 @@ void threegpplte_turbo_encoder_sse(unsigned char *input, interleave_compact_byte(base_interleaver,input,systematic2,input_length_bytes); #if defined(__x86_64__) || defined(__i386__) __m64 *ptr_output=(__m64 *) output; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint8x8_t *ptr_output=(uint8x8_t *)output; #endif unsigned char cur_s1, cur_s2; @@ -533,7 +449,7 @@ void threegpplte_turbo_encoder_sse(unsigned char *input, */ *ptr_output++ = _mm_add_pi8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate], all_treillis[state1][cur_s2].parity2_64[code_rate]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) *ptr_output++ = vadd_u8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate], all_treillis[state0][cur_s1].parity2_64[code_rate]); #endif diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c index 619a8f07b9..082dfb94c6 100644 --- a/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c +++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c @@ -58,7 +58,6 @@ #include "mex.h" #endif -#ifdef __AVX2__ #include "PHY/sse_intrin.h" //#define DEBUG_LOGMAP @@ -66,10 +65,6 @@ #ifdef DEBUG_LOGMAP #define print_shorts(s,x) fprintf(fdavx2,"%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7]);fprintf(fdavx2b,"%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[8],(x)[9],(x)[10],(x)[11],(x)[12],(x)[13],(x)[14],(x)[15]) FILE *fdavx2,*fdavx2b; -#else - -#endif - #define print_bytes(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7],(x)[8],(x)[9],(x)[10],(x)[11],(x)[12],(x)[13],(x)[14],(x)[15],(x)[16],(x)[17],(x)[18],(x)[19],(x)[20],(x)[21],(x)[22],(x)[23],(x)[24],(x)[25],(x)[26],(x)[27],(x)[28],(x)[29],(x)[30],(x)[31]) @@ -143,8 +138,8 @@ void compute_gamma16avx2(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_pa K1=frame_length>>3; for (k=0; k>3)-1; k>=loopval; k--) { - b4 = _mm256_load_si256(&beta_ptr[4]); - b5 = _mm256_load_si256(&beta_ptr[5]); - b6 = _mm256_load_si256(&beta_ptr[6]); - b7 = _mm256_load_si256(&beta_ptr[7]); + b4 = simde_mm256_load_si256(&beta_ptr[4]); + b5 = simde_mm256_load_si256(&beta_ptr[5]); + b6 = simde_mm256_load_si256(&beta_ptr[6]); + b7 = simde_mm256_load_si256(&beta_ptr[7]); - m_b0 = _mm256_adds_epi16(b4,*m11p); //m11 - m_b1 = _mm256_subs_epi16(b4,*m11p); //m00 - m_b2 = _mm256_subs_epi16(b5,*m10p); //m01 - m_b3 = _mm256_adds_epi16(b5,*m10p); //m10 - m_b4 = _mm256_adds_epi16(b6,*m10p); //m10 - m_b5 = _mm256_subs_epi16(b6,*m10p); //m01 - m_b6 = _mm256_subs_epi16(b7,*m11p); //m00 - m_b7 = _mm256_adds_epi16(b7,*m11p); //m11 + m_b0 = simde_mm256_adds_epi16(b4,*m11p); //m11 + m_b1 = simde_mm256_subs_epi16(b4,*m11p); //m00 + m_b2 = simde_mm256_subs_epi16(b5,*m10p); //m01 + m_b3 = simde_mm256_adds_epi16(b5,*m10p); //m10 + m_b4 = simde_mm256_adds_epi16(b6,*m10p); //m10 + m_b5 = simde_mm256_subs_epi16(b6,*m10p); //m01 + m_b6 = simde_mm256_subs_epi16(b7,*m11p); //m00 + m_b7 = simde_mm256_adds_epi16(b7,*m11p); //m11 - b0 = _mm256_load_si256(&beta_ptr[0]); - b1 = _mm256_load_si256(&beta_ptr[1]); - b2 = _mm256_load_si256(&beta_ptr[2]); - b3 = _mm256_load_si256(&beta_ptr[3]); + b0 = simde_mm256_load_si256(&beta_ptr[0]); + b1 = simde_mm256_load_si256(&beta_ptr[1]); + b2 = simde_mm256_load_si256(&beta_ptr[2]); + b3 = simde_mm256_load_si256(&beta_ptr[3]); - new0 = _mm256_subs_epi16(b0,*m11p); //m00 - new1 = _mm256_adds_epi16(b0,*m11p); //m11 - new2 = _mm256_adds_epi16(b1,*m10p); //m10 - new3 = _mm256_subs_epi16(b1,*m10p); //m01 - new4 = _mm256_subs_epi16(b2,*m10p); //m01 - new5 = _mm256_adds_epi16(b2,*m10p); //m10 - new6 = _mm256_adds_epi16(b3,*m11p); //m11 - new7 = _mm256_subs_epi16(b3,*m11p); //m00 + new0 = simde_mm256_subs_epi16(b0,*m11p); //m00 + new1 = simde_mm256_adds_epi16(b0,*m11p); //m11 + new2 = simde_mm256_adds_epi16(b1,*m10p); //m10 + new3 = simde_mm256_subs_epi16(b1,*m10p); //m01 + new4 = simde_mm256_subs_epi16(b2,*m10p); //m01 + new5 = simde_mm256_adds_epi16(b2,*m10p); //m10 + new6 = simde_mm256_adds_epi16(b3,*m11p); //m11 + new7 = simde_mm256_subs_epi16(b3,*m11p); //m00 - b0 = _mm256_max_epi16(m_b0,new0); - b1 = _mm256_max_epi16(m_b1,new1); - b2 = _mm256_max_epi16(m_b2,new2); - b3 = _mm256_max_epi16(m_b3,new3); - b4 = _mm256_max_epi16(m_b4,new4); - b5 = _mm256_max_epi16(m_b5,new5); - b6 = _mm256_max_epi16(m_b6,new6); - b7 = _mm256_max_epi16(m_b7,new7); + b0 = simde_mm256_max_epi16(m_b0,new0); + b1 = simde_mm256_max_epi16(m_b1,new1); + b2 = simde_mm256_max_epi16(m_b2,new2); + b3 = simde_mm256_max_epi16(m_b3,new3); + b4 = simde_mm256_max_epi16(m_b4,new4); + b5 = simde_mm256_max_epi16(m_b5,new5); + b6 = simde_mm256_max_epi16(m_b6,new6); + b7 = simde_mm256_max_epi16(m_b7,new7); - beta_max = _mm256_max_epi16(b0,b1); - beta_max = _mm256_max_epi16(beta_max ,b2); - beta_max = _mm256_max_epi16(beta_max ,b3); - beta_max = _mm256_max_epi16(beta_max ,b4); - beta_max = _mm256_max_epi16(beta_max ,b5); - beta_max = _mm256_max_epi16(beta_max ,b6); - beta_max = _mm256_max_epi16(beta_max ,b7); + beta_max = simde_mm256_max_epi16(b0,b1); + beta_max = simde_mm256_max_epi16(beta_max ,b2); + beta_max = simde_mm256_max_epi16(beta_max ,b3); + beta_max = simde_mm256_max_epi16(beta_max ,b4); + beta_max = simde_mm256_max_epi16(beta_max ,b5); + beta_max = simde_mm256_max_epi16(beta_max ,b6); + beta_max = simde_mm256_max_epi16(beta_max ,b7); beta_ptr-=8; m11p--; m10p--; - beta_ptr[0] = _mm256_subs_epi16(b0,beta_max); - beta_ptr[1] = _mm256_subs_epi16(b1,beta_max); - beta_ptr[2] = _mm256_subs_epi16(b2,beta_max); - beta_ptr[3] = _mm256_subs_epi16(b3,beta_max); - beta_ptr[4] = _mm256_subs_epi16(b4,beta_max); - beta_ptr[5] = _mm256_subs_epi16(b5,beta_max); - beta_ptr[6] = _mm256_subs_epi16(b6,beta_max); - beta_ptr[7] = _mm256_subs_epi16(b7,beta_max); + beta_ptr[0] = simde_mm256_subs_epi16(b0,beta_max); + beta_ptr[1] = simde_mm256_subs_epi16(b1,beta_max); + beta_ptr[2] = simde_mm256_subs_epi16(b2,beta_max); + beta_ptr[3] = simde_mm256_subs_epi16(b3,beta_max); + beta_ptr[4] = simde_mm256_subs_epi16(b4,beta_max); + beta_ptr[5] = simde_mm256_subs_epi16(b5,beta_max); + beta_ptr[6] = simde_mm256_subs_epi16(b6,beta_max); + beta_ptr[7] = simde_mm256_subs_epi16(b7,beta_max); #ifdef DEBUG_LOGMAP fprintf(fdavx2,"Loop index %d, mb\n",k); @@ -742,22 +737,22 @@ void compute_ext16avx2(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* e print_shorts("b6:",&beta_ptr[6]); print_shorts("b7:",&beta_ptr[7]); */ - m00_4 = _mm256_adds_epi16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; - m11_4 = _mm256_adds_epi16(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; - m00_3 = _mm256_adds_epi16(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; - m11_3 = _mm256_adds_epi16(alpha_ptr[6],beta_ptr[3]); //ALPHA_BETA_3m11; - m00_2 = _mm256_adds_epi16(alpha_ptr[1],beta_ptr[4]); //ALPHA_BETA_2m00; - m11_2 = _mm256_adds_epi16(alpha_ptr[1],beta_ptr[0]); //ALPHA_BETA_2m11; - m11_1 = _mm256_adds_epi16(alpha_ptr[0],beta_ptr[4]); //ALPHA_BETA_1m11; - m00_1 = _mm256_adds_epi16(alpha_ptr[0],beta_ptr[0]); //ALPHA_BETA_1m00; - m01_4 = _mm256_adds_epi16(alpha_ptr[5],beta_ptr[6]); //ALPHA_BETA_4m01; - m10_4 = _mm256_adds_epi16(alpha_ptr[5],beta_ptr[2]); //ALPHA_BETA_4m10; - m01_3 = _mm256_adds_epi16(alpha_ptr[4],beta_ptr[2]); //ALPHA_BETA_3m01; - m10_3 = _mm256_adds_epi16(alpha_ptr[4],beta_ptr[6]); //ALPHA_BETA_3m10; - m01_2 = _mm256_adds_epi16(alpha_ptr[3],beta_ptr[1]); //ALPHA_BETA_2m01; - m10_2 = _mm256_adds_epi16(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; - m10_1 = _mm256_adds_epi16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; - m01_1 = _mm256_adds_epi16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; + m00_4 = simde_mm256_adds_epi16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; + m11_4 = simde_mm256_adds_epi16(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; + m00_3 = simde_mm256_adds_epi16(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; + m11_3 = simde_mm256_adds_epi16(alpha_ptr[6],beta_ptr[3]); //ALPHA_BETA_3m11; + m00_2 = simde_mm256_adds_epi16(alpha_ptr[1],beta_ptr[4]); //ALPHA_BETA_2m00; + m11_2 = simde_mm256_adds_epi16(alpha_ptr[1],beta_ptr[0]); //ALPHA_BETA_2m11; + m11_1 = simde_mm256_adds_epi16(alpha_ptr[0],beta_ptr[4]); //ALPHA_BETA_1m11; + m00_1 = simde_mm256_adds_epi16(alpha_ptr[0],beta_ptr[0]); //ALPHA_BETA_1m00; + m01_4 = simde_mm256_adds_epi16(alpha_ptr[5],beta_ptr[6]); //ALPHA_BETA_4m01; + m10_4 = simde_mm256_adds_epi16(alpha_ptr[5],beta_ptr[2]); //ALPHA_BETA_4m10; + m01_3 = simde_mm256_adds_epi16(alpha_ptr[4],beta_ptr[2]); //ALPHA_BETA_3m01; + m10_3 = simde_mm256_adds_epi16(alpha_ptr[4],beta_ptr[6]); //ALPHA_BETA_3m10; + m01_2 = simde_mm256_adds_epi16(alpha_ptr[3],beta_ptr[1]); //ALPHA_BETA_2m01; + m10_2 = simde_mm256_adds_epi16(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; + m10_1 = simde_mm256_adds_epi16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; + m01_1 = simde_mm256_adds_epi16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; /* print_shorts("m11_1:",&m11_1); print_shorts("m11_2:",&m11_2); @@ -776,34 +771,34 @@ void compute_ext16avx2(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* e print_shorts("m01_3:",&m01_3); print_shorts("m01_4:",&m01_4); */ - m01_1 = _mm256_max_epi16(m01_1,m01_2); - m01_1 = _mm256_max_epi16(m01_1,m01_3); - m01_1 = _mm256_max_epi16(m01_1,m01_4); - m00_1 = _mm256_max_epi16(m00_1,m00_2); - m00_1 = _mm256_max_epi16(m00_1,m00_3); - m00_1 = _mm256_max_epi16(m00_1,m00_4); - m10_1 = _mm256_max_epi16(m10_1,m10_2); - m10_1 = _mm256_max_epi16(m10_1,m10_3); - m10_1 = _mm256_max_epi16(m10_1,m10_4); - m11_1 = _mm256_max_epi16(m11_1,m11_2); - m11_1 = _mm256_max_epi16(m11_1,m11_3); - m11_1 = _mm256_max_epi16(m11_1,m11_4); + m01_1 = simde_mm256_max_epi16(m01_1,m01_2); + m01_1 = simde_mm256_max_epi16(m01_1,m01_3); + m01_1 = simde_mm256_max_epi16(m01_1,m01_4); + m00_1 = simde_mm256_max_epi16(m00_1,m00_2); + m00_1 = simde_mm256_max_epi16(m00_1,m00_3); + m00_1 = simde_mm256_max_epi16(m00_1,m00_4); + m10_1 = simde_mm256_max_epi16(m10_1,m10_2); + m10_1 = simde_mm256_max_epi16(m10_1,m10_3); + m10_1 = simde_mm256_max_epi16(m10_1,m10_4); + m11_1 = simde_mm256_max_epi16(m11_1,m11_2); + m11_1 = simde_mm256_max_epi16(m11_1,m11_3); + m11_1 = simde_mm256_max_epi16(m11_1,m11_4); // print_shorts("m11_1:",&m11_1); - m01_1 = _mm256_subs_epi16(m01_1,*m10_128); - m00_1 = _mm256_subs_epi16(m00_1,*m11_128); - m10_1 = _mm256_adds_epi16(m10_1,*m10_128); - m11_1 = _mm256_adds_epi16(m11_1,*m11_128); + m01_1 = simde_mm256_subs_epi16(m01_1,*m10_128); + m00_1 = simde_mm256_subs_epi16(m00_1,*m11_128); + m10_1 = simde_mm256_adds_epi16(m10_1,*m10_128); + m11_1 = simde_mm256_adds_epi16(m11_1,*m11_128); // print_shorts("m10_1:",&m10_1); // print_shorts("m11_1:",&m11_1); - m01_1 = _mm256_max_epi16(m01_1,m00_1); - m10_1 = _mm256_max_epi16(m10_1,m11_1); + m01_1 = simde_mm256_max_epi16(m01_1,m00_1); + m10_1 = simde_mm256_max_epi16(m10_1,m11_1); // print_shorts("m01_1:",&m01_1); // print_shorts("m10_1:",&m10_1); - *ext_128 = _mm256_subs_epi16(m10_1,m01_1); + *ext_128 = simde_mm256_subs_epi16(m10_1,m01_1); #ifdef DEBUG_LOGMAP fprintf(fdavx2,"ext %p\n",ext_128); @@ -933,7 +928,7 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, uint32_t db; - __m256i tmp={0}, zeros=_mm256_setzero_si256(); + __m256i tmp={0}, zeros=simde_mm256_setzero_si256(); int offset8_flag=0; @@ -1063,22 +1058,22 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, for (i=0; i<(n>>3); i++) { // steady-state portion - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],0); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],8); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],1); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],9); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],2); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],10); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],3); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],11); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],4); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],12); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],5); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],13); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],6); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],14); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],7); - ((__m256i *)systematic2)[i]=_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],15); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],0); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],8); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],1); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],9); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],2); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],10); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],3); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],11); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],4); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],12); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],5); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],13); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],6); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],14); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[*pi4_p],7); + ((__m256i *)systematic2)[i]=simde_mm256_insert_epi16(((__m256i *)systematic2)[i],ext[8+*pi4_p++],15); #ifdef DEBUG_LOGMAP print_shorts("syst2",(int16_t*)&((__m256i *)systematic2)[i]); #endif @@ -1096,23 +1091,23 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, for (i=0; i<(n>>3); i++) { - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],0); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],8); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],1); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],9); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],2); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],10); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],3); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],11); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],4); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],12); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],5); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],13); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],6); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],14); - tmp=_mm256_insert_epi16(tmp,ext2[*pi5_p],7); - tmp=_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],15); - ((__m256i *)systematic1)[i] = _mm256_adds_epi16(_mm256_subs_epi16(tmp,((__m256i*)ext)[i]),((__m256i *)systematic0)[i]); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],0); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],8); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],1); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],9); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],2); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],10); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],3); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],11); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],4); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],12); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],5); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],13); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],6); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],14); + tmp=simde_mm256_insert_epi16(tmp,ext2[*pi5_p],7); + tmp=simde_mm256_insert_epi16(tmp,ext2[8+*pi5_p++],15); + ((__m256i *)systematic1)[i] = simde_mm256_adds_epi16(simde_mm256_subs_epi16(tmp,((__m256i*)ext)[i]),((__m256i *)systematic0)[i]); #ifdef DEBUG_LOGMAP print_shorts("syst1",(int16_t*)&((__m256i *)systematic1)[i]); #endif @@ -1124,27 +1119,27 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, for (i=0; i<(n>>3); i++) { - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],7); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],15); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],6); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],14); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],5); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],13); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],4); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],12); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],3); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],11); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],2); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],10); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],1); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],9); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],0); - tmp=_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],8); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],7); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],15); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],6); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],14); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],5); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],13); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],4); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],12); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],3); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],11); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],2); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],10); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],1); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],9); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p],0); + tmp=simde_mm256_insert_epi16(tmp, ((llr_t*)ext2)[8+*pi6_p++],8); #ifdef DEBUG_LOGMAP print_shorts("tmp",(int16_t*)&tmp); #endif - tmp=_mm256_cmpgt_epi8(_mm256_packs_epi16(tmp,zeros),zeros); - db=(uint32_t)_mm256_movemask_epi8(tmp); + tmp=simde_mm256_cmpgt_epi8(simde_mm256_packs_epi16(tmp,zeros),zeros); + db=(uint32_t)simde_mm256_movemask_epi8(tmp); decoded_bytes[i]=db&0xff; decoded_bytes2[i]=(uint8_t)(db>>16)&0xff; #ifdef DEBUG_LOGMAP @@ -1261,7 +1256,7 @@ unsigned char phy_threegpplte_turbo_decoder16avx2(int16_t *y, for (i=0; i>3; -#else - - if ((frame_length&15) > 0) - K1=(frame_length+1)>>4; - else - K1=frame_length>>4; - -#endif for (k=0; k>3]; int16x8_t tmp, zeros=vdupq_n_s16(0); @@ -1155,7 +1055,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, #if defined(__x86_64__) || defined(__i386__) yp128 = (__m128i *)y; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) yp128 = (int16x8_t *)y; #endif s = systematic0; @@ -1228,7 +1128,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, #ifdef DEBUG_LOGMAP fprintf(fdsse4,"init7: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]); #endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) s[j] = vgetq_lane_s16(yp128[0],0); yp1[j] = vgetq_lane_s16(yp128[0],1); yp2[j] = vgetq_lane_s16(yp128[0],2); @@ -1315,7 +1215,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],5); ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],6); ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],7); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],0); ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],1); ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],2); @@ -1346,7 +1246,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],6); tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],7); ((__m128i *)systematic1)[i] = _mm_adds_epi16(_mm_subs_epi16(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,0); tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,1); tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,2); @@ -1381,7 +1281,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, #endif tmp=_mm_cmpgt_epi8(_mm_packs_epi16(tmp,zeros),zeros); decoded_bytes[i]=(unsigned char)_mm_movemask_epi8(tmp); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_s16(ext2[*pi6_p++],tmp,7); tmp=vsetq_lane_s16(ext2[*pi6_p++],tmp,6); tmp=vsetq_lane_s16(ext2[*pi6_p++],tmp,5); @@ -1464,7 +1364,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, __m128i *ext_128=(__m128i *) ext; __m128i *s1_128=(__m128i *) systematic1; __m128i *s0_128=(__m128i *) systematic0; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *ext_128=(int16x8_t *) ext; int16x8_t *s1_128=(int16x8_t *) systematic1; int16x8_t *s0_128=(int16x8_t *) systematic0; @@ -1474,7 +1374,7 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, for (i=0; i>3]; __m128i tmp={0}, zeros=_mm_setzero_si128(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int8x16_t *yp128; int8x16_t tmp128[(n+8)>>3]; int8x16_t tmp, zeros=vdupq_n_s8(0); @@ -900,7 +900,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, ((__m128i *)y8)[i] = _mm_packs_epi16(_mm_srai_epi16(((__m128i *)y)[j],3),_mm_srai_epi16(((__m128i *)y)[j+1],4)); yp128 = (__m128i *)y8; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t avg=vdupq_n_s32(0); for (i=0; i<(3*(n>>4))+1; i++) { @@ -1019,7 +1019,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],13); tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],14); ((__m128i *)systematic2)[i]=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],15); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,0); tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,1); tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,2); @@ -1067,7 +1067,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],15); decoded_bytes_interl[i]=(uint16_t) _mm_movemask_epi8(_mm_cmpgt_epi8(tmp,zeros)); ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,0); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,1); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,2); @@ -1111,7 +1111,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],15); tmp128[i] = _mm_adds_epi8(((__m128i *)ext2)[i],((__m128i *)systematic2)[i]); ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,0); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,1); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,2); @@ -1166,7 +1166,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, } } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint8x16_t *dbytes=(uint8x16_t *)decoded_bytes_interl; uint16x8_t mask __attribute__((aligned(16))); int n_128=n2>>7; @@ -1208,7 +1208,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=_mm_insert_epi8(tmp, ((llr_t *)tmp128)[*pi6_p++],8); tmp=_mm_cmpgt_epi8(tmp,zeros); ((uint16_t *)decoded_bytes)[i]=(uint16_t)_mm_movemask_epi8(tmp); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp=vsetq_lane_s8(((llr_t *)tmp128)[*pi6_p++],tmp,7); tmp=vsetq_lane_s8(((llr_t *)tmp128)[*pi6_p++],tmp,6); tmp=vsetq_lane_s8(((llr_t *)tmp128)[*pi6_p++],tmp,5); @@ -1286,7 +1286,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, __m128i *ext_128=(__m128i *) ext; __m128i *s1_128=(__m128i *) systematic1; __m128i *s0_128=(__m128i *) systematic0; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int8x16_t *ext_128=(int8x16_t *) ext; int8x16_t *s1_128=(int8x16_t *) systematic1; int8x16_t *s0_128=(int8x16_t *) systematic0; @@ -1296,7 +1296,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, for (i=0; i -#include +#include "PHY/sse_intrin.h" /** * PCLMULQDQ CRC computation context structure diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h index c21169869c..09e15cea83 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h @@ -30,7 +30,7 @@ #ifndef __NR_LDPC_BNPROC__H__ #define __NR_LDPC_BNPROC__H__ -#include +#include "PHY/sse_intrin.h" /** \brief Performs first part of BN processing on the BN processing buffer and stores the results in the LLR results buffer. At every BN, the sum of the returned LLRs from the connected CNs and the LLR of the receiver input is computed. @@ -81,22 +81,22 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, int8_t* bnProcBuf, int8_ p_bnProcBufRes[i] = p_llrProcBuf256[i]; // First 16 LLRs of first CN - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); + ymm0 = simde_mm256_cvtepi8_epi16(p_bnProcBuf [j]); + ymm1 = simde_mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); + ymmRes0 = simde_mm256_adds_epi16(ymm0, ymm1); // Second 16 LLRs of first CN - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); + ymm0 = simde_mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); + ymm1 = simde_mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); + ymmRes1 = simde_mm256_adds_epi16(ymm0, ymm1); // Pack results back to epi8 - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); + ymm0 = simde_mm256_packs_epi16(ymmRes0, ymmRes1); // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]] - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); + *p_llrRes = simde_mm256_permute4x64_epi64(ymm0, 0xD8); // Next result p_llrRes++; @@ -125,31 +125,31 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, int8_t* bnProcBuf, int8_ for (i=0,j=0; inumCnInCnGroups; @@ -102,20 +101,20 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; ymm0 = pj0[i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // 32 CNs of second BN // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; ymm0 = pj1[i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - //*p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + //*p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); //p_cnProcBufResBit++; - p_cnProcBufResBit[i]=_mm256_sign_epi8(min, sgn); + p_cnProcBufResBit[i]=simde_mm256_sign_epi8(min, sgn); } } } @@ -149,20 +148,20 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG4[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<3; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG4[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -198,20 +197,20 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG5[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<4; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG5[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -248,20 +247,20 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG6[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<5; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG6[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -299,20 +298,20 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG8[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<7; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG8[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -351,20 +350,20 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG10[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<9; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG10[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -440,18 +439,18 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // 32 CNs of second BN ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -487,20 +486,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG4[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<3; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG4[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -537,20 +536,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG5[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<4; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG5[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -588,20 +587,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG6[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<5; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG6[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -640,20 +639,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG7[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<6; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG7[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -692,20 +691,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG8[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<7; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG8[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -745,20 +744,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG9[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<8; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG9[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -798,20 +797,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG10[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<9; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG10[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -856,20 +855,20 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int { // Abs and sign of 32 CNs (first BN) ymm0 = p_cnProcBuf[lut_idxCnProcG19[j][0] + i]; - sgn = _mm256_sign_epi8(*p_ones, ymm0); - min = _mm256_abs_epi8(ymm0); + sgn = simde_mm256_sign_epi8(*p_ones, ymm0); + min = simde_mm256_abs_epi8(ymm0); // Loop over BNs for (k=1; k<18; k++) { ymm0 = p_cnProcBuf[lut_idxCnProcG19[j][k] + i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); + min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + sgn = simde_mm256_sign_epi8(sgn, ymm0); } // Store result - min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 - *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + min = simde_mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); p_cnProcBufResBit++; } } @@ -878,6 +877,7 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBuf, int } #endif + /** \brief Performs parity check for BG1 on the CN processing buffer. Stops as soon as error is detected. \param p_lut Pointer to decoder LUTs @@ -937,7 +937,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -956,7 +956,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1005,7 +1005,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1024,7 +1024,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1073,7 +1073,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1093,7 +1093,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1142,7 +1142,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1161,7 +1161,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1210,7 +1210,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1229,7 +1229,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1278,7 +1278,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1297,7 +1297,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1346,7 +1346,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1365,7 +1365,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1414,7 +1414,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1433,7 +1433,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1482,7 +1482,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1501,7 +1501,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1578,7 +1578,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1597,7 +1597,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1646,7 +1646,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1665,7 +1665,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1714,7 +1714,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1733,7 +1733,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1782,7 +1782,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1801,7 +1801,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1850,7 +1850,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1869,7 +1869,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1918,7 +1918,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 @@ -1937,7 +1937,7 @@ static inline uint32_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, int8_t* cnProcBu // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm256_movemask_epi8(_mm256_adds_epi8(ymm0,ymm1)); + pcRes ^= simde_mm256_movemask_epi8(simde_mm256_adds_epi8(ymm0,ymm1)); } // If no error pcRes should be 0 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c index 0ab3ea8e6b..1f918ee83b 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c @@ -26,7 +26,7 @@ */ #include -#include +#include "PHY/sse_intrin.h" #include "nrLDPCdecoder_defs.h" #include "nrLDPC_types.h" #include "nrLDPC_init.h" @@ -42,7 +42,7 @@ /----------------------------------------------------------------------*/ //BG1------------------------------------------------------------------- -#ifdef __AVX512BW__ +#if defined(__AVX512BW__) #include "cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" #include "cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" @@ -85,7 +85,7 @@ //bnProc---------------------------------------------------------------- -#ifdef __AVX512BW__ +#if defined(__AVX512BW__) //BG1------------------------------------------------------------------- #include "bnProc_avx512/nrLDPC_bnProc_BG1_R13_AVX512.h" #include "bnProc_avx512/nrLDPC_bnProc_BG1_R23_AVX512.h" @@ -224,7 +224,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ { case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG1_R13_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG1_R13_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -234,7 +234,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG1_R23_AVX512(cnProcBuf,cnProcBufRes, Z); #else nrLDPC_cnProc_BG1_R23_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -244,7 +244,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ case 89: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG1_R89_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG1_R89_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -261,7 +261,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ switch (R) { case 15: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG2_R15_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG2_R15_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -270,7 +270,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG2_R13_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG2_R13_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -279,7 +279,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG2_R23_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG2_R23_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -382,7 +382,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ switch (R) { case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG1_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG1_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -391,7 +391,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG1_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG1_R23_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -400,7 +400,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 89: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG1_R89_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG1_R89_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -416,7 +416,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ switch (R) { case 15: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG2_R15_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG2_R15_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -425,7 +425,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG2_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG2_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -435,7 +435,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG2_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG2_R23_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -490,7 +490,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ switch (R) { case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG1_R13_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG1_R13_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -499,7 +499,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG1_R23_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG1_R23_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -508,7 +508,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 89: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG1_R89_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG1_R89_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -524,7 +524,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ switch (R) { case 15: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG2_R15_AVX512(cnProcBuf,cnProcBufRes, Z); #else nrLDPC_cnProc_BG2_R15_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -533,7 +533,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG2_R13_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG2_R13_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -542,7 +542,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_cnProc_BG2_R23_AVX512(cnProcBuf, cnProcBufRes, Z); #else nrLDPC_cnProc_BG2_R23_AVX2(cnProcBuf, cnProcBufRes, Z); @@ -639,7 +639,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ switch (R) { case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG1_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG1_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -648,7 +648,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG1_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG1_R23_AVX2(bnProcBuf,bnProcBufRes,llrRes, Z); @@ -657,7 +657,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 89: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG1_R89_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG1_R89_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -670,7 +670,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ { case 15: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG2_R15_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG2_R15_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -679,7 +679,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 13: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG2_R13_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG2_R13_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); @@ -688,7 +688,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, uint32_ } case 23: { - #ifdef __AVX512BW__ + #if defined(__AVX512BW__) nrLDPC_bnProc_BG2_R23_AVX512(bnProcBuf, bnProcBufRes,llrRes, Z); #else nrLDPC_bnProc_BG2_R23_AVX2(bnProcBuf, bnProcBufRes,llrRes, Z); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c index f51f607b88..e53d7d4d64 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProcPc_gen_BG1_avx2.c @@ -43,8 +43,8 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(const char *dir, int R) abort(); } -// fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"static inline void nrLDPC_bnProcPc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes,int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; @@ -120,21 +120,21 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(const char *dir, int R) fprintf(fd," p_bnProcBufRes[i] = p_llrProcBuf256[i];\n"); // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymm0, ymm1);\n"); + fprintf(fd," ymm0 = simde_mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); + fprintf(fd," ymm1 = simde_mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); + fprintf(fd," ymmRes0 = simde_mm256_adds_epi16(ymm0, ymm1);\n"); // Second 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[j + 1 ]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j + 1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymm0, ymm1);\n"); + fprintf(fd," ymm0 = simde_mm256_cvtepi8_epi16(p_bnProcBuf[j + 1 ]);\n"); + fprintf(fd," ymm1 = simde_mm256_cvtepi8_epi16(p_llrProcBuf[j + 1 ]);\n"); + fprintf(fd," ymmRes1 = simde_mm256_adds_epi16(ymm0, ymm1);\n"); // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); + fprintf(fd," ymm0 = simde_mm256_packs_epi16(ymmRes0, ymmRes1);\n"); // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]] - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); @@ -167,32 +167,32 @@ fprintf(fd, "// Process group with 2 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i>5 ); - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + //fprintf(fd," (__m256i*) &llrRes[%d + i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); } @@ -507,34 +507,34 @@ fprintf(fd, "// Process group with 8 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i>5 ); + //fprintf(fd," (__m256i*) &llrRes[%d + i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); } @@ -564,33 +564,33 @@ fprintf(fd, "// Process group with 9 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i>5 ); - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + //fprintf(fd," (__m256i*) &llrRes[%d + i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); } @@ -621,32 +621,32 @@ fprintf(fd, "// Process group with 10 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i #include -#include +#include "PHY/sse_intrin.h" #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" @@ -43,8 +43,8 @@ void nrLDPC_bnProcPc_BG2_generator_AVX2(const char *dir, int R) abort(); } -// fprintf(fd,"#include \n"); - //fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes,int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; @@ -120,21 +120,21 @@ void nrLDPC_bnProcPc_BG2_generator_AVX2(const char *dir, int R) fprintf(fd," p_bnProcBufRes[i] = p_llrProcBuf256[i];\n"); // First 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); - fprintf(fd," ymmRes0 = _mm256_adds_epi16(ymm0, ymm1);\n"); + fprintf(fd," ymm0 = simde_mm256_cvtepi8_epi16(p_bnProcBuf [j]);\n"); + fprintf(fd," ymm1 = simde_mm256_cvtepi8_epi16(p_llrProcBuf[j]);\n"); + fprintf(fd," ymmRes0 = simde_mm256_adds_epi16(ymm0, ymm1);\n"); // Second 16 LLRs of first CN - fprintf(fd," ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[j + 1 ]);\n"); - fprintf(fd," ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j + 1 ]);\n"); - fprintf(fd," ymmRes1 = _mm256_adds_epi16(ymm0, ymm1);\n"); + fprintf(fd," ymm0 = simde_mm256_cvtepi8_epi16(p_bnProcBuf[j + 1 ]);\n"); + fprintf(fd," ymm1 = simde_mm256_cvtepi8_epi16(p_llrProcBuf[j + 1 ]);\n"); + fprintf(fd," ymmRes1 = simde_mm256_adds_epi16(ymm0, ymm1);\n"); // Pack results back to epi8 - fprintf(fd," ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1);\n"); + fprintf(fd," ymm0 = simde_mm256_packs_epi16(ymmRes0, ymmRes1);\n"); // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]] - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); @@ -166,32 +166,32 @@ fprintf(fd, "// Process group with 2 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i>5 ); - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + //fprintf(fd," (__m256i*) &llrRes[%d + i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); } @@ -506,34 +506,34 @@ fprintf(fd, "// Process group with 8 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i>5 ); + //fprintf(fd," (__m256i*) &llrRes[%d + i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); } @@ -563,33 +563,33 @@ fprintf(fd, "// Process group with 9 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i>5 ); - fprintf(fd," p_llrRes[i] = _mm256_permute4x64_epi64(ymm0, 0xD8);\n"); + //fprintf(fd," (__m256i*) &llrRes[%d + i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n",lut_startAddrBnGroupsLlr[idxBnGroup]>>5 ); + fprintf(fd," p_llrRes[i] = simde_mm256_permute4x64_epi64(ymm0, 0xD8);\n"); fprintf(fd,"}\n"); } @@ -620,32 +620,32 @@ fprintf(fd, "// Process group with 10 CNs \n"); // Loop over BNs fprintf(fd," for (int i=0,j=0;i #include #include -#include +#include "PHY/sse_intrin.h" #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" - -void nrLDPC_bnProc_BG1_generator_AVX2(const char *dir, int R) +void nrLDPC_bnProc_BG1_generator_AVX2(const char* dir, int R) { - const char *ratestr[3]={"13","23","89"}; + const char* ratestr[3] = {"13", "23", "89"}; - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + if (R < 0 || R > 2) { + printf("Illegal R %d\n", R); + abort(); + } + // system("mkdir -p ../ldpc_gen_files"); - // system("mkdir -p ../ldpc_gen_files"); - - char fname[FILENAME_MAX+1]; + char fname[FILENAME_MAX + 1]; snprintf(fname, sizeof(fname), "%s/bnProc/nrLDPC_bnProc_BG1_R%s_AVX2.h", dir, ratestr[R]); - FILE *fd=fopen(fname,"w"); + FILE* fd = fopen(fname, "w"); if (fd == NULL) { printf("Cannot create file %s\n", fname); abort(); } - //fprintf(fd,"#include \n"); - //fprintf(fd,"#include \n"); + // fprintf(fd,"#include \n"); + // fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); + fprintf(fd, "static inline void nrLDPC_bnProc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]); - fprintf(fd,"static inline void nrLDPC_bnProc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]); + const uint8_t* lut_numBnInBnGroups; + const uint32_t* lut_startAddrBnGroups; + const uint16_t* lut_startAddrBnGroupsLlr; + if (R == 0) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { + } else if (R == 1) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; + } else if (R == 2) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; + } else { + printf("aborting, illegal R %d\n", R); + fclose(fd); + abort(); + } + // uint32_t M; + // uint32_t M32rem; + // uint32_t i; + uint32_t k; + // Offset to each bit within a group in terms of 32 Byte + uint32_t cnOffsetInGroup; + uint8_t idxBnGroup = 0; + fprintf(fd, " uint32_t M, i; \n"); - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; + // ===================================================================== + // Process group with 1 CN + // Already done in bnProcBufPc - } - else if (R==1){ + // ===================================================================== - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; - } - else if (R==2) { + fprintf(fd, "// Process group with 2 CNs \n"); - lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - //uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - fprintf(fd," uint32_t M, i; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs or parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); - - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<2; k++) - { - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - //fprintf(fd," ((__m256i*) bnProcBuf) = ((__m256i*) &bnProcBuf) [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - - for (k=0; k<3; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - - - for (k=0; k<4; k++) - { - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup),(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), ((lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup)); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { + if (lut_numBnInBnGroups[1] > 0) { // If elements in group move to next address - idxBnGroup++; + idxBnGroup++; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); + // Number of groups of 32 BNs or parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[1]); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[1] * NR_LDPC_ZMAX) >> 5; - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<5; k++) - { - + // Set pointers to start of group 2 - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); + // Loop over CNs + for (k = 0; k < 2; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 3 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[2] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[2]); -fprintf(fd, "// Process group with 6 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[2] * NR_LDPC_ZMAX) >> 5; - // Process group with 6 CNs + // Set pointers to start of group 2 + // fprintf(fd," ((__m256i*) bnProcBuf) = ((__m256i*) &bnProcBuf) [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; + for (k = 0; k < 3; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<6; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 4 CNs \n"); + if (lut_numBnInBnGroups[3] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 7 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[3]); - // Process group with 7 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[3] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); + for (k = 0; k < 4; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup), + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + ((lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup)); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<7; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 5 CNs \n"); + if (lut_numBnInBnGroups[4] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 8 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[4]); - // Process group with 8 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[4] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); + // Loop over CNs + for (k = 0; k < 5; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<8; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 6 CNs \n"); -fprintf(fd, "// Process group with 9 CNs \n"); + // Process group with 6 CNs - // Process group with 9 CNs + if (lut_numBnInBnGroups[5] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[5]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[5] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<9; k++) - { - + // Loop over CNs + for (k = 0; k < 6; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 7 CNs \n"); -fprintf(fd, "// Process group with 10 CNs \n"); + // Process group with 7 CNs - // Process group with 10 CNs + if (lut_numBnInBnGroups[6] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[6]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[6] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<10; k++) - { - + // Loop over CNs + for (k = 0; k < 7; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 8 CNs \n"); - // ===================================================================== + // Process group with 8 CNs -fprintf(fd, "// Process group with 11 CNs \n"); + if (lut_numBnInBnGroups[7] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[7]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[7] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<11; k++) - { - + // Loop over CNs + for (k = 0; k < 8; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } - // ===================================================================== + } + // ===================================================================== + fprintf(fd, "// Process group with 9 CNs \n"); -fprintf(fd, "// Process group with 12 CNs \n"); + // Process group with 9 CNs + if (lut_numBnInBnGroups[8] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[8]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[8] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<12; k++) - { - + // Loop over CNs + for (k = 0; k < 9; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 10 CNs \n"); + // Process group with 10 CNs -fprintf(fd, "// Process group with 13 CNs \n"); + if (lut_numBnInBnGroups[9] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[9]); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[9] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; + // Loop over CNs + for (k = 0; k < 10; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<13; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 11 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[10] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[10]); + ; -fprintf(fd, "// Process group with 14 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[10] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 11; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<14; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 12 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[11] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[11]); + ; -fprintf(fd, "// Process group with 15 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[11] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 12; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<15; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 13 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[12] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[12]); + ; -fprintf(fd, "// Process group with 16 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[12] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 13; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<16; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== - // Process group with 17 CNs + fprintf(fd, "// Process group with 14 CNs \n"); -fprintf(fd, "// Process group with 17 CNs \n"); + if (lut_numBnInBnGroups[13] > 0) { + // If elements in group move to next address + idxBnGroup++; - // Process group with 17 CNs + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[13]); + ; - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[13] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 14; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<17; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 15 CNs \n"); + if (lut_numBnInBnGroups[14] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 18 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[14]); + ; - // Process group with 8 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[14] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; + // Loop over CNs + for (k = 0; k < 15; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<18; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 16 CNs \n"); -fprintf(fd, "// Process group with 19 CNs \n"); + if (lut_numBnInBnGroups[15] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[15]); + ; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[15] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; + // Loop over CNs + for (k = 0; k < 16; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<19; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + // Process group with 17 CNs - // ===================================================================== + fprintf(fd, "// Process group with 17 CNs \n"); + // Process group with 17 CNs -fprintf(fd, "// Process group with 20 CNs \n"); + if (lut_numBnInBnGroups[16] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[16]); + ; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[16] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; + // Loop over CNs + for (k = 0; k < 17; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<20; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 18 CNs \n"); + // Process group with 8 CNs + if (lut_numBnInBnGroups[17] > 0) { + // If elements in group move to next address + idxBnGroup++; - // ===================================================================== + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[17]); + ; -fprintf(fd, "// Process group with 21 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[17] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 18; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<21; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } - // ===================================================================== + } + // ===================================================================== + fprintf(fd, "// Process group with 19 CNs \n"); -fprintf(fd, "// Process group with 22 CNs \n"); + if (lut_numBnInBnGroups[18] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[18]); + ; - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[18] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 19; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<22; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 20 CNs \n"); + if (lut_numBnInBnGroups[19] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with <23 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[19]); + ; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[19] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Loop over CNs + for (k = 0; k < 20; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<23; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 21 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[20] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[20]); + ; -fprintf(fd, "// Process group with 24 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[20] * NR_LDPC_ZMAX) >> 5; - // Process group with 4 CNs + // Set pointers to start of group 2 - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Loop over CNs + for (k = 0; k < 21; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<24; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 22 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[21] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[21]); + ; -fprintf(fd, "// Process group with 25 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[21] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 22; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<25; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with <23 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[22] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[22]); + ; -fprintf(fd, "// Process group with 26 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[22] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 23; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<26; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 24 CNs \n"); + // Process group with 4 CNs -fprintf(fd, "// Process group with 27 CNs \n"); + if (lut_numBnInBnGroups[23] > 0) { + // If elements in group move to next address + idxBnGroup++; - // Process group with 17 CNs + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[23]); + ; - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[23] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 24; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<27; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 25 CNs \n"); + if (lut_numBnInBnGroups[24] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 28 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[24]); + ; - // Process group with 8 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[24] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; + // Loop over CNs + for (k = 0; k < 25; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<28; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== -fprintf(fd, "// Process group with 29 CNs \n"); + fprintf(fd, "// Process group with 26 CNs \n"); - // Process group with 9 CNs + if (lut_numBnInBnGroups[25] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[25]); + ; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[25] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<29; k++) - { - + // Loop over CNs + for (k = 0; k < 26; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 27 CNs \n"); -fprintf(fd, "// Process group with 30 CNs \n"); + // Process group with 17 CNs - // Process group with 20 CNs + if (lut_numBnInBnGroups[26] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[26]); + ; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[26] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<30; k++) - { - + // Loop over CNs + for (k = 0; k < 27; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - fprintf(fd,"}\n"); + // ===================================================================== + + fprintf(fd, "// Process group with 28 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[27] > 0) { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[27]); + ; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[27] * NR_LDPC_ZMAX) >> 5; + + // Set pointers to start of group 2 + + // Loop over CNs + for (k = 0; k < 28; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); + + fprintf(fd, "}\n"); + } + } + + // ===================================================================== + + fprintf(fd, "// Process group with 29 CNs \n"); + + // Process group with 9 CNs + + if (lut_numBnInBnGroups[28] > 0) { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[28]); + ; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[28] * NR_LDPC_ZMAX) >> 5; + + // Set pointers to start of group 2 + + // Loop over CNs + for (k = 0; k < 29; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); + + fprintf(fd, "}\n"); + } + } + + // ===================================================================== + + fprintf(fd, "// Process group with 30 CNs \n"); + + // Process group with 20 CNs + + if (lut_numBnInBnGroups[29] > 0) { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[29]); + ; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[29] * NR_LDPC_ZMAX) >> 5; + + // Set pointers to start of group 2 + + // Loop over CNs + for (k = 0; k < 30; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); + + fprintf(fd, "}\n"); + } + } + + fprintf(fd, "}\n"); fclose(fd); -}//end of the function nrLDPC_bnProc_BG1 - - - - - +} // end of the function nrLDPC_bnProc_BG1 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c index c23fd0b5a7..278b888319 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c @@ -25,1084 +25,974 @@ #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" - - -void nrLDPC_bnProc_BG2_generator_AVX2(const char *dir, int R) +void nrLDPC_bnProc_BG2_generator_AVX2(const char* dir, int R) { - const char *ratestr[3]={"15","13","23"}; + const char* ratestr[3] = {"15", "13", "23"}; - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + if (R < 0 || R > 2) { + printf("Illegal R %d\n", R); + abort(); + } + // system("mkdir -p ../ldpc_gen_files"); - // system("mkdir -p ../ldpc_gen_files"); - - char fname[FILENAME_MAX+1]; + char fname[FILENAME_MAX + 1]; snprintf(fname, sizeof(fname), "%s/bnProc/nrLDPC_bnProc_BG2_R%s_AVX2.h", dir, ratestr[R]); - FILE *fd=fopen(fname,"w"); + FILE* fd = fopen(fname, "w"); if (fd == NULL) { printf("Cannot create file %s\n", fname); abort(); } + fprintf(fd, "static inline void nrLDPC_bnProc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]); + const uint8_t* lut_numBnInBnGroups; + const uint32_t* lut_startAddrBnGroups; + const uint16_t* lut_startAddrBnGroupsLlr; + if (R == 0) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; + } else if (R == 1) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; + } else if (R == 2) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; + } else { + printf("aborting, illegal R %d\n", R); + fclose(fd); + abort(); + } - fprintf(fd,"static inline void nrLDPC_bnProc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n",ratestr[R]); - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; - if (R==0) { + // uint32_t M; + // uint32_t M32rem; + // uint32_t i; + uint32_t k; + // Offset to each bit within a group in terms of 32 Byte + uint32_t cnOffsetInGroup; + uint8_t idxBnGroup = 0; + fprintf(fd, " uint32_t M, i; \n"); - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; + // ===================================================================== + // Process group with 1 CN + // Already done in bnProcBufPc - } - else if (R==1){ + // ===================================================================== - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; - } - else if (R==2) { + fprintf(fd, "// Process group with 2 CNs \n"); - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; - lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; - lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; - } - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - - //uint32_t M; - //uint32_t M32rem; - // uint32_t i; - uint32_t k; - // Offset to each bit within a group in terms of 32 Byte - uint32_t cnOffsetInGroup; - uint8_t idxBnGroup = 0; - - - - fprintf(fd," uint32_t M, i; \n"); - - - -// ===================================================================== - // Process group with 1 CN - // Already done in bnProcBufPc - - // ===================================================================== - -fprintf(fd, "// Process group with 2 CNs \n"); - - if (lut_numBnInBnGroups[1] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs or parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); - - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<2; k++) - { - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } - - - - } - - // ===================================================================== - - -fprintf(fd, "// Process group with 3 CNs \n"); - - - - if (lut_numBnInBnGroups[2] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - //fprintf(fd," ((__m256i*) bnProcBuf) = ((__m256i*) &bnProcBuf) [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - - - for (k=0; k<3; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - } - } - - - - // ===================================================================== - - -fprintf(fd, "// Process group with 4 CNs \n"); - - - - if (lut_numBnInBnGroups[3] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - - - for (k=0; k<4; k++) - { - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup),(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), ((lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup)); - - fprintf(fd,"}\n"); - } - } - - - // ===================================================================== - - - fprintf(fd, "// Process group with 5 CNs \n"); - - - - if (lut_numBnInBnGroups[4] > 0) - { + if (lut_numBnInBnGroups[1] > 0) { // If elements in group move to next address - idxBnGroup++; + idxBnGroup++; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); + // Number of groups of 32 BNs or parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[1]); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[1] * NR_LDPC_ZMAX) >> 5; - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<5; k++) - { - + // Set pointers to start of group 2 - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); + // Loop over CNs + for (k = 0; k < 2; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 3 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[2] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[2]); -fprintf(fd, "// Process group with 6 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[2] * NR_LDPC_ZMAX) >> 5; - // Process group with 6 CNs + // Set pointers to start of group 2 + // fprintf(fd," ((__m256i*) bnProcBuf) = ((__m256i*) &bnProcBuf) [%d];\n",lut_startAddrBnGroups[idxBnGroup]); - if (lut_numBnInBnGroups[5] > 0) - { - // If elements in group move to next address - idxBnGroup++; + for (k = 0; k < 3; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<6; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 4 CNs \n"); + if (lut_numBnInBnGroups[3] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 7 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[3]); - // Process group with 7 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[3] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[6] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); + for (k = 0; k < 4; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup), + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + ((lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup)); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<7; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 5 CNs \n"); + if (lut_numBnInBnGroups[4] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 8 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[4]); - // Process group with 8 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[4] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[7] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); + // Loop over CNs + for (k = 0; k < 5; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<8; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 6 CNs \n"); -fprintf(fd, "// Process group with 9 CNs \n"); + // Process group with 6 CNs - // Process group with 9 CNs + if (lut_numBnInBnGroups[5] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[8] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[5]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[5] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<9; k++) - { - + // Loop over CNs + for (k = 0; k < 6; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 7 CNs \n"); -fprintf(fd, "// Process group with 10 CNs \n"); + // Process group with 7 CNs - // Process group with 10 CNs + if (lut_numBnInBnGroups[6] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[9] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[6]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[6] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<10; k++) - { - + // Loop over CNs + for (k = 0; k < 7; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 8 CNs \n"); - // ===================================================================== + // Process group with 8 CNs -fprintf(fd, "// Process group with 11 CNs \n"); + if (lut_numBnInBnGroups[7] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[10] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[7]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[7] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<11; k++) - { - + // Loop over CNs + for (k = 0; k < 8; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } - // ===================================================================== + } + // ===================================================================== + fprintf(fd, "// Process group with 9 CNs \n"); -fprintf(fd, "// Process group with 12 CNs \n"); + // Process group with 9 CNs + if (lut_numBnInBnGroups[8] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[11] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[8]); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[8] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<12; k++) - { - + // Loop over CNs + for (k = 0; k < 9; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 10 CNs \n"); + // Process group with 10 CNs -fprintf(fd, "// Process group with 13 CNs \n"); + if (lut_numBnInBnGroups[9] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[9]); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[9] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[12] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; + // Loop over CNs + for (k = 0; k < 10; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<13; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 11 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[10] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[10]); + ; -fprintf(fd, "// Process group with 14 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[10] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 11; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[13] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<14; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 12 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[11] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[11]); + ; -fprintf(fd, "// Process group with 15 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[11] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 12; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[14] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<15; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 13 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[12] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[12]); + ; -fprintf(fd, "// Process group with 16 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[12] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 13; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[15] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<16; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== - // Process group with 17 CNs + fprintf(fd, "// Process group with 14 CNs \n"); -fprintf(fd, "// Process group with 17 CNs \n"); + if (lut_numBnInBnGroups[13] > 0) { + // If elements in group move to next address + idxBnGroup++; - // Process group with 17 CNs + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[13]); + ; - if (lut_numBnInBnGroups[16] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[13] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 14; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<17; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 15 CNs \n"); + if (lut_numBnInBnGroups[14] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 18 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[14]); + ; - // Process group with 8 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[14] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[17] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; + // Loop over CNs + for (k = 0; k < 15; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<18; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 16 CNs \n"); -fprintf(fd, "// Process group with 19 CNs \n"); + if (lut_numBnInBnGroups[15] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[15]); + ; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[15] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[18] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; + // Loop over CNs + for (k = 0; k < 16; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<19; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + // Process group with 17 CNs + fprintf(fd, "// Process group with 17 CNs \n"); -fprintf(fd, "// Process group with 20 CNs \n"); + // Process group with 17 CNs + if (lut_numBnInBnGroups[16] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[16]); + ; - if (lut_numBnInBnGroups[19] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[16] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 17; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<20; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 18 CNs \n"); + // Process group with 8 CNs + if (lut_numBnInBnGroups[17] > 0) { + // If elements in group move to next address + idxBnGroup++; - // ===================================================================== + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[17]); + ; -fprintf(fd, "// Process group with 21 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[17] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 18; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - - - if (lut_numBnInBnGroups[20] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<21; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } - // ===================================================================== + } + // ===================================================================== + fprintf(fd, "// Process group with 19 CNs \n"); -fprintf(fd, "// Process group with 22 CNs \n"); + if (lut_numBnInBnGroups[18] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[18]); + ; - if (lut_numBnInBnGroups[21] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[18] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 19; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<22; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== + fprintf(fd, "// Process group with 20 CNs \n"); + if (lut_numBnInBnGroups[19] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with <23 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[19]); + ; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[19] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 - if (lut_numBnInBnGroups[22] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Loop over CNs + for (k = 0; k < 20; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<23; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 21 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[20] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[20]); + ; -fprintf(fd, "// Process group with 24 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[20] * NR_LDPC_ZMAX) >> 5; - // Process group with 4 CNs + // Set pointers to start of group 2 - if (lut_numBnInBnGroups[23] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Loop over CNs + for (k = 0; k < 21; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<24; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with 22 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[21] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[21]); + ; -fprintf(fd, "// Process group with 25 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[21] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 22; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[24] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<25; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== + fprintf(fd, "// Process group with <23 CNs \n"); - // ===================================================================== + if (lut_numBnInBnGroups[22] > 0) { + // If elements in group move to next address + idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[22]); + ; -fprintf(fd, "// Process group with 26 CNs \n"); + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[22] * NR_LDPC_ZMAX) >> 5; + // Set pointers to start of group 2 + // Loop over CNs + for (k = 0; k < 23; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - if (lut_numBnInBnGroups[25] > 0) - { - // If elements in group move to next address - idxBnGroup++; - - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; - - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<26; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 24 CNs \n"); + // Process group with 4 CNs -fprintf(fd, "// Process group with 27 CNs \n"); + if (lut_numBnInBnGroups[23] > 0) { + // If elements in group move to next address + idxBnGroup++; - // Process group with 17 CNs + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[23]); + ; - if (lut_numBnInBnGroups[26] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[23] * NR_LDPC_ZMAX) >> 5; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; + // Set pointers to start of group 2 - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; + // Loop over CNs + for (k = 0; k < 24; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<27; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 25 CNs \n"); + if (lut_numBnInBnGroups[24] > 0) { + // If elements in group move to next address + idxBnGroup++; -fprintf(fd, "// Process group with 28 CNs \n"); + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[24]); + ; - // Process group with 8 CNs + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[24] * NR_LDPC_ZMAX) >> 5; - if (lut_numBnInBnGroups[27] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Set pointers to start of group 2 - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; + // Loop over CNs + for (k = 0; k < 25; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; - - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<28; k++) - { - - - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - // ===================================================================== + // ===================================================================== -fprintf(fd, "// Process group with 29 CNs \n"); + fprintf(fd, "// Process group with 26 CNs \n"); - // Process group with 9 CNs + if (lut_numBnInBnGroups[25] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[28] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[25]); + ; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[25] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<29; k++) - { - + // Loop over CNs + for (k = 0; k < 26; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } + // ===================================================================== - // ===================================================================== + fprintf(fd, "// Process group with 27 CNs \n"); -fprintf(fd, "// Process group with 30 CNs \n"); + // Process group with 17 CNs - // Process group with 20 CNs + if (lut_numBnInBnGroups[26] > 0) { + // If elements in group move to next address + idxBnGroup++; - if (lut_numBnInBnGroups[29] > 0) - { - // If elements in group move to next address - idxBnGroup++; + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[26]); + ; - // Number of groups of 32 BNs for parallel processing - fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[26] * NR_LDPC_ZMAX) >> 5; - // Set the offset to each CN within a group in terms of 16 Byte - cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; + // Set pointers to start of group 2 - // Set pointers to start of group 2 - - // Loop over CNs - for (k=0; k<30; k++) - { - + // Loop over CNs + for (k = 0; k < 27; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); - // Loop over BNs - fprintf(fd," for (i=0;i>5)+ k*cnOffsetInGroup,(lut_startAddrBnGroupsLlr[idxBnGroup]>>5), (lut_startAddrBnGroups[idxBnGroup]>>5)+ k*cnOffsetInGroup); - - fprintf(fd,"}\n"); - - } + fprintf(fd, "}\n"); } + } - fprintf(fd,"}\n"); + // ===================================================================== + + fprintf(fd, "// Process group with 28 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[27] > 0) { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[27]); + ; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[27] * NR_LDPC_ZMAX) >> 5; + + // Set pointers to start of group 2 + + // Loop over CNs + for (k = 0; k < 28; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); + + fprintf(fd, "}\n"); + } + } + + // ===================================================================== + + fprintf(fd, "// Process group with 29 CNs \n"); + + // Process group with 9 CNs + + if (lut_numBnInBnGroups[28] > 0) { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[28]); + ; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[28] * NR_LDPC_ZMAX) >> 5; + + // Set pointers to start of group 2 + + // Loop over CNs + for (k = 0; k < 29; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); + + fprintf(fd, "}\n"); + } + } + + // ===================================================================== + + fprintf(fd, "// Process group with 30 CNs \n"); + + // Process group with 20 CNs + + if (lut_numBnInBnGroups[29] > 0) { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + fprintf(fd, " M = (%d*Z + 31)>>5;\n", lut_numBnInBnGroups[29]); + ; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[29] * NR_LDPC_ZMAX) >> 5; + + // Set pointers to start of group 2 + + // Loop over CNs + for (k = 0; k < 30; k++) { + // Loop over BNs + fprintf(fd, " for (i=0;i> 5) + k * cnOffsetInGroup, + (lut_startAddrBnGroupsLlr[idxBnGroup] >> 5), + (lut_startAddrBnGroups[idxBnGroup] >> 5) + k * cnOffsetInGroup); + + fprintf(fd, "}\n"); + } + } + + fprintf(fd, "}\n"); fclose(fd); -}//end of the function nrLDPC_bnProc_BG2 - - +} // end of the function nrLDPC_bnProc_BG2 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c index 2bbca1591f..49b0192609 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG1_avx512.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include "PHY/sse_intrin.h" #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c index 418fe1f36f..b63c1ced8b 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProcPc_gen_BG2_avx512.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include "PHY/sse_intrin.h" #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" @@ -44,8 +44,8 @@ void nrLDPC_bnProcPc_BG2_generator_AVX512(const char *dir, int R) abort(); } -// fprintf(fd,"#include \n"); - //fprintf(fd,"#include \n"); + // fprintf(fd,"#include \n"); + // fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_AVX512(int8_t* bnProcBuf,int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c index 2c04984220..533ebc95f3 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG1_avx512.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include "PHY/sse_intrin.h" #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" @@ -45,7 +45,7 @@ void nrLDPC_bnProc_BG1_generator_AVX512(const char *dir, int R) } //fprintf(fd,"#include \n"); - //fprintf(fd,"#include \n"); + //fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"static inline void nrLDPC_bnProc_BG1_R%s_AVX512(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]); diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c index bcd1179b12..bd7a9455a8 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_BG2_avx512.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include "PHY/sse_intrin.h" #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" @@ -45,7 +45,7 @@ void nrLDPC_bnProc_BG2_generator_AVX512(const char *dir, int R) } fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"void nrLDPC_bnProc_BG2_R%s_AVX512(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c index f998f13859..a4a269a2f6 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG1_avx2.c @@ -42,7 +42,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) } fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); @@ -87,8 +87,8 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); + fprintf(fd," ones = simde_mm256_set1_epi8((char)1);\n"); + fprintf(fd," maxLLR = simde_mm256_set1_epi8((char)127);\n"); fprintf(fd," uint32_t M;\n"); @@ -121,27 +121,27 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // 32 CNs of second BN // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -180,10 +180,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -191,19 +191,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -245,10 +245,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -256,19 +256,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -310,10 +310,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -321,19 +321,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -378,10 +378,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -389,19 +389,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG7[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -447,10 +447,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -458,19 +458,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG8[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -516,10 +516,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -527,19 +527,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>5)+lut_idxCnProcG9[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[6]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[6]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -586,10 +586,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -597,19 +597,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>5)+lut_idxCnProcG10[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[7]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[7]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -659,10 +659,10 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -670,19 +670,19 @@ void nrLDPC_cnProc_BG1_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>5)+lut_idxCnProcG19[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[8]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[8]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c index 9a5ff84c86..0d0c1305a0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c @@ -45,7 +45,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) } fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; @@ -77,8 +77,8 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); - fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); - fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); + fprintf(fd," ones = simde_mm256_set1_epi8((char)1);\n"); + fprintf(fd," maxLLR = simde_mm256_set1_epi8((char)127);\n"); fprintf(fd," uint32_t M;\n"); @@ -100,35 +100,35 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // 32 CNs of second BN // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); fprintf(fd," }\n"); } @@ -161,10 +161,10 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -172,19 +172,19 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>5)+lut_idxCnProcG4[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[1]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -218,10 +218,10 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -229,18 +229,18 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>5)+lut_idxCnProcG5[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[2]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -275,10 +275,10 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -286,19 +286,19 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>5)+lut_idxCnProcG6[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[3]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -338,30 +338,30 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs for (k=1; k<7; k++) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>5)+lut_idxCnProcG8[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[4]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } @@ -401,10 +401,10 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) // Abs and sign of 32 CNs (first BN) // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][0]); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); + // sgn = simde_mm256_sign_epi8(ones, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(ones, ymm0);\n"); + // min = simde_mm256_abs_epi8(ymm0); + fprintf(fd," min = simde_mm256_abs_epi8(ymm0);\n"); // Loop over BNs @@ -412,19 +412,19 @@ void nrLDPC_cnProc_BG2_generator_AVX2(const char* dir, int R) { fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>5)+lut_idxCnProcG10[j][k]); - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); + // min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0)); + fprintf(fd," min = simde_mm256_min_epu8(min, simde_mm256_abs_epi8(ymm0));\n"); - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); + // sgn = simde_mm256_sign_epi8(sgn, ymm0); + fprintf(fd," sgn = simde_mm256_sign_epi8(sgn, ymm0);\n"); } // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); + // min = simde_mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = simde_mm256_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = simde_mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); + fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = simde_mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[5]>>5)+(j*bitOffsetInGroup)); fprintf(fd," }\n"); } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c index b007ac0e0b..aafcc98790 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.c @@ -26,572 +26,535 @@ void nrLDPC_cnProc_BG1_generator_AVX512(const char *dir, int R) { - const char *ratestr[3]={"13","23","89"}; + const char *ratestr[3] = {"13", "23", "89"}; - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + if (R < 0 || R > 2) { + printf("Illegal R %d\n", R); + abort(); + } + // system("mkdir -p ../ldpc_gen_files"); - // system("mkdir -p ../ldpc_gen_files"); - - char fname[FILENAME_MAX+1]; + char fname[FILENAME_MAX + 1]; snprintf(fname, sizeof(fname), "%s/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h", dir, ratestr[R]); - FILE *fd=fopen(fname,"w"); + FILE *fd = fopen(fname, "w"); if (fd == NULL) { printf("Cannot create file %s\n", fname); abort(); } - // fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); + // fprintf(fd,"#include \n"); + // fprintf(fd,"#include \"PHY/sse_intrin.h\"\n"); + // fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,simde_mm512_movepi8_mask(b),z,a)\n"); - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); - - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + fprintf(fd, "static inline void nrLDPC_cnProc_BG1_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n", ratestr[R]); + const uint8_t *lut_numCnInCnGroups; + const uint32_t *lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + if (R == 0) + lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R == 1) + lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R == 2) + lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { + printf("aborting, illegal R %d\n", R); + fclose(fd); + abort(); + } uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 64 Byte uint32_t bitOffsetInGroup; + fprintf(fd, " uint32_t M, i;\n"); + fprintf(fd, " __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - fprintf(fd," uint32_t M, i;\n"); - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); - - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); - - + fprintf(fd, " zeros = _mm512_setzero_si512();\n"); + fprintf(fd, " maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd, " ones = _mm512_set1_epi8((char)1);\n"); // ===================================================================== // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); + fprintf(fd, "//Process group with 3 BNs\n"); // LUT with offsets for bits that need to be processed // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. // Offsets are in units of bitOffsetInGroup (1*384/32)12 - // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 - const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + const uint8_t lut_idxCnProcG3[3][2] = {{12, 24}, {0, 24}, {0, 12}}; - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + if (lut_numCnInCnGroups[0] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[0]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[0]); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0] * NR_LDPC_ZMAX) >> 6; - // Loop over every BN + // Loop over every BN - for (j=0; j<3; j++) - { + for (j = 0; j < 3; j++) { + fprintf(fd, " for (i=0;i> 6) + lut_idxCnProcG3[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // for (k=1; k<2; k++) + //{ + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[0] >> 6) + lut_idxCnProcG3[j][1] / 2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // for (k=1; k<2; k++) - //{ - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + // } - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - // } - - // Store result - // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - + // Store result + // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[0] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } + } // ===================================================================== // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 5*384/32 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + fprintf(fd, "//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60, 120, 180}, {0, 120, 180}, {0, 60, 180}, {0, 60, 120}}; - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + if (lut_numCnInCnGroups[1] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[1]); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1] * NR_LDPC_ZMAX) >> 6; - // Loop over every BN - for (j=0; j<4; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // Loop over every BN + for (j = 0; j < 4; j++) { + // Loop over CNs + // for (i=0; i> 6) + lut_idxCnProcG4[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 3; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[1] >> 6) + lut_idxCnProcG4[j][k] / 2); - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[1] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); + fprintf(fd, "//Process group with 5 BNs\n"); // Offset is 18*384/32 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, - {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + const uint16_t lut_idxCnProcG5[5][4] = {{216, 432, 648, 864}, {0, 432, 648, 864}, {0, 216, 648, 864}, {0, 216, 432, 864}, {0, 216, 432, 648}}; + if (lut_numCnInCnGroups[2] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[2]); - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + // Loop over every BN - // Loop over every BN + for (j = 0; j < 5; j++) { + fprintf(fd, " for (i=0;i> 6) + lut_idxCnProcG5[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - for (j=0; j<5; j++) - { + // Loop over BNs + for (k = 1; k < 4; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[2] >> 6) + lut_idxCnProcG5[j][k] / 2); - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[2] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } + } // ===================================================================== // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 8*384/32 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, - {0,96,288,384,480}, {0,96,192,384,480}, - {0,96,192,288,480}, {0,96,192,288,384}}; + fprintf(fd, "//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96, 192, 288, 384, 480}, {0, 192, 288, 384, 480}, {0, 96, 288, 384, 480}, {0, 96, 192, 384, 480}, {0, 96, 192, 288, 480}, {0, 96, 192, 288, 384}}; + if (lut_numCnInCnGroups[3] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[3]*Z + 63)>>6; - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[3]); - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Loop over every BN - // Loop over every BN + for (j = 0; j < 6; j++) { + fprintf(fd, " for (i=0;i> 6) + lut_idxCnProcG6[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - for (j=0; j<6; j++) - { + // Loop over BNs + for (k = 1; k < 5; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[3] >> 6) + lut_idxCnProcG6[j][k] / 2); - fprintf(fd," for (i=0;i>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[3] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 7 BNs - fprintf(fd,"//Process group with 7 BNs\n"); - // Offset is 5*384/32 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, - {0,60,180,240,300,360}, {0,60,120,240,300,360}, - {0,60,120,180,300,360}, {0,60,120,180,240,360}, - {0,60,120,180,240,300}}; + fprintf(fd, "//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60, 120, 180, 240, 300, 360}, + {0, 120, 180, 240, 300, 360}, + {0, 60, 180, 240, 300, 360}, + {0, 60, 120, 240, 300, 360}, + {0, 60, 120, 180, 300, 360}, + {0, 60, 120, 180, 240, 360}, + {0, 60, 120, 180, 240, 300}}; + if (lut_numCnInCnGroups[4] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[4]); - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Loop over every BN - // Loop over every BN + for (j = 0; j < 7; j++) { + // Loop over CNs + // for (i=0; i> 6) + lut_idxCnProcG7[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - for (j=0; j<7; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 6; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[4] >> 6) + lut_idxCnProcG7[j][k] / 2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // Loop over BNs - for (k=1; k<6; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[4] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168}, - {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168}, - {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}}; + fprintf(fd, "//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 24 + const uint8_t lut_idxCnProcG8[8][7] = {{24, 48, 72, 96, 120, 144, 168}, + {0, 48, 72, 96, 120, 144, 168}, + {0, 24, 72, 96, 120, 144, 168}, + {0, 24, 48, 96, 120, 144, 168}, + {0, 24, 48, 72, 120, 144, 168}, + {0, 24, 48, 72, 96, 144, 168}, + {0, 24, 48, 72, 96, 120, 168}, + {0, 24, 48, 72, 96, 120, 144}}; - - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); + if (lut_numCnInCnGroups[5] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[5]); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5] * NR_LDPC_ZMAX) >> 6; - // Loop over every BN + // Loop over every BN - for (j=0; j<8; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + for (j = 0; j < 8; j++) { + // Loop over CNs + // for (i=0; i> 6) + lut_idxCnProcG8[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 7; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[5] >> 6) + lut_idxCnProcG8[j][k] / 2); - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[5] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } + } - - // ===================================================================== + // ===================================================================== // Process group with 9 BNs - fprintf(fd,"//Process group with 9 BNs\n"); - // Offset is 2*384/32 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, - {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, - {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, - {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, - {0,24,48,72,96,120,144,168}}; + fprintf(fd, "//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24, 48, 72, 96, 120, 144, 168, 192}, + {0, 48, 72, 96, 120, 144, 168, 192}, + {0, 24, 72, 96, 120, 144, 168, 192}, + {0, 24, 48, 96, 120, 144, 168, 192}, + {0, 24, 48, 72, 120, 144, 168, 192}, + {0, 24, 48, 72, 96, 144, 168, 192}, + {0, 24, 48, 72, 96, 120, 168, 192}, + {0, 24, 48, 72, 96, 120, 144, 192}, + {0, 24, 48, 72, 96, 120, 144, 168}}; + if (lut_numCnInCnGroups[6] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[6]); - if (lut_numCnInCnGroups[6] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; - fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + // Loop over every BN - // Loop over every BN + for (j = 0; j < 9; j++) { + // Loop over CNs + // for (i=0; i> 6) + lut_idxCnProcG9[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - for (j=0; j<9; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 8; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[6] >> 6) + lut_idxCnProcG9[j][k] / 2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // Loop over BNs - for (k=1; k<8; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[6] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - - - - - + } // ===================================================================== // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); - // Offset is 1*384/32 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, - {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, - {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, - {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, - {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + fprintf(fd, "//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12, 24, 36, 48, 60, 72, 84, 96, 108}, + {0, 24, 36, 48, 60, 72, 84, 96, 108}, + {0, 12, 36, 48, 60, 72, 84, 96, 108}, + {0, 12, 24, 48, 60, 72, 84, 96, 108}, + {0, 12, 24, 36, 60, 72, 84, 96, 108}, + {0, 12, 24, 36, 48, 72, 84, 96, 108}, + {0, 12, 24, 36, 48, 60, 84, 96, 108}, + {0, 12, 24, 36, 48, 60, 72, 96, 108}, + {0, 12, 24, 36, 48, 60, 72, 84, 108}, + {0, 12, 24, 36, 48, 60, 72, 84, 96}}; - if (lut_numCnInCnGroups[7] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); + if (lut_numCnInCnGroups[7] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[7]); - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7] * NR_LDPC_ZMAX) >> 6; + // Loop over every BN - // Loop over every BN + for (j = 0; j < 10; j++) { + // Loop over CNs + // for (i=0; i> 6) + lut_idxCnProcG10[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - for (j=0; j<10; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 9; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[7] >> 6) + lut_idxCnProcG10[j][k] / 2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n", (lut_startAddrCnGroups[7] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 19 BNs - fprintf(fd,"//Process group with 19 BNs\n"); + fprintf(fd, "//Process group with 19 BNs\n"); // Offset is 4*384/32 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, - {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + const uint16_t lut_idxCnProcG19[19][18] = {{48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 432, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 480, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 528, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 576, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 624, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 672, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 720, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 768, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 816, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 864}, + {0, 48, 96, 144, 192, 240, 288, 336, 384, 432, 480, 528, 576, 624, 672, 720, 768, 816}}; + if (lut_numCnInCnGroups[8] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[8]); - if (lut_numCnInCnGroups[8] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; - fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + // Loop over every BN - // Loop over every BN + for (j = 0; j < 19; j++) { + // Loop over CNs + // for (i=0; i> 6) + lut_idxCnProcG19[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - for (j=0; j<19; j++) - { - // Loop over CNs - // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 18; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[8] >> 6) + lut_idxCnProcG19[j][k] / 2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // Loop over BNs - for (k=1; k<18; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[8] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } + } - fprintf(fd,"}\n"); + fprintf(fd, "}\n"); fclose(fd); -}//end of the function nrLDPC_cnProc_BG1 - - - - - +} // end of the function nrLDPC_cnProc_BG1 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c index 8a9e592f6f..70e760cc6a 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG2_avx512.c @@ -26,389 +26,336 @@ void nrLDPC_cnProc_BG2_generator_AVX512(const char *dir, int R) { - const char *ratestr[3]={"15","13","23"}; + const char *ratestr[3] = {"15", "13", "23"}; - if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + if (R < 0 || R > 2) { + printf("Illegal R %d\n", R); + abort(); + } + // system("mkdir -p ../ldpc_gen_files"); - // system("mkdir -p ../ldpc_gen_files"); - - char fname[FILENAME_MAX+1]; + char fname[FILENAME_MAX + 1]; snprintf(fname, sizeof(fname), "%s/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h", dir, ratestr[R]); - FILE *fd=fopen(fname,"w"); + FILE *fd = fopen(fname, "w"); if (fd == NULL) { printf("Cannot create file %s\n", fname); abort(); } - //fprintf(fd,"#include \n"); -// fprintf(fd,"#include \n"); + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + fprintf(fd, "static inline void nrLDPC_cnProc_BG2_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n", ratestr[R]); + const uint8_t *lut_numCnInCnGroups; + const uint32_t *lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - - - - fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); - const uint8_t* lut_numCnInCnGroups; - const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; - - if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; - else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; - else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - + if (R == 0) + lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; + else if (R == 1) + lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; + else if (R == 2) + lut_numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; + else { + printf("aborting, illegal R %d\n", R); + fclose(fd); + abort(); + } // Number of CNs in Groups - //uint32_t M; + // uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 64 Byte uint32_t bitOffsetInGroup; - fprintf(fd," uint32_t M;\n"); - fprintf(fd," __m512i zmm0, min, sgn,zeros,ones,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); + fprintf(fd, " uint32_t M;\n"); + fprintf(fd, " __m512i zmm0, min, sgn,zeros,ones,maxLLR;\n"); + fprintf(fd, " zeros = _mm512_setzero_si512();\n"); + fprintf(fd, " maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd, " ones = _mm512_set1_epi8((char)1);\n"); // ===================================================================== // Process group with 3 BNs - fprintf(fd,"//Process group with 3 BNs\n"); + fprintf(fd, "//Process group with 3 BNs\n"); // LUT with offsets for bits that need to be processed // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. // Offsets are in units of bitOffsetInGroup - const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; + const uint8_t lut_idxCnProcG3[3][2] = {{72, 144}, {0, 144}, {0, 72}}; + if (lut_numCnInCnGroups[0] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[0]); - if (lut_numCnInCnGroups[0] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; + // Loop over every BN + for (j = 0; j < 3; j++) { + fprintf(fd, " for (int i=0;i> 6) + lut_idxCnProcG3[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - // Loop over every BN + // for (k=1; k<2; k++) + //{ + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[0] >> 6) + lut_idxCnProcG3[j][1] / 2); - for (j=0; j<3; j++) - { + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + // } - - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG3[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - - - // for (k=1; k<2; k++) - //{ - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(*p_ones, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - // } - - // Store result - // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } - + // Store result + // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[0] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 4 BNs - fprintf(fd,"//Process group with 4 BNs\n"); - // Offset is 20*384/32 = 240 - const uint16_t lut_idxCnProcG4[4][3] = {{240,480,720}, {0,480,720}, {0,240,720}, {0,240,480}}; + fprintf(fd, "//Process group with 4 BNs\n"); + // Offset is 20*384/32 = 240 + const uint16_t lut_idxCnProcG4[4][3] = {{240, 480, 720}, {0, 480, 720}, {0, 240, 720}, {0, 240, 480}}; + if (lut_numCnInCnGroups[1] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[1]); - if (lut_numCnInCnGroups[1] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1] * NR_LDPC_ZMAX) >> 6; - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; + // Loop over every BN + for (j = 0; j < 4; j++) { + fprintf(fd, " for (int i=0;i> 6) + lut_idxCnProcG4[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - // Loop over every BN - for (j=0; j<4; j++) - { - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG4[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // Loop over BNs + for (k = 1; k < 3; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[1] >> 6) + lut_idxCnProcG4[j][k] / 2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // Loop over BNs - for (k=1; k<3; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); + // sgn = _mm512_sign_epi8(sgn, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[1] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 5 BNs - fprintf(fd,"//Process group with 5 BNs\n"); - // Offset is 9*384/32 = 108 - const uint16_t lut_idxCnProcG5[5][4] = {{108,216,324,432}, {0,216,324,432}, - {0,108,324,432}, {0,108,216,432}, {0,108,216,324}}; - + fprintf(fd, "//Process group with 5 BNs\n"); + // Offset is 9*384/32 = 108 + const uint16_t lut_idxCnProcG5[5][4] = {{108, 216, 324, 432}, {0, 216, 324, 432}, {0, 108, 324, 432}, {0, 108, 216, 432}, {0, 108, 216, 324}}; + if (lut_numCnInCnGroups[2] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[2]); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2] * NR_LDPC_ZMAX) >> 6; - if (lut_numCnInCnGroups[2] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); + // Loop over every BN - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; + for (j = 0; j < 5; j++) { + fprintf(fd, " for (int i=0;i> 6) + lut_idxCnProcG5[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - // Loop over every BN + // Loop over BNs + for (k = 1; k < 4; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[2] >> 6) + lut_idxCnProcG5[j][k] / 2); - for (j=0; j<5; j++) - { + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG5[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // sgn = _mm512_sign_epi8(sgn, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // Loop over BNs - for (k=1; k<4; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[2] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } + } // ===================================================================== // Process group with 6 BNs - fprintf(fd,"//Process group with 6 BNs\n"); - // Offset is 3*384/32 = 36 - const uint16_t lut_idxCnProcG6[6][5] = {{36,72,108,144,180}, {0,72,108,144,180}, - {0,36,108,144,180}, {0,36,72,144,180}, - {0,36,72,108,180}, {0,36,72,108,144}}; - + fprintf(fd, "//Process group with 6 BNs\n"); + // Offset is 3*384/32 = 36 + const uint16_t lut_idxCnProcG6[6][5] = {{36, 72, 108, 144, 180}, {0, 72, 108, 144, 180}, {0, 36, 108, 144, 180}, {0, 36, 72, 144, 180}, {0, 36, 72, 108, 180}, {0, 36, 72, 108, 144}}; + if (lut_numCnInCnGroups[3] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[3]); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3] * NR_LDPC_ZMAX) >> 6; - if (lut_numCnInCnGroups[3] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); + // Loop over every BN - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; + for (j = 0; j < 6; j++) { + fprintf(fd, " for (int i=0;i> 6) + lut_idxCnProcG6[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - // Loop over every BN + // Loop over BNs + for (k = 1; k < 5; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[3] >> 6) + lut_idxCnProcG6[j][k] / 2); - for (j=0; j<6; j++) - { + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG6[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // sgn = _mm512_sign_epi8(sgn, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // Loop over BNs - for (k=1; k<5; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[3] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - - + } // ===================================================================== // Process group with 8 BNs - fprintf(fd,"//Process group with 8 BNs\n"); - // Offset is 2*384/32 = 24 - const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168}, - {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168}, - {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168}, - {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}}; + fprintf(fd, "//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 24 + const uint8_t lut_idxCnProcG8[8][7] = {{24, 48, 72, 96, 120, 144, 168}, + {0, 48, 72, 96, 120, 144, 168}, + {0, 24, 72, 96, 120, 144, 168}, + {0, 24, 48, 96, 120, 144, 168}, + {0, 24, 48, 72, 120, 144, 168}, + {0, 24, 48, 72, 96, 144, 168}, + {0, 24, 48, 72, 96, 120, 168}, + {0, 24, 48, 72, 96, 120, 144}}; - + if (lut_numCnInCnGroups[4] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[4]); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4] * NR_LDPC_ZMAX) >> 6; - if (lut_numCnInCnGroups[4] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); + // Loop over every BN - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; + for (j = 0; j < 8; j++) { + fprintf(fd, " for (int i=0;i> 6) + lut_idxCnProcG8[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - // Loop over every BN + // Loop over BNs + for (k = 1; k < 7; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[4] >> 6) + lut_idxCnProcG8[j][k] / 2); - for (j=0; j<8; j++) - { + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG8[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // sgn = _mm512_sign_epi8(sgn, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // Loop over BNs - for (k=1; k<7; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG8[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n", (lut_startAddrCnGroups[4] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } - + } // ===================================================================== // Process group with 10 BNs - fprintf(fd,"//Process group with 10 BNs\n"); + fprintf(fd, "//Process group with 10 BNs\n"); - const uint8_t lut_idxCnProcG10[10][9] = {{24,48,72,96,120,144,168,192,216}, {0,48,72,96,120,144,168,192,216}, - {0,24,72,96,120,144,168,192,216}, {0,24,48,96,120,144,168,192,216}, - {0,24,48,72,120,144,168,192,216}, {0,24,48,72,96,144,168,192,216}, - {0,24,48,72,96,120,168,192,216}, {0,24,48,72,96,120,144,192,216}, - {0,24,48,72,96,120,144,168,216}, {0,24,48,72,96,120,144,168,192}}; + const uint8_t lut_idxCnProcG10[10][9] = {{24, 48, 72, 96, 120, 144, 168, 192, 216}, + {0, 48, 72, 96, 120, 144, 168, 192, 216}, + {0, 24, 72, 96, 120, 144, 168, 192, 216}, + {0, 24, 48, 96, 120, 144, 168, 192, 216}, + {0, 24, 48, 72, 120, 144, 168, 192, 216}, + {0, 24, 48, 72, 96, 144, 168, 192, 216}, + {0, 24, 48, 72, 96, 120, 168, 192, 216}, + {0, 24, 48, 72, 96, 120, 144, 192, 216}, + {0, 24, 48, 72, 96, 120, 144, 168, 216}, + {0, 24, 48, 72, 96, 120, 144, 168, 192}}; - + if (lut_numCnInCnGroups[5] > 0) { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + fprintf(fd, " M = (%d*Z + 63)>>6;\n", lut_numCnInCnGroups[5]); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5] * NR_LDPC_ZMAX) >> 6; - if (lut_numCnInCnGroups[5] > 0) - { - // Number of groups of 64 CNs for parallel processing - // Ceil for values not divisible by 64 - fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); + // Loop over every BN - // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; + for (j = 0; j < 10; j++) { + fprintf(fd, " for (int i=0;i> 6) + lut_idxCnProcG10[j][0] / 2); + fprintf(fd, " sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd, " min = _mm512_abs_epi8(zmm0);\n"); - // Loop over every BN + // Loop over BNs + for (k = 1; k < 9; k++) { + fprintf(fd, " zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n", (lut_startAddrCnGroups[5] >> 6) + lut_idxCnProcG10[j][k] / 2); - for (j=0; j<10; j++) - { + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd, " min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG10[j][0]/2); - fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); - fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + // sgn = _mm512_sign_epi8(sgn, zmm0); + fprintf(fd, " sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd, " min = _mm512_min_epu8(min, maxLLR);\n"); - // Loop over BNs - for (k=1; k<9; k++) - { - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG10[j][k]/2); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - } - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); - } + fprintf(fd, " ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n", (lut_startAddrCnGroups[5] >> 6) + (j * bitOffsetInGroup)); + fprintf(fd, " }\n"); } + } - - fprintf(fd,"}\n"); + fprintf(fd, "}\n"); fclose(fd); -}//end of the function nrLDPC_cnProc_BG2 - - - - - - - - - +} // end of the function nrLDPC_cnProc_BG2 diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc192_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc192_byte.c index bfdf416605..1dfdfa3d9b 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc192_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc192_byte.c @@ -11,141 +11,141 @@ static inline void ldpc192_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[5019],_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[6877],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[51],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[5609],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[6408],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2992],_mm256_xor_si256(c2[2990],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[7767],_mm256_xor_si256(c2[4865],_mm256_xor_si256(c2[8293],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[6768],_mm256_xor_si256(c2[6506],_mm256_xor_si256(c2[5448],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[5725],_mm256_xor_si256(c2[2835],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[4959],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[4441],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[5513],_mm256_xor_si256(c2[3136],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[7120],_mm256_xor_si256(c2[4479],c2[1577])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[5019],simde_mm256_xor_si256(c2[3170],simde_mm256_xor_si256(c2[3432],simde_mm256_xor_si256(c2[5282],simde_mm256_xor_si256(c2[5028],simde_mm256_xor_si256(c2[6877],simde_mm256_xor_si256(c2[6086],simde_mm256_xor_si256(c2[4777],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[4529],simde_mm256_xor_si256(c2[2414],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[51],simde_mm256_xor_si256(c2[3220],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[5609],simde_mm256_xor_si256(c2[4288],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[6408],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[2992],simde_mm256_xor_si256(c2[2990],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[3004],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[6433],simde_mm256_xor_si256(c2[7767],simde_mm256_xor_si256(c2[4865],simde_mm256_xor_si256(c2[8293],simde_mm256_xor_si256(c2[123],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[3567],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[4623],simde_mm256_xor_si256(c2[4632],simde_mm256_xor_si256(c2[5956],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[2268],simde_mm256_xor_si256(c2[5704],simde_mm256_xor_si256(c2[6768],simde_mm256_xor_si256(c2[6506],simde_mm256_xor_si256(c2[5448],simde_mm256_xor_si256(c2[6252],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[5725],simde_mm256_xor_si256(c2[2835],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[4959],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[3375],simde_mm256_xor_si256(c2[4969],simde_mm256_xor_si256(c2[4441],simde_mm256_xor_si256(c2[4178],simde_mm256_xor_si256(c2[5513],simde_mm256_xor_si256(c2[3136],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[2089],simde_mm256_xor_si256(c2[7120],simde_mm256_xor_si256(c2[4479],c2[1577])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[6]=_mm256_xor_si256(c2[5019],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[6350],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[5609],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[4552],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[6408],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[7767],_mm256_xor_si256(c2[8031],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[3831],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7032],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[2835],_mm256_xor_si256(c2[3099],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[5233],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[5513],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7120],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[4743],c2[1841]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[6]=simde_mm256_xor_si256(c2[5019],simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[5546],simde_mm256_xor_si256(c2[5028],simde_mm256_xor_si256(c2[5292],simde_mm256_xor_si256(c2[7141],simde_mm256_xor_si256(c2[6350],simde_mm256_xor_si256(c2[4777],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[4529],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[315],simde_mm256_xor_si256(c2[3484],simde_mm256_xor_si256(c2[5330],simde_mm256_xor_si256(c2[5609],simde_mm256_xor_si256(c2[5873],simde_mm256_xor_si256(c2[4552],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[6408],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[3256],simde_mm256_xor_si256(c2[3254],simde_mm256_xor_si256(c2[6952],simde_mm256_xor_si256(c2[3268],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[6697],simde_mm256_xor_si256(c2[7767],simde_mm256_xor_si256(c2[8031],simde_mm256_xor_si256(c2[5129],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[123],simde_mm256_xor_si256(c2[387],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[3567],simde_mm256_xor_si256(c2[3831],simde_mm256_xor_si256(c2[2247],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[4632],simde_mm256_xor_si256(c2[4896],simde_mm256_xor_si256(c2[6220],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[1745],simde_mm256_xor_si256(c2[2532],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[7032],simde_mm256_xor_si256(c2[6770],simde_mm256_xor_si256(c2[5712],simde_mm256_xor_si256(c2[6252],simde_mm256_xor_si256(c2[6516],simde_mm256_xor_si256(c2[1239],simde_mm256_xor_si256(c2[5989],simde_mm256_xor_si256(c2[2835],simde_mm256_xor_si256(c2[3099],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[4969],simde_mm256_xor_si256(c2[5233],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[4442],simde_mm256_xor_si256(c2[5513],simde_mm256_xor_si256(c2[5777],simde_mm256_xor_si256(c2[3400],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[3148],simde_mm256_xor_si256(c2[3936],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[7120],simde_mm256_xor_si256(c2[7384],simde_mm256_xor_si256(c2[4743],c2[1841]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[12]=_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[6877],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[6350],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[4552],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[2990],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[8031],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[8293],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3831],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7032],_mm256_xor_si256(c2[6506],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[5448],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[5725],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[3099],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5233],_mm256_xor_si256(c2[4441],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[4743],_mm256_xor_si256(c2[1577],c2[1841])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[3432],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[5282],simde_mm256_xor_si256(c2[5546],simde_mm256_xor_si256(c2[5292],simde_mm256_xor_si256(c2[6877],simde_mm256_xor_si256(c2[7141],simde_mm256_xor_si256(c2[6086],simde_mm256_xor_si256(c2[6350],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[315],simde_mm256_xor_si256(c2[3220],simde_mm256_xor_si256(c2[3484],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[5330],simde_mm256_xor_si256(c2[5873],simde_mm256_xor_si256(c2[4552],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[3256],simde_mm256_xor_si256(c2[2990],simde_mm256_xor_si256(c2[3254],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[6952],simde_mm256_xor_si256(c2[3268],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[6433],simde_mm256_xor_si256(c2[6697],simde_mm256_xor_si256(c2[8031],simde_mm256_xor_si256(c2[5129],simde_mm256_xor_si256(c2[8293],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[387],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[3831],simde_mm256_xor_si256(c2[2247],simde_mm256_xor_si256(c2[4623],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[4896],simde_mm256_xor_si256(c2[6220],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1745],simde_mm256_xor_si256(c2[2268],simde_mm256_xor_si256(c2[2532],simde_mm256_xor_si256(c2[5704],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[7032],simde_mm256_xor_si256(c2[6506],simde_mm256_xor_si256(c2[6770],simde_mm256_xor_si256(c2[5448],simde_mm256_xor_si256(c2[5712],simde_mm256_xor_si256(c2[6516],simde_mm256_xor_si256(c2[1239],simde_mm256_xor_si256(c2[5725],simde_mm256_xor_si256(c2[5989],simde_mm256_xor_si256(c2[3099],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[3375],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[5233],simde_mm256_xor_si256(c2[4441],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[4178],simde_mm256_xor_si256(c2[4442],simde_mm256_xor_si256(c2[5777],simde_mm256_xor_si256(c2[3400],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[3148],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[3936],simde_mm256_xor_si256(c2[2089],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[7384],simde_mm256_xor_si256(c2[4743],simde_mm256_xor_si256(c2[1577],c2[1841])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[18]=_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[6350],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[4552],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[8031],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3831],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7032],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[5448],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[3099],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5233],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[4743],_mm256_xor_si256(c2[1577],c2[1841]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[18]=simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[5282],simde_mm256_xor_si256(c2[5546],simde_mm256_xor_si256(c2[5292],simde_mm256_xor_si256(c2[7141],simde_mm256_xor_si256(c2[6086],simde_mm256_xor_si256(c2[6350],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[315],simde_mm256_xor_si256(c2[3484],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[5330],simde_mm256_xor_si256(c2[5873],simde_mm256_xor_si256(c2[4552],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[3256],simde_mm256_xor_si256(c2[3254],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[6952],simde_mm256_xor_si256(c2[3268],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[6433],simde_mm256_xor_si256(c2[6697],simde_mm256_xor_si256(c2[8031],simde_mm256_xor_si256(c2[5129],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[387],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[3831],simde_mm256_xor_si256(c2[2247],simde_mm256_xor_si256(c2[4623],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[4896],simde_mm256_xor_si256(c2[6220],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1745],simde_mm256_xor_si256(c2[2532],simde_mm256_xor_si256(c2[5704],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[7032],simde_mm256_xor_si256(c2[6770],simde_mm256_xor_si256(c2[5448],simde_mm256_xor_si256(c2[5712],simde_mm256_xor_si256(c2[6516],simde_mm256_xor_si256(c2[1239],simde_mm256_xor_si256(c2[5989],simde_mm256_xor_si256(c2[3099],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[3375],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[5233],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[4178],simde_mm256_xor_si256(c2[4442],simde_mm256_xor_si256(c2[5777],simde_mm256_xor_si256(c2[3400],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[3148],simde_mm256_xor_si256(c2[3936],simde_mm256_xor_si256(c2[2089],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[7384],simde_mm256_xor_si256(c2[4743],simde_mm256_xor_si256(c2[1577],c2[1841]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[24]=_mm256_xor_si256(c2[3172],c2[5561]); + d2[24]=simde_mm256_xor_si256(c2[3172],c2[5561]); //row: 5 - d2[30]=_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[2377],_mm256_xor_si256(c2[2645],_mm256_xor_si256(c2[4489],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[6084],_mm256_xor_si256(c2[5293],_mm256_xor_si256(c2[3708],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[2401],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[3736],_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[7696],_mm256_xor_si256(c2[5055],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[2427],_mm256_xor_si256(c2[4273],_mm256_xor_si256(c2[4816],_mm256_xor_si256(c2[3495],_mm256_xor_si256(c2[7716],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[7995],_mm256_xor_si256(c2[1133],_mm256_xor_si256(c2[2199],_mm256_xor_si256(c2[2197],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[7755],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[6974],_mm256_xor_si256(c2[4072],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[7777],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[3845],_mm256_xor_si256(c2[5163],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[4911],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[5713],_mm256_xor_si256(c2[4661],_mm256_xor_si256(c2[5465],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[4932],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[8379],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[4166],_mm256_xor_si256(c2[207],_mm256_xor_si256(c2[2582],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[3648],_mm256_xor_si256(c2[3385],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2885],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[6327],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[784],c2[5269])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[30]=simde_mm256_xor_si256(c2[4226],simde_mm256_xor_si256(c2[2377],simde_mm256_xor_si256(c2[2645],simde_mm256_xor_si256(c2[4489],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[4241],simde_mm256_xor_si256(c2[6084],simde_mm256_xor_si256(c2[5293],simde_mm256_xor_si256(c2[3708],simde_mm256_xor_si256(c2[3984],simde_mm256_xor_si256(c2[2401],simde_mm256_xor_si256(c2[1347],simde_mm256_xor_si256(c2[3736],simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[7696],simde_mm256_xor_si256(c2[5055],simde_mm256_xor_si256(c2[7705],simde_mm256_xor_si256(c2[2427],simde_mm256_xor_si256(c2[4273],simde_mm256_xor_si256(c2[4816],simde_mm256_xor_si256(c2[3495],simde_mm256_xor_si256(c2[7716],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[7995],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[2199],simde_mm256_xor_si256(c2[2197],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[7755],simde_mm256_xor_si256(c2[5640],simde_mm256_xor_si256(c2[6974],simde_mm256_xor_si256(c2[4072],simde_mm256_xor_si256(c2[7500],simde_mm256_xor_si256(c2[7777],simde_mm256_xor_si256(c2[8042],simde_mm256_xor_si256(c2[387],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[1190],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[3845],simde_mm256_xor_si256(c2[5163],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[1733],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[4911],simde_mm256_xor_si256(c2[5981],simde_mm256_xor_si256(c2[5713],simde_mm256_xor_si256(c2[4661],simde_mm256_xor_si256(c2[5465],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[4932],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[8379],simde_mm256_xor_si256(c2[3626],simde_mm256_xor_si256(c2[4681],simde_mm256_xor_si256(c2[4166],simde_mm256_xor_si256(c2[207],simde_mm256_xor_si256(c2[2582],simde_mm256_xor_si256(c2[4176],simde_mm256_xor_si256(c2[3648],simde_mm256_xor_si256(c2[3385],simde_mm256_xor_si256(c2[4720],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[2873],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[2885],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[6327],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[784],c2[5269])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[36]=_mm256_xor_si256(c2[5810],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[8320],_mm256_xor_si256(c2[7550],_mm256_xor_si256(c2[7861],_mm256_xor_si256(c2[4968],c2[505]))))))); + d2[36]=simde_mm256_xor_si256(c2[5810],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[8320],simde_mm256_xor_si256(c2[7550],simde_mm256_xor_si256(c2[7861],simde_mm256_xor_si256(c2[4968],c2[505]))))))); //row: 7 - d2[42]=_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[7933],_mm256_xor_si256(c2[7443],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[627],c2[4923]))))); + d2[42]=simde_mm256_xor_si256(c2[2376],simde_mm256_xor_si256(c2[7933],simde_mm256_xor_si256(c2[7443],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[627],c2[4923]))))); //row: 8 - d2[48]=_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[6077],_mm256_xor_si256(c2[6341],_mm256_xor_si256(c2[6076],_mm256_xor_si256(c2[7921],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[5019],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[7937],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[5033],_mm256_xor_si256(c2[5571],_mm256_xor_si256(c2[7680],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[6097],_mm256_xor_si256(c2[2928],_mm256_xor_si256(c2[4779],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[5317],_mm256_xor_si256(c2[7432],_mm256_xor_si256(c2[3208],_mm256_xor_si256(c2[5317],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[2681],_mm256_xor_si256(c2[2945],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[5859],_mm256_xor_si256(c2[6123],_mm256_xor_si256(c2[5860],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[7969],_mm256_xor_si256(c2[6397],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[5076],_mm256_xor_si256(c2[7191],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[2701],_mm256_xor_si256(c2[2965],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[2714],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[5629],_mm256_xor_si256(c2[5893],_mm256_xor_si256(c2[7476],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[7227],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[2223],_mm256_xor_si256(c2[5653],_mm256_xor_si256(c2[7768],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[2485],_mm256_xor_si256(c2[2749],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[4083],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[6470],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[4886],_mm256_xor_si256(c2[5417],_mm256_xor_si256(c2[7262],_mm256_xor_si256(c2[7526],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[6744],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[2787],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[4913],_mm256_xor_si256(c2[5177],_mm256_xor_si256(c2[6492],_mm256_xor_si256(c2[8343],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[7562],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[7300],_mm256_xor_si256(c2[698],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[6242],_mm256_xor_si256(c2[8093],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[3878],_mm256_xor_si256(c2[6519],_mm256_xor_si256(c2[8364],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[3629],_mm256_xor_si256(c2[5738],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[5213],_mm256_xor_si256(c2[7058],_mm256_xor_si256(c2[7322],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[5753],_mm256_xor_si256(c2[7862],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[3903],_mm256_xor_si256(c2[4169],_mm256_xor_si256(c2[6014],_mm256_xor_si256(c2[6278],_mm256_xor_si256(c2[5763],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[7080],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[6817],_mm256_xor_si256(c2[7081],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[8416],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[6039],_mm256_xor_si256(c2[4454],_mm256_xor_si256(c2[6305],_mm256_xor_si256(c2[6569],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[5787],_mm256_xor_si256(c2[4466],_mm256_xor_si256(c2[6317],_mm256_xor_si256(c2[6581],_mm256_xor_si256(c2[2883],_mm256_xor_si256(c2[4728],_mm256_xor_si256(c2[4992],_mm256_xor_si256(c2[7908],_mm256_xor_si256(c2[1576],_mm256_xor_si256(c2[5273],_mm256_xor_si256(c2[7382],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4480],c2[4481])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[48]=simde_mm256_xor_si256(c2[5813],simde_mm256_xor_si256(c2[7922],simde_mm256_xor_si256(c2[3964],simde_mm256_xor_si256(c2[6073],simde_mm256_xor_si256(c2[4226],simde_mm256_xor_si256(c2[6077],simde_mm256_xor_si256(c2[6341],simde_mm256_xor_si256(c2[6076],simde_mm256_xor_si256(c2[7921],simde_mm256_xor_si256(c2[8185],simde_mm256_xor_si256(c2[5019],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[7937],simde_mm256_xor_si256(c2[7671],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[6880],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[5033],simde_mm256_xor_si256(c2[5571],simde_mm256_xor_si256(c2[7680],simde_mm256_xor_si256(c2[3988],simde_mm256_xor_si256(c2[6097],simde_mm256_xor_si256(c2[2928],simde_mm256_xor_si256(c2[4779],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[5317],simde_mm256_xor_si256(c2[7432],simde_mm256_xor_si256(c2[3208],simde_mm256_xor_si256(c2[5317],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[2681],simde_mm256_xor_si256(c2[2945],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[4008],simde_mm256_xor_si256(c2[5859],simde_mm256_xor_si256(c2[6123],simde_mm256_xor_si256(c2[5860],simde_mm256_xor_si256(c2[7705],simde_mm256_xor_si256(c2[7969],simde_mm256_xor_si256(c2[6397],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[5076],simde_mm256_xor_si256(c2[7191],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[2701],simde_mm256_xor_si256(c2[2965],simde_mm256_xor_si256(c2[7202],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[3244],simde_mm256_xor_si256(c2[2714],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[4829],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[3784],simde_mm256_xor_si256(c2[5629],simde_mm256_xor_si256(c2[5893],simde_mm256_xor_si256(c2[7476],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[1144],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[5907],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[3004],simde_mm256_xor_si256(c2[7227],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[2223],simde_mm256_xor_si256(c2[5653],simde_mm256_xor_si256(c2[7768],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[2485],simde_mm256_xor_si256(c2[2749],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[3026],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[3291],simde_mm256_xor_si256(c2[1968],simde_mm256_xor_si256(c2[3819],simde_mm256_xor_si256(c2[4083],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[6470],simde_mm256_xor_si256(c2[2777],simde_mm256_xor_si256(c2[4886],simde_mm256_xor_si256(c2[5417],simde_mm256_xor_si256(c2[7262],simde_mm256_xor_si256(c2[7526],simde_mm256_xor_si256(c2[5426],simde_mm256_xor_si256(c2[7541],simde_mm256_xor_si256(c2[6744],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[2787],simde_mm256_xor_si256(c2[4632],simde_mm256_xor_si256(c2[4896],simde_mm256_xor_si256(c2[4896],simde_mm256_xor_si256(c2[2269],simde_mm256_xor_si256(c2[4384],simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[4913],simde_mm256_xor_si256(c2[5177],simde_mm256_xor_si256(c2[6492],simde_mm256_xor_si256(c2[8343],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[7562],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[7300],simde_mm256_xor_si256(c2[698],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[6242],simde_mm256_xor_si256(c2[8093],simde_mm256_xor_si256(c2[8357],simde_mm256_xor_si256(c2[7046],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[3878],simde_mm256_xor_si256(c2[6519],simde_mm256_xor_si256(c2[8364],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[3629],simde_mm256_xor_si256(c2[5738],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[5213],simde_mm256_xor_si256(c2[7058],simde_mm256_xor_si256(c2[7322],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[5753],simde_mm256_xor_si256(c2[7862],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[3903],simde_mm256_xor_si256(c2[4169],simde_mm256_xor_si256(c2[6014],simde_mm256_xor_si256(c2[6278],simde_mm256_xor_si256(c2[5763],simde_mm256_xor_si256(c2[7872],simde_mm256_xor_si256(c2[5235],simde_mm256_xor_si256(c2[7080],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[6817],simde_mm256_xor_si256(c2[7081],simde_mm256_xor_si256(c2[6301],simde_mm256_xor_si256(c2[8416],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[6039],simde_mm256_xor_si256(c2[4454],simde_mm256_xor_si256(c2[6305],simde_mm256_xor_si256(c2[6569],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[5787],simde_mm256_xor_si256(c2[4466],simde_mm256_xor_si256(c2[6317],simde_mm256_xor_si256(c2[6581],simde_mm256_xor_si256(c2[2883],simde_mm256_xor_si256(c2[4728],simde_mm256_xor_si256(c2[4992],simde_mm256_xor_si256(c2[7908],simde_mm256_xor_si256(c2[1576],simde_mm256_xor_si256(c2[5273],simde_mm256_xor_si256(c2[7382],simde_mm256_xor_si256(c2[2365],simde_mm256_xor_si256(c2[4216],simde_mm256_xor_si256(c2[4480],c2[4481])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[54]=_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[2125],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[1456],_mm256_xor_si256(c2[6757],_mm256_xor_si256(c2[4167],_mm256_xor_si256(c2[8401],c2[4994]))))))); + d2[54]=simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[2125],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[1456],simde_mm256_xor_si256(c2[6757],simde_mm256_xor_si256(c2[4167],simde_mm256_xor_si256(c2[8401],c2[4994]))))))); //row: 10 - d2[60]=_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[4047],_mm256_xor_si256(c2[8285],c2[701]))))); + d2[60]=simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[5044],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[4047],simde_mm256_xor_si256(c2[8285],c2[701]))))); //row: 11 - d2[66]=_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[6864],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[1599],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[5834],_mm256_xor_si256(c2[7417],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[1359],_mm256_xor_si256(c2[6108],_mm256_xor_si256(c2[7697],_mm256_xor_si256(c2[3736],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[7982],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[3756],_mm256_xor_si256(c2[5345],_mm256_xor_si256(c2[1661],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[7203],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[8269],_mm256_xor_si256(c2[6684],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[1935],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[6698],_mm256_xor_si256(c2[8281],_mm256_xor_si256(c2[3795],_mm256_xor_si256(c2[5378],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3014],_mm256_xor_si256(c2[4333],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[4082],_mm256_xor_si256(c2[5665],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[5677],_mm256_xor_si256(c2[7260],_mm256_xor_si256(c2[8317],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[8332],_mm256_xor_si256(c2[1204],_mm256_xor_si256(c2[1468],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[5693],_mm256_xor_si256(c2[7276],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[5175],_mm256_xor_si256(c2[6494],_mm256_xor_si256(c2[6758],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[2284],_mm256_xor_si256(c2[1505],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[4669],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[6529],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[8113],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[4153],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[6277],_mm256_xor_si256(c2[7069],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[8141],_mm256_xor_si256(c2[1277],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[6830],_mm256_xor_si256(c2[8413],_mm256_xor_si256(c2[7360],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[6578],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[8161],_mm256_xor_si256(c2[7372],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[5789],_mm256_xor_si256(c2[7372],_mm256_xor_si256(c2[2367],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[8173],_mm256_xor_si256(c2[1309],_mm256_xor_si256(c2[5271],_mm256_xor_si256(c2[6854],c2[7649]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[66]=simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[6864],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[7132],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[4225],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[1600],simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[2124],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[2916],simde_mm256_xor_si256(c2[1599],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[1349],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[6888],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[5834],simde_mm256_xor_si256(c2[7417],simde_mm256_xor_si256(c2[8223],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[1359],simde_mm256_xor_si256(c2[6108],simde_mm256_xor_si256(c2[7697],simde_mm256_xor_si256(c2[3736],simde_mm256_xor_si256(c2[5319],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[5328],simde_mm256_xor_si256(c2[6914],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[2175],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[7982],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[3756],simde_mm256_xor_si256(c2[5345],simde_mm256_xor_si256(c2[1661],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[3244],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[5618],simde_mm256_xor_si256(c2[5620],simde_mm256_xor_si256(c2[7203],simde_mm256_xor_si256(c2[6686],simde_mm256_xor_si256(c2[8269],simde_mm256_xor_si256(c2[6684],simde_mm256_xor_si256(c2[8273],simde_mm256_xor_si256(c2[1935],simde_mm256_xor_si256(c2[3518],simde_mm256_xor_si256(c2[6698],simde_mm256_xor_si256(c2[8281],simde_mm256_xor_si256(c2[3795],simde_mm256_xor_si256(c2[5378],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[3014],simde_mm256_xor_si256(c2[4333],simde_mm256_xor_si256(c2[4597],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[1695],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[5129],simde_mm256_xor_si256(c2[3817],simde_mm256_xor_si256(c2[5136],simde_mm256_xor_si256(c2[5400],simde_mm256_xor_si256(c2[4082],simde_mm256_xor_si256(c2[5665],simde_mm256_xor_si256(c2[4874],simde_mm256_xor_si256(c2[6457],simde_mm256_xor_si256(c2[7261],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[5677],simde_mm256_xor_si256(c2[7260],simde_mm256_xor_si256(c2[8317],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[8332],simde_mm256_xor_si256(c2[1204],simde_mm256_xor_si256(c2[1468],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[2786],simde_mm256_xor_si256(c2[5693],simde_mm256_xor_si256(c2[7276],simde_mm256_xor_si256(c2[2256],simde_mm256_xor_si256(c2[5175],simde_mm256_xor_si256(c2[6494],simde_mm256_xor_si256(c2[6758],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[7551],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[3604],simde_mm256_xor_si256(c2[1753],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[2284],simde_mm256_xor_si256(c2[1505],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[3088],simde_mm256_xor_si256(c2[4669],simde_mm256_xor_si256(c2[6252],simde_mm256_xor_si256(c2[972],simde_mm256_xor_si256(c2[2561],simde_mm256_xor_si256(c2[6529],simde_mm256_xor_si256(c2[7848],simde_mm256_xor_si256(c2[8112],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[6002],simde_mm256_xor_si256(c2[8113],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[4153],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[1789],simde_mm256_xor_si256(c2[4694],simde_mm256_xor_si256(c2[6277],simde_mm256_xor_si256(c2[7069],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[1541],simde_mm256_xor_si256(c2[1805],simde_mm256_xor_si256(c2[8141],simde_mm256_xor_si256(c2[1277],simde_mm256_xor_si256(c2[7872],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[2079],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[6830],simde_mm256_xor_si256(c2[8413],simde_mm256_xor_si256(c2[7360],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[6578],simde_mm256_xor_si256(c2[7897],simde_mm256_xor_si256(c2[8161],simde_mm256_xor_si256(c2[7372],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[5789],simde_mm256_xor_si256(c2[7372],simde_mm256_xor_si256(c2[2367],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[3950],simde_mm256_xor_si256(c2[8173],simde_mm256_xor_si256(c2[1309],simde_mm256_xor_si256(c2[5271],simde_mm256_xor_si256(c2[6854],c2[7649]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[72]=_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[6881],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[4909],c2[2858]))))); + d2[72]=simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[6881],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[4909],c2[2858]))))); //row: 13 - d2[78]=_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[3445],_mm256_xor_si256(c2[2654],_mm256_xor_si256(c2[1081],_mm256_xor_si256(c2[1345],_mm256_xor_si256(c2[8209],_mm256_xor_si256(c2[7155],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[1097],_mm256_xor_si256(c2[7429],_mm256_xor_si256(c2[5057],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[8235],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[2177],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[2712],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[5356],_mm256_xor_si256(c2[6941],_mm256_xor_si256(c2[8007],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[8019],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[4071],_mm256_xor_si256(c2[4335],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[5138],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[8318],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[6998],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[7008],_mm256_xor_si256(c2[6232],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[7289],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[3074],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[2556],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[7586],_mm256_xor_si256(c2[7850],_mm256_xor_si256(c2[5740],_mm256_xor_si256(c2[987],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[6015],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[1273],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1817],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[8151],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[7899],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[3688],_mm256_xor_si256(c2[1047],c2[6592]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[78]=simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[1587],simde_mm256_xor_si256(c2[8185],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[6603],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[3445],simde_mm256_xor_si256(c2[2654],simde_mm256_xor_si256(c2[1081],simde_mm256_xor_si256(c2[1345],simde_mm256_xor_si256(c2[8209],simde_mm256_xor_si256(c2[7155],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[1097],simde_mm256_xor_si256(c2[7429],simde_mm256_xor_si256(c2[5057],simde_mm256_xor_si256(c2[4529],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[8235],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[1913],simde_mm256_xor_si256(c2[2177],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[2712],simde_mm256_xor_si256(c2[2976],simde_mm256_xor_si256(c2[5356],simde_mm256_xor_si256(c2[6941],simde_mm256_xor_si256(c2[8007],simde_mm256_xor_si256(c2[8005],simde_mm256_xor_si256(c2[3256],simde_mm256_xor_si256(c2[2726],simde_mm256_xor_si256(c2[8019],simde_mm256_xor_si256(c2[5116],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[4071],simde_mm256_xor_si256(c2[4335],simde_mm256_xor_si256(c2[1433],simde_mm256_xor_si256(c2[4861],simde_mm256_xor_si256(c2[4874],simde_mm256_xor_si256(c2[5138],simde_mm256_xor_si256(c2[5403],simde_mm256_xor_si256(c2[6195],simde_mm256_xor_si256(c2[8318],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[6998],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[7008],simde_mm256_xor_si256(c2[6232],simde_mm256_xor_si256(c2[6496],simde_mm256_xor_si256(c2[7289],simde_mm256_xor_si256(c2[2272],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[3074],simde_mm256_xor_si256(c2[2016],simde_mm256_xor_si256(c2[2556],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[5990],simde_mm256_xor_si256(c2[2293],simde_mm256_xor_si256(c2[7586],simde_mm256_xor_si256(c2[7850],simde_mm256_xor_si256(c2[5740],simde_mm256_xor_si256(c2[987],simde_mm256_xor_si256(c2[1527],simde_mm256_xor_si256(c2[6015],simde_mm256_xor_si256(c2[8390],simde_mm256_xor_si256(c2[1273],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1817],simde_mm256_xor_si256(c2[2081],simde_mm256_xor_si256(c2[8151],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[7635],simde_mm256_xor_si256(c2[7899],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[7104],simde_mm256_xor_si256(c2[5259],simde_mm256_xor_si256(c2[3424],simde_mm256_xor_si256(c2[3688],simde_mm256_xor_si256(c2[1047],c2[6592]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[84]=_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[6481],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[7336],c2[3420]))))); + d2[84]=simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[6481],simde_mm256_xor_si256(c2[2560],simde_mm256_xor_si256(c2[6794],simde_mm256_xor_si256(c2[7336],c2[3420]))))); //row: 15 - d2[90]=_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[6868],_mm256_xor_si256(c2[7130],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[4489],_mm256_xor_si256(c2[279],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[6892],_mm256_xor_si256(c2[5832],_mm256_xor_si256(c2[8221],_mm256_xor_si256(c2[6112],_mm256_xor_si256(c2[3470],_mm256_xor_si256(c2[3734],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[6912],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[7980],_mm256_xor_si256(c2[3760],_mm256_xor_si256(c2[1659],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[6684],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1933],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[1684],_mm256_xor_si256(c2[3012],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[3544],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[4872],_mm256_xor_si256(c2[4872],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[5681],_mm256_xor_si256(c2[8057],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[8330],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[5691],_mm256_xor_si256(c2[5173],_mm256_xor_si256(c2[5966],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[8079],_mm256_xor_si256(c2[2019],_mm256_xor_si256(c2[1757],_mm256_xor_si256(c2[435],_mm256_xor_si256(c2[699],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[4673],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[4417],_mm256_xor_si256(c2[7853],_mm256_xor_si256(c2[8117],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[6809],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[8139],_mm256_xor_si256(c2[7612],_mm256_xor_si256(c2[7876],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[6828],_mm256_xor_si256(c2[7358],_mm256_xor_si256(c2[6576],_mm256_xor_si256(c2[7370],_mm256_xor_si256(c2[5523],_mm256_xor_si256(c2[5787],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[5005],c2[5269])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[90]=simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[6868],simde_mm256_xor_si256(c2[7130],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[4489],simde_mm256_xor_si256(c2[279],simde_mm256_xor_si256(c2[2128],simde_mm256_xor_si256(c2[1073],simde_mm256_xor_si256(c2[1337],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[6892],simde_mm256_xor_si256(c2[5832],simde_mm256_xor_si256(c2[8221],simde_mm256_xor_si256(c2[6112],simde_mm256_xor_si256(c2[3470],simde_mm256_xor_si256(c2[3734],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[6912],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[7980],simde_mm256_xor_si256(c2[3760],simde_mm256_xor_si256(c2[1659],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[5354],simde_mm256_xor_si256(c2[5618],simde_mm256_xor_si256(c2[6684],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1933],simde_mm256_xor_si256(c2[6696],simde_mm256_xor_si256(c2[3793],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[1684],simde_mm256_xor_si256(c2[3012],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[3544],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[4080],simde_mm256_xor_si256(c2[4608],simde_mm256_xor_si256(c2[4872],simde_mm256_xor_si256(c2[4872],simde_mm256_xor_si256(c2[7265],simde_mm256_xor_si256(c2[5681],simde_mm256_xor_si256(c2[8057],simde_mm256_xor_si256(c2[8321],simde_mm256_xor_si256(c2[8330],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[5427],simde_mm256_xor_si256(c2[5691],simde_mm256_xor_si256(c2[5173],simde_mm256_xor_si256(c2[5966],simde_mm256_xor_si256(c2[685],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[8079],simde_mm256_xor_si256(c2[2019],simde_mm256_xor_si256(c2[1757],simde_mm256_xor_si256(c2[435],simde_mm256_xor_si256(c2[699],simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[4673],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[6533],simde_mm256_xor_si256(c2[4417],simde_mm256_xor_si256(c2[7853],simde_mm256_xor_si256(c2[8117],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[4692],simde_mm256_xor_si256(c2[6809],simde_mm256_xor_si256(c2[7073],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[8139],simde_mm256_xor_si256(c2[7612],simde_mm256_xor_si256(c2[7876],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[6828],simde_mm256_xor_si256(c2[7358],simde_mm256_xor_si256(c2[6576],simde_mm256_xor_si256(c2[7370],simde_mm256_xor_si256(c2[5523],simde_mm256_xor_si256(c2[5787],simde_mm256_xor_si256(c2[2365],simde_mm256_xor_si256(c2[8177],simde_mm256_xor_si256(c2[5005],c2[5269])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[96]=_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[1324],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[3436],_mm256_xor_si256(c2[3182],_mm256_xor_si256(c2[5031],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[2677],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[6637],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[6652],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[3757],_mm256_xor_si256(c2[2436],_mm256_xor_si256(c2[6663],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[6936],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[1140],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[4836],_mm256_xor_si256(c2[1152],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[4587],_mm256_xor_si256(c2[5921],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[6447],_mm256_xor_si256(c2[6724],_mm256_xor_si256(c2[6989],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[1721],_mm256_xor_si256(c2[137],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[6733],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[8076],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[4922],_mm256_xor_si256(c2[4660],_mm256_xor_si256(c2[3602],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[7576],_mm256_xor_si256(c2[3879],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[7320],_mm256_xor_si256(c2[2573],_mm256_xor_si256(c2[3113],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[3661],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[507],_mm256_xor_si256(c2[5268],_mm256_xor_si256(c2[2633],c2[8172])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[96]=simde_mm256_xor_si256(c2[3173],simde_mm256_xor_si256(c2[1324],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[3436],simde_mm256_xor_si256(c2[3182],simde_mm256_xor_si256(c2[5031],simde_mm256_xor_si256(c2[4240],simde_mm256_xor_si256(c2[3444],simde_mm256_xor_si256(c2[2931],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[2677],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[6637],simde_mm256_xor_si256(c2[4792],simde_mm256_xor_si256(c2[6652],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[3220],simde_mm256_xor_si256(c2[3757],simde_mm256_xor_si256(c2[2436],simde_mm256_xor_si256(c2[6663],simde_mm256_xor_si256(c2[4562],simde_mm256_xor_si256(c2[6936],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[1140],simde_mm256_xor_si256(c2[1144],simde_mm256_xor_si256(c2[4836],simde_mm256_xor_si256(c2[1152],simde_mm256_xor_si256(c2[6696],simde_mm256_xor_si256(c2[4587],simde_mm256_xor_si256(c2[5921],simde_mm256_xor_si256(c2[3013],simde_mm256_xor_si256(c2[6447],simde_mm256_xor_si256(c2[6724],simde_mm256_xor_si256(c2[6989],simde_mm256_xor_si256(c2[7781],simde_mm256_xor_si256(c2[1721],simde_mm256_xor_si256(c2[137],simde_mm256_xor_si256(c2[2777],simde_mm256_xor_si256(c2[6733],simde_mm256_xor_si256(c2[2786],simde_mm256_xor_si256(c2[4104],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[8076],simde_mm256_xor_si256(c2[422],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[4922],simde_mm256_xor_si256(c2[4660],simde_mm256_xor_si256(c2[3602],simde_mm256_xor_si256(c2[4406],simde_mm256_xor_si256(c2[7576],simde_mm256_xor_si256(c2[3879],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[7320],simde_mm256_xor_si256(c2[2573],simde_mm256_xor_si256(c2[3113],simde_mm256_xor_si256(c2[7601],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[2595],simde_mm256_xor_si256(c2[2332],simde_mm256_xor_si256(c2[3661],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[1814],simde_mm256_xor_si256(c2[1032],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[507],simde_mm256_xor_si256(c2[5268],simde_mm256_xor_si256(c2[2633],c2[8172])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[102]=_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[1793],c2[6329])))); + d2[102]=simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[4131],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[1793],c2[6329])))); //row: 18 - d2[108]=_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[6494],_mm256_xor_si256(c2[1276],c2[1284])))); + d2[108]=simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[6494],simde_mm256_xor_si256(c2[1276],c2[1284])))); //row: 19 - d2[114]=_mm256_xor_si256(c2[4492],_mm256_xor_si256(c2[5556],_mm256_xor_si256(c2[6424],_mm256_xor_si256(c2[4849],c2[1440])))); + d2[114]=simde_mm256_xor_si256(c2[4492],simde_mm256_xor_si256(c2[5556],simde_mm256_xor_si256(c2[6424],simde_mm256_xor_si256(c2[4849],c2[1440])))); //row: 20 - d2[120]=_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[1852],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[7133],_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[5559],_mm256_xor_si256(c2[4768],_mm256_xor_si256(c2[3459],_mm256_xor_si256(c2[1876],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[1096],_mm256_xor_si256(c2[7165],_mm256_xor_si256(c2[3732],_mm256_xor_si256(c2[7180],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[4285],_mm256_xor_si256(c2[2964],_mm256_xor_si256(c2[7191],_mm256_xor_si256(c2[5090],_mm256_xor_si256(c2[7464],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[1672],_mm256_xor_si256(c2[5364],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[7224],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[6449],_mm256_xor_si256(c2[3541],_mm256_xor_si256(c2[6975],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[7252],_mm256_xor_si256(c2[7517],_mm256_xor_si256(c2[8309],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[5680],_mm256_xor_si256(c2[3314],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[675],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[950],_mm256_xor_si256(c2[4380],_mm256_xor_si256(c2[5450],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[8104],_mm256_xor_si256(c2[4407],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[8129],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[3651],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2860],_mm256_xor_si256(c2[4189],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[2354],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[5796],_mm256_xor_si256(c2[3161],c2[253])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[120]=simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[1852],simde_mm256_xor_si256(c2[2114],simde_mm256_xor_si256(c2[3964],simde_mm256_xor_si256(c2[7133],simde_mm256_xor_si256(c2[3710],simde_mm256_xor_si256(c2[5559],simde_mm256_xor_si256(c2[4768],simde_mm256_xor_si256(c2[3459],simde_mm256_xor_si256(c2[1876],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[3205],simde_mm256_xor_si256(c2[1096],simde_mm256_xor_si256(c2[7165],simde_mm256_xor_si256(c2[3732],simde_mm256_xor_si256(c2[7180],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[4285],simde_mm256_xor_si256(c2[2964],simde_mm256_xor_si256(c2[7191],simde_mm256_xor_si256(c2[5090],simde_mm256_xor_si256(c2[7464],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[1672],simde_mm256_xor_si256(c2[5364],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[7224],simde_mm256_xor_si256(c2[5115],simde_mm256_xor_si256(c2[6449],simde_mm256_xor_si256(c2[3541],simde_mm256_xor_si256(c2[6975],simde_mm256_xor_si256(c2[2222],simde_mm256_xor_si256(c2[7252],simde_mm256_xor_si256(c2[7517],simde_mm256_xor_si256(c2[8309],simde_mm256_xor_si256(c2[2249],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[3305],simde_mm256_xor_si256(c2[5680],simde_mm256_xor_si256(c2[3314],simde_mm256_xor_si256(c2[4632],simde_mm256_xor_si256(c2[675],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[950],simde_mm256_xor_si256(c2[4380],simde_mm256_xor_si256(c2[5450],simde_mm256_xor_si256(c2[5188],simde_mm256_xor_si256(c2[4130],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[8104],simde_mm256_xor_si256(c2[4407],simde_mm256_xor_si256(c2[1517],simde_mm256_xor_si256(c2[7848],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[8129],simde_mm256_xor_si256(c2[2057],simde_mm256_xor_si256(c2[3651],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[2860],simde_mm256_xor_si256(c2[4189],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[2342],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[2354],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[5796],simde_mm256_xor_si256(c2[3161],c2[253])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[126]=_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[1647],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[5784],c2[519])))); + d2[126]=simde_mm256_xor_si256(c2[3444],simde_mm256_xor_si256(c2[1647],simde_mm256_xor_si256(c2[2308],simde_mm256_xor_si256(c2[5784],c2[519])))); //row: 22 - d2[132]=_mm256_xor_si256(c2[7920],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[2533],c2[6012]))); + d2[132]=simde_mm256_xor_si256(c2[7920],simde_mm256_xor_si256(c2[3048],simde_mm256_xor_si256(c2[2533],c2[6012]))); //row: 23 - d2[138]=_mm256_xor_si256(c2[6348],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[7777],c2[7344]))); + d2[138]=simde_mm256_xor_si256(c2[6348],simde_mm256_xor_si256(c2[6626],simde_mm256_xor_si256(c2[7777],c2[7344]))); //row: 24 - d2[144]=_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[5811],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[7669],_mm256_xor_si256(c2[1071],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[7418],_mm256_xor_si256(c2[5835],_mm256_xor_si256(c2[4781],_mm256_xor_si256(c2[7164],_mm256_xor_si256(c2[5055],_mm256_xor_si256(c2[2677],_mm256_xor_si256(c2[7960],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[5861],_mm256_xor_si256(c2[7707],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[6929],_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[5633],_mm256_xor_si256(c2[5631],_mm256_xor_si256(c2[876],_mm256_xor_si256(c2[5645],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[6208],_mm256_xor_si256(c2[4624],_mm256_xor_si256(c2[7264],_mm256_xor_si256(c2[5152],_mm256_xor_si256(c2[7273],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[4634],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[4909],_mm256_xor_si256(c2[8345],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[700],_mm256_xor_si256(c2[8089],_mm256_xor_si256(c2[446],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[8366],_mm256_xor_si256(c2[5476],_mm256_xor_si256(c2[3360],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[7600],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[6016],_mm256_xor_si256(c2[7610],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[6819],_mm256_xor_si256(c2[8148],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[5525],_mm256_xor_si256(c2[6313],_mm256_xor_si256(c2[4730],_mm256_xor_si256(c2[1308],_mm256_xor_si256(c2[7120],c2[4212])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[144]=simde_mm256_xor_si256(c2[7660],simde_mm256_xor_si256(c2[5811],simde_mm256_xor_si256(c2[6073],simde_mm256_xor_si256(c2[7923],simde_mm256_xor_si256(c2[2643],simde_mm256_xor_si256(c2[7669],simde_mm256_xor_si256(c2[1071],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[7418],simde_mm256_xor_si256(c2[5835],simde_mm256_xor_si256(c2[4781],simde_mm256_xor_si256(c2[7164],simde_mm256_xor_si256(c2[5055],simde_mm256_xor_si256(c2[2677],simde_mm256_xor_si256(c2[7960],simde_mm256_xor_si256(c2[2692],simde_mm256_xor_si256(c2[5861],simde_mm256_xor_si256(c2[7707],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[8244],simde_mm256_xor_si256(c2[6929],simde_mm256_xor_si256(c2[2703],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[2976],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[5633],simde_mm256_xor_si256(c2[5631],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[5645],simde_mm256_xor_si256(c2[2736],simde_mm256_xor_si256(c2[627],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[7500],simde_mm256_xor_si256(c2[2487],simde_mm256_xor_si256(c2[2764],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[6208],simde_mm256_xor_si256(c2[4624],simde_mm256_xor_si256(c2[7264],simde_mm256_xor_si256(c2[5152],simde_mm256_xor_si256(c2[7273],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[4634],simde_mm256_xor_si256(c2[4116],simde_mm256_xor_si256(c2[4909],simde_mm256_xor_si256(c2[8345],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[700],simde_mm256_xor_si256(c2[8089],simde_mm256_xor_si256(c2[446],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[8366],simde_mm256_xor_si256(c2[5476],simde_mm256_xor_si256(c2[3360],simde_mm256_xor_si256(c2[7060],simde_mm256_xor_si256(c2[7600],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[6016],simde_mm256_xor_si256(c2[7610],simde_mm256_xor_si256(c2[7082],simde_mm256_xor_si256(c2[6819],simde_mm256_xor_si256(c2[8148],simde_mm256_xor_si256(c2[5777],simde_mm256_xor_si256(c2[6301],simde_mm256_xor_si256(c2[5525],simde_mm256_xor_si256(c2[6313],simde_mm256_xor_si256(c2[4730],simde_mm256_xor_si256(c2[1308],simde_mm256_xor_si256(c2[7120],c2[4212])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[150]=_mm256_xor_si256(c2[2126],_mm256_xor_si256(c2[4560],_mm256_xor_si256(c2[8273],c2[6507]))); + d2[150]=simde_mm256_xor_si256(c2[2126],simde_mm256_xor_si256(c2[4560],simde_mm256_xor_si256(c2[8273],c2[6507]))); //row: 26 - d2[156]=_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[4514],_mm256_xor_si256(c2[3218],c2[2296]))); + d2[156]=simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[4514],simde_mm256_xor_si256(c2[3218],c2[2296]))); //row: 27 - d2[162]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[600],c2[1419])); + d2[162]=simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[600],c2[1419])); //row: 28 - d2[168]=_mm256_xor_si256(c2[7920],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[5509],c2[5006]))); + d2[168]=simde_mm256_xor_si256(c2[7920],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[5509],c2[5006]))); //row: 29 - d2[174]=_mm256_xor_si256(c2[528],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[2392],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[7405],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[7156],_mm256_xor_si256(c2[6096],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[6376],_mm256_xor_si256(c2[3734],_mm256_xor_si256(c2[3998],_mm256_xor_si256(c2[4013],_mm256_xor_si256(c2[7176],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[4297],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[5882],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[1933],_mm256_xor_si256(c2[2197],_mm256_xor_si256(c2[6960],_mm256_xor_si256(c2[4057],_mm256_xor_si256(c2[1684],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[3276],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[4085],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[4872],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[5945],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[5691],_mm256_xor_si256(c2[5955],_mm256_xor_si256(c2[5437],_mm256_xor_si256(c2[6230],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[699],_mm256_xor_si256(c2[963],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[4937],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[6797],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[8117],_mm256_xor_si256(c2[8381],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[4956],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[7337],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[8403],_mm256_xor_si256(c2[7876],_mm256_xor_si256(c2[8140],_mm256_xor_si256(c2[5236],_mm256_xor_si256(c2[1022],_mm256_xor_si256(c2[7092],_mm256_xor_si256(c2[7622],_mm256_xor_si256(c2[6840],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5787],_mm256_xor_si256(c2[6051],_mm256_xor_si256(c2[2629],_mm256_xor_si256(c2[8441],_mm256_xor_si256(c2[5269],c2[5533])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[174]=simde_mm256_xor_si256(c2[528],simde_mm256_xor_si256(c2[7132],simde_mm256_xor_si256(c2[7394],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[2392],simde_mm256_xor_si256(c2[1337],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[7405],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[7156],simde_mm256_xor_si256(c2[6096],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[6376],simde_mm256_xor_si256(c2[3734],simde_mm256_xor_si256(c2[3998],simde_mm256_xor_si256(c2[4013],simde_mm256_xor_si256(c2[7176],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[8244],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[1923],simde_mm256_xor_si256(c2[4297],simde_mm256_xor_si256(c2[5618],simde_mm256_xor_si256(c2[5882],simde_mm256_xor_si256(c2[6948],simde_mm256_xor_si256(c2[6952],simde_mm256_xor_si256(c2[1933],simde_mm256_xor_si256(c2[2197],simde_mm256_xor_si256(c2[6960],simde_mm256_xor_si256(c2[4057],simde_mm256_xor_si256(c2[1684],simde_mm256_xor_si256(c2[1948],simde_mm256_xor_si256(c2[3276],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[3808],simde_mm256_xor_si256(c2[4085],simde_mm256_xor_si256(c2[4344],simde_mm256_xor_si256(c2[4872],simde_mm256_xor_si256(c2[5136],simde_mm256_xor_si256(c2[7529],simde_mm256_xor_si256(c2[5945],simde_mm256_xor_si256(c2[8321],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[5691],simde_mm256_xor_si256(c2[5955],simde_mm256_xor_si256(c2[5437],simde_mm256_xor_si256(c2[6230],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[699],simde_mm256_xor_si256(c2[963],simde_mm256_xor_si256(c2[1488],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[4937],simde_mm256_xor_si256(c2[1240],simde_mm256_xor_si256(c2[6797],simde_mm256_xor_si256(c2[4681],simde_mm256_xor_si256(c2[8117],simde_mm256_xor_si256(c2[8381],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[4956],simde_mm256_xor_si256(c2[7073],simde_mm256_xor_si256(c2[7337],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[8403],simde_mm256_xor_si256(c2[7876],simde_mm256_xor_si256(c2[8140],simde_mm256_xor_si256(c2[5236],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[7092],simde_mm256_xor_si256(c2[7622],simde_mm256_xor_si256(c2[6840],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[5787],simde_mm256_xor_si256(c2[6051],simde_mm256_xor_si256(c2[2629],simde_mm256_xor_si256(c2[8441],simde_mm256_xor_si256(c2[5269],c2[5533])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[180]=_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[8188],_mm256_xor_si256(c2[3711],_mm256_xor_si256(c2[5296],_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[4505],_mm256_xor_si256(c2[4769],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[817],_mm256_xor_si256(c2[3206],_mm256_xor_si256(c2[1097],_mm256_xor_si256(c2[6902],_mm256_xor_si256(c2[7166],_mm256_xor_si256(c2[7181],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[3485],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[2965],_mm256_xor_si256(c2[6928],_mm256_xor_si256(c2[7192],_mm256_xor_si256(c2[5091],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1409],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[5365],_mm256_xor_si256(c2[1681],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[7225],_mm256_xor_si256(c2[4852],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[6712],_mm256_xor_si256(c2[6976],_mm256_xor_si256(c2[7253],_mm256_xor_si256(c2[7248],_mm256_xor_si256(c2[7512],_mm256_xor_si256(c2[8040],_mm256_xor_si256(c2[8304],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[3036],_mm256_xor_si256(c2[3300],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[4633],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[4117],_mm256_xor_si256(c2[4381],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[5451],_mm256_xor_si256(c2[4925],_mm256_xor_si256(c2[5189],_mm256_xor_si256(c2[3867],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[4935],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[4408],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[7849],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[3096],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[3652],_mm256_xor_si256(c2[2860],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[4190],_mm256_xor_si256(c2[1813],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[5797],_mm256_xor_si256(c2[3156],_mm256_xor_si256(c2[8437],c2[254]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[180]=simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[2115],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[8188],simde_mm256_xor_si256(c2[3711],simde_mm256_xor_si256(c2[5296],simde_mm256_xor_si256(c2[5560],simde_mm256_xor_si256(c2[4505],simde_mm256_xor_si256(c2[4769],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[817],simde_mm256_xor_si256(c2[3206],simde_mm256_xor_si256(c2[1097],simde_mm256_xor_si256(c2[6902],simde_mm256_xor_si256(c2[7166],simde_mm256_xor_si256(c2[7181],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[3485],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[4286],simde_mm256_xor_si256(c2[2965],simde_mm256_xor_si256(c2[6928],simde_mm256_xor_si256(c2[7192],simde_mm256_xor_si256(c2[5091],simde_mm256_xor_si256(c2[7201],simde_mm256_xor_si256(c2[7465],simde_mm256_xor_si256(c2[339],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1409],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[5101],simde_mm256_xor_si256(c2[5365],simde_mm256_xor_si256(c2[1681],simde_mm256_xor_si256(c2[6961],simde_mm256_xor_si256(c2[7225],simde_mm256_xor_si256(c2[4852],simde_mm256_xor_si256(c2[5116],simde_mm256_xor_si256(c2[6444],simde_mm256_xor_si256(c2[3542],simde_mm256_xor_si256(c2[6712],simde_mm256_xor_si256(c2[6976],simde_mm256_xor_si256(c2[7253],simde_mm256_xor_si256(c2[7248],simde_mm256_xor_si256(c2[7512],simde_mm256_xor_si256(c2[8040],simde_mm256_xor_si256(c2[8304],simde_mm256_xor_si256(c2[1441],simde_mm256_xor_si256(c2[2244],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[3036],simde_mm256_xor_si256(c2[3300],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[4633],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[687],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[4117],simde_mm256_xor_si256(c2[4381],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[5451],simde_mm256_xor_si256(c2[4925],simde_mm256_xor_si256(c2[5189],simde_mm256_xor_si256(c2[3867],simde_mm256_xor_si256(c2[4131],simde_mm256_xor_si256(c2[4935],simde_mm256_xor_si256(c2[8105],simde_mm256_xor_si256(c2[4144],simde_mm256_xor_si256(c2[4408],simde_mm256_xor_si256(c2[1512],simde_mm256_xor_si256(c2[7849],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[3096],simde_mm256_xor_si256(c2[3636],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[8124],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[2052],simde_mm256_xor_si256(c2[3652],simde_mm256_xor_si256(c2[2860],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[4190],simde_mm256_xor_si256(c2[1813],simde_mm256_xor_si256(c2[2079],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[5797],simde_mm256_xor_si256(c2[3156],simde_mm256_xor_si256(c2[8437],c2[254]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[186]=_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[3436],_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[5548],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[7143],_mm256_xor_si256(c2[6616],_mm256_xor_si256(c2[6088],_mm256_xor_si256(c2[6352],_mm256_xor_si256(c2[1071],_mm256_xor_si256(c2[5307],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5053],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[3744],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[5596],_mm256_xor_si256(c2[5068],_mm256_xor_si256(c2[5332],_mm256_xor_si256(c2[6133],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[4812],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[6938],_mm256_xor_si256(c2[6674],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[2186],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3252],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[7212],_mm256_xor_si256(c2[6684],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[6963],_mm256_xor_si256(c2[6435],_mm256_xor_si256(c2[6699],_mm256_xor_si256(c2[8297],_mm256_xor_si256(c2[8033],_mm256_xor_si256(c2[5389],_mm256_xor_si256(c2[5125],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[653],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[912],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[4097],_mm256_xor_si256(c2[3833],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[4889],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[4898],_mm256_xor_si256(c2[6480],_mm256_xor_si256(c2[6216],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[1995],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[1741],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[6228],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[5964],_mm256_xor_si256(c2[7298],_mm256_xor_si256(c2[7034],_mm256_xor_si256(c2[7036],_mm256_xor_si256(c2[6772],_mm256_xor_si256(c2[5978],_mm256_xor_si256(c2[5450],_mm256_xor_si256(c2[5714],_mm256_xor_si256(c2[6782],_mm256_xor_si256(c2[6518],_mm256_xor_si256(c2[1505],_mm256_xor_si256(c2[1241],_mm256_xor_si256(c2[6255],_mm256_xor_si256(c2[5991],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[4949],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[4685],_mm256_xor_si256(c2[5489],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[3905],_mm256_xor_si256(c2[3377],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[5499],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[5773],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[3396],_mm256_xor_si256(c2[4190],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[4202],_mm256_xor_si256(c2[3938],_mm256_xor_si256(c2[2619],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[7644],_mm256_xor_si256(c2[7380],_mm256_xor_si256(c2[5009],_mm256_xor_si256(c2[4745],_mm256_xor_si256(c2[2101],_mm256_xor_si256(c2[1573],c2[1837])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[186]=simde_mm256_xor_si256(c2[5549],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[3436],simde_mm256_xor_si256(c2[3962],simde_mm256_xor_si256(c2[3698],simde_mm256_xor_si256(c2[5812],simde_mm256_xor_si256(c2[5284],simde_mm256_xor_si256(c2[5548],simde_mm256_xor_si256(c2[5558],simde_mm256_xor_si256(c2[5294],simde_mm256_xor_si256(c2[7407],simde_mm256_xor_si256(c2[7143],simde_mm256_xor_si256(c2[6616],simde_mm256_xor_si256(c2[6088],simde_mm256_xor_si256(c2[6352],simde_mm256_xor_si256(c2[1071],simde_mm256_xor_si256(c2[5307],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[5053],simde_mm256_xor_si256(c2[4789],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[2680],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[3744],simde_mm256_xor_si256(c2[3480],simde_mm256_xor_si256(c2[5596],simde_mm256_xor_si256(c2[5068],simde_mm256_xor_si256(c2[5332],simde_mm256_xor_si256(c2[6133],simde_mm256_xor_si256(c2[5869],simde_mm256_xor_si256(c2[4812],simde_mm256_xor_si256(c2[4548],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[6938],simde_mm256_xor_si256(c2[6674],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[2186],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[3252],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[3256],simde_mm256_xor_si256(c2[7212],simde_mm256_xor_si256(c2[6684],simde_mm256_xor_si256(c2[6948],simde_mm256_xor_si256(c2[6156],simde_mm256_xor_si256(c2[3528],simde_mm256_xor_si256(c2[3264],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[6963],simde_mm256_xor_si256(c2[6435],simde_mm256_xor_si256(c2[6699],simde_mm256_xor_si256(c2[8297],simde_mm256_xor_si256(c2[8033],simde_mm256_xor_si256(c2[5389],simde_mm256_xor_si256(c2[5125],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[653],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[912],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[1704],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[4097],simde_mm256_xor_si256(c2[3833],simde_mm256_xor_si256(c2[2513],simde_mm256_xor_si256(c2[2249],simde_mm256_xor_si256(c2[5153],simde_mm256_xor_si256(c2[4625],simde_mm256_xor_si256(c2[4889],simde_mm256_xor_si256(c2[5162],simde_mm256_xor_si256(c2[4898],simde_mm256_xor_si256(c2[6480],simde_mm256_xor_si256(c2[6216],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[1995],simde_mm256_xor_si256(c2[2259],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[1741],simde_mm256_xor_si256(c2[2798],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[6228],simde_mm256_xor_si256(c2[5700],simde_mm256_xor_si256(c2[5964],simde_mm256_xor_si256(c2[7298],simde_mm256_xor_si256(c2[7034],simde_mm256_xor_si256(c2[7036],simde_mm256_xor_si256(c2[6772],simde_mm256_xor_si256(c2[5978],simde_mm256_xor_si256(c2[5450],simde_mm256_xor_si256(c2[5714],simde_mm256_xor_si256(c2[6782],simde_mm256_xor_si256(c2[6518],simde_mm256_xor_si256(c2[1505],simde_mm256_xor_si256(c2[1241],simde_mm256_xor_si256(c2[6255],simde_mm256_xor_si256(c2[5991],simde_mm256_xor_si256(c2[3365],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[4949],simde_mm256_xor_si256(c2[4421],simde_mm256_xor_si256(c2[4685],simde_mm256_xor_si256(c2[5489],simde_mm256_xor_si256(c2[5225],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[3905],simde_mm256_xor_si256(c2[3377],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[5499],simde_mm256_xor_si256(c2[5235],simde_mm256_xor_si256(c2[4971],simde_mm256_xor_si256(c2[4707],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[4180],simde_mm256_xor_si256(c2[4444],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[5773],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[3396],simde_mm256_xor_si256(c2[4190],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[3408],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[4202],simde_mm256_xor_si256(c2[3938],simde_mm256_xor_si256(c2[2619],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[7644],simde_mm256_xor_si256(c2[7380],simde_mm256_xor_si256(c2[5009],simde_mm256_xor_si256(c2[4745],simde_mm256_xor_si256(c2[2101],simde_mm256_xor_si256(c2[1573],c2[1837])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[192]=_mm256_xor_si256(c2[5016],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[3435],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[5031],_mm256_xor_si256(c2[6616],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[5825],_mm256_xor_si256(c2[6089],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[2137],_mm256_xor_si256(c2[4526],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[8222],_mm256_xor_si256(c2[39],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[4285],_mm256_xor_si256(c2[8248],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[6411],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[1659],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[2989],_mm256_xor_si256(c2[2729],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[6421],_mm256_xor_si256(c2[6685],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[8281],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[6172],_mm256_xor_si256(c2[6436],_mm256_xor_si256(c2[7764],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[8032],_mm256_xor_si256(c2[8296],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[1177],_mm256_xor_si256(c2[3564],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[4356],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[4635],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[1996],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[2007],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[5437],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[6771],_mm256_xor_si256(c2[6245],_mm256_xor_si256(c2[6509],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[5451],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[6255],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[5464],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[4152],_mm256_xor_si256(c2[4416],_mm256_xor_si256(c2[4956],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[3108],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[3917],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[5510],_mm256_xor_si256(c2[3133],_mm256_xor_si256(c2[3399],_mm256_xor_si256(c2[3663],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[3411],_mm256_xor_si256(c2[3675],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[7117],_mm256_xor_si256(c2[4476],_mm256_xor_si256(c2[1310],c2[1574]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[192]=simde_mm256_xor_si256(c2[5016],simde_mm256_xor_si256(c2[3173],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[3435],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[1587],simde_mm256_xor_si256(c2[5031],simde_mm256_xor_si256(c2[6616],simde_mm256_xor_si256(c2[6880],simde_mm256_xor_si256(c2[5825],simde_mm256_xor_si256(c2[6089],simde_mm256_xor_si256(c2[4780],simde_mm256_xor_si256(c2[3197],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[2137],simde_mm256_xor_si256(c2[4526],simde_mm256_xor_si256(c2[2417],simde_mm256_xor_si256(c2[8222],simde_mm256_xor_si256(c2[39],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[3217],simde_mm256_xor_si256(c2[4805],simde_mm256_xor_si256(c2[5069],simde_mm256_xor_si256(c2[5606],simde_mm256_xor_si256(c2[4285],simde_mm256_xor_si256(c2[8248],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[6411],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[1659],simde_mm256_xor_si256(c2[1923],simde_mm256_xor_si256(c2[2989],simde_mm256_xor_si256(c2[2729],simde_mm256_xor_si256(c2[2993],simde_mm256_xor_si256(c2[6421],simde_mm256_xor_si256(c2[6685],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[8281],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[6172],simde_mm256_xor_si256(c2[6436],simde_mm256_xor_si256(c2[7764],simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[8032],simde_mm256_xor_si256(c2[8296],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[385],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[1177],simde_mm256_xor_si256(c2[3564],simde_mm256_xor_si256(c2[1980],simde_mm256_xor_si256(c2[4356],simde_mm256_xor_si256(c2[4620],simde_mm256_xor_si256(c2[4635],simde_mm256_xor_si256(c2[5953],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[1996],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[2007],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[5437],simde_mm256_xor_si256(c2[5701],simde_mm256_xor_si256(c2[6771],simde_mm256_xor_si256(c2[6245],simde_mm256_xor_si256(c2[6509],simde_mm256_xor_si256(c2[5187],simde_mm256_xor_si256(c2[5451],simde_mm256_xor_si256(c2[4133],simde_mm256_xor_si256(c2[6255],simde_mm256_xor_si256(c2[972],simde_mm256_xor_si256(c2[5464],simde_mm256_xor_si256(c2[5728],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[4152],simde_mm256_xor_si256(c2[4416],simde_mm256_xor_si256(c2[4956],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[3108],simde_mm256_xor_si256(c2[3372],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[4180],simde_mm256_xor_si256(c2[4444],simde_mm256_xor_si256(c2[3917],simde_mm256_xor_si256(c2[4181],simde_mm256_xor_si256(c2[5510],simde_mm256_xor_si256(c2[3133],simde_mm256_xor_si256(c2[3399],simde_mm256_xor_si256(c2[3663],simde_mm256_xor_si256(c2[2881],simde_mm256_xor_si256(c2[3411],simde_mm256_xor_si256(c2[3675],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[7117],simde_mm256_xor_si256(c2[4476],simde_mm256_xor_si256(c2[1310],c2[1574]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[198]=_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[2136],_mm256_xor_si256(c2[2513],c2[2631]))); + d2[198]=simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[2136],simde_mm256_xor_si256(c2[2513],c2[2631]))); //row: 34 - d2[204]=_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[5368],_mm256_xor_si256(c2[2820],c2[6543]))); + d2[204]=simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[5368],simde_mm256_xor_si256(c2[2820],c2[6543]))); //row: 35 - d2[210]=_mm256_xor_si256(c2[7661],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[6074],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[1072],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[7419],_mm256_xor_si256(c2[5836],_mm256_xor_si256(c2[4776],_mm256_xor_si256(c2[7165],_mm256_xor_si256(c2[5056],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[7708],_mm256_xor_si256(c2[8245],_mm256_xor_si256(c2[6924],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[5628],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[877],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[1956],_mm256_xor_si256(c2[7501],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[2765],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[3816],_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[7274],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[4635],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[4117],_mm256_xor_si256(c2[4910],_mm256_xor_si256(c2[8340],_mm256_xor_si256(c2[963],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[8090],_mm256_xor_si256(c2[447],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[8367],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[6017],_mm256_xor_si256(c2[7611],_mm256_xor_si256(c2[7083],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[8149],_mm256_xor_si256(c2[5772],_mm256_xor_si256(c2[6302],_mm256_xor_si256(c2[5520],_mm256_xor_si256(c2[6314],_mm256_xor_si256(c2[4731],_mm256_xor_si256(c2[1309],_mm256_xor_si256(c2[7121],c2[4213]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[210]=simde_mm256_xor_si256(c2[7661],simde_mm256_xor_si256(c2[5812],simde_mm256_xor_si256(c2[6074],simde_mm256_xor_si256(c2[7924],simde_mm256_xor_si256(c2[7670],simde_mm256_xor_si256(c2[1072],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[7419],simde_mm256_xor_si256(c2[5836],simde_mm256_xor_si256(c2[4776],simde_mm256_xor_si256(c2[7165],simde_mm256_xor_si256(c2[5056],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[5856],simde_mm256_xor_si256(c2[7708],simde_mm256_xor_si256(c2[8245],simde_mm256_xor_si256(c2[6924],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[4562],simde_mm256_xor_si256(c2[4036],simde_mm256_xor_si256(c2[5628],simde_mm256_xor_si256(c2[5632],simde_mm256_xor_si256(c2[877],simde_mm256_xor_si256(c2[5640],simde_mm256_xor_si256(c2[2737],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[1956],simde_mm256_xor_si256(c2[7501],simde_mm256_xor_si256(c2[2488],simde_mm256_xor_si256(c2[2765],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[3816],simde_mm256_xor_si256(c2[6209],simde_mm256_xor_si256(c2[4625],simde_mm256_xor_si256(c2[7265],simde_mm256_xor_si256(c2[7274],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[4635],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[4117],simde_mm256_xor_si256(c2[4910],simde_mm256_xor_si256(c2[8340],simde_mm256_xor_si256(c2[963],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[8090],simde_mm256_xor_si256(c2[447],simde_mm256_xor_si256(c2[3617],simde_mm256_xor_si256(c2[8367],simde_mm256_xor_si256(c2[5477],simde_mm256_xor_si256(c2[3361],simde_mm256_xor_si256(c2[7061],simde_mm256_xor_si256(c2[7601],simde_mm256_xor_si256(c2[3636],simde_mm256_xor_si256(c2[6017],simde_mm256_xor_si256(c2[7611],simde_mm256_xor_si256(c2[7083],simde_mm256_xor_si256(c2[6820],simde_mm256_xor_si256(c2[8149],simde_mm256_xor_si256(c2[5772],simde_mm256_xor_si256(c2[6302],simde_mm256_xor_si256(c2[5520],simde_mm256_xor_si256(c2[6314],simde_mm256_xor_si256(c2[4731],simde_mm256_xor_si256(c2[1309],simde_mm256_xor_si256(c2[7121],c2[4213]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[216]=_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[6771],_mm256_xor_si256(c2[2559],c2[5760]))); + d2[216]=simde_mm256_xor_si256(c2[4752],simde_mm256_xor_si256(c2[6771],simde_mm256_xor_si256(c2[2559],c2[5760]))); //row: 37 - d2[222]=_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[3446],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[7417],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[1359],_mm256_xor_si256(c2[7697],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[5345],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[7203],_mm256_xor_si256(c2[8269],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[8281],_mm256_xor_si256(c2[5378],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[4333],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[5665],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[7260],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[1204],_mm256_xor_si256(c2[1468],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[7276],_mm256_xor_si256(c2[6494],_mm256_xor_si256(c2[6758],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[4910],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[2284],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[6277],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[1277],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[8413],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[8161],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[7372],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[1309],c2[6854]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[222]=simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[1600],simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[2916],simde_mm256_xor_si256(c2[3446],simde_mm256_xor_si256(c2[1349],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[7417],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[1359],simde_mm256_xor_si256(c2[7697],simde_mm256_xor_si256(c2[5319],simde_mm256_xor_si256(c2[5328],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[2175],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[5345],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[3244],simde_mm256_xor_si256(c2[5618],simde_mm256_xor_si256(c2[7203],simde_mm256_xor_si256(c2[8269],simde_mm256_xor_si256(c2[8273],simde_mm256_xor_si256(c2[3518],simde_mm256_xor_si256(c2[8281],simde_mm256_xor_si256(c2[5378],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[4333],simde_mm256_xor_si256(c2[4597],simde_mm256_xor_si256(c2[1695],simde_mm256_xor_si256(c2[5129],simde_mm256_xor_si256(c2[5136],simde_mm256_xor_si256(c2[5400],simde_mm256_xor_si256(c2[5665],simde_mm256_xor_si256(c2[6457],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[7260],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[1204],simde_mm256_xor_si256(c2[1468],simde_mm256_xor_si256(c2[2786],simde_mm256_xor_si256(c2[7276],simde_mm256_xor_si256(c2[6494],simde_mm256_xor_si256(c2[6758],simde_mm256_xor_si256(c2[7551],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[4910],simde_mm256_xor_si256(c2[3604],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[2284],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[3088],simde_mm256_xor_si256(c2[6252],simde_mm256_xor_si256(c2[2561],simde_mm256_xor_si256(c2[7848],simde_mm256_xor_si256(c2[8112],simde_mm256_xor_si256(c2[6002],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[1789],simde_mm256_xor_si256(c2[6277],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[1541],simde_mm256_xor_si256(c2[1805],simde_mm256_xor_si256(c2[1277],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[2079],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[8413],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[7897],simde_mm256_xor_si256(c2[8161],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[7372],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[3950],simde_mm256_xor_si256(c2[1309],c2[6854]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[228]=_mm256_xor_si256(c2[6605],_mm256_xor_si256(c2[4601],_mm256_xor_si256(c2[387],c2[5952]))); + d2[228]=simde_mm256_xor_si256(c2[6605],simde_mm256_xor_si256(c2[4601],simde_mm256_xor_si256(c2[387],c2[5952]))); //row: 39 - d2[234]=_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[7694],_mm256_xor_si256(c2[6952],c2[2607]))); + d2[234]=simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[7694],simde_mm256_xor_si256(c2[6952],c2[2607]))); //row: 40 - d2[240]=_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[1417],c2[6543])); + d2[240]=simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[1417],c2[6543])); //row: 41 - d2[246]=_mm256_xor_si256(c2[5293],_mm256_xor_si256(c2[6903],_mm256_xor_si256(c2[3016],c2[219]))); + d2[246]=simde_mm256_xor_si256(c2[5293],simde_mm256_xor_si256(c2[6903],simde_mm256_xor_si256(c2[3016],c2[219]))); //row: 42 - d2[252]=_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[4491],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[4767],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[1875],_mm256_xor_si256(c2[557],_mm256_xor_si256(c2[821],_mm256_xor_si256(c2[3204],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[7164],_mm256_xor_si256(c2[7179],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[1901],_mm256_xor_si256(c2[3483],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[3744],_mm256_xor_si256(c2[4284],_mm256_xor_si256(c2[2969],_mm256_xor_si256(c2[6926],_mm256_xor_si256(c2[7190],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[7205],_mm256_xor_si256(c2[7469],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[1671],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[5369],_mm256_xor_si256(c2[1685],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[6710],_mm256_xor_si256(c2[6974],_mm256_xor_si256(c2[7251],_mm256_xor_si256(c2[7252],_mm256_xor_si256(c2[7516],_mm256_xor_si256(c2[8044],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[2248],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3304],_mm256_xor_si256(c2[3313],_mm256_xor_si256(c2[4637],_mm256_xor_si256(c2[410],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[4121],_mm256_xor_si256(c2[4385],_mm256_xor_si256(c2[5449],_mm256_xor_si256(c2[4923],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[3865],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[7853],_mm256_xor_si256(c2[2836],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[7864],_mm256_xor_si256(c2[8128],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[3650],_mm256_xor_si256(c2[2858],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[2859],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[1817],_mm256_xor_si256(c2[2077],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[5801],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[8441],c2[252])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[252]=simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[2113],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[3963],simde_mm256_xor_si256(c2[4491],simde_mm256_xor_si256(c2[3709],simde_mm256_xor_si256(c2[5294],simde_mm256_xor_si256(c2[5558],simde_mm256_xor_si256(c2[4503],simde_mm256_xor_si256(c2[4767],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[1875],simde_mm256_xor_si256(c2[557],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[3204],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[6900],simde_mm256_xor_si256(c2[7164],simde_mm256_xor_si256(c2[7179],simde_mm256_xor_si256(c2[1637],simde_mm256_xor_si256(c2[1901],simde_mm256_xor_si256(c2[3483],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[3744],simde_mm256_xor_si256(c2[4284],simde_mm256_xor_si256(c2[2969],simde_mm256_xor_si256(c2[6926],simde_mm256_xor_si256(c2[7190],simde_mm256_xor_si256(c2[5089],simde_mm256_xor_si256(c2[7205],simde_mm256_xor_si256(c2[7469],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[1407],simde_mm256_xor_si256(c2[1671],simde_mm256_xor_si256(c2[5105],simde_mm256_xor_si256(c2[5369],simde_mm256_xor_si256(c2[1685],simde_mm256_xor_si256(c2[6965],simde_mm256_xor_si256(c2[7229],simde_mm256_xor_si256(c2[4850],simde_mm256_xor_si256(c2[5114],simde_mm256_xor_si256(c2[6448],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[6710],simde_mm256_xor_si256(c2[6974],simde_mm256_xor_si256(c2[7251],simde_mm256_xor_si256(c2[7252],simde_mm256_xor_si256(c2[7516],simde_mm256_xor_si256(c2[8044],simde_mm256_xor_si256(c2[8308],simde_mm256_xor_si256(c2[2248],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[3304],simde_mm256_xor_si256(c2[3313],simde_mm256_xor_si256(c2[4637],simde_mm256_xor_si256(c2[410],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[685],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[4121],simde_mm256_xor_si256(c2[4385],simde_mm256_xor_si256(c2[5449],simde_mm256_xor_si256(c2[4923],simde_mm256_xor_si256(c2[5187],simde_mm256_xor_si256(c2[3865],simde_mm256_xor_si256(c2[4129],simde_mm256_xor_si256(c2[4933],simde_mm256_xor_si256(c2[8103],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[4406],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[7853],simde_mm256_xor_si256(c2[2836],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[7864],simde_mm256_xor_si256(c2[8128],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[3650],simde_mm256_xor_si256(c2[2858],simde_mm256_xor_si256(c2[3122],simde_mm256_xor_si256(c2[2595],simde_mm256_xor_si256(c2[2859],simde_mm256_xor_si256(c2[4188],simde_mm256_xor_si256(c2[1817],simde_mm256_xor_si256(c2[2077],simde_mm256_xor_si256(c2[2341],simde_mm256_xor_si256(c2[1565],simde_mm256_xor_si256(c2[2089],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[5801],simde_mm256_xor_si256(c2[3160],simde_mm256_xor_si256(c2[8441],c2[252])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[258]=_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[5545],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[7657],_mm256_xor_si256(c2[7409],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[7152],_mm256_xor_si256(c2[5569],_mm256_xor_si256(c2[4515],_mm256_xor_si256(c2[6904],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[2153],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[5595],_mm256_xor_si256(c2[7177],_mm256_xor_si256(c2[7441],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[6663],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[2716],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[4301],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[5365],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[2476],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[7240],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[2763],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[4358],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[6998],_mm256_xor_si256(c2[7013],_mm256_xor_si256(c2[8331],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[4368],_mm256_xor_si256(c2[3856],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[7815],_mm256_xor_si256(c2[8079],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[7829],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[8100],_mm256_xor_si256(c2[5210],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[6530],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[1252],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[5486],_mm256_xor_si256(c2[5750],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[6816],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[6553],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[7888],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[6053],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[4464],_mm256_xor_si256(c2[1048],_mm256_xor_si256(c2[6854],_mm256_xor_si256(c2[3688],c2[3952])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[258]=simde_mm256_xor_si256(c2[7394],simde_mm256_xor_si256(c2[5545],simde_mm256_xor_si256(c2[5813],simde_mm256_xor_si256(c2[7393],simde_mm256_xor_si256(c2[7657],simde_mm256_xor_si256(c2[7409],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[8197],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[4503],simde_mm256_xor_si256(c2[7152],simde_mm256_xor_si256(c2[5569],simde_mm256_xor_si256(c2[4515],simde_mm256_xor_si256(c2[6904],simde_mm256_xor_si256(c2[4789],simde_mm256_xor_si256(c2[2153],simde_mm256_xor_si256(c2[2417],simde_mm256_xor_si256(c2[2426],simde_mm256_xor_si256(c2[5595],simde_mm256_xor_si256(c2[7177],simde_mm256_xor_si256(c2[7441],simde_mm256_xor_si256(c2[7984],simde_mm256_xor_si256(c2[6663],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[2716],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[4301],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[5365],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[5379],simde_mm256_xor_si256(c2[2476],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1695],simde_mm256_xor_si256(c2[7240],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[2498],simde_mm256_xor_si256(c2[2763],simde_mm256_xor_si256(c2[3291],simde_mm256_xor_si256(c2[3555],simde_mm256_xor_si256(c2[5942],simde_mm256_xor_si256(c2[4358],simde_mm256_xor_si256(c2[6734],simde_mm256_xor_si256(c2[6998],simde_mm256_xor_si256(c2[7013],simde_mm256_xor_si256(c2[8331],simde_mm256_xor_si256(c2[4104],simde_mm256_xor_si256(c2[4368],simde_mm256_xor_si256(c2[3856],simde_mm256_xor_si256(c2[4649],simde_mm256_xor_si256(c2[7815],simde_mm256_xor_si256(c2[8079],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[7565],simde_mm256_xor_si256(c2[7829],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[3350],simde_mm256_xor_si256(c2[8100],simde_mm256_xor_si256(c2[5210],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[6530],simde_mm256_xor_si256(c2[6794],simde_mm256_xor_si256(c2[1252],simde_mm256_xor_si256(c2[7334],simde_mm256_xor_si256(c2[3375],simde_mm256_xor_si256(c2[5486],simde_mm256_xor_si256(c2[5750],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[6816],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[6553],simde_mm256_xor_si256(c2[4971],simde_mm256_xor_si256(c2[7888],simde_mm256_xor_si256(c2[5511],simde_mm256_xor_si256(c2[6041],simde_mm256_xor_si256(c2[5259],simde_mm256_xor_si256(c2[6053],simde_mm256_xor_si256(c2[4200],simde_mm256_xor_si256(c2[4464],simde_mm256_xor_si256(c2[1048],simde_mm256_xor_si256(c2[6854],simde_mm256_xor_si256(c2[3688],c2[3952])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[264]=_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[8186],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[2393],_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[7948],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[4816],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[6674],_mm256_xor_si256(c2[7740],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[2989],_mm256_xor_si256(c2[3782],_mm256_xor_si256(c2[7752],_mm256_xor_si256(c2[4849],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[4068],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[4600],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[4877],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[6737],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[939],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[6747],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[7022],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[3075],_mm256_xor_si256(c2[2813],_mm256_xor_si256(c2[1755],_mm256_xor_si256(c2[2559],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[7589],_mm256_xor_si256(c2[5473],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[8129],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[485],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[7884],_mm256_xor_si256(c2[8414],_mm256_xor_si256(c2[7632],_mm256_xor_si256(c2[8426],_mm256_xor_si256(c2[6843],_mm256_xor_si256(c2[3421],_mm256_xor_si256(c2[780],c2[6325]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[264]=simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[7924],simde_mm256_xor_si256(c2[8186],simde_mm256_xor_si256(c2[1589],simde_mm256_xor_si256(c2[4226],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[2393],simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[7948],simde_mm256_xor_si256(c2[6888],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[7168],simde_mm256_xor_si256(c2[4790],simde_mm256_xor_si256(c2[4805],simde_mm256_xor_si256(c2[7968],simde_mm256_xor_si256(c2[1373],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[589],simde_mm256_xor_si256(c2[4816],simde_mm256_xor_si256(c2[2715],simde_mm256_xor_si256(c2[5089],simde_mm256_xor_si256(c2[6674],simde_mm256_xor_si256(c2[7740],simde_mm256_xor_si256(c2[7744],simde_mm256_xor_si256(c2[2989],simde_mm256_xor_si256(c2[3782],simde_mm256_xor_si256(c2[7752],simde_mm256_xor_si256(c2[4849],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[4068],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[4600],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[4877],simde_mm256_xor_si256(c2[5136],simde_mm256_xor_si256(c2[5928],simde_mm256_xor_si256(c2[8321],simde_mm256_xor_si256(c2[6737],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[939],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[6747],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[7022],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[3075],simde_mm256_xor_si256(c2[2813],simde_mm256_xor_si256(c2[1755],simde_mm256_xor_si256(c2[2559],simde_mm256_xor_si256(c2[5729],simde_mm256_xor_si256(c2[2032],simde_mm256_xor_si256(c2[7589],simde_mm256_xor_si256(c2[5473],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[5748],simde_mm256_xor_si256(c2[8129],simde_mm256_xor_si256(c2[1276],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[1814],simde_mm256_xor_si256(c2[7884],simde_mm256_xor_si256(c2[8414],simde_mm256_xor_si256(c2[7632],simde_mm256_xor_si256(c2[8426],simde_mm256_xor_si256(c2[6843],simde_mm256_xor_si256(c2[3421],simde_mm256_xor_si256(c2[780],c2[6325]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[270]=_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[5620],c2[4080])); + d2[270]=simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[5620],c2[4080])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc224_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc224_byte.c index ed2ed129f9..1a109e64f1 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc224_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc224_byte.c @@ -11,141 +11,141 @@ static inline void ldpc224_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[4626],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[9576],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[7130],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[7157],_mm256_xor_si256(c2[6235],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[8097],_mm256_xor_si256(c2[4089],_mm256_xor_si256(c2[9034],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[7816],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[7212],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[4150],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[4472],_mm256_xor_si256(c2[8474],_mm256_xor_si256(c2[6636],_mm256_xor_si256(c2[9102],_mm256_xor_si256(c2[6642],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[4818],_mm256_xor_si256(c2[6978],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[2982],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[7003],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[4260],_mm256_xor_si256(c2[6723],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[9814],_mm256_xor_si256(c2[9820],_mm256_xor_si256(c2[2747],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[5532],_mm256_xor_si256(c2[8615],c2[9538])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[9554],simde_mm256_xor_si256(c2[4008],simde_mm256_xor_si256(c2[4626],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[4942],simde_mm256_xor_si256(c2[3408],simde_mm256_xor_si256(c2[5558],simde_mm256_xor_si256(c2[9270],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[9576],simde_mm256_xor_si256(c2[8360],simde_mm256_xor_si256(c2[7130],simde_mm256_xor_si256(c2[1587],simde_mm256_xor_si256(c2[4369],simde_mm256_xor_si256(c2[4989],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[7157],simde_mm256_xor_si256(c2[6235],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[8097],simde_mm256_xor_si256(c2[4089],simde_mm256_xor_si256(c2[9034],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[4414],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[7816],simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[7212],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[4150],simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[7552],simde_mm256_xor_si256(c2[4472],simde_mm256_xor_si256(c2[8474],simde_mm256_xor_si256(c2[6636],simde_mm256_xor_si256(c2[9102],simde_mm256_xor_si256(c2[6642],simde_mm256_xor_si256(c2[7272],simde_mm256_xor_si256(c2[4188],simde_mm256_xor_si256(c2[6038],simde_mm256_xor_si256(c2[4818],simde_mm256_xor_si256(c2[6978],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[4522],simde_mm256_xor_si256(c2[2982],simde_mm256_xor_si256(c2[4216],simde_mm256_xor_si256(c2[2074],simde_mm256_xor_si256(c2[7003],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[4260],simde_mm256_xor_si256(c2[6723],simde_mm256_xor_si256(c2[1179],simde_mm256_xor_si256(c2[2120],simde_mm256_xor_si256(c2[9814],simde_mm256_xor_si256(c2[9820],simde_mm256_xor_si256(c2[2747],simde_mm256_xor_si256(c2[8290],simde_mm256_xor_si256(c2[9520],simde_mm256_xor_si256(c2[5532],simde_mm256_xor_si256(c2[8615],c2[9538])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[7]=_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[5250],_mm256_xor_si256(c2[3716],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[9578],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[8668],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[5297],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[9342],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[4150],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[6636],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[9410],_mm256_xor_si256(c2[6950],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7311],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4260],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[2747],_mm256_xor_si256(c2[3055],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5532],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[8923],c2[9846]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[7]=simde_mm256_xor_si256(c2[9554],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[4316],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[4942],simde_mm256_xor_si256(c2[5250],simde_mm256_xor_si256(c2[3716],simde_mm256_xor_si256(c2[5866],simde_mm256_xor_si256(c2[9270],simde_mm256_xor_si256(c2[9578],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[8360],simde_mm256_xor_si256(c2[8668],simde_mm256_xor_si256(c2[7438],simde_mm256_xor_si256(c2[1895],simde_mm256_xor_si256(c2[4677],simde_mm256_xor_si256(c2[5297],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[7465],simde_mm256_xor_si256(c2[6543],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[8405],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[9342],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[8124],simde_mm256_xor_si256(c2[5348],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[7520],simde_mm256_xor_si256(c2[5675],simde_mm256_xor_si256(c2[4150],simde_mm256_xor_si256(c2[4458],simde_mm256_xor_si256(c2[2298],simde_mm256_xor_si256(c2[1065],simde_mm256_xor_si256(c2[7552],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[4780],simde_mm256_xor_si256(c2[8782],simde_mm256_xor_si256(c2[6636],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[9410],simde_mm256_xor_si256(c2[6950],simde_mm256_xor_si256(c2[7272],simde_mm256_xor_si256(c2[7580],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[6346],simde_mm256_xor_si256(c2[5126],simde_mm256_xor_si256(c2[7286],simde_mm256_xor_si256(c2[2046],simde_mm256_xor_si256(c2[4522],simde_mm256_xor_si256(c2[4830],simde_mm256_xor_si256(c2[3290],simde_mm256_xor_si256(c2[4524],simde_mm256_xor_si256(c2[2074],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[7311],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[4260],simde_mm256_xor_si256(c2[4568],simde_mm256_xor_si256(c2[7031],simde_mm256_xor_si256(c2[1487],simde_mm256_xor_si256(c2[2120],simde_mm256_xor_si256(c2[2428],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[2747],simde_mm256_xor_si256(c2[3055],simde_mm256_xor_si256(c2[8598],simde_mm256_xor_si256(c2[9828],simde_mm256_xor_si256(c2[5532],simde_mm256_xor_si256(c2[5840],simde_mm256_xor_si256(c2[8923],c2[9846]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[14]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4626],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[5250],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[3716],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[9578],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[9576],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[8668],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[5297],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[6235],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[8097],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[4089],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[9342],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[7816],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[8474],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[9410],_mm256_xor_si256(c2[6642],_mm256_xor_si256(c2[6950],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[6978],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7311],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[6723],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[9820],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[3055],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[8923],_mm256_xor_si256(c2[9538],c2[9846])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[14]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[4316],simde_mm256_xor_si256(c2[4626],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[5250],simde_mm256_xor_si256(c2[3408],simde_mm256_xor_si256(c2[3716],simde_mm256_xor_si256(c2[5558],simde_mm256_xor_si256(c2[5866],simde_mm256_xor_si256(c2[9578],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[9576],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[8668],simde_mm256_xor_si256(c2[7438],simde_mm256_xor_si256(c2[1587],simde_mm256_xor_si256(c2[1895],simde_mm256_xor_si256(c2[4677],simde_mm256_xor_si256(c2[4989],simde_mm256_xor_si256(c2[5297],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[7465],simde_mm256_xor_si256(c2[6235],simde_mm256_xor_si256(c2[6543],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[8097],simde_mm256_xor_si256(c2[8405],simde_mm256_xor_si256(c2[4089],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[9342],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[4414],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[7816],simde_mm256_xor_si256(c2[8124],simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[5348],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[7520],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[5675],simde_mm256_xor_si256(c2[4458],simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[2298],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[1065],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[4780],simde_mm256_xor_si256(c2[8474],simde_mm256_xor_si256(c2[8782],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[9410],simde_mm256_xor_si256(c2[6642],simde_mm256_xor_si256(c2[6950],simde_mm256_xor_si256(c2[7580],simde_mm256_xor_si256(c2[4188],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[6038],simde_mm256_xor_si256(c2[6346],simde_mm256_xor_si256(c2[5126],simde_mm256_xor_si256(c2[6978],simde_mm256_xor_si256(c2[7286],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[2046],simde_mm256_xor_si256(c2[4830],simde_mm256_xor_si256(c2[3290],simde_mm256_xor_si256(c2[4216],simde_mm256_xor_si256(c2[4524],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[7311],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[4568],simde_mm256_xor_si256(c2[6723],simde_mm256_xor_si256(c2[7031],simde_mm256_xor_si256(c2[1179],simde_mm256_xor_si256(c2[1487],simde_mm256_xor_si256(c2[2428],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[9820],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[3055],simde_mm256_xor_si256(c2[8290],simde_mm256_xor_si256(c2[8598],simde_mm256_xor_si256(c2[9520],simde_mm256_xor_si256(c2[9828],simde_mm256_xor_si256(c2[5840],simde_mm256_xor_si256(c2[8923],simde_mm256_xor_si256(c2[9538],c2[9846])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[21]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[5250],_mm256_xor_si256(c2[3716],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[9578],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[8668],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[5297],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[4089],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[9342],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[8474],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[9410],_mm256_xor_si256(c2[6642],_mm256_xor_si256(c2[6950],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7311],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[3055],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[8923],_mm256_xor_si256(c2[9538],c2[9846]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[21]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[4316],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[5250],simde_mm256_xor_si256(c2[3716],simde_mm256_xor_si256(c2[5558],simde_mm256_xor_si256(c2[5866],simde_mm256_xor_si256(c2[9578],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[8668],simde_mm256_xor_si256(c2[7438],simde_mm256_xor_si256(c2[1587],simde_mm256_xor_si256(c2[1895],simde_mm256_xor_si256(c2[4677],simde_mm256_xor_si256(c2[5297],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[7465],simde_mm256_xor_si256(c2[6543],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[8405],simde_mm256_xor_si256(c2[4089],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[9342],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[4414],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[8124],simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[5348],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[7520],simde_mm256_xor_si256(c2[5675],simde_mm256_xor_si256(c2[4458],simde_mm256_xor_si256(c2[2298],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[1065],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[4780],simde_mm256_xor_si256(c2[8474],simde_mm256_xor_si256(c2[8782],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[9410],simde_mm256_xor_si256(c2[6642],simde_mm256_xor_si256(c2[6950],simde_mm256_xor_si256(c2[7580],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[6038],simde_mm256_xor_si256(c2[6346],simde_mm256_xor_si256(c2[5126],simde_mm256_xor_si256(c2[7286],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[2046],simde_mm256_xor_si256(c2[4830],simde_mm256_xor_si256(c2[3290],simde_mm256_xor_si256(c2[4524],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[7311],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[4568],simde_mm256_xor_si256(c2[7031],simde_mm256_xor_si256(c2[1179],simde_mm256_xor_si256(c2[1487],simde_mm256_xor_si256(c2[2428],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[3055],simde_mm256_xor_si256(c2[8598],simde_mm256_xor_si256(c2[9520],simde_mm256_xor_si256(c2[9828],simde_mm256_xor_si256(c2[5840],simde_mm256_xor_si256(c2[8923],simde_mm256_xor_si256(c2[9538],c2[9846]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[28]=_mm256_xor_si256(c2[3085],c2[3094]); + d2[28]=simde_mm256_xor_si256(c2[3085],c2[3094]); //row: 5 - d2[35]=_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[2468],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[2791],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[8331],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[1882],_mm256_xor_si256(c2[7425],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[9284],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[9300],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[4999],_mm256_xor_si256(c2[4077],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[5939],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[6876],_mm256_xor_si256(c2[7490],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[9353],_mm256_xor_si256(c2[5658],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[7830],_mm256_xor_si256(c2[5054],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[1992],_mm256_xor_si256(c2[9694],_mm256_xor_si256(c2[8461],_mm256_xor_si256(c2[5394],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[6316],_mm256_xor_si256(c2[4485],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[4484],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[2030],_mm256_xor_si256(c2[3880],_mm256_xor_si256(c2[2660],_mm256_xor_si256(c2[4820],_mm256_xor_si256(c2[9442],_mm256_xor_si256(c2[2371],_mm256_xor_si256(c2[831],_mm256_xor_si256(c2[2058],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[7005],_mm256_xor_si256(c2[8557],_mm256_xor_si256(c2[9789],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[8876],_mm256_xor_si256(c2[9817],_mm256_xor_si256(c2[7663],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[6132],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[3374],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[7380],c2[914])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[35]=simde_mm256_xor_si256(c2[7396],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[2468],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[1237],simde_mm256_xor_si256(c2[2791],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[3407],simde_mm256_xor_si256(c2[8331],simde_mm256_xor_si256(c2[7112],simde_mm256_xor_si256(c2[1882],simde_mm256_xor_si256(c2[7425],simde_mm256_xor_si256(c2[6202],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[9284],simde_mm256_xor_si256(c2[6820],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[9300],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[4999],simde_mm256_xor_si256(c2[4077],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[5939],simde_mm256_xor_si256(c2[1938],simde_mm256_xor_si256(c2[6876],simde_mm256_xor_si256(c2[7490],simde_mm256_xor_si256(c2[2256],simde_mm256_xor_si256(c2[9353],simde_mm256_xor_si256(c2[5658],simde_mm256_xor_si256(c2[2889],simde_mm256_xor_si256(c2[7830],simde_mm256_xor_si256(c2[5054],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[1992],simde_mm256_xor_si256(c2[9694],simde_mm256_xor_si256(c2[8461],simde_mm256_xor_si256(c2[5394],simde_mm256_xor_si256(c2[2314],simde_mm256_xor_si256(c2[6316],simde_mm256_xor_si256(c2[4485],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[4484],simde_mm256_xor_si256(c2[5098],simde_mm256_xor_si256(c2[5114],simde_mm256_xor_si256(c2[2030],simde_mm256_xor_si256(c2[3880],simde_mm256_xor_si256(c2[2660],simde_mm256_xor_si256(c2[4820],simde_mm256_xor_si256(c2[9442],simde_mm256_xor_si256(c2[2371],simde_mm256_xor_si256(c2[831],simde_mm256_xor_si256(c2[2058],simde_mm256_xor_si256(c2[9778],simde_mm256_xor_si256(c2[4845],simde_mm256_xor_si256(c2[7924],simde_mm256_xor_si256(c2[7005],simde_mm256_xor_si256(c2[8557],simde_mm256_xor_si256(c2[9789],simde_mm256_xor_si256(c2[1162],simde_mm256_xor_si256(c2[2102],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[8876],simde_mm256_xor_si256(c2[9817],simde_mm256_xor_si256(c2[7663],simde_mm256_xor_si256(c2[7662],simde_mm256_xor_si256(c2[589],simde_mm256_xor_si256(c2[6132],simde_mm256_xor_si256(c2[7369],simde_mm256_xor_si256(c2[3374],simde_mm256_xor_si256(c2[6457],simde_mm256_xor_si256(c2[7380],c2[914])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[42]=_mm256_xor_si256(c2[9244],_mm256_xor_si256(c2[7171],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[6622],_mm256_xor_si256(c2[9731],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[2720],c2[6443]))))))); + d2[42]=simde_mm256_xor_si256(c2[9244],simde_mm256_xor_si256(c2[7171],simde_mm256_xor_si256(c2[5379],simde_mm256_xor_si256(c2[6622],simde_mm256_xor_si256(c2[9731],simde_mm256_xor_si256(c2[6091],simde_mm256_xor_si256(c2[2720],c2[6443]))))))); //row: 7 - d2[49]=_mm256_xor_si256(c2[5236],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[6892],c2[9440]))))); + d2[49]=simde_mm256_xor_si256(c2[5236],simde_mm256_xor_si256(c2[3712],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[6892],c2[9440]))))); //row: 8 - d2[56]=_mm256_xor_si256(c2[3389],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[7087],_mm256_xor_si256(c2[8316],_mm256_xor_si256(c2[7397],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[6468],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[5857],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[8639],_mm256_xor_si256(c2[8028],_mm256_xor_si256(c2[7098],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[6487],_mm256_xor_si256(c2[9255],_mm256_xor_si256(c2[8336],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[9564],_mm256_xor_si256(c2[3112],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[7730],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[3418],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[4358],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[1274],_mm256_xor_si256(c2[8066],_mm256_xor_si256(c2[7448],_mm256_xor_si256(c2[8686],_mm256_xor_si256(c2[7760],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[5293],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[6849],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[999],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[9006],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[6861],_mm256_xor_si256(c2[6250],_mm256_xor_si256(c2[1932],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[7786],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[2876],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[3490],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[8111],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[7818],_mm256_xor_si256(c2[8126],_mm256_xor_si256(c2[3823],_mm256_xor_si256(c2[3212],_mm256_xor_si256(c2[1054],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[9064],_mm256_xor_si256(c2[8138],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[5687],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[4454],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[1387],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[8162],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[2316],_mm256_xor_si256(c2[1390],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[478],_mm256_xor_si256(c2[9722],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[9413],_mm256_xor_si256(c2[9721],_mm256_xor_si256(c2[7874],_mm256_xor_si256(c2[1107],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[7885],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[9735],_mm256_xor_si256(c2[8809],_mm256_xor_si256(c2[9117],_mm256_xor_si256(c2[8515],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[9749],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[5435],_mm256_xor_si256(c2[4509],_mm256_xor_si256(c2[4817],_mm256_xor_si256(c2[8219],_mm256_xor_si256(c2[7608],_mm256_xor_si256(c2[6679],_mm256_xor_si256(c2[6068],_mm256_xor_si256(c2[7913],_mm256_xor_si256(c2[6987],_mm256_xor_si256(c2[7295],_mm256_xor_si256(c2[5771],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[2998],_mm256_xor_si256(c2[3306],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4550],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[4863],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[7017],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[7957],_mm256_xor_si256(c2[7339],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[9494],_mm256_xor_si256(c2[9802],_mm256_xor_si256(c2[4876],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[4258],_mm256_xor_si256(c2[5810],_mm256_xor_si256(c2[5199],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[2423],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[2436],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[9229],_mm256_xor_si256(c2[8611],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1839],_mm256_xor_si256(c2[3380],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[2762],c2[8303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[56]=simde_mm256_xor_si256(c2[3389],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[7705],simde_mm256_xor_si256(c2[7087],simde_mm256_xor_si256(c2[8316],simde_mm256_xor_si256(c2[7397],simde_mm256_xor_si256(c2[7705],simde_mm256_xor_si256(c2[6468],simde_mm256_xor_si256(c2[5549],simde_mm256_xor_si256(c2[5857],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[8639],simde_mm256_xor_si256(c2[8028],simde_mm256_xor_si256(c2[7098],simde_mm256_xor_si256(c2[6179],simde_mm256_xor_si256(c2[6487],simde_mm256_xor_si256(c2[9255],simde_mm256_xor_si256(c2[8336],simde_mm256_xor_si256(c2[8644],simde_mm256_xor_si256(c2[9564],simde_mm256_xor_si256(c2[3112],simde_mm256_xor_si256(c2[2494],simde_mm256_xor_si256(c2[7730],simde_mm256_xor_si256(c2[7112],simde_mm256_xor_si256(c2[3418],simde_mm256_xor_si256(c2[2492],simde_mm256_xor_si256(c2[2800],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[972],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[5284],simde_mm256_xor_si256(c2[4358],simde_mm256_xor_si256(c2[4666],simde_mm256_xor_si256(c2[1274],simde_mm256_xor_si256(c2[8066],simde_mm256_xor_si256(c2[7448],simde_mm256_xor_si256(c2[8686],simde_mm256_xor_si256(c2[7760],simde_mm256_xor_si256(c2[8068],simde_mm256_xor_si256(c2[5293],simde_mm256_xor_si256(c2[4374],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[6849],simde_mm256_xor_si256(c2[6231],simde_mm256_xor_si256(c2[999],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[9006],simde_mm256_xor_si256(c2[9314],simde_mm256_xor_si256(c2[6861],simde_mm256_xor_si256(c2[6250],simde_mm256_xor_si256(c2[1932],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[7786],simde_mm256_xor_si256(c2[6860],simde_mm256_xor_si256(c2[7168],simde_mm256_xor_si256(c2[2876],simde_mm256_xor_si256(c2[2258],simde_mm256_xor_si256(c2[3490],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[2872],simde_mm256_xor_si256(c2[8111],simde_mm256_xor_si256(c2[7185],simde_mm256_xor_si256(c2[7493],simde_mm256_xor_si256(c2[5353],simde_mm256_xor_si256(c2[4735],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[8737],simde_mm256_xor_si256(c2[7818],simde_mm256_xor_si256(c2[8126],simde_mm256_xor_si256(c2[3823],simde_mm256_xor_si256(c2[3212],simde_mm256_xor_si256(c2[1054],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[9064],simde_mm256_xor_si256(c2[8138],simde_mm256_xor_si256(c2[8446],simde_mm256_xor_si256(c2[7840],simde_mm256_xor_si256(c2[7229],simde_mm256_xor_si256(c2[5687],simde_mm256_xor_si256(c2[4761],simde_mm256_xor_si256(c2[5069],simde_mm256_xor_si256(c2[4454],simde_mm256_xor_si256(c2[3528],simde_mm256_xor_si256(c2[3836],simde_mm256_xor_si256(c2[1387],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[8162],simde_mm256_xor_si256(c2[7551],simde_mm256_xor_si256(c2[2316],simde_mm256_xor_si256(c2[1390],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[478],simde_mm256_xor_si256(c2[9722],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[9413],simde_mm256_xor_si256(c2[9721],simde_mm256_xor_si256(c2[7874],simde_mm256_xor_si256(c2[1107],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[7885],simde_mm256_xor_si256(c2[6959],simde_mm256_xor_si256(c2[7267],simde_mm256_xor_si256(c2[9735],simde_mm256_xor_si256(c2[8809],simde_mm256_xor_si256(c2[9117],simde_mm256_xor_si256(c2[8515],simde_mm256_xor_si256(c2[7897],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[9749],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[5435],simde_mm256_xor_si256(c2[4509],simde_mm256_xor_si256(c2[4817],simde_mm256_xor_si256(c2[8219],simde_mm256_xor_si256(c2[7608],simde_mm256_xor_si256(c2[6679],simde_mm256_xor_si256(c2[6068],simde_mm256_xor_si256(c2[7913],simde_mm256_xor_si256(c2[6987],simde_mm256_xor_si256(c2[7295],simde_mm256_xor_si256(c2[5771],simde_mm256_xor_si256(c2[5153],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[2998],simde_mm256_xor_si256(c2[3306],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[4550],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[5782],simde_mm256_xor_si256(c2[4863],simde_mm256_xor_si256(c2[5171],simde_mm256_xor_si256(c2[7017],simde_mm256_xor_si256(c2[6091],simde_mm256_xor_si256(c2[6399],simde_mm256_xor_si256(c2[7957],simde_mm256_xor_si256(c2[7339],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[9494],simde_mm256_xor_si256(c2[9802],simde_mm256_xor_si256(c2[4876],simde_mm256_xor_si256(c2[3950],simde_mm256_xor_si256(c2[4258],simde_mm256_xor_si256(c2[5810],simde_mm256_xor_si256(c2[5199],simde_mm256_xor_si256(c2[3656],simde_mm256_xor_si256(c2[3038],simde_mm256_xor_si256(c2[3655],simde_mm256_xor_si256(c2[2736],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[2423],simde_mm256_xor_si256(c2[6444],simde_mm256_xor_si256(c2[5826],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[1206],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[3362],simde_mm256_xor_si256(c2[2436],simde_mm256_xor_si256(c2[2744],simde_mm256_xor_si256(c2[9229],simde_mm256_xor_si256(c2[8611],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[1839],simde_mm256_xor_si256(c2[3380],simde_mm256_xor_si256(c2[2454],simde_mm256_xor_si256(c2[2762],c2[8303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[63]=_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[6614],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[7884],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[4259],c2[8294]))))))); + d2[63]=simde_mm256_xor_si256(c2[2772],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[6614],simde_mm256_xor_si256(c2[2929],simde_mm256_xor_si256(c2[7884],simde_mm256_xor_si256(c2[7943],simde_mm256_xor_si256(c2[4259],c2[8294]))))))); //row: 10 - d2[70]=_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[4373],_mm256_xor_si256(c2[5950],_mm256_xor_si256(c2[734],c2[2355]))))); + d2[70]=simde_mm256_xor_si256(c2[5560],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[4373],simde_mm256_xor_si256(c2[5950],simde_mm256_xor_si256(c2[734],c2[2355]))))); //row: 11 - d2[77]=_mm256_xor_si256(c2[5854],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[7087],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[8933],_mm256_xor_si256(c2[5857],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[7720],_mm256_xor_si256(c2[8028],_mm256_xor_si256(c2[9563],_mm256_xor_si256(c2[6487],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[5577],_mm256_xor_si256(c2[2186],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[5883],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[4667],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[3430],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[7742],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[7448],_mm256_xor_si256(c2[1289],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[7758],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[5923],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[3464],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[9326],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[6250],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[5955],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[7818],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[8126],_mm256_xor_si256(c2[6288],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3212],_mm256_xor_si256(c2[3519],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[6921],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[8152],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[6919],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[2943],_mm256_xor_si256(c2[9414],_mm256_xor_si256(c2[9722],_mm256_xor_si256(c2[5409],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[2942],_mm256_xor_si256(c2[9721],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[3572],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[495],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[9117],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[3278],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[7900],_mm256_xor_si256(c2[4817],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[7300],_mm256_xor_si256(c2[7608],_mm256_xor_si256(c2[9144],_mm256_xor_si256(c2[6068],_mm256_xor_si256(c2[523],_mm256_xor_si256(c2[7295],_mm256_xor_si256(c2[8236],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[3310],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[3306],_mm256_xor_si256(c2[1149],_mm256_xor_si256(c2[7015],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[8247],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[9482],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[7339],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[9802],_mm256_xor_si256(c2[7341],_mm256_xor_si256(c2[4258],_mm256_xor_si256(c2[8275],_mm256_xor_si256(c2[4891],_mm256_xor_si256(c2[5199],_mm256_xor_si256(c2[6121],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[6120],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[8909],_mm256_xor_si256(c2[5518],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[1839],_mm256_xor_si256(c2[8303],_mm256_xor_si256(c2[8611],_mm256_xor_si256(c2[4915],_mm256_xor_si256(c2[1839],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[2762],c2[295]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[77]=simde_mm256_xor_si256(c2[5854],simde_mm256_xor_si256(c2[2470],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[7087],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[7705],simde_mm256_xor_si256(c2[8933],simde_mm256_xor_si256(c2[5857],simde_mm256_xor_si256(c2[6161],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[7720],simde_mm256_xor_si256(c2[8028],simde_mm256_xor_si256(c2[9563],simde_mm256_xor_si256(c2[6487],simde_mm256_xor_si256(c2[1865],simde_mm256_xor_si256(c2[8644],simde_mm256_xor_si256(c2[3402],simde_mm256_xor_si256(c2[5577],simde_mm256_xor_si256(c2[2186],simde_mm256_xor_si256(c2[2494],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[7112],simde_mm256_xor_si256(c2[5883],simde_mm256_xor_si256(c2[2800],simde_mm256_xor_si256(c2[4667],simde_mm256_xor_si256(c2[1276],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[3430],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[7742],simde_mm256_xor_si256(c2[4666],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[7448],simde_mm256_xor_si256(c2[1289],simde_mm256_xor_si256(c2[8068],simde_mm256_xor_si256(c2[7758],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[9314],simde_mm256_xor_si256(c2[5923],simde_mm256_xor_si256(c2[6231],simde_mm256_xor_si256(c2[3464],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[9314],simde_mm256_xor_si256(c2[9326],simde_mm256_xor_si256(c2[5942],simde_mm256_xor_si256(c2[6250],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[7168],simde_mm256_xor_si256(c2[5334],simde_mm256_xor_si256(c2[2258],simde_mm256_xor_si256(c2[5955],simde_mm256_xor_si256(c2[2872],simde_mm256_xor_si256(c2[714],simde_mm256_xor_si256(c2[7493],simde_mm256_xor_si256(c2[7818],simde_mm256_xor_si256(c2[4735],simde_mm256_xor_si256(c2[4116],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[1347],simde_mm256_xor_si256(c2[8126],simde_mm256_xor_si256(c2[6288],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[3212],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[1667],simde_mm256_xor_si256(c2[8446],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[6921],simde_mm256_xor_si256(c2[7229],simde_mm256_xor_si256(c2[8152],simde_mm256_xor_si256(c2[5069],simde_mm256_xor_si256(c2[6919],simde_mm256_xor_si256(c2[3836],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[7551],simde_mm256_xor_si256(c2[4774],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[2943],simde_mm256_xor_si256(c2[9414],simde_mm256_xor_si256(c2[9722],simde_mm256_xor_si256(c2[5409],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[2942],simde_mm256_xor_si256(c2[9721],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[3572],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[495],simde_mm256_xor_si256(c2[7267],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[9117],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[7897],simde_mm256_xor_si256(c2[3278],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[7900],simde_mm256_xor_si256(c2[4817],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[7300],simde_mm256_xor_si256(c2[7608],simde_mm256_xor_si256(c2[9144],simde_mm256_xor_si256(c2[6068],simde_mm256_xor_si256(c2[523],simde_mm256_xor_si256(c2[7295],simde_mm256_xor_si256(c2[8236],simde_mm256_xor_si256(c2[4845],simde_mm256_xor_si256(c2[5153],simde_mm256_xor_si256(c2[3310],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[3306],simde_mm256_xor_si256(c2[1149],simde_mm256_xor_si256(c2[7015],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[8247],simde_mm256_xor_si256(c2[5171],simde_mm256_xor_si256(c2[9482],simde_mm256_xor_si256(c2[6399],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[7031],simde_mm256_xor_si256(c2[7339],simde_mm256_xor_si256(c2[3030],simde_mm256_xor_si256(c2[9802],simde_mm256_xor_si256(c2[7341],simde_mm256_xor_si256(c2[4258],simde_mm256_xor_si256(c2[8275],simde_mm256_xor_si256(c2[4891],simde_mm256_xor_si256(c2[5199],simde_mm256_xor_si256(c2[6121],simde_mm256_xor_si256(c2[3038],simde_mm256_xor_si256(c2[6120],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[8909],simde_mm256_xor_si256(c2[5518],simde_mm256_xor_si256(c2[5826],simde_mm256_xor_si256(c2[4597],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[5827],simde_mm256_xor_si256(c2[2744],simde_mm256_xor_si256(c2[1839],simde_mm256_xor_si256(c2[8303],simde_mm256_xor_si256(c2[8611],simde_mm256_xor_si256(c2[4915],simde_mm256_xor_si256(c2[1839],simde_mm256_xor_si256(c2[5838],simde_mm256_xor_si256(c2[2762],c2[295]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[84]=_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4639],_mm256_xor_si256(c2[2608],_mm256_xor_si256(c2[1078],_mm256_xor_si256(c2[8806],c2[7033]))))); + d2[84]=simde_mm256_xor_si256(c2[4316],simde_mm256_xor_si256(c2[4639],simde_mm256_xor_si256(c2[2608],simde_mm256_xor_si256(c2[1078],simde_mm256_xor_si256(c2[8806],c2[7033]))))); //row: 13 - d2[91]=_mm256_xor_si256(c2[4006],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[9256],_mm256_xor_si256(c2[9564],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[3729],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[8655],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[2819],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[7435],_mm256_xor_si256(c2[8991],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[6218],_mm256_xor_si256(c2[7466],_mm256_xor_si256(c2[7774],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[7478],_mm256_xor_si256(c2[7786],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[8711],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[4415],_mm256_xor_si256(c2[9036],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[6278],_mm256_xor_si256(c2[2576],_mm256_xor_si256(c2[9662],_mm256_xor_si256(c2[4440],_mm256_xor_si256(c2[4748],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[8457],_mm256_xor_si256(c2[8765],_mm256_xor_si256(c2[6612],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[1724],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[8836],_mm256_xor_si256(c2[9144],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[8838],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[4849],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[6707],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[8574],_mm256_xor_si256(c2[8882],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[5801],_mm256_xor_si256(c2[6427],_mm256_xor_si256(c2[6735],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[4580],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[7986],_mm256_xor_si256(c2[9846],_mm256_xor_si256(c2[299],_mm256_xor_si256(c2[3375],c2[4298]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[91]=simde_mm256_xor_si256(c2[4006],simde_mm256_xor_si256(c2[4314],simde_mm256_xor_si256(c2[8630],simde_mm256_xor_si256(c2[9241],simde_mm256_xor_si256(c2[7393],simde_mm256_xor_si256(c2[5238],simde_mm256_xor_si256(c2[9256],simde_mm256_xor_si256(c2[9564],simde_mm256_xor_si256(c2[8023],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[3729],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[8655],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[2819],simde_mm256_xor_si256(c2[3127],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[6202],simde_mm256_xor_si256(c2[7435],simde_mm256_xor_si256(c2[8991],simde_mm256_xor_si256(c2[9604],simde_mm256_xor_si256(c2[6218],simde_mm256_xor_si256(c2[7466],simde_mm256_xor_si256(c2[7774],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[7478],simde_mm256_xor_si256(c2[7786],simde_mm256_xor_si256(c2[2857],simde_mm256_xor_si256(c2[8711],simde_mm256_xor_si256(c2[3794],simde_mm256_xor_si256(c2[4415],simde_mm256_xor_si256(c2[9036],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[6278],simde_mm256_xor_si256(c2[2576],simde_mm256_xor_si256(c2[9662],simde_mm256_xor_si256(c2[4440],simde_mm256_xor_si256(c2[4748],simde_mm256_xor_si256(c2[1979],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[8457],simde_mm256_xor_si256(c2[8765],simde_mm256_xor_si256(c2[6612],simde_mm256_xor_si256(c2[5379],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[9087],simde_mm256_xor_si256(c2[3234],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[1403],simde_mm256_xor_si256(c2[3869],simde_mm256_xor_si256(c2[1402],simde_mm256_xor_si256(c2[1724],simde_mm256_xor_si256(c2[2032],simde_mm256_xor_si256(c2[8810],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[9440],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[6360],simde_mm256_xor_si256(c2[8836],simde_mm256_xor_si256(c2[9144],simde_mm256_xor_si256(c2[7604],simde_mm256_xor_si256(c2[8838],simde_mm256_xor_si256(c2[6388],simde_mm256_xor_si256(c2[6696],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[4849],simde_mm256_xor_si256(c2[5475],simde_mm256_xor_si256(c2[6707],simde_mm256_xor_si256(c2[7942],simde_mm256_xor_si256(c2[8574],simde_mm256_xor_si256(c2[8882],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[5801],simde_mm256_xor_si256(c2[6427],simde_mm256_xor_si256(c2[6735],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[4580],simde_mm256_xor_si256(c2[7061],simde_mm256_xor_si256(c2[7369],simde_mm256_xor_si256(c2[3057],simde_mm256_xor_si256(c2[4287],simde_mm256_xor_si256(c2[7986],simde_mm256_xor_si256(c2[9846],simde_mm256_xor_si256(c2[299],simde_mm256_xor_si256(c2[3375],c2[4298]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[98]=_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[6068],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[6091],c2[3683]))))); + d2[98]=simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[6068],simde_mm256_xor_si256(c2[9777],simde_mm256_xor_si256(c2[6091],c2[3683]))))); //row: 15 - d2[105]=_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[8009],_mm256_xor_si256(c2[8317],_mm256_xor_si256(c2[8010],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[7409],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[9579],_mm256_xor_si256(c2[5267],_mm256_xor_si256(c2[4051],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[6818],_mm256_xor_si256(c2[7126],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[6834],_mm256_xor_si256(c2[7142],_mm256_xor_si256(c2[8698],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[1919],_mm256_xor_si256(c2[8710],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[9327],_mm256_xor_si256(c2[9635],_mm256_xor_si256(c2[4718],_mm256_xor_si256(c2[5339],_mm256_xor_si256(c2[9652],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[3500],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[731],_mm256_xor_si256(c2[5672],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[9689],_mm256_xor_si256(c2[7536],_mm256_xor_si256(c2[5995],_mm256_xor_si256(c2[6303],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[3236],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[3850],_mm256_xor_si256(c2[4158],_mm256_xor_si256(c2[2327],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2018],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[2956],_mm256_xor_si256(c2[9734],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[509],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[6976],_mm256_xor_si256(c2[7284],_mm256_xor_si256(c2[213],_mm256_xor_si256(c2[8528],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[5465],_mm256_xor_si256(c2[5773],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[7631],_mm256_xor_si256(c2[8558],_mm256_xor_si256(c2[8866],_mm256_xor_si256(c2[9806],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[6417],_mm256_xor_si256(c2[6725],_mm256_xor_si256(c2[5494],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[5504],_mm256_xor_si256(c2[8293],_mm256_xor_si256(c2[3981],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[5211],_mm256_xor_si256(c2[1223],_mm256_xor_si256(c2[4299],_mm256_xor_si256(c2[4914],c2[5222])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[105]=simde_mm256_xor_si256(c2[5238],simde_mm256_xor_si256(c2[9554],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[8009],simde_mm256_xor_si256(c2[8317],simde_mm256_xor_si256(c2[8010],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[8947],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[7409],simde_mm256_xor_si256(c2[4961],simde_mm256_xor_si256(c2[9579],simde_mm256_xor_si256(c2[5267],simde_mm256_xor_si256(c2[4051],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[6818],simde_mm256_xor_si256(c2[7126],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[6834],simde_mm256_xor_si256(c2[7142],simde_mm256_xor_si256(c2[8698],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[1919],simde_mm256_xor_si256(c2[8710],simde_mm256_xor_si256(c2[3781],simde_mm256_xor_si256(c2[9327],simde_mm256_xor_si256(c2[9635],simde_mm256_xor_si256(c2[4718],simde_mm256_xor_si256(c2[5339],simde_mm256_xor_si256(c2[9652],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[7202],simde_mm256_xor_si256(c2[3500],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[731],simde_mm256_xor_si256(c2[5672],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[1051],simde_mm256_xor_si256(c2[9689],simde_mm256_xor_si256(c2[7536],simde_mm256_xor_si256(c2[5995],simde_mm256_xor_si256(c2[6303],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[3236],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[3850],simde_mm256_xor_si256(c2[4158],simde_mm256_xor_si256(c2[2327],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[2018],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[2956],simde_mm256_xor_si256(c2[9734],simde_mm256_xor_si256(c2[1414],simde_mm256_xor_si256(c2[1722],simde_mm256_xor_si256(c2[5424],simde_mm256_xor_si256(c2[509],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[6976],simde_mm256_xor_si256(c2[7284],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[8528],simde_mm256_xor_si256(c2[9762],simde_mm256_xor_si256(c2[7620],simde_mm256_xor_si256(c2[2694],simde_mm256_xor_si256(c2[5465],simde_mm256_xor_si256(c2[5773],simde_mm256_xor_si256(c2[6399],simde_mm256_xor_si256(c2[7631],simde_mm256_xor_si256(c2[8558],simde_mm256_xor_si256(c2[8866],simde_mm256_xor_si256(c2[9806],simde_mm256_xor_si256(c2[2414],simde_mm256_xor_si256(c2[6417],simde_mm256_xor_si256(c2[6725],simde_mm256_xor_si256(c2[5494],simde_mm256_xor_si256(c2[7659],simde_mm256_xor_si256(c2[5505],simde_mm256_xor_si256(c2[5504],simde_mm256_xor_si256(c2[8293],simde_mm256_xor_si256(c2[3981],simde_mm256_xor_si256(c2[4903],simde_mm256_xor_si256(c2[5211],simde_mm256_xor_si256(c2[1223],simde_mm256_xor_si256(c2[4299],simde_mm256_xor_si256(c2[4914],c2[5222])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[112]=_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[5544],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[6485],_mm256_xor_si256(c2[4944],_mm256_xor_si256(c2[7101],_mm256_xor_si256(c2[8026],_mm256_xor_si256(c2[958],_mm256_xor_si256(c2[5576],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[8666],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[1279],_mm256_xor_si256(c2[5912],_mm256_xor_si256(c2[6525],_mm256_xor_si256(c2[3139],_mm256_xor_si256(c2[4695],_mm256_xor_si256(c2[8700],_mm256_xor_si256(c2[7771],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[9633],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[715],_mm256_xor_si256(c2[1336],_mm256_xor_si256(c2[5950],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[9352],_mm256_xor_si256(c2[6583],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[8755],_mm256_xor_si256(c2[6903],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[2300],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[6008],_mm256_xor_si256(c2[155],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[8179],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[8178],_mm256_xor_si256(c2[8808],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[7574],_mm256_xor_si256(c2[6361],_mm256_xor_si256(c2[8514],_mm256_xor_si256(c2[3281],_mm256_xor_si256(c2[6065],_mm256_xor_si256(c2[4525],_mm256_xor_si256(c2[5759],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[8546],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[2396],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4863],_mm256_xor_si256(c2[5796],_mm256_xor_si256(c2[8266],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[9833],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[9217],_mm256_xor_si256(c2[7075],_mm256_xor_si256(c2[296],c2[1219])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[112]=simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[5544],simde_mm256_xor_si256(c2[6162],simde_mm256_xor_si256(c2[4314],simde_mm256_xor_si256(c2[6485],simde_mm256_xor_si256(c2[4944],simde_mm256_xor_si256(c2[7101],simde_mm256_xor_si256(c2[8026],simde_mm256_xor_si256(c2[958],simde_mm256_xor_si256(c2[5576],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[8666],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[1279],simde_mm256_xor_si256(c2[5912],simde_mm256_xor_si256(c2[6525],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[4695],simde_mm256_xor_si256(c2[8700],simde_mm256_xor_si256(c2[7771],simde_mm256_xor_si256(c2[4707],simde_mm256_xor_si256(c2[9633],simde_mm256_xor_si256(c2[5632],simde_mm256_xor_si256(c2[715],simde_mm256_xor_si256(c2[1336],simde_mm256_xor_si256(c2[5950],simde_mm256_xor_si256(c2[3192],simde_mm256_xor_si256(c2[9352],simde_mm256_xor_si256(c2[6583],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[8755],simde_mm256_xor_si256(c2[6903],simde_mm256_xor_si256(c2[5686],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[2300],simde_mm256_xor_si256(c2[9088],simde_mm256_xor_si256(c2[6008],simde_mm256_xor_si256(c2[155],simde_mm256_xor_si256(c2[3543],simde_mm256_xor_si256(c2[8179],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[8178],simde_mm256_xor_si256(c2[8808],simde_mm256_xor_si256(c2[5731],simde_mm256_xor_si256(c2[7574],simde_mm256_xor_si256(c2[6361],simde_mm256_xor_si256(c2[8514],simde_mm256_xor_si256(c2[3281],simde_mm256_xor_si256(c2[6065],simde_mm256_xor_si256(c2[4525],simde_mm256_xor_si256(c2[5759],simde_mm256_xor_si256(c2[3617],simde_mm256_xor_si256(c2[8546],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[2396],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[4863],simde_mm256_xor_si256(c2[5796],simde_mm256_xor_si256(c2[8266],simde_mm256_xor_si256(c2[2722],simde_mm256_xor_si256(c2[3656],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[4290],simde_mm256_xor_si256(c2[9833],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[9217],simde_mm256_xor_si256(c2[7075],simde_mm256_xor_si256(c2[296],c2[1219])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[119]=_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[4511],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[9787],c2[1526])))); + d2[119]=simde_mm256_xor_si256(c2[7393],simde_mm256_xor_si256(c2[4511],simde_mm256_xor_si256(c2[2694],simde_mm256_xor_si256(c2[9787],c2[1526])))); //row: 18 - d2[126]=_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[4483],_mm256_xor_si256(c2[2652],_mm256_xor_si256(c2[4876],c2[8279])))); + d2[126]=simde_mm256_xor_si256(c2[2176],simde_mm256_xor_si256(c2[4483],simde_mm256_xor_si256(c2[2652],simde_mm256_xor_si256(c2[4876],c2[8279])))); //row: 19 - d2[133]=_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1966],c2[2604])))); + d2[133]=simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1966],c2[2604])))); //row: 20 - d2[140]=_mm256_xor_si256(c2[6781],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[635],_mm256_xor_si256(c2[2792],_mm256_xor_si256(c2[6497],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[6810],_mm256_xor_si256(c2[5587],_mm256_xor_si256(c2[4357],_mm256_xor_si256(c2[8669],_mm256_xor_si256(c2[5592],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[379],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[3462],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[1316],_mm256_xor_si256(c2[6261],_mm256_xor_si256(c2[6875],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[8738],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[7215],_mm256_xor_si256(c2[4439],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[7829],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[9072],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[4779],_mm256_xor_si256(c2[1699],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[6936],_mm256_xor_si256(c2[3870],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[4499],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[2045],_mm256_xor_si256(c2[4205],_mm256_xor_si256(c2[8820],_mm256_xor_si256(c2[1756],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[9156],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[7309],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[9174],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[8261],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[9829],_mm256_xor_si256(c2[5517],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[2759],_mm256_xor_si256(c2[5842],c2[6765])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[140]=simde_mm256_xor_si256(c2[6781],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[2176],simde_mm256_xor_si256(c2[635],simde_mm256_xor_si256(c2[2792],simde_mm256_xor_si256(c2[6497],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[6810],simde_mm256_xor_si256(c2[5587],simde_mm256_xor_si256(c2[4357],simde_mm256_xor_si256(c2[8669],simde_mm256_xor_si256(c2[5592],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[8685],simde_mm256_xor_si256(c2[379],simde_mm256_xor_si256(c2[4384],simde_mm256_xor_si256(c2[3462],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[5324],simde_mm256_xor_si256(c2[1316],simde_mm256_xor_si256(c2[6261],simde_mm256_xor_si256(c2[6875],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[8738],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[2274],simde_mm256_xor_si256(c2[7215],simde_mm256_xor_si256(c2[4439],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[7829],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[9072],simde_mm256_xor_si256(c2[7846],simde_mm256_xor_si256(c2[4779],simde_mm256_xor_si256(c2[1699],simde_mm256_xor_si256(c2[5701],simde_mm256_xor_si256(c2[6936],simde_mm256_xor_si256(c2[3870],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[3869],simde_mm256_xor_si256(c2[4499],simde_mm256_xor_si256(c2[1415],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[2045],simde_mm256_xor_si256(c2[4205],simde_mm256_xor_si256(c2[8820],simde_mm256_xor_si256(c2[1756],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[9156],simde_mm256_xor_si256(c2[4230],simde_mm256_xor_si256(c2[7309],simde_mm256_xor_si256(c2[7942],simde_mm256_xor_si256(c2[9174],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[1487],simde_mm256_xor_si256(c2[3950],simde_mm256_xor_si256(c2[8261],simde_mm256_xor_si256(c2[9202],simde_mm256_xor_si256(c2[7048],simde_mm256_xor_si256(c2[7047],simde_mm256_xor_si256(c2[9829],simde_mm256_xor_si256(c2[5517],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[2759],simde_mm256_xor_si256(c2[5842],c2[6765])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[147]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[8854],_mm256_xor_si256(c2[5825],c2[3377])))); + d2[147]=simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[8854],simde_mm256_xor_si256(c2[5825],c2[3377])))); //row: 22 - d2[154]=_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[1106],c2[6402]))); + d2[154]=simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[1106],c2[6402]))); //row: 23 - d2[161]=_mm256_xor_si256(c2[7408],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2609],c2[8263]))); + d2[161]=simde_mm256_xor_si256(c2[7408],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[2609],c2[8263]))); //row: 24 - d2[168]=_mm256_xor_si256(c2[8319],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[5237],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[2173],_mm256_xor_si256(c2[4330],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[2805],_mm256_xor_si256(c2[8348],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[8978],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[3754],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[6862],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[3179],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6581],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[8753],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[4132],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[6317],_mm256_xor_si256(c2[3237],_mm256_xor_si256(c2[7239],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[5408],_mm256_xor_si256(c2[7874],_mm256_xor_si256(c2[5407],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[5743],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[3294],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[2988],_mm256_xor_si256(c2[846],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[8854],_mm256_xor_si256(c2[9480],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[5488],_mm256_xor_si256(c2[9806],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[8586],_mm256_xor_si256(c2[8585],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[8292],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[7380],c2[8303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[168]=simde_mm256_xor_si256(c2[8319],simde_mm256_xor_si256(c2[2773],simde_mm256_xor_si256(c2[3391],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[5237],simde_mm256_xor_si256(c2[3714],simde_mm256_xor_si256(c2[2173],simde_mm256_xor_si256(c2[4330],simde_mm256_xor_si256(c2[8042],simde_mm256_xor_si256(c2[2805],simde_mm256_xor_si256(c2[8348],simde_mm256_xor_si256(c2[7132],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[8978],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[3754],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[5922],simde_mm256_xor_si256(c2[5000],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[6862],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[7799],simde_mm256_xor_si256(c2[8420],simde_mm256_xor_si256(c2[3179],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[6581],simde_mm256_xor_si256(c2[3812],simde_mm256_xor_si256(c2[8753],simde_mm256_xor_si256(c2[5984],simde_mm256_xor_si256(c2[4132],simde_mm256_xor_si256(c2[2915],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[9384],simde_mm256_xor_si256(c2[6317],simde_mm256_xor_si256(c2[3237],simde_mm256_xor_si256(c2[7239],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[5408],simde_mm256_xor_si256(c2[7874],simde_mm256_xor_si256(c2[5407],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[5743],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[3294],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[2988],simde_mm256_xor_si256(c2[846],simde_mm256_xor_si256(c2[5768],simde_mm256_xor_si256(c2[8854],simde_mm256_xor_si256(c2[9480],simde_mm256_xor_si256(c2[857],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[5488],simde_mm256_xor_si256(c2[9806],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[8586],simde_mm256_xor_si256(c2[8585],simde_mm256_xor_si256(c2[1512],simde_mm256_xor_si256(c2[7062],simde_mm256_xor_si256(c2[8292],simde_mm256_xor_si256(c2[4304],simde_mm256_xor_si256(c2[7380],c2[8303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[175]=_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[1937],_mm256_xor_si256(c2[408],c2[5434]))); + d2[175]=simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[408],c2[5434]))); //row: 26 - d2[182]=_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[6222],c2[9761]))); + d2[182]=simde_mm256_xor_si256(c2[3391],simde_mm256_xor_si256(c2[4961],simde_mm256_xor_si256(c2[6222],c2[9761]))); //row: 27 - d2[189]=_mm256_xor_si256(c2[4948],_mm256_xor_si256(c2[4092],c2[4429])); + d2[189]=simde_mm256_xor_si256(c2[4948],simde_mm256_xor_si256(c2[4092],c2[4429])); //row: 28 - d2[196]=_mm256_xor_si256(c2[5548],_mm256_xor_si256(c2[7760],_mm256_xor_si256(c2[7972],c2[5841]))); + d2[196]=simde_mm256_xor_si256(c2[5548],simde_mm256_xor_si256(c2[7760],simde_mm256_xor_si256(c2[7972],c2[5841]))); //row: 29 - d2[203]=_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[4005],_mm256_xor_si256(c2[4313],_mm256_xor_si256(c2[6484],_mm256_xor_si256(c2[4943],_mm256_xor_si256(c2[6792],_mm256_xor_si256(c2[7100],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[957],_mm256_xor_si256(c2[5575],_mm256_xor_si256(c2[1263],_mm256_xor_si256(c2[47],_mm256_xor_si256(c2[8672],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[6524],_mm256_xor_si256(c2[2830],_mm256_xor_si256(c2[3138],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[8699],_mm256_xor_si256(c2[7770],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[9632],_mm256_xor_si256(c2[5323],_mm256_xor_si256(c2[5631],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[5648],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[3198],_mm256_xor_si256(c2[9358],_mm256_xor_si256(c2[6274],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[8754],_mm256_xor_si256(c2[6902],_mm256_xor_si256(c2[5685],_mm256_xor_si256(c2[3532],_mm256_xor_si256(c2[1991],_mm256_xor_si256(c2[2299],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[9708],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[8178],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[7869],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[8807],_mm256_xor_si256(c2[5730],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[8513],_mm256_xor_si256(c2[2972],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[3584],_mm256_xor_si256(c2[6064],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[5758],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[2395],_mm256_xor_si256(c2[3627],_mm256_xor_si256(c2[4554],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[5802],_mm256_xor_si256(c2[8265],_mm256_xor_si256(c2[2413],_mm256_xor_si256(c2[2721],_mm256_xor_si256(c2[6721],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1500],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[9832],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[7074],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[910],c2[1218])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[203]=simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[5550],simde_mm256_xor_si256(c2[6161],simde_mm256_xor_si256(c2[4005],simde_mm256_xor_si256(c2[4313],simde_mm256_xor_si256(c2[6484],simde_mm256_xor_si256(c2[4943],simde_mm256_xor_si256(c2[6792],simde_mm256_xor_si256(c2[7100],simde_mm256_xor_si256(c2[6794],simde_mm256_xor_si256(c2[957],simde_mm256_xor_si256(c2[5575],simde_mm256_xor_si256(c2[1263],simde_mm256_xor_si256(c2[47],simde_mm256_xor_si256(c2[8672],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[3122],simde_mm256_xor_si256(c2[5911],simde_mm256_xor_si256(c2[6524],simde_mm256_xor_si256(c2[2830],simde_mm256_xor_si256(c2[3138],simde_mm256_xor_si256(c2[4694],simde_mm256_xor_si256(c2[8699],simde_mm256_xor_si256(c2[7770],simde_mm256_xor_si256(c2[4706],simde_mm256_xor_si256(c2[9632],simde_mm256_xor_si256(c2[5323],simde_mm256_xor_si256(c2[5631],simde_mm256_xor_si256(c2[714],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[5648],simde_mm256_xor_si256(c2[5956],simde_mm256_xor_si256(c2[3198],simde_mm256_xor_si256(c2[9358],simde_mm256_xor_si256(c2[6274],simde_mm256_xor_si256(c2[6582],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[8754],simde_mm256_xor_si256(c2[6902],simde_mm256_xor_si256(c2[5685],simde_mm256_xor_si256(c2[3532],simde_mm256_xor_si256(c2[1991],simde_mm256_xor_si256(c2[2299],simde_mm256_xor_si256(c2[9087],simde_mm256_xor_si256(c2[6007],simde_mm256_xor_si256(c2[9708],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[8178],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[7869],simde_mm256_xor_si256(c2[8177],simde_mm256_xor_si256(c2[8807],simde_mm256_xor_si256(c2[5730],simde_mm256_xor_si256(c2[7272],simde_mm256_xor_si256(c2[7580],simde_mm256_xor_si256(c2[6360],simde_mm256_xor_si256(c2[8513],simde_mm256_xor_si256(c2[2972],simde_mm256_xor_si256(c2[3280],simde_mm256_xor_si256(c2[3584],simde_mm256_xor_si256(c2[6064],simde_mm256_xor_si256(c2[4524],simde_mm256_xor_si256(c2[5758],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[8545],simde_mm256_xor_si256(c2[1461],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[2395],simde_mm256_xor_si256(c2[3627],simde_mm256_xor_si256(c2[4554],simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[5802],simde_mm256_xor_si256(c2[8265],simde_mm256_xor_si256(c2[2413],simde_mm256_xor_si256(c2[2721],simde_mm256_xor_si256(c2[6721],simde_mm256_xor_si256(c2[3655],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[1500],simde_mm256_xor_si256(c2[4289],simde_mm256_xor_si256(c2[9832],simde_mm256_xor_si256(c2[899],simde_mm256_xor_si256(c2[1207],simde_mm256_xor_si256(c2[7074],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[910],c2[1218])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[210]=_mm256_xor_si256(c2[8319],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[2173],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[4330],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[2805],_mm256_xor_si256(c2[8040],_mm256_xor_si256(c2[8348],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[3446],_mm256_xor_si256(c2[3754],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[6554],_mm256_xor_si256(c2[6862],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[2871],_mm256_xor_si256(c2[3179],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[6581],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[8753],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[4132],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[454],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[9076],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[6317],_mm256_xor_si256(c2[3237],_mm256_xor_si256(c2[6931],_mm256_xor_si256(c2[7239],_mm256_xor_si256(c2[5408],_mm256_xor_si256(c2[7874],_mm256_xor_si256(c2[5099],_mm256_xor_si256(c2[5407],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[2652],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[4495],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[5732],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[5435],_mm256_xor_si256(c2[5743],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[3294],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[2988],_mm256_xor_si256(c2[846],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[8546],_mm256_xor_si256(c2[8854],_mm256_xor_si256(c2[9480],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[1784],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[5180],_mm256_xor_si256(c2[5488],_mm256_xor_si256(c2[9498],_mm256_xor_si256(c2[9806],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[8586],_mm256_xor_si256(c2[8277],_mm256_xor_si256(c2[8585],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[8292],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[7380],_mm256_xor_si256(c2[7995],c2[8303]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[210]=simde_mm256_xor_si256(c2[8319],simde_mm256_xor_si256(c2[2773],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[3391],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[3714],simde_mm256_xor_si256(c2[1865],simde_mm256_xor_si256(c2[2173],simde_mm256_xor_si256(c2[4022],simde_mm256_xor_si256(c2[4330],simde_mm256_xor_si256(c2[8042],simde_mm256_xor_si256(c2[2805],simde_mm256_xor_si256(c2[8040],simde_mm256_xor_si256(c2[8348],simde_mm256_xor_si256(c2[7132],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[3446],simde_mm256_xor_si256(c2[3754],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[5922],simde_mm256_xor_si256(c2[4692],simde_mm256_xor_si256(c2[5000],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[6554],simde_mm256_xor_si256(c2[6862],simde_mm256_xor_si256(c2[2553],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[7799],simde_mm256_xor_si256(c2[8112],simde_mm256_xor_si256(c2[8420],simde_mm256_xor_si256(c2[2871],simde_mm256_xor_si256(c2[3179],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[6273],simde_mm256_xor_si256(c2[6581],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[3812],simde_mm256_xor_si256(c2[8753],simde_mm256_xor_si256(c2[5984],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[4132],simde_mm256_xor_si256(c2[2915],simde_mm256_xor_si256(c2[454],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[9076],simde_mm256_xor_si256(c2[9384],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[6317],simde_mm256_xor_si256(c2[3237],simde_mm256_xor_si256(c2[6931],simde_mm256_xor_si256(c2[7239],simde_mm256_xor_si256(c2[5408],simde_mm256_xor_si256(c2[7874],simde_mm256_xor_si256(c2[5099],simde_mm256_xor_si256(c2[5407],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[2652],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[4495],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[5732],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[5435],simde_mm256_xor_si256(c2[5743],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[3294],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[2680],simde_mm256_xor_si256(c2[2988],simde_mm256_xor_si256(c2[846],simde_mm256_xor_si256(c2[5768],simde_mm256_xor_si256(c2[8546],simde_mm256_xor_si256(c2[8854],simde_mm256_xor_si256(c2[9480],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[857],simde_mm256_xor_si256(c2[1784],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[5180],simde_mm256_xor_si256(c2[5488],simde_mm256_xor_si256(c2[9498],simde_mm256_xor_si256(c2[9806],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[8586],simde_mm256_xor_si256(c2[8277],simde_mm256_xor_si256(c2[8585],simde_mm256_xor_si256(c2[1512],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[7062],simde_mm256_xor_si256(c2[7984],simde_mm256_xor_si256(c2[8292],simde_mm256_xor_si256(c2[4304],simde_mm256_xor_si256(c2[7380],simde_mm256_xor_si256(c2[7995],c2[8303]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[217]=_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[9242],_mm256_xor_si256(c2[4313],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[4931],_mm256_xor_si256(c2[8012],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[5254],_mm256_xor_si256(c2[8642],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[5562],_mm256_xor_si256(c2[5870],_mm256_xor_si256(c2[4639],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[9582],_mm256_xor_si256(c2[9274],_mm256_xor_si256(c2[4345],_mm256_xor_si256(c2[4962],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[3739],_mm256_xor_si256(c2[8672],_mm256_xor_si256(c2[2509],_mm256_xor_si256(c2[7435],_mm256_xor_si256(c2[6821],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[9610],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[6837],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[3464],_mm256_xor_si256(c2[2536],_mm256_xor_si256(c2[7462],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[6540],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[8402],_mm256_xor_si256(c2[9330],_mm256_xor_si256(c2[4093],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[4413],_mm256_xor_si256(c2[9339],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[4411],_mm256_xor_si256(c2[4719],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[6890],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[2591],_mm256_xor_si256(c2[7524],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[5672],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[4455],_mm256_xor_si256(c2[7224],_mm256_xor_si256(c2[2302],_mm256_xor_si256(c2[5998],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[3853],_mm256_xor_si256(c2[8471],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[2022],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[4481],_mm256_xor_si256(c2[9414],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[6639],_mm256_xor_si256(c2[6947],_mm256_xor_si256(c2[2651],_mm256_xor_si256(c2[7577],_mm256_xor_si256(c2[9422],_mm256_xor_si256(c2[4500],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[2357],_mm256_xor_si256(c2[7283],_mm256_xor_si256(c2[6972],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[9763],_mm256_xor_si256(c2[4834],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[3294],_mm256_xor_si256(c2[9450],_mm256_xor_si256(c2[4528],_mm256_xor_si256(c2[7308],_mm256_xor_si256(c2[2386],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7308],_mm256_xor_si256(c2[5461],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[6094],_mm256_xor_si256(c2[1165],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[2397],_mm256_xor_si256(c2[8554],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[3632],_mm256_xor_si256(c2[9494],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[7028],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[7354],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[5199],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[3052],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[8602],_mm256_xor_si256(c2[4906],_mm256_xor_si256(c2[9524],_mm256_xor_si256(c2[9832],_mm256_xor_si256(c2[911],_mm256_xor_si256(c2[5844],_mm256_xor_si256(c2[3994],_mm256_xor_si256(c2[8920],_mm256_xor_si256(c2[4917],_mm256_xor_si256(c2[9535],c2[9843])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[217]=simde_mm256_xor_si256(c2[4933],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[9242],simde_mm256_xor_si256(c2[4313],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[4931],simde_mm256_xor_si256(c2[8012],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[5254],simde_mm256_xor_si256(c2[8642],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[5562],simde_mm256_xor_si256(c2[5870],simde_mm256_xor_si256(c2[4639],simde_mm256_xor_si256(c2[4649],simde_mm256_xor_si256(c2[9582],simde_mm256_xor_si256(c2[9274],simde_mm256_xor_si256(c2[4345],simde_mm256_xor_si256(c2[4962],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[3739],simde_mm256_xor_si256(c2[8672],simde_mm256_xor_si256(c2[2509],simde_mm256_xor_si256(c2[7435],simde_mm256_xor_si256(c2[6821],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[1892],simde_mm256_xor_si256(c2[9610],simde_mm256_xor_si256(c2[4681],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[5294],simde_mm256_xor_si256(c2[6837],simde_mm256_xor_si256(c2[1600],simde_mm256_xor_si256(c2[1908],simde_mm256_xor_si256(c2[8386],simde_mm256_xor_si256(c2[3464],simde_mm256_xor_si256(c2[2536],simde_mm256_xor_si256(c2[7462],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[6540],simde_mm256_xor_si256(c2[8405],simde_mm256_xor_si256(c2[3476],simde_mm256_xor_si256(c2[3476],simde_mm256_xor_si256(c2[8402],simde_mm256_xor_si256(c2[9330],simde_mm256_xor_si256(c2[4093],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[4413],simde_mm256_xor_si256(c2[9339],simde_mm256_xor_si256(c2[5027],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[4411],simde_mm256_xor_si256(c2[4719],simde_mm256_xor_si256(c2[5335],simde_mm256_xor_si256(c2[6890],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[3195],simde_mm256_xor_si256(c2[8121],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[5044],simde_mm256_xor_si256(c2[5352],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[438],simde_mm256_xor_si256(c2[2591],simde_mm256_xor_si256(c2[7524],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[5672],simde_mm256_xor_si256(c2[9384],simde_mm256_xor_si256(c2[4455],simde_mm256_xor_si256(c2[7224],simde_mm256_xor_si256(c2[2302],simde_mm256_xor_si256(c2[5998],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[2931],simde_mm256_xor_si256(c2[7857],simde_mm256_xor_si256(c2[9706],simde_mm256_xor_si256(c2[4777],simde_mm256_xor_si256(c2[3853],simde_mm256_xor_si256(c2[8471],simde_mm256_xor_si256(c2[8779],simde_mm256_xor_si256(c2[2022],simde_mm256_xor_si256(c2[6948],simde_mm256_xor_si256(c2[4481],simde_mm256_xor_si256(c2[9414],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[6639],simde_mm256_xor_si256(c2[6947],simde_mm256_xor_si256(c2[2651],simde_mm256_xor_si256(c2[7577],simde_mm256_xor_si256(c2[9422],simde_mm256_xor_si256(c2[4500],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[6035],simde_mm256_xor_si256(c2[6343],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[5130],simde_mm256_xor_si256(c2[2357],simde_mm256_xor_si256(c2[7283],simde_mm256_xor_si256(c2[6972],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[9763],simde_mm256_xor_si256(c2[4834],simde_mm256_xor_si256(c2[8223],simde_mm256_xor_si256(c2[3294],simde_mm256_xor_si256(c2[9450],simde_mm256_xor_si256(c2[4528],simde_mm256_xor_si256(c2[7308],simde_mm256_xor_si256(c2[2386],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[7308],simde_mm256_xor_si256(c2[5461],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[6094],simde_mm256_xor_si256(c2[1165],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[2397],simde_mm256_xor_si256(c2[8554],simde_mm256_xor_si256(c2[3324],simde_mm256_xor_si256(c2[3632],simde_mm256_xor_si256(c2[9494],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[2102],simde_mm256_xor_si256(c2[7028],simde_mm256_xor_si256(c2[6413],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[7354],simde_mm256_xor_si256(c2[2425],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[271],simde_mm256_xor_si256(c2[5199],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[7981],simde_mm256_xor_si256(c2[3052],simde_mm256_xor_si256(c2[3669],simde_mm256_xor_si256(c2[8602],simde_mm256_xor_si256(c2[4906],simde_mm256_xor_si256(c2[9524],simde_mm256_xor_si256(c2[9832],simde_mm256_xor_si256(c2[911],simde_mm256_xor_si256(c2[5844],simde_mm256_xor_si256(c2[3994],simde_mm256_xor_si256(c2[8920],simde_mm256_xor_si256(c2[4917],simde_mm256_xor_si256(c2[9535],c2[9843])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[224]=_mm256_xor_si256(c2[9240],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[2156],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[4635],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[3094],_mm256_xor_si256(c2[4943],_mm256_xor_si256(c2[5251],_mm256_xor_si256(c2[8963],_mm256_xor_si256(c2[3726],_mm256_xor_si256(c2[8961],_mm256_xor_si256(c2[9269],_mm256_xor_si256(c2[8053],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[4062],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[1289],_mm256_xor_si256(c2[2845],_mm256_xor_si256(c2[6850],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[7482],_mm256_xor_si256(c2[7790],_mm256_xor_si256(c2[3474],_mm256_xor_si256(c2[3782],_mm256_xor_si256(c2[8727],_mm256_xor_si256(c2[9033],_mm256_xor_si256(c2[9341],_mm256_xor_si256(c2[3799],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[7509],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[4733],_mm256_xor_si256(c2[9674],_mm256_xor_si256(c2[6905],_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[5060],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[1375],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[142],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4158],_mm256_xor_si256(c2[7859],_mm256_xor_si256(c2[8167],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[8795],_mm256_xor_si256(c2[6020],_mm256_xor_si256(c2[6328],_mm256_xor_si256(c2[5410],_mm256_xor_si256(c2[6958],_mm256_xor_si256(c2[3573],_mm256_xor_si256(c2[3881],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[4511],_mm256_xor_si256(c2[6356],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[8205],_mm256_xor_si256(c2[4215],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[9775],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[3953],_mm256_xor_si256(c2[6108],_mm256_xor_si256(c2[6416],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[9507],_mm256_xor_si256(c2[9198],_mm256_xor_si256(c2[9506],_mm256_xor_si256(c2[2440],_mm256_xor_si256(c2[7675],_mm256_xor_si256(c2[7983],_mm256_xor_si256(c2[8905],_mm256_xor_si256(c2[9213],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[8923],c2[9231]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[224]=simde_mm256_xor_si256(c2[9240],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[4004],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[2156],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[4635],simde_mm256_xor_si256(c2[2786],simde_mm256_xor_si256(c2[3094],simde_mm256_xor_si256(c2[4943],simde_mm256_xor_si256(c2[5251],simde_mm256_xor_si256(c2[8963],simde_mm256_xor_si256(c2[3726],simde_mm256_xor_si256(c2[8961],simde_mm256_xor_si256(c2[9269],simde_mm256_xor_si256(c2[8053],simde_mm256_xor_si256(c2[6823],simde_mm256_xor_si256(c2[972],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[4062],simde_mm256_xor_si256(c2[4374],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[1289],simde_mm256_xor_si256(c2[2845],simde_mm256_xor_si256(c2[6850],simde_mm256_xor_si256(c2[5620],simde_mm256_xor_si256(c2[5928],simde_mm256_xor_si256(c2[2857],simde_mm256_xor_si256(c2[7482],simde_mm256_xor_si256(c2[7790],simde_mm256_xor_si256(c2[3474],simde_mm256_xor_si256(c2[3782],simde_mm256_xor_si256(c2[8727],simde_mm256_xor_si256(c2[9033],simde_mm256_xor_si256(c2[9341],simde_mm256_xor_si256(c2[3799],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[1349],simde_mm256_xor_si256(c2[7201],simde_mm256_xor_si256(c2[7509],simde_mm256_xor_si256(c2[4425],simde_mm256_xor_si256(c2[4733],simde_mm256_xor_si256(c2[9674],simde_mm256_xor_si256(c2[6905],simde_mm256_xor_si256(c2[4752],simde_mm256_xor_si256(c2[5060],simde_mm256_xor_si256(c2[3836],simde_mm256_xor_si256(c2[1375],simde_mm256_xor_si256(c2[1683],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[4158],simde_mm256_xor_si256(c2[7859],simde_mm256_xor_si256(c2[8167],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[8795],simde_mm256_xor_si256(c2[6020],simde_mm256_xor_si256(c2[6328],simde_mm256_xor_si256(c2[5410],simde_mm256_xor_si256(c2[6958],simde_mm256_xor_si256(c2[3573],simde_mm256_xor_si256(c2[3881],simde_mm256_xor_si256(c2[5423],simde_mm256_xor_si256(c2[5731],simde_mm256_xor_si256(c2[4511],simde_mm256_xor_si256(c2[6356],simde_mm256_xor_si256(c2[6664],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[8205],simde_mm256_xor_si256(c2[4215],simde_mm256_xor_si256(c2[2675],simde_mm256_xor_si256(c2[3601],simde_mm256_xor_si256(c2[3909],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[6696],simde_mm256_xor_si256(c2[9467],simde_mm256_xor_si256(c2[9775],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[2705],simde_mm256_xor_si256(c2[3013],simde_mm256_xor_si256(c2[3953],simde_mm256_xor_si256(c2[6108],simde_mm256_xor_si256(c2[6416],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[1806],simde_mm256_xor_si256(c2[9507],simde_mm256_xor_si256(c2[9198],simde_mm256_xor_si256(c2[9506],simde_mm256_xor_si256(c2[2440],simde_mm256_xor_si256(c2[7675],simde_mm256_xor_si256(c2[7983],simde_mm256_xor_si256(c2[8905],simde_mm256_xor_si256(c2[9213],simde_mm256_xor_si256(c2[5225],simde_mm256_xor_si256(c2[8308],simde_mm256_xor_si256(c2[8923],c2[9231]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[231]=_mm256_xor_si256(c2[5561],_mm256_xor_si256(c2[5265],_mm256_xor_si256(c2[467],c2[3070]))); + d2[231]=simde_mm256_xor_si256(c2[5561],simde_mm256_xor_si256(c2[5265],simde_mm256_xor_si256(c2[467],c2[3070]))); //row: 34 - d2[238]=_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[8111],_mm256_xor_si256(c2[1444],c2[7018]))); + d2[238]=simde_mm256_xor_si256(c2[5546],simde_mm256_xor_si256(c2[8111],simde_mm256_xor_si256(c2[1444],c2[7018]))); //row: 35 - d2[245]=_mm256_xor_si256(c2[8013],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[1867],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[6819],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[2828],_mm256_xor_si256(c2[3448],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[5616],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[1630],_mm256_xor_si256(c2[6556],_mm256_xor_si256(c2[2548],_mm256_xor_si256(c2[4093],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[8107],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[115],_mm256_xor_si256(c2[6275],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[8447],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[3826],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[9078],_mm256_xor_si256(c2[6011],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[6933],_mm256_xor_si256(c2[5102],_mm256_xor_si256(c2[7561],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[8176],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[5437],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[2988],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[5462],_mm256_xor_si256(c2[8541],_mm256_xor_si256(c2[9174],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[1779],_mm256_xor_si256(c2[2719],_mm256_xor_si256(c2[5182],_mm256_xor_si256(c2[9493],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[8280],_mm256_xor_si256(c2[8279],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[7986],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[7074],c2[7997]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[245]=simde_mm256_xor_si256(c2[8013],simde_mm256_xor_si256(c2[2467],simde_mm256_xor_si256(c2[3085],simde_mm256_xor_si256(c2[1237],simde_mm256_xor_si256(c2[3408],simde_mm256_xor_si256(c2[1867],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[7729],simde_mm256_xor_si256(c2[2492],simde_mm256_xor_si256(c2[8042],simde_mm256_xor_si256(c2[6819],simde_mm256_xor_si256(c2[5589],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[2828],simde_mm256_xor_si256(c2[3448],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[5616],simde_mm256_xor_si256(c2[4694],simde_mm256_xor_si256(c2[1630],simde_mm256_xor_si256(c2[6556],simde_mm256_xor_si256(c2[2548],simde_mm256_xor_si256(c2[4093],simde_mm256_xor_si256(c2[7493],simde_mm256_xor_si256(c2[8107],simde_mm256_xor_si256(c2[2873],simde_mm256_xor_si256(c2[115],simde_mm256_xor_si256(c2[6275],simde_mm256_xor_si256(c2[3506],simde_mm256_xor_si256(c2[8447],simde_mm256_xor_si256(c2[5671],simde_mm256_xor_si256(c2[3826],simde_mm256_xor_si256(c2[2609],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[9078],simde_mm256_xor_si256(c2[6011],simde_mm256_xor_si256(c2[2931],simde_mm256_xor_si256(c2[6933],simde_mm256_xor_si256(c2[5102],simde_mm256_xor_si256(c2[7561],simde_mm256_xor_si256(c2[5101],simde_mm256_xor_si256(c2[8176],simde_mm256_xor_si256(c2[5731],simde_mm256_xor_si256(c2[2647],simde_mm256_xor_si256(c2[4497],simde_mm256_xor_si256(c2[3277],simde_mm256_xor_si256(c2[5437],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[2988],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[2675],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[5462],simde_mm256_xor_si256(c2[8541],simde_mm256_xor_si256(c2[9174],simde_mm256_xor_si256(c2[551],simde_mm256_xor_si256(c2[1779],simde_mm256_xor_si256(c2[2719],simde_mm256_xor_si256(c2[5182],simde_mm256_xor_si256(c2[9493],simde_mm256_xor_si256(c2[579],simde_mm256_xor_si256(c2[8280],simde_mm256_xor_si256(c2[8279],simde_mm256_xor_si256(c2[1206],simde_mm256_xor_si256(c2[6749],simde_mm256_xor_si256(c2[7986],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[7074],c2[7997]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[252]=_mm256_xor_si256(c2[9246],_mm256_xor_si256(c2[9132],_mm256_xor_si256(c2[210],c2[2100]))); + d2[252]=simde_mm256_xor_si256(c2[9246],simde_mm256_xor_si256(c2[9132],simde_mm256_xor_si256(c2[210],c2[2100]))); //row: 37 - d2[259]=_mm256_xor_si256(c2[2776],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[8011],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[8026],_mm256_xor_si256(c2[8334],_mm256_xor_si256(c2[6793],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[5252],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[7425],_mm256_xor_si256(c2[3113],_mm256_xor_si256(c2[1582],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[4988],_mm256_xor_si256(c2[6236],_mm256_xor_si256(c2[6544],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[6248],_mm256_xor_si256(c2[6556],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[3178],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[8432],_mm256_xor_si256(c2[3210],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[8752],_mm256_xor_si256(c2[7227],_mm256_xor_si256(c2[7535],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[4149],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[9720],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[494],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[9423],_mm256_xor_si256(c2[1112],_mm256_xor_si256(c2[8210],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[7606],_mm256_xor_si256(c2[7914],_mm256_xor_si256(c2[6374],_mm256_xor_si256(c2[7608],_mm256_xor_si256(c2[5158],_mm256_xor_si256(c2[5466],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[3612],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[6712],_mm256_xor_si256(c2[7337],_mm256_xor_si256(c2[7645],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[4564],_mm256_xor_si256(c2[5197],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[6132],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[8616],_mm256_xor_si256(c2[8924],_mm256_xor_si256(c2[2145],c2[3068]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[259]=simde_mm256_xor_si256(c2[2776],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[7393],simde_mm256_xor_si256(c2[8011],simde_mm256_xor_si256(c2[6163],simde_mm256_xor_si256(c2[8026],simde_mm256_xor_si256(c2[8334],simde_mm256_xor_si256(c2[6793],simde_mm256_xor_si256(c2[8950],simde_mm256_xor_si256(c2[5252],simde_mm256_xor_si256(c2[2492],simde_mm256_xor_si256(c2[2800],simde_mm256_xor_si256(c2[7425],simde_mm256_xor_si256(c2[3113],simde_mm256_xor_si256(c2[1582],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[8374],simde_mm256_xor_si256(c2[4988],simde_mm256_xor_si256(c2[6236],simde_mm256_xor_si256(c2[6544],simde_mm256_xor_si256(c2[687],simde_mm256_xor_si256(c2[9620],simde_mm256_xor_si256(c2[6248],simde_mm256_xor_si256(c2[6556],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[7481],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[3178],simde_mm256_xor_si256(c2[7799],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[8432],simde_mm256_xor_si256(c2[3210],simde_mm256_xor_si256(c2[3518],simde_mm256_xor_si256(c2[742],simde_mm256_xor_si256(c2[8752],simde_mm256_xor_si256(c2[7227],simde_mm256_xor_si256(c2[7535],simde_mm256_xor_si256(c2[5382],simde_mm256_xor_si256(c2[4149],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[7857],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[9720],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[2632],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[494],simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[7580],simde_mm256_xor_si256(c2[9423],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[8210],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[5130],simde_mm256_xor_si256(c2[7606],simde_mm256_xor_si256(c2[7914],simde_mm256_xor_si256(c2[6374],simde_mm256_xor_si256(c2[7608],simde_mm256_xor_si256(c2[5158],simde_mm256_xor_si256(c2[5466],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[3612],simde_mm256_xor_si256(c2[4245],simde_mm256_xor_si256(c2[5477],simde_mm256_xor_si256(c2[6712],simde_mm256_xor_si256(c2[7337],simde_mm256_xor_si256(c2[7645],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[4564],simde_mm256_xor_si256(c2[5197],simde_mm256_xor_si256(c2[5505],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[3350],simde_mm256_xor_si256(c2[5824],simde_mm256_xor_si256(c2[6132],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[3057],simde_mm256_xor_si256(c2[8616],simde_mm256_xor_si256(c2[8924],simde_mm256_xor_si256(c2[2145],c2[3068]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[266]=_mm256_xor_si256(c2[8319],_mm256_xor_si256(c2[8136],_mm256_xor_si256(c2[2914],c2[3248]))); + d2[266]=simde_mm256_xor_si256(c2[8319],simde_mm256_xor_si256(c2[8136],simde_mm256_xor_si256(c2[2914],c2[3248]))); //row: 39 - d2[273]=_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[5335],c2[5813]))); + d2[273]=simde_mm256_xor_si256(c2[3710],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[5335],c2[5813]))); //row: 40 - d2[280]=_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[4117],c2[241])); + d2[280]=simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[4117],c2[241])); //row: 41 - d2[287]=_mm256_xor_si256(c2[7098],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[8751],c2[2413]))); + d2[287]=simde_mm256_xor_si256(c2[7098],simde_mm256_xor_si256(c2[7132],simde_mm256_xor_si256(c2[8751],c2[2413]))); //row: 42 - d2[294]=_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[8933],_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[7085],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[9564],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[8655],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[5894],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[8991],_mm256_xor_si256(c2[9296],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[5910],_mm256_xor_si256(c2[6218],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[7774],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[7786],_mm256_xor_si256(c2[2549],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[8403],_mm256_xor_si256(c2[8711],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[4415],_mm256_xor_si256(c2[8728],_mm256_xor_si256(c2[9036],_mm256_xor_si256(c2[6278],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[2576],_mm256_xor_si256(c2[9354],_mm256_xor_si256(c2[9662],_mm256_xor_si256(c2[4748],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[9674],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[8765],_mm256_xor_si256(c2[6304],_mm256_xor_si256(c2[6612],_mm256_xor_si256(c2[5071],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[2926],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[8502],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6052],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[9144],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[8530],_mm256_xor_si256(c2[8838],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4849],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[6707],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[8882],_mm256_xor_si256(c2[1182],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[5493],_mm256_xor_si256(c2[5801],_mm256_xor_si256(c2[6735],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[4580],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[2749],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[3979],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[299],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[3990],c2[4298])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[294]=simde_mm256_xor_si256(c2[4314],simde_mm256_xor_si256(c2[8630],simde_mm256_xor_si256(c2[8933],simde_mm256_xor_si256(c2[9241],simde_mm256_xor_si256(c2[7085],simde_mm256_xor_si256(c2[7393],simde_mm256_xor_si256(c2[5547],simde_mm256_xor_si256(c2[9564],simde_mm256_xor_si256(c2[7715],simde_mm256_xor_si256(c2[8023],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[8655],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[3127],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[5894],simde_mm256_xor_si256(c2[6202],simde_mm256_xor_si256(c2[8991],simde_mm256_xor_si256(c2[9296],simde_mm256_xor_si256(c2[9604],simde_mm256_xor_si256(c2[5910],simde_mm256_xor_si256(c2[6218],simde_mm256_xor_si256(c2[8374],simde_mm256_xor_si256(c2[7774],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[687],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[7786],simde_mm256_xor_si256(c2[2549],simde_mm256_xor_si256(c2[2857],simde_mm256_xor_si256(c2[8403],simde_mm256_xor_si256(c2[8711],simde_mm256_xor_si256(c2[3794],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[4415],simde_mm256_xor_si256(c2[8728],simde_mm256_xor_si256(c2[9036],simde_mm256_xor_si256(c2[6278],simde_mm256_xor_si256(c2[2268],simde_mm256_xor_si256(c2[2576],simde_mm256_xor_si256(c2[9354],simde_mm256_xor_si256(c2[9662],simde_mm256_xor_si256(c2[4748],simde_mm256_xor_si256(c2[1979],simde_mm256_xor_si256(c2[9674],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[8765],simde_mm256_xor_si256(c2[6304],simde_mm256_xor_si256(c2[6612],simde_mm256_xor_si256(c2[5071],simde_mm256_xor_si256(c2[5379],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[9087],simde_mm256_xor_si256(c2[2926],simde_mm256_xor_si256(c2[3234],simde_mm256_xor_si256(c2[1403],simde_mm256_xor_si256(c2[3869],simde_mm256_xor_si256(c2[1094],simde_mm256_xor_si256(c2[1402],simde_mm256_xor_si256(c2[2032],simde_mm256_xor_si256(c2[8502],simde_mm256_xor_si256(c2[8810],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[9440],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[6052],simde_mm256_xor_si256(c2[6360],simde_mm256_xor_si256(c2[9144],simde_mm256_xor_si256(c2[7604],simde_mm256_xor_si256(c2[8530],simde_mm256_xor_si256(c2[8838],simde_mm256_xor_si256(c2[6696],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[4849],simde_mm256_xor_si256(c2[5475],simde_mm256_xor_si256(c2[6399],simde_mm256_xor_si256(c2[6707],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[7942],simde_mm256_xor_si256(c2[8882],simde_mm256_xor_si256(c2[1182],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[5493],simde_mm256_xor_si256(c2[5801],simde_mm256_xor_si256(c2[6735],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[4272],simde_mm256_xor_si256(c2[4580],simde_mm256_xor_si256(c2[7369],simde_mm256_xor_si256(c2[2749],simde_mm256_xor_si256(c2[3057],simde_mm256_xor_si256(c2[3979],simde_mm256_xor_si256(c2[4287],simde_mm256_xor_si256(c2[299],simde_mm256_xor_si256(c2[3375],simde_mm256_xor_si256(c2[3990],c2[4298])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[301]=_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[4622],_mm256_xor_si256(c2[5240],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[5563],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[5871],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[4332],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[4654],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[8974],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[4990],_mm256_xor_si256(c2[5603],_mm256_xor_si256(c2[1909],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[7771],_mm256_xor_si256(c2[6849],_mm256_xor_si256(c2[3785],_mm256_xor_si256(c2[8711],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[4710],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[407],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[2270],_mm256_xor_si256(c2[8430],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[5661],_mm256_xor_si256(c2[747],_mm256_xor_si256(c2[7826],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[4764],_mm256_xor_si256(c2[2604],_mm256_xor_si256(c2[1070],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[8166],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[8780],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[9716],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[7256],_mm256_xor_si256(c2[7886],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[6344],_mm256_xor_si256(c2[6652],_mm256_xor_si256(c2[5432],_mm256_xor_si256(c2[7592],_mm256_xor_si256(c2[2044],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[5143],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[7617],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[7000],_mm256_xor_si256(c2[1474],_mm256_xor_si256(c2[2706],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[3934],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[7337],_mm256_xor_si256(c2[1485],_mm256_xor_si256(c2[1793],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[2734],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[8904],_mm256_xor_si256(c2[9833],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[6146],_mm256_xor_si256(c2[9229],_mm256_xor_si256(c2[9844],c2[297])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[301]=simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[4622],simde_mm256_xor_si256(c2[5240],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[3392],simde_mm256_xor_si256(c2[5563],simde_mm256_xor_si256(c2[4022],simde_mm256_xor_si256(c2[5871],simde_mm256_xor_si256(c2[6179],simde_mm256_xor_si256(c2[4332],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[4654],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[8974],simde_mm256_xor_si256(c2[7744],simde_mm256_xor_si256(c2[1893],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[4990],simde_mm256_xor_si256(c2[5603],simde_mm256_xor_si256(c2[1909],simde_mm256_xor_si256(c2[2217],simde_mm256_xor_si256(c2[3766],simde_mm256_xor_si256(c2[7771],simde_mm256_xor_si256(c2[6849],simde_mm256_xor_si256(c2[3785],simde_mm256_xor_si256(c2[8711],simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[4710],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[407],simde_mm256_xor_si256(c2[4720],simde_mm256_xor_si256(c2[5028],simde_mm256_xor_si256(c2[2270],simde_mm256_xor_si256(c2[8430],simde_mm256_xor_si256(c2[5353],simde_mm256_xor_si256(c2[5661],simde_mm256_xor_si256(c2[747],simde_mm256_xor_si256(c2[7826],simde_mm256_xor_si256(c2[5981],simde_mm256_xor_si256(c2[4764],simde_mm256_xor_si256(c2[2604],simde_mm256_xor_si256(c2[1070],simde_mm256_xor_si256(c2[1378],simde_mm256_xor_si256(c2[8166],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[8780],simde_mm256_xor_si256(c2[9088],simde_mm256_xor_si256(c2[7257],simde_mm256_xor_si256(c2[9716],simde_mm256_xor_si256(c2[6948],simde_mm256_xor_si256(c2[7256],simde_mm256_xor_si256(c2[7886],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[6344],simde_mm256_xor_si256(c2[6652],simde_mm256_xor_si256(c2[5432],simde_mm256_xor_si256(c2[7592],simde_mm256_xor_si256(c2[2044],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[5143],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[4830],simde_mm256_xor_si256(c2[2688],simde_mm256_xor_si256(c2[7617],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[7000],simde_mm256_xor_si256(c2[1474],simde_mm256_xor_si256(c2[2706],simde_mm256_xor_si256(c2[3626],simde_mm256_xor_si256(c2[3934],simde_mm256_xor_si256(c2[4874],simde_mm256_xor_si256(c2[7337],simde_mm256_xor_si256(c2[1485],simde_mm256_xor_si256(c2[1793],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[2734],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[579],simde_mm256_xor_si256(c2[3361],simde_mm256_xor_si256(c2[8904],simde_mm256_xor_si256(c2[9833],simde_mm256_xor_si256(c2[286],simde_mm256_xor_si256(c2[6146],simde_mm256_xor_si256(c2[9229],simde_mm256_xor_si256(c2[9844],c2[297])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[308]=_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[6474],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[8638],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[9254],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[3417],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[8065],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[6848],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[7785],_mm256_xor_si256(c2[2875],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[8110],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[8736],_mm256_xor_si256(c2[3822],_mm256_xor_si256(c2[1053],_mm256_xor_si256(c2[9063],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[8168],_mm256_xor_si256(c2[2315],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[2943],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[7884],_mm256_xor_si256(c2[9734],_mm256_xor_si256(c2[8514],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[5434],_mm256_xor_si256(c2[8218],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[7912],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[3923],_mm256_xor_si256(c2[4556],_mm256_xor_si256(c2[5788],_mm256_xor_si256(c2[7016],_mm256_xor_si256(c2[7956],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[5816],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[6443],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[9228],_mm256_xor_si256(c2[2456],c2[3379]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[308]=simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[7704],simde_mm256_xor_si256(c2[8322],simde_mm256_xor_si256(c2[6474],simde_mm256_xor_si256(c2[6162],simde_mm256_xor_si256(c2[8638],simde_mm256_xor_si256(c2[7104],simde_mm256_xor_si256(c2[9254],simde_mm256_xor_si256(c2[3111],simde_mm256_xor_si256(c2[7729],simde_mm256_xor_si256(c2[3417],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[8065],simde_mm256_xor_si256(c2[8685],simde_mm256_xor_si256(c2[5292],simde_mm256_xor_si256(c2[6848],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[6860],simde_mm256_xor_si256(c2[1938],simde_mm256_xor_si256(c2[7785],simde_mm256_xor_si256(c2[2875],simde_mm256_xor_si256(c2[3489],simde_mm256_xor_si256(c2[8110],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[5352],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[8736],simde_mm256_xor_si256(c2[3822],simde_mm256_xor_si256(c2[1053],simde_mm256_xor_si256(c2[9063],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[7846],simde_mm256_xor_si256(c2[5686],simde_mm256_xor_si256(c2[4453],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[8168],simde_mm256_xor_si256(c2[2315],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[2943],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[7884],simde_mm256_xor_si256(c2[9734],simde_mm256_xor_si256(c2[8514],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[5434],simde_mm256_xor_si256(c2[8218],simde_mm256_xor_si256(c2[6678],simde_mm256_xor_si256(c2[7912],simde_mm256_xor_si256(c2[5770],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[3923],simde_mm256_xor_si256(c2[4556],simde_mm256_xor_si256(c2[5788],simde_mm256_xor_si256(c2[7016],simde_mm256_xor_si256(c2[7956],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[4875],simde_mm256_xor_si256(c2[5816],simde_mm256_xor_si256(c2[3655],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[6443],simde_mm256_xor_si256(c2[2131],simde_mm256_xor_si256(c2[3361],simde_mm256_xor_si256(c2[9228],simde_mm256_xor_si256(c2[2456],c2[3379]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[315]=_mm256_xor_si256(c2[7411],_mm256_xor_si256(c2[7787],c2[9072])); + d2[315]=simde_mm256_xor_si256(c2[7411],simde_mm256_xor_si256(c2[7787],c2[9072])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc256_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc256_byte.c index 30c446cdbf..90448aa121 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc256_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc256_byte.c @@ -11,141 +11,141 @@ static inline void ldpc256_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[9159],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[10964],_mm256_xor_si256(c2[7443],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[9923],_mm256_xor_si256(c2[10977],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[7475],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[10678],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[2947],_mm256_xor_si256(c2[6117],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[9649],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[11058],_mm256_xor_si256(c2[1927],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[10038],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[11109],_mm256_xor_si256(c2[2307],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[9780],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[4870],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[11223],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[11248],_mm256_xor_si256(c2[10192],c2[4560])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[9159],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[3523],simde_mm256_xor_si256(c2[8803],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[5299],simde_mm256_xor_si256(c2[8818],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[5319],simde_mm256_xor_si256(c2[8837],simde_mm256_xor_si256(c2[10964],simde_mm256_xor_si256(c2[7443],simde_mm256_xor_si256(c2[7090],simde_mm256_xor_si256(c2[9923],simde_mm256_xor_si256(c2[10977],simde_mm256_xor_si256(c2[7104],simde_mm256_xor_si256(c2[1491],simde_mm256_xor_si256(c2[2546],simde_mm256_xor_si256(c2[7475],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[10306],simde_mm256_xor_si256(c2[7844],simde_mm256_xor_si256(c2[10678],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[2947],simde_mm256_xor_si256(c2[6117],simde_mm256_xor_si256(c2[6823],simde_mm256_xor_si256(c2[9649],simde_mm256_xor_si256(c2[4725],simde_mm256_xor_si256(c2[11058],simde_mm256_xor_si256(c2[1927],simde_mm256_xor_si256(c2[2625],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[5107],simde_mm256_xor_si256(c2[10038],simde_mm256_xor_si256(c2[7922],simde_mm256_xor_si256(c2[11109],simde_mm256_xor_si256(c2[2307],simde_mm256_xor_si256(c2[7943],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[9718],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[6918],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[599],simde_mm256_xor_si256(c2[8352],simde_mm256_xor_si256(c2[5188],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[9780],simde_mm256_xor_si256(c2[7671],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[10853],simde_mm256_xor_si256(c2[4870],simde_mm256_xor_si256(c2[7335],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[11223],simde_mm256_xor_si256(c2[9815],simde_mm256_xor_si256(c2[5607],simde_mm256_xor_si256(c2[7715],simde_mm256_xor_si256(c2[5956],simde_mm256_xor_si256(c2[11248],simde_mm256_xor_si256(c2[10192],c2[4560])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[8]=_mm256_xor_si256(c2[9159],_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[10964],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[9649],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1927],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[11109],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[11248],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],c2[4912]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[8]=simde_mm256_xor_si256(c2[9159],simde_mm256_xor_si256(c2[9511],simde_mm256_xor_si256(c2[1056],simde_mm256_xor_si256(c2[3875],simde_mm256_xor_si256(c2[9155],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[5651],simde_mm256_xor_si256(c2[9170],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[5671],simde_mm256_xor_si256(c2[9189],simde_mm256_xor_si256(c2[10964],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[7795],simde_mm256_xor_si256(c2[7442],simde_mm256_xor_si256(c2[10275],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[7456],simde_mm256_xor_si256(c2[1491],simde_mm256_xor_si256(c2[1843],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[7827],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[3968],simde_mm256_xor_si256(c2[10658],simde_mm256_xor_si256(c2[8196],simde_mm256_xor_si256(c2[11030],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[3299],simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[7175],simde_mm256_xor_si256(c2[9649],simde_mm256_xor_si256(c2[10001],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[1927],simde_mm256_xor_si256(c2[2279],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[3332],simde_mm256_xor_si256(c2[5107],simde_mm256_xor_si256(c2[5459],simde_mm256_xor_si256(c2[10390],simde_mm256_xor_si256(c2[8274],simde_mm256_xor_si256(c2[11109],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[2659],simde_mm256_xor_si256(c2[8295],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[3728],simde_mm256_xor_si256(c2[5492],simde_mm256_xor_si256(c2[10070],simde_mm256_xor_si256(c2[5155],simde_mm256_xor_si256(c2[935],simde_mm256_xor_si256(c2[7270],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1654],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[8352],simde_mm256_xor_si256(c2[8704],simde_mm256_xor_si256(c2[5540],simde_mm256_xor_si256(c2[6247],simde_mm256_xor_si256(c2[10132],simde_mm256_xor_si256(c2[8023],simde_mm256_xor_si256(c2[4850],simde_mm256_xor_si256(c2[10853],simde_mm256_xor_si256(c2[11205],simde_mm256_xor_si256(c2[5222],simde_mm256_xor_si256(c2[7687],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[10167],simde_mm256_xor_si256(c2[5607],simde_mm256_xor_si256(c2[5959],simde_mm256_xor_si256(c2[8067],simde_mm256_xor_si256(c2[6308],simde_mm256_xor_si256(c2[11248],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[10544],c2[4912]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[16]=_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[10977],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7475],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6117],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[11058],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[4870],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4560],c2[4912])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[16]=simde_mm256_xor_si256(c2[9511],simde_mm256_xor_si256(c2[1056],simde_mm256_xor_si256(c2[3523],simde_mm256_xor_si256(c2[3875],simde_mm256_xor_si256(c2[8803],simde_mm256_xor_si256(c2[9155],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[5299],simde_mm256_xor_si256(c2[5651],simde_mm256_xor_si256(c2[8818],simde_mm256_xor_si256(c2[9170],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[5671],simde_mm256_xor_si256(c2[8837],simde_mm256_xor_si256(c2[9189],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[7795],simde_mm256_xor_si256(c2[7090],simde_mm256_xor_si256(c2[7442],simde_mm256_xor_si256(c2[10275],simde_mm256_xor_si256(c2[10977],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[7104],simde_mm256_xor_si256(c2[7456],simde_mm256_xor_si256(c2[1843],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[7475],simde_mm256_xor_si256(c2[7827],simde_mm256_xor_si256(c2[3968],simde_mm256_xor_si256(c2[10306],simde_mm256_xor_si256(c2[10658],simde_mm256_xor_si256(c2[7844],simde_mm256_xor_si256(c2[8196],simde_mm256_xor_si256(c2[11030],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[3299],simde_mm256_xor_si256(c2[6117],simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[6823],simde_mm256_xor_si256(c2[7175],simde_mm256_xor_si256(c2[10001],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[11058],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[2279],simde_mm256_xor_si256(c2[2625],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[3332],simde_mm256_xor_si256(c2[5459],simde_mm256_xor_si256(c2[10390],simde_mm256_xor_si256(c2[7922],simde_mm256_xor_si256(c2[8274],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[2659],simde_mm256_xor_si256(c2[7943],simde_mm256_xor_si256(c2[8295],simde_mm256_xor_si256(c2[3728],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[5492],simde_mm256_xor_si256(c2[9718],simde_mm256_xor_si256(c2[10070],simde_mm256_xor_si256(c2[5155],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[935],simde_mm256_xor_si256(c2[6918],simde_mm256_xor_si256(c2[7270],simde_mm256_xor_si256(c2[1654],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[599],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[8704],simde_mm256_xor_si256(c2[5540],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[6247],simde_mm256_xor_si256(c2[10132],simde_mm256_xor_si256(c2[7671],simde_mm256_xor_si256(c2[8023],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[4850],simde_mm256_xor_si256(c2[11205],simde_mm256_xor_si256(c2[4870],simde_mm256_xor_si256(c2[5222],simde_mm256_xor_si256(c2[7335],simde_mm256_xor_si256(c2[7687],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[9815],simde_mm256_xor_si256(c2[10167],simde_mm256_xor_si256(c2[5959],simde_mm256_xor_si256(c2[7715],simde_mm256_xor_si256(c2[8067],simde_mm256_xor_si256(c2[5956],simde_mm256_xor_si256(c2[6308],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[10544],simde_mm256_xor_si256(c2[4560],c2[4912])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[24]=_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4560],c2[4912]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[9511],simde_mm256_xor_si256(c2[1056],simde_mm256_xor_si256(c2[3875],simde_mm256_xor_si256(c2[8803],simde_mm256_xor_si256(c2[9155],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[5651],simde_mm256_xor_si256(c2[8818],simde_mm256_xor_si256(c2[9170],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[5671],simde_mm256_xor_si256(c2[9189],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[7795],simde_mm256_xor_si256(c2[7090],simde_mm256_xor_si256(c2[7442],simde_mm256_xor_si256(c2[10275],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[7104],simde_mm256_xor_si256(c2[7456],simde_mm256_xor_si256(c2[1843],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[7827],simde_mm256_xor_si256(c2[3968],simde_mm256_xor_si256(c2[10658],simde_mm256_xor_si256(c2[7844],simde_mm256_xor_si256(c2[8196],simde_mm256_xor_si256(c2[11030],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[3299],simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[6823],simde_mm256_xor_si256(c2[7175],simde_mm256_xor_si256(c2[10001],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[2279],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[3332],simde_mm256_xor_si256(c2[5459],simde_mm256_xor_si256(c2[10390],simde_mm256_xor_si256(c2[7922],simde_mm256_xor_si256(c2[8274],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[2659],simde_mm256_xor_si256(c2[7943],simde_mm256_xor_si256(c2[8295],simde_mm256_xor_si256(c2[3728],simde_mm256_xor_si256(c2[5492],simde_mm256_xor_si256(c2[9718],simde_mm256_xor_si256(c2[10070],simde_mm256_xor_si256(c2[5155],simde_mm256_xor_si256(c2[935],simde_mm256_xor_si256(c2[6918],simde_mm256_xor_si256(c2[7270],simde_mm256_xor_si256(c2[1654],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[8704],simde_mm256_xor_si256(c2[5540],simde_mm256_xor_si256(c2[5895],simde_mm256_xor_si256(c2[6247],simde_mm256_xor_si256(c2[10132],simde_mm256_xor_si256(c2[8023],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[4850],simde_mm256_xor_si256(c2[11205],simde_mm256_xor_si256(c2[5222],simde_mm256_xor_si256(c2[7335],simde_mm256_xor_si256(c2[7687],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[10167],simde_mm256_xor_si256(c2[5959],simde_mm256_xor_si256(c2[8067],simde_mm256_xor_si256(c2[5956],simde_mm256_xor_si256(c2[6308],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[10544],simde_mm256_xor_si256(c2[4560],c2[4912]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[32]=_mm256_xor_si256(c2[10212],c2[2131]); + d2[32]=simde_mm256_xor_si256(c2[10212],c2[2131]); //row: 5 - d2[40]=_mm256_xor_si256(c2[4579],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[4231],_mm256_xor_si256(c2[4582],_mm256_xor_si256(c2[8469],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[4246],_mm256_xor_si256(c2[4247],_mm256_xor_si256(c2[7426],_mm256_xor_si256(c2[739],_mm256_xor_si256(c2[4257],_mm256_xor_si256(c2[6384],_mm256_xor_si256(c2[2871],_mm256_xor_si256(c2[2518],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[5351],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[8182],_mm256_xor_si256(c2[9237],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[10307],_mm256_xor_si256(c2[5734],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[8562],_mm256_xor_si256(c2[7863],_mm256_xor_si256(c2[9638],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[6486],_mm256_xor_si256(c2[8610],_mm256_xor_si256(c2[9316],_mm256_xor_si256(c2[9671],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[6529],_mm256_xor_si256(c2[8998],_mm256_xor_si256(c2[3363],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[10067],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[5138],_mm256_xor_si256(c2[231],_mm256_xor_si256(c2[7266],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[7985],_mm256_xor_si256(c2[8343],_mm256_xor_si256(c2[7282],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[10112],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[3091],_mm256_xor_si256(c2[11189],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[8052],_mm256_xor_si256(c2[6643],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[3143],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[6676],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[11251],c2[9843])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[40]=simde_mm256_xor_si256(c2[4579],simde_mm256_xor_si256(c2[7395],simde_mm256_xor_si256(c2[10214],simde_mm256_xor_si256(c2[4231],simde_mm256_xor_si256(c2[4582],simde_mm256_xor_si256(c2[8469],simde_mm256_xor_si256(c2[727],simde_mm256_xor_si256(c2[4246],simde_mm256_xor_si256(c2[4247],simde_mm256_xor_si256(c2[7426],simde_mm256_xor_si256(c2[739],simde_mm256_xor_si256(c2[4257],simde_mm256_xor_si256(c2[6384],simde_mm256_xor_si256(c2[2871],simde_mm256_xor_si256(c2[2518],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[5351],simde_mm256_xor_si256(c2[6405],simde_mm256_xor_si256(c2[2532],simde_mm256_xor_si256(c2[8182],simde_mm256_xor_si256(c2[9237],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[10307],simde_mm256_xor_si256(c2[5734],simde_mm256_xor_si256(c2[3264],simde_mm256_xor_si256(c2[6098],simde_mm256_xor_si256(c2[8562],simde_mm256_xor_si256(c2[7863],simde_mm256_xor_si256(c2[9638],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[6486],simde_mm256_xor_si256(c2[8610],simde_mm256_xor_si256(c2[9316],simde_mm256_xor_si256(c2[9671],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[5458],simde_mm256_xor_si256(c2[3350],simde_mm256_xor_si256(c2[6529],simde_mm256_xor_si256(c2[8998],simde_mm256_xor_si256(c2[3363],simde_mm256_xor_si256(c2[2663],simde_mm256_xor_si256(c2[10067],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[5138],simde_mm256_xor_si256(c2[231],simde_mm256_xor_si256(c2[7266],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[7985],simde_mm256_xor_si256(c2[8343],simde_mm256_xor_si256(c2[7282],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1315],simde_mm256_xor_si256(c2[10112],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[3091],simde_mm256_xor_si256(c2[11189],simde_mm256_xor_si256(c2[6273],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[2755],simde_mm256_xor_si256(c2[8052],simde_mm256_xor_si256(c2[6643],simde_mm256_xor_si256(c2[5235],simde_mm256_xor_si256(c2[1027],simde_mm256_xor_si256(c2[3143],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[6676],simde_mm256_xor_si256(c2[5620],simde_mm256_xor_si256(c2[11251],c2[9843])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[48]=_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[10016],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[7255],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[10500],c2[7014]))))))); + d2[48]=simde_mm256_xor_si256(c2[8101],simde_mm256_xor_si256(c2[7840],simde_mm256_xor_si256(c2[10016],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[7255],simde_mm256_xor_si256(c2[4144],simde_mm256_xor_si256(c2[10500],c2[7014]))))))); //row: 7 - d2[56]=_mm256_xor_si256(c2[9862],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[11024],_mm256_xor_si256(c2[2597],c2[3043]))))); + d2[56]=simde_mm256_xor_si256(c2[9862],simde_mm256_xor_si256(c2[4241],simde_mm256_xor_si256(c2[10980],simde_mm256_xor_si256(c2[11024],simde_mm256_xor_si256(c2[2597],c2[3043]))))); //row: 8 - d2[64]=_mm256_xor_si256(c2[3879],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[10210],_mm256_xor_si256(c2[9506],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[6694],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[3538],_mm256_xor_si256(c2[6709],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[10241],_mm256_xor_si256(c2[39],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[3557],_mm256_xor_si256(c2[6720],_mm256_xor_si256(c2[7072],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[9207],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[4981],_mm256_xor_si256(c2[5333],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[8166],_mm256_xor_si256(c2[5697],_mm256_xor_si256(c2[8868],_mm256_xor_si256(c2[9220],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[4995],_mm256_xor_si256(c2[5347],_mm256_xor_si256(c2[7474],_mm256_xor_si256(c2[10997],_mm256_xor_si256(c2[8529],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[5718],_mm256_xor_si256(c2[9607],_mm256_xor_si256(c2[1859],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[8549],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[5735],_mm256_xor_si256(c2[6087],_mm256_xor_si256(c2[5398],_mm256_xor_si256(c2[8913],_mm256_xor_si256(c2[7862],_mm256_xor_si256(c2[11025],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[7155],_mm256_xor_si256(c2[10326],_mm256_xor_si256(c2[10678],_mm256_xor_si256(c2[8930],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[837],_mm256_xor_si256(c2[4000],_mm256_xor_si256(c2[4352],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[5058],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[7892],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[5778],_mm256_xor_si256(c2[8949],_mm256_xor_si256(c2[9301],_mm256_xor_si256(c2[7910],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[8608],_mm256_xor_si256(c2[516],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[8963],_mm256_xor_si256(c2[871],_mm256_xor_si256(c2[1223],_mm256_xor_si256(c2[11090],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[4758],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[6165],_mm256_xor_si256(c2[5829],_mm256_xor_si256(c2[9344],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[9367],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[11123],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[3383],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[7953],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[3046],_mm256_xor_si256(c2[6566],_mm256_xor_si256(c2[9729],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[7285],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[11158],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[10097],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[6595],_mm256_xor_si256(c2[11171],_mm256_xor_si256(c2[3431],_mm256_xor_si256(c2[615],_mm256_xor_si256(c2[3778],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[2371],_mm256_xor_si256(c2[4500],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[10481],_mm256_xor_si256(c2[2389],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[5573],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[2753],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[5218],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[10867],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[9458],_mm256_xor_si256(c2[4535],_mm256_xor_si256(c2[7698],_mm256_xor_si256(c2[8050],_mm256_xor_si256(c2[1717],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[5958],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[3847],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[9491],_mm256_xor_si256(c2[4912],_mm256_xor_si256(c2[8435],_mm256_xor_si256(c2[10551],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2803],c2[4915])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[64]=simde_mm256_xor_si256(c2[3879],simde_mm256_xor_si256(c2[7394],simde_mm256_xor_si256(c2[6695],simde_mm256_xor_si256(c2[10210],simde_mm256_xor_si256(c2[9506],simde_mm256_xor_si256(c2[1414],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[3523],simde_mm256_xor_si256(c2[6694],simde_mm256_xor_si256(c2[7046],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[3190],simde_mm256_xor_si256(c2[3542],simde_mm256_xor_si256(c2[3538],simde_mm256_xor_si256(c2[6709],simde_mm256_xor_si256(c2[7061],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[6726],simde_mm256_xor_si256(c2[10241],simde_mm256_xor_si256(c2[39],simde_mm256_xor_si256(c2[3554],simde_mm256_xor_si256(c2[3557],simde_mm256_xor_si256(c2[6720],simde_mm256_xor_si256(c2[7072],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[9207],simde_mm256_xor_si256(c2[2163],simde_mm256_xor_si256(c2[5686],simde_mm256_xor_si256(c2[1810],simde_mm256_xor_si256(c2[4981],simde_mm256_xor_si256(c2[5333],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[4643],simde_mm256_xor_si256(c2[8166],simde_mm256_xor_si256(c2[5697],simde_mm256_xor_si256(c2[8868],simde_mm256_xor_si256(c2[9220],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[4995],simde_mm256_xor_si256(c2[5347],simde_mm256_xor_si256(c2[7474],simde_mm256_xor_si256(c2[10997],simde_mm256_xor_si256(c2[8529],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[2195],simde_mm256_xor_si256(c2[5366],simde_mm256_xor_si256(c2[5718],simde_mm256_xor_si256(c2[9607],simde_mm256_xor_si256(c2[1859],simde_mm256_xor_si256(c2[5026],simde_mm256_xor_si256(c2[8197],simde_mm256_xor_si256(c2[8549],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[5735],simde_mm256_xor_si256(c2[6087],simde_mm256_xor_si256(c2[5398],simde_mm256_xor_si256(c2[8913],simde_mm256_xor_si256(c2[7862],simde_mm256_xor_si256(c2[11025],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[7155],simde_mm256_xor_si256(c2[10326],simde_mm256_xor_si256(c2[10678],simde_mm256_xor_si256(c2[8930],simde_mm256_xor_si256(c2[1190],simde_mm256_xor_si256(c2[837],simde_mm256_xor_si256(c2[4000],simde_mm256_xor_si256(c2[4352],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[4706],simde_mm256_xor_si256(c2[5058],simde_mm256_xor_si256(c2[4369],simde_mm256_xor_si256(c2[7892],simde_mm256_xor_si256(c2[10708],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[5778],simde_mm256_xor_si256(c2[8949],simde_mm256_xor_si256(c2[9301],simde_mm256_xor_si256(c2[7910],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[8608],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[8963],simde_mm256_xor_si256(c2[871],simde_mm256_xor_si256(c2[1223],simde_mm256_xor_si256(c2[11090],simde_mm256_xor_si256(c2[3350],simde_mm256_xor_si256(c2[4758],simde_mm256_xor_si256(c2[8273],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[5813],simde_mm256_xor_si256(c2[6165],simde_mm256_xor_si256(c2[5829],simde_mm256_xor_si256(c2[9344],simde_mm256_xor_si256(c2[8290],simde_mm256_xor_si256(c2[550],simde_mm256_xor_si256(c2[2663],simde_mm256_xor_si256(c2[5826],simde_mm256_xor_si256(c2[6178],simde_mm256_xor_si256(c2[6886],simde_mm256_xor_si256(c2[9367],simde_mm256_xor_si256(c2[1619],simde_mm256_xor_si256(c2[11123],simde_mm256_xor_si256(c2[3031],simde_mm256_xor_si256(c2[3383],simde_mm256_xor_si256(c2[4438],simde_mm256_xor_si256(c2[7601],simde_mm256_xor_si256(c2[7953],simde_mm256_xor_si256(c2[10786],simde_mm256_xor_si256(c2[3046],simde_mm256_xor_si256(c2[6566],simde_mm256_xor_si256(c2[9729],simde_mm256_xor_si256(c2[10081],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[4801],simde_mm256_xor_si256(c2[5153],simde_mm256_xor_si256(c2[7285],simde_mm256_xor_si256(c2[10800],simde_mm256_xor_si256(c2[7635],simde_mm256_xor_si256(c2[11158],simde_mm256_xor_si256(c2[6582],simde_mm256_xor_si256(c2[9745],simde_mm256_xor_si256(c2[10097],simde_mm256_xor_si256(c2[3072],simde_mm256_xor_si256(c2[6595],simde_mm256_xor_si256(c2[11171],simde_mm256_xor_si256(c2[3431],simde_mm256_xor_si256(c2[615],simde_mm256_xor_si256(c2[3778],simde_mm256_xor_si256(c2[4130],simde_mm256_xor_si256(c2[2371],simde_mm256_xor_si256(c2[4500],simde_mm256_xor_si256(c2[8023],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[5554],simde_mm256_xor_si256(c2[5906],simde_mm256_xor_si256(c2[10481],simde_mm256_xor_si256(c2[2389],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[5573],simde_mm256_xor_si256(c2[9088],simde_mm256_xor_si256(c2[10853],simde_mm256_xor_si256(c2[2753],simde_mm256_xor_si256(c2[3105],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[5218],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[10867],simde_mm256_xor_si256(c2[5943],simde_mm256_xor_si256(c2[9458],simde_mm256_xor_si256(c2[4535],simde_mm256_xor_si256(c2[7698],simde_mm256_xor_si256(c2[8050],simde_mm256_xor_si256(c2[1717],simde_mm256_xor_si256(c2[327],simde_mm256_xor_si256(c2[3842],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[5606],simde_mm256_xor_si256(c2[5958],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[3847],simde_mm256_xor_si256(c2[4199],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[9491],simde_mm256_xor_si256(c2[4912],simde_mm256_xor_si256(c2[8435],simde_mm256_xor_si256(c2[10551],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[2803],c2[4915])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[72]=_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[7765],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[10497],c2[8774]))))))); + d2[72]=simde_mm256_xor_si256(c2[2467],simde_mm256_xor_si256(c2[7765],simde_mm256_xor_si256(c2[4739],simde_mm256_xor_si256(c2[7568],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[10497],c2[8774]))))))); //row: 10 - d2[80]=_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[7428],_mm256_xor_si256(c2[2533],_mm256_xor_si256(c2[117],_mm256_xor_si256(c2[6113],c2[9377]))))); + d2[80]=simde_mm256_xor_si256(c2[723],simde_mm256_xor_si256(c2[7428],simde_mm256_xor_si256(c2[2533],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[6113],c2[9377]))))); //row: 11 - d2[88]=_mm256_xor_si256(c2[7751],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[10567],_mm256_xor_si256(c2[8800],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[5636],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[9522],_mm256_xor_si256(c2[9874],_mm256_xor_si256(c2[3891],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[7410],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[3185],_mm256_xor_si256(c2[10598],_mm256_xor_si256(c2[8487],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[3911],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[7429],_mm256_xor_si256(c2[5670],_mm256_xor_si256(c2[9556],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[7797],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[4276],_mm256_xor_si256(c2[5682],_mm256_xor_si256(c2[3923],_mm256_xor_si256(c2[8515],_mm256_xor_si256(c2[6756],_mm256_xor_si256(c2[9569],_mm256_xor_si256(c2[7810],_mm256_xor_si256(c2[5696],_mm256_xor_si256(c2[3937],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[9235],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[10642],_mm256_xor_si256(c2[6067],_mm256_xor_si256(c2[4308],_mm256_xor_si256(c2[2208],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[8898],_mm256_xor_si256(c2[7139],_mm256_xor_si256(c2[6436],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[7511],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[9975],_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[9268],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[11043],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[2950],_mm256_xor_si256(c2[5415],_mm256_xor_si256(c2[3648],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[6130],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[3317],_mm256_xor_si256(c2[1558],_mm256_xor_si256(c2[9650],_mm256_xor_si256(c2[7891],_mm256_xor_si256(c2[519],_mm256_xor_si256(c2[9671],_mm256_xor_si256(c2[10023],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[1572],_mm256_xor_si256(c2[11076],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[6871],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[9701],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[4768],_mm256_xor_si256(c2[6882],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[11120],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[3732],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[8310],_mm256_xor_si256(c2[6551],_mm256_xor_si256(c2[3395],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[10438],_mm256_xor_si256(c2[8679],_mm256_xor_si256(c2[5510],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[9046],_mm256_xor_si256(c2[9398],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[9748],_mm256_xor_si256(c2[10454],_mm256_xor_si256(c2[8695],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[8372],_mm256_xor_si256(c2[6613],_mm256_xor_si256(c2[6263],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[3090],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[9445],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[7686],_mm256_xor_si256(c2[3462],_mm256_xor_si256(c2[1703],_mm256_xor_si256(c2[5927],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[11216],_mm256_xor_si256(c2[9105],_mm256_xor_si256(c2[9457],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[8048],_mm256_xor_si256(c2[8407],_mm256_xor_si256(c2[6640],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[6307],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[9840],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[8081],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[7025],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[1393],c2[5266]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[88]=simde_mm256_xor_si256(c2[7751],simde_mm256_xor_si256(c2[5632],simde_mm256_xor_si256(c2[5984],simde_mm256_xor_si256(c2[10567],simde_mm256_xor_si256(c2[8800],simde_mm256_xor_si256(c2[2115],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[7395],simde_mm256_xor_si256(c2[5636],simde_mm256_xor_si256(c2[4578],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[9522],simde_mm256_xor_si256(c2[9874],simde_mm256_xor_si256(c2[3891],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[7410],simde_mm256_xor_si256(c2[5651],simde_mm256_xor_si256(c2[3185],simde_mm256_xor_si256(c2[10598],simde_mm256_xor_si256(c2[8487],simde_mm256_xor_si256(c2[8839],simde_mm256_xor_si256(c2[3911],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[7429],simde_mm256_xor_si256(c2[5670],simde_mm256_xor_si256(c2[9556],simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[7797],simde_mm256_xor_si256(c2[6035],simde_mm256_xor_si256(c2[4276],simde_mm256_xor_si256(c2[5682],simde_mm256_xor_si256(c2[3923],simde_mm256_xor_si256(c2[8515],simde_mm256_xor_si256(c2[6756],simde_mm256_xor_si256(c2[9569],simde_mm256_xor_si256(c2[7810],simde_mm256_xor_si256(c2[5696],simde_mm256_xor_si256(c2[3937],simde_mm256_xor_si256(c2[83],simde_mm256_xor_si256(c2[9235],simde_mm256_xor_si256(c2[9587],simde_mm256_xor_si256(c2[1138],simde_mm256_xor_si256(c2[10642],simde_mm256_xor_si256(c2[6067],simde_mm256_xor_si256(c2[4308],simde_mm256_xor_si256(c2[2208],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[8898],simde_mm256_xor_si256(c2[7139],simde_mm256_xor_si256(c2[6436],simde_mm256_xor_si256(c2[4677],simde_mm256_xor_si256(c2[9270],simde_mm256_xor_si256(c2[7511],simde_mm256_xor_si256(c2[471],simde_mm256_xor_si256(c2[9975],simde_mm256_xor_si256(c2[11027],simde_mm256_xor_si256(c2[9268],simde_mm256_xor_si256(c2[1539],simde_mm256_xor_si256(c2[11043],simde_mm256_xor_si256(c2[4709],simde_mm256_xor_si256(c2[2950],simde_mm256_xor_si256(c2[5415],simde_mm256_xor_si256(c2[3648],simde_mm256_xor_si256(c2[8241],simde_mm256_xor_si256(c2[6130],simde_mm256_xor_si256(c2[6482],simde_mm256_xor_si256(c2[3317],simde_mm256_xor_si256(c2[1558],simde_mm256_xor_si256(c2[9650],simde_mm256_xor_si256(c2[7891],simde_mm256_xor_si256(c2[519],simde_mm256_xor_si256(c2[9671],simde_mm256_xor_si256(c2[10023],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[10721],simde_mm256_xor_si256(c2[1572],simde_mm256_xor_si256(c2[11076],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[1588],simde_mm256_xor_si256(c2[1940],simde_mm256_xor_si256(c2[8630],simde_mm256_xor_si256(c2[6871],simde_mm256_xor_si256(c2[6514],simde_mm256_xor_si256(c2[4755],simde_mm256_xor_si256(c2[9701],simde_mm256_xor_si256(c2[7590],simde_mm256_xor_si256(c2[7942],simde_mm256_xor_si256(c2[899],simde_mm256_xor_si256(c2[10403],simde_mm256_xor_si256(c2[6535],simde_mm256_xor_si256(c2[4768],simde_mm256_xor_si256(c2[6882],simde_mm256_xor_si256(c2[1968],simde_mm256_xor_si256(c2[11120],simde_mm256_xor_si256(c2[209],simde_mm256_xor_si256(c2[3732],simde_mm256_xor_si256(c2[1973],simde_mm256_xor_si256(c2[8310],simde_mm256_xor_si256(c2[6551],simde_mm256_xor_si256(c2[3395],simde_mm256_xor_si256(c2[1636],simde_mm256_xor_si256(c2[10438],simde_mm256_xor_si256(c2[8679],simde_mm256_xor_si256(c2[5510],simde_mm256_xor_si256(c2[3751],simde_mm256_xor_si256(c2[11157],simde_mm256_xor_si256(c2[9046],simde_mm256_xor_si256(c2[9398],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[9748],simde_mm256_xor_si256(c2[10454],simde_mm256_xor_si256(c2[8695],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[4833],simde_mm256_xor_si256(c2[5185],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[4487],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[8005],simde_mm256_xor_si256(c2[8372],simde_mm256_xor_si256(c2[6613],simde_mm256_xor_si256(c2[6263],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[3090],simde_mm256_xor_si256(c2[1331],simde_mm256_xor_si256(c2[9445],simde_mm256_xor_si256(c2[7334],simde_mm256_xor_si256(c2[7686],simde_mm256_xor_si256(c2[3462],simde_mm256_xor_si256(c2[1703],simde_mm256_xor_si256(c2[5927],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[11216],simde_mm256_xor_si256(c2[9105],simde_mm256_xor_si256(c2[9457],simde_mm256_xor_si256(c2[9815],simde_mm256_xor_si256(c2[8048],simde_mm256_xor_si256(c2[8407],simde_mm256_xor_si256(c2[6640],simde_mm256_xor_si256(c2[4199],simde_mm256_xor_si256(c2[2080],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[6307],simde_mm256_xor_si256(c2[4548],simde_mm256_xor_si256(c2[4548],simde_mm256_xor_si256(c2[2789],simde_mm256_xor_si256(c2[9840],simde_mm256_xor_si256(c2[7729],simde_mm256_xor_si256(c2[8081],simde_mm256_xor_si256(c2[8784],simde_mm256_xor_si256(c2[7025],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[1393],c2[5266]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[96]=_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[3735],c2[2752]))))); + d2[96]=simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[3537],simde_mm256_xor_si256(c2[7552],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[3735],c2[2752]))))); //row: 13 - d2[104]=_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[8801],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[8453],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[4949],_mm256_xor_si256(c2[8468],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[8487],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[10614],_mm256_xor_si256(c2[7093],_mm256_xor_si256(c2[6740],_mm256_xor_si256(c2[8503],_mm256_xor_si256(c2[9573],_mm256_xor_si256(c2[10627],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[2196],_mm256_xor_si256(c2[7125],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[9956],_mm256_xor_si256(c2[7494],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[8212],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[6465],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[9299],_mm256_xor_si256(c2[4375],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[9680],_mm256_xor_si256(c2[7572],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[10759],_mm256_xor_si256(c2[1957],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[2674],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[6560],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7650],_mm256_xor_si256(c2[8002],_mm256_xor_si256(c2[4838],_mm256_xor_si256(c2[5537],_mm256_xor_si256(c2[9430],_mm256_xor_si256(c2[7313],_mm256_xor_si256(c2[4148],_mm256_xor_si256(c2[10151],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[4512],_mm256_xor_si256(c2[6977],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[10865],_mm256_xor_si256(c2[9457],_mm256_xor_si256(c2[4897],_mm256_xor_si256(c2[5249],_mm256_xor_si256(c2[7365],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[9125],_mm256_xor_si256(c2[10546],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[9842],c2[4210]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[104]=simde_mm256_xor_si256(c2[8449],simde_mm256_xor_si256(c2[8801],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[3173],simde_mm256_xor_si256(c2[8453],simde_mm256_xor_si256(c2[5989],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[4949],simde_mm256_xor_si256(c2[8468],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[385],simde_mm256_xor_si256(c2[4961],simde_mm256_xor_si256(c2[8487],simde_mm256_xor_si256(c2[10262],simde_mm256_xor_si256(c2[10614],simde_mm256_xor_si256(c2[7093],simde_mm256_xor_si256(c2[6740],simde_mm256_xor_si256(c2[8503],simde_mm256_xor_si256(c2[9573],simde_mm256_xor_si256(c2[10627],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[1141],simde_mm256_xor_si256(c2[2196],simde_mm256_xor_si256(c2[7125],simde_mm256_xor_si256(c2[2914],simde_mm256_xor_si256(c2[3266],simde_mm256_xor_si256(c2[9956],simde_mm256_xor_si256(c2[7494],simde_mm256_xor_si256(c2[10320],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[822],simde_mm256_xor_si256(c2[8212],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[5767],simde_mm256_xor_si256(c2[6465],simde_mm256_xor_si256(c2[8947],simde_mm256_xor_si256(c2[9299],simde_mm256_xor_si256(c2[4375],simde_mm256_xor_si256(c2[10708],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[2630],simde_mm256_xor_si256(c2[4405],simde_mm256_xor_si256(c2[4757],simde_mm256_xor_si256(c2[9680],simde_mm256_xor_si256(c2[7572],simde_mm256_xor_si256(c2[10407],simde_mm256_xor_si256(c2[10759],simde_mm256_xor_si256(c2[1957],simde_mm256_xor_si256(c2[7585],simde_mm256_xor_si256(c2[2674],simde_mm256_xor_si256(c2[3026],simde_mm256_xor_si256(c2[4790],simde_mm256_xor_si256(c2[9360],simde_mm256_xor_si256(c2[4453],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[6560],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[7650],simde_mm256_xor_si256(c2[8002],simde_mm256_xor_si256(c2[4838],simde_mm256_xor_si256(c2[5537],simde_mm256_xor_si256(c2[9430],simde_mm256_xor_si256(c2[7313],simde_mm256_xor_si256(c2[4148],simde_mm256_xor_si256(c2[10151],simde_mm256_xor_si256(c2[10503],simde_mm256_xor_si256(c2[4512],simde_mm256_xor_si256(c2[6977],simde_mm256_xor_si256(c2[659],simde_mm256_xor_si256(c2[1011],simde_mm256_xor_si256(c2[10865],simde_mm256_xor_si256(c2[9457],simde_mm256_xor_si256(c2[4897],simde_mm256_xor_si256(c2[5249],simde_mm256_xor_si256(c2[7365],simde_mm256_xor_si256(c2[5606],simde_mm256_xor_si256(c2[9125],simde_mm256_xor_si256(c2[10546],simde_mm256_xor_si256(c2[10898],simde_mm256_xor_si256(c2[9842],c2[4210]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[112]=_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[8289],_mm256_xor_si256(c2[5174],_mm256_xor_si256(c2[11171],_mm256_xor_si256(c2[5904],c2[2103]))))); + d2[112]=simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[8289],simde_mm256_xor_si256(c2[5174],simde_mm256_xor_si256(c2[11171],simde_mm256_xor_si256(c2[5904],c2[2103]))))); //row: 15 - d2[120]=_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[10560],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[4577],_mm256_xor_si256(c2[2817],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[7780],_mm256_xor_si256(c2[1093],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[5697],_mm256_xor_si256(c2[6759],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[8528],_mm256_xor_si256(c2[9591],_mm256_xor_si256(c2[3249],_mm256_xor_si256(c2[10661],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[3618],_mm256_xor_si256(c2[6452],_mm256_xor_si256(c2[8916],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[8209],_mm256_xor_si256(c2[9984],_mm256_xor_si256(c2[1891],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[5431],_mm256_xor_si256(c2[499],_mm256_xor_si256(c2[6832],_mm256_xor_si256(c2[8964],_mm256_xor_si256(c2[9670],_mm256_xor_si256(c2[9665],_mm256_xor_si256(c2[10017],_mm256_xor_si256(c2[514],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[3344],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[6883],_mm256_xor_si256(c2[9344],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3717],_mm256_xor_si256(c2[10421],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[11121],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[2340],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[8689],_mm256_xor_si256(c2[7636],_mm256_xor_si256(c2[4134],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[3445],_mm256_xor_si256(c2[11191],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[4162],_mm256_xor_si256(c2[8406],_mm256_xor_si256(c2[6997],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[7030],_mm256_xor_si256(c2[5974],_mm256_xor_si256(c2[11253],c2[342])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[120]=simde_mm256_xor_si256(c2[4933],simde_mm256_xor_si256(c2[7749],simde_mm256_xor_si256(c2[10560],simde_mm256_xor_si256(c2[4225],simde_mm256_xor_si256(c2[4577],simde_mm256_xor_si256(c2[2817],simde_mm256_xor_si256(c2[8823],simde_mm256_xor_si256(c2[1073],simde_mm256_xor_si256(c2[4240],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[7780],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[4611],simde_mm256_xor_si256(c2[6738],simde_mm256_xor_si256(c2[3217],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[5697],simde_mm256_xor_si256(c2[6759],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[8528],simde_mm256_xor_si256(c2[9591],simde_mm256_xor_si256(c2[3249],simde_mm256_xor_si256(c2[10661],simde_mm256_xor_si256(c2[6080],simde_mm256_xor_si256(c2[3266],simde_mm256_xor_si256(c2[3618],simde_mm256_xor_si256(c2[6452],simde_mm256_xor_si256(c2[8916],simde_mm256_xor_si256(c2[7857],simde_mm256_xor_si256(c2[8209],simde_mm256_xor_si256(c2[9984],simde_mm256_xor_si256(c2[1891],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[5431],simde_mm256_xor_si256(c2[499],simde_mm256_xor_si256(c2[6832],simde_mm256_xor_si256(c2[8964],simde_mm256_xor_si256(c2[9670],simde_mm256_xor_si256(c2[9665],simde_mm256_xor_si256(c2[10017],simde_mm256_xor_si256(c2[514],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[5812],simde_mm256_xor_si256(c2[3344],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[6883],simde_mm256_xor_si256(c2[9344],simde_mm256_xor_si256(c2[3365],simde_mm256_xor_si256(c2[3717],simde_mm256_xor_si256(c2[10421],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[5492],simde_mm256_xor_si256(c2[11121],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[7620],simde_mm256_xor_si256(c2[2340],simde_mm256_xor_si256(c2[2692],simde_mm256_xor_si256(c2[8339],simde_mm256_xor_si256(c2[8689],simde_mm256_xor_si256(c2[7636],simde_mm256_xor_si256(c2[4134],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1317],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[5554],simde_mm256_xor_si256(c2[3445],simde_mm256_xor_si256(c2[11191],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[6627],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[2757],simde_mm256_xor_si256(c2[3109],simde_mm256_xor_si256(c2[4162],simde_mm256_xor_si256(c2[8406],simde_mm256_xor_si256(c2[6997],simde_mm256_xor_si256(c2[5589],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[3489],simde_mm256_xor_si256(c2[1378],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[7030],simde_mm256_xor_si256(c2[5974],simde_mm256_xor_si256(c2[11253],c2[342])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[128]=_mm256_xor_si256(c2[7044],_mm256_xor_si256(c2[9860],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[10934],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[6711],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[9891],_mm256_xor_si256(c2[3204],_mm256_xor_si256(c2[6722],_mm256_xor_si256(c2[8849],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[4983],_mm256_xor_si256(c2[6033],_mm256_xor_si256(c2[7808],_mm256_xor_si256(c2[8870],_mm256_xor_si256(c2[4997],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[1509],_mm256_xor_si256(c2[8199],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[8563],_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[4002],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[2610],_mm256_xor_si256(c2[8951],_mm256_xor_si256(c2[11075],_mm256_xor_si256(c2[518],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[2992],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[5815],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[8994],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[5828],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[7603],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[9731],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[10450],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[9747],_mm256_xor_si256(c2[6245],_mm256_xor_si256(c2[3073],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[7665],_mm256_xor_si256(c2[5556],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[8738],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[5220],_mm256_xor_si256(c2[10517],_mm256_xor_si256(c2[9108],_mm256_xor_si256(c2[7700],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[7009],_mm256_xor_si256(c2[9141],_mm256_xor_si256(c2[8085],c2[2453])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[128]=simde_mm256_xor_si256(c2[7044],simde_mm256_xor_si256(c2[9860],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[10934],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[6711],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[9891],simde_mm256_xor_si256(c2[3204],simde_mm256_xor_si256(c2[6722],simde_mm256_xor_si256(c2[8849],simde_mm256_xor_si256(c2[5328],simde_mm256_xor_si256(c2[4983],simde_mm256_xor_si256(c2[6033],simde_mm256_xor_si256(c2[7808],simde_mm256_xor_si256(c2[8870],simde_mm256_xor_si256(c2[4997],simde_mm256_xor_si256(c2[10647],simde_mm256_xor_si256(c2[439],simde_mm256_xor_si256(c2[5360],simde_mm256_xor_si256(c2[1509],simde_mm256_xor_si256(c2[8199],simde_mm256_xor_si256(c2[5729],simde_mm256_xor_si256(c2[8563],simde_mm256_xor_si256(c2[11027],simde_mm256_xor_si256(c2[10320],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[4002],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[7542],simde_mm256_xor_si256(c2[2610],simde_mm256_xor_si256(c2[8951],simde_mm256_xor_si256(c2[11075],simde_mm256_xor_si256(c2[518],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[2992],simde_mm256_xor_si256(c2[7923],simde_mm256_xor_si256(c2[5815],simde_mm256_xor_si256(c2[6161],simde_mm256_xor_si256(c2[8994],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[5828],simde_mm256_xor_si256(c2[1269],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[7603],simde_mm256_xor_si256(c2[2688],simde_mm256_xor_si256(c2[9731],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[10450],simde_mm256_xor_si256(c2[10800],simde_mm256_xor_si256(c2[9747],simde_mm256_xor_si256(c2[6245],simde_mm256_xor_si256(c2[3073],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[7665],simde_mm256_xor_si256(c2[5556],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[8738],simde_mm256_xor_si256(c2[2755],simde_mm256_xor_si256(c2[5220],simde_mm256_xor_si256(c2[10517],simde_mm256_xor_si256(c2[9108],simde_mm256_xor_si256(c2[7700],simde_mm256_xor_si256(c2[3492],simde_mm256_xor_si256(c2[5600],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[7009],simde_mm256_xor_si256(c2[9141],simde_mm256_xor_si256(c2[8085],c2[2453])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[136]=_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[9761],_mm256_xor_si256(c2[624],c2[5972])))); + d2[136]=simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[1637],simde_mm256_xor_si256(c2[9761],simde_mm256_xor_si256(c2[624],c2[5972])))); //row: 18 - d2[144]=_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[9796],c2[6996])))); + d2[144]=simde_mm256_xor_si256(c2[3537],simde_mm256_xor_si256(c2[3367],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[9796],c2[6996])))); //row: 19 - d2[152]=_mm256_xor_si256(c2[9857],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[2930],_mm256_xor_si256(c2[11043],c2[167])))); + d2[152]=simde_mm256_xor_si256(c2[9857],simde_mm256_xor_si256(c2[3186],simde_mm256_xor_si256(c2[2930],simde_mm256_xor_si256(c2[11043],c2[167])))); //row: 20 - d2[160]=_mm256_xor_si256(c2[9156],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[8800],_mm256_xor_si256(c2[8100],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[5296],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[8834],_mm256_xor_si256(c2[10961],_mm256_xor_si256(c2[7440],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[9205],_mm256_xor_si256(c2[9920],_mm256_xor_si256(c2[10982],_mm256_xor_si256(c2[7109],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[2551],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[10311],_mm256_xor_si256(c2[7841],_mm256_xor_si256(c2[10675],_mm256_xor_si256(c2[1876],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[6114],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[9654],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[11063],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[10035],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[5457],_mm256_xor_si256(c2[11106],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[3381],_mm256_xor_si256(c2[5137],_mm256_xor_si256(c2[9715],_mm256_xor_si256(c2[4800],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[1649],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[5892],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[7668],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[10850],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[7332],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[11220],_mm256_xor_si256(c2[9812],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[7712],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[11253],_mm256_xor_si256(c2[10197],c2[4565])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[160]=simde_mm256_xor_si256(c2[9156],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[8800],simde_mm256_xor_si256(c2[8100],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[5296],simde_mm256_xor_si256(c2[8823],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[5316],simde_mm256_xor_si256(c2[8834],simde_mm256_xor_si256(c2[10961],simde_mm256_xor_si256(c2[7440],simde_mm256_xor_si256(c2[7095],simde_mm256_xor_si256(c2[9205],simde_mm256_xor_si256(c2[9920],simde_mm256_xor_si256(c2[10982],simde_mm256_xor_si256(c2[7109],simde_mm256_xor_si256(c2[1488],simde_mm256_xor_si256(c2[2551],simde_mm256_xor_si256(c2[7472],simde_mm256_xor_si256(c2[3621],simde_mm256_xor_si256(c2[10311],simde_mm256_xor_si256(c2[7841],simde_mm256_xor_si256(c2[10675],simde_mm256_xor_si256(c2[1876],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[6114],simde_mm256_xor_si256(c2[6820],simde_mm256_xor_si256(c2[9654],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[11063],simde_mm256_xor_si256(c2[8950],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[2630],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[5104],simde_mm256_xor_si256(c2[10035],simde_mm256_xor_si256(c2[7927],simde_mm256_xor_si256(c2[5457],simde_mm256_xor_si256(c2[11106],simde_mm256_xor_si256(c2[2304],simde_mm256_xor_si256(c2[7940],simde_mm256_xor_si256(c2[3381],simde_mm256_xor_si256(c2[5137],simde_mm256_xor_si256(c2[9715],simde_mm256_xor_si256(c2[4800],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[6915],simde_mm256_xor_si256(c2[1299],simde_mm256_xor_si256(c2[1649],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[8357],simde_mm256_xor_si256(c2[5185],simde_mm256_xor_si256(c2[5892],simde_mm256_xor_si256(c2[9777],simde_mm256_xor_si256(c2[7668],simde_mm256_xor_si256(c2[4503],simde_mm256_xor_si256(c2[10850],simde_mm256_xor_si256(c2[4867],simde_mm256_xor_si256(c2[7332],simde_mm256_xor_si256(c2[1366],simde_mm256_xor_si256(c2[11220],simde_mm256_xor_si256(c2[9812],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[7712],simde_mm256_xor_si256(c2[5953],simde_mm256_xor_si256(c2[11253],simde_mm256_xor_si256(c2[10197],c2[4565])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[168]=_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[8883],_mm256_xor_si256(c2[4835],_mm256_xor_si256(c2[1380],c2[4213])))); + d2[168]=simde_mm256_xor_si256(c2[8823],simde_mm256_xor_si256(c2[8883],simde_mm256_xor_si256(c2[4835],simde_mm256_xor_si256(c2[1380],c2[4213])))); //row: 22 - d2[176]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[5124],_mm256_xor_si256(c2[10069],c2[10836]))); + d2[176]=simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[5124],simde_mm256_xor_si256(c2[10069],c2[10836]))); //row: 23 - d2[184]=_mm256_xor_si256(c2[9876],_mm256_xor_si256(c2[6724],_mm256_xor_si256(c2[3685],c2[8740]))); + d2[184]=simde_mm256_xor_si256(c2[9876],simde_mm256_xor_si256(c2[6724],simde_mm256_xor_si256(c2[3685],c2[8740]))); //row: 24 - d2[192]=_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[2818],_mm256_xor_si256(c2[8098],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[8113],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[4614],_mm256_xor_si256(c2[8132],_mm256_xor_si256(c2[10259],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[7794],_mm256_xor_si256(c2[9218],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[6407],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[786],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[7139],_mm256_xor_si256(c2[9973],_mm256_xor_si256(c2[1174],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[6118],_mm256_xor_si256(c2[8944],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[10353],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[9333],_mm256_xor_si256(c2[7217],_mm256_xor_si256(c2[7219],_mm256_xor_si256(c2[10404],_mm256_xor_si256(c2[1602],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[2679],_mm256_xor_si256(c2[4435],_mm256_xor_si256(c2[9013],_mm256_xor_si256(c2[4098],_mm256_xor_si256(c2[11141],_mm256_xor_si256(c2[6213],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[947],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[7655],_mm256_xor_si256(c2[4483],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[9075],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[10148],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[6630],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[10518],_mm256_xor_si256(c2[9110],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[7010],_mm256_xor_si256(c2[5251],_mm256_xor_si256(c2[10551],_mm256_xor_si256(c2[9495],c2[3863])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[192]=simde_mm256_xor_si256(c2[8454],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[2818],simde_mm256_xor_si256(c2[8098],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[1073],simde_mm256_xor_si256(c2[4594],simde_mm256_xor_si256(c2[8113],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[4614],simde_mm256_xor_si256(c2[8132],simde_mm256_xor_si256(c2[10259],simde_mm256_xor_si256(c2[6738],simde_mm256_xor_si256(c2[6385],simde_mm256_xor_si256(c2[7794],simde_mm256_xor_si256(c2[9218],simde_mm256_xor_si256(c2[10272],simde_mm256_xor_si256(c2[6407],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[786],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[6770],simde_mm256_xor_si256(c2[2919],simde_mm256_xor_si256(c2[9601],simde_mm256_xor_si256(c2[7139],simde_mm256_xor_si256(c2[9973],simde_mm256_xor_si256(c2[1174],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[5412],simde_mm256_xor_si256(c2[6118],simde_mm256_xor_si256(c2[8944],simde_mm256_xor_si256(c2[4020],simde_mm256_xor_si256(c2[10353],simde_mm256_xor_si256(c2[1222],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[9333],simde_mm256_xor_si256(c2[7217],simde_mm256_xor_si256(c2[7219],simde_mm256_xor_si256(c2[10404],simde_mm256_xor_si256(c2[1602],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[2679],simde_mm256_xor_si256(c2[4435],simde_mm256_xor_si256(c2[9013],simde_mm256_xor_si256(c2[4098],simde_mm256_xor_si256(c2[11141],simde_mm256_xor_si256(c2[6213],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[947],simde_mm256_xor_si256(c2[11157],simde_mm256_xor_si256(c2[7655],simde_mm256_xor_si256(c2[4483],simde_mm256_xor_si256(c2[5190],simde_mm256_xor_si256(c2[9075],simde_mm256_xor_si256(c2[6966],simde_mm256_xor_si256(c2[3793],simde_mm256_xor_si256(c2[10148],simde_mm256_xor_si256(c2[4165],simde_mm256_xor_si256(c2[6630],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[10518],simde_mm256_xor_si256(c2[9110],simde_mm256_xor_si256(c2[4902],simde_mm256_xor_si256(c2[7010],simde_mm256_xor_si256(c2[5251],simde_mm256_xor_si256(c2[10551],simde_mm256_xor_si256(c2[9495],c2[3863])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[200]=_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[7155],c2[7973]))); + d2[200]=simde_mm256_xor_si256(c2[8112],simde_mm256_xor_si256(c2[2916],simde_mm256_xor_si256(c2[7155],c2[7973]))); //row: 26 - d2[208]=_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[6727],_mm256_xor_si256(c2[8166],c2[10449]))); + d2[208]=simde_mm256_xor_si256(c2[1062],simde_mm256_xor_si256(c2[6727],simde_mm256_xor_si256(c2[8166],c2[10449]))); //row: 27 - d2[216]=_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[2915],c2[838])); + d2[216]=simde_mm256_xor_si256(c2[8816],simde_mm256_xor_si256(c2[2915],c2[838])); //row: 28 - d2[224]=_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[7701],c2[11249]))); + d2[224]=simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[7701],c2[11249]))); //row: 29 - d2[232]=_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[10915],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[4242],_mm256_xor_si256(c2[7763],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[7762],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[7783],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[9907],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[2178],_mm256_xor_si256(c2[9216],_mm256_xor_si256(c2[9568],_mm256_xor_si256(c2[3955],_mm256_xor_si256(c2[5010],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[9956],_mm256_xor_si256(c2[10308],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[3284],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[5411],_mm256_xor_si256(c2[8581],_mm256_xor_si256(c2[8935],_mm256_xor_si256(c2[9287],_mm256_xor_si256(c2[850],_mm256_xor_si256(c2[7189],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[4391],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[7571],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[10034],_mm256_xor_si256(c2[10386],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[4771],_mm256_xor_si256(c2[10055],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[567],_mm256_xor_si256(c2[919],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[9030],_mm256_xor_si256(c2[9382],_mm256_xor_si256(c2[4455],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[10816],_mm256_xor_si256(c2[7652],_mm256_xor_si256(c2[8007],_mm256_xor_si256(c2[8359],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[6610],_mm256_xor_si256(c2[6962],_mm256_xor_si256(c2[2054],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[9447],_mm256_xor_si256(c2[9799],_mm256_xor_si256(c2[7330],_mm256_xor_si256(c2[3825],_mm256_xor_si256(c2[2416],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[8071],_mm256_xor_si256(c2[10179],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[6672],c2[7024])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[232]=simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[3168],simde_mm256_xor_si256(c2[5987],simde_mm256_xor_si256(c2[10915],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[4242],simde_mm256_xor_si256(c2[7763],simde_mm256_xor_si256(c2[10930],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[7762],simde_mm256_xor_si256(c2[3207],simde_mm256_xor_si256(c2[7783],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[9907],simde_mm256_xor_si256(c2[9202],simde_mm256_xor_si256(c2[9554],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[2178],simde_mm256_xor_si256(c2[9216],simde_mm256_xor_si256(c2[9568],simde_mm256_xor_si256(c2[3955],simde_mm256_xor_si256(c2[5010],simde_mm256_xor_si256(c2[9939],simde_mm256_xor_si256(c2[6080],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[9956],simde_mm256_xor_si256(c2[10308],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[3284],simde_mm256_xor_si256(c2[3636],simde_mm256_xor_si256(c2[5411],simde_mm256_xor_si256(c2[8581],simde_mm256_xor_si256(c2[8935],simde_mm256_xor_si256(c2[9287],simde_mm256_xor_si256(c2[850],simde_mm256_xor_si256(c2[7189],simde_mm256_xor_si256(c2[2259],simde_mm256_xor_si256(c2[4391],simde_mm256_xor_si256(c2[5089],simde_mm256_xor_si256(c2[5092],simde_mm256_xor_si256(c2[5444],simde_mm256_xor_si256(c2[7571],simde_mm256_xor_si256(c2[1239],simde_mm256_xor_si256(c2[10034],simde_mm256_xor_si256(c2[10386],simde_mm256_xor_si256(c2[2310],simde_mm256_xor_si256(c2[4771],simde_mm256_xor_si256(c2[10055],simde_mm256_xor_si256(c2[10407],simde_mm256_xor_si256(c2[5840],simde_mm256_xor_si256(c2[7604],simde_mm256_xor_si256(c2[567],simde_mm256_xor_si256(c2[919],simde_mm256_xor_si256(c2[7267],simde_mm256_xor_si256(c2[3047],simde_mm256_xor_si256(c2[9030],simde_mm256_xor_si256(c2[9382],simde_mm256_xor_si256(c2[4455],simde_mm256_xor_si256(c2[3766],simde_mm256_xor_si256(c2[4116],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[10816],simde_mm256_xor_si256(c2[7652],simde_mm256_xor_si256(c2[8007],simde_mm256_xor_si256(c2[8359],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[10135],simde_mm256_xor_si256(c2[6610],simde_mm256_xor_si256(c2[6962],simde_mm256_xor_si256(c2[2054],simde_mm256_xor_si256(c2[7334],simde_mm256_xor_si256(c2[9447],simde_mm256_xor_si256(c2[9799],simde_mm256_xor_si256(c2[7330],simde_mm256_xor_si256(c2[3825],simde_mm256_xor_si256(c2[2416],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[8071],simde_mm256_xor_si256(c2[10179],simde_mm256_xor_si256(c2[8068],simde_mm256_xor_si256(c2[8420],simde_mm256_xor_si256(c2[2449],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[6672],c2[7024])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[240]=_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[6691],_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[1060],_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[5298],_mm256_xor_si256(c2[8467],_mm256_xor_si256(c2[8819],_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[1075],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[10963],_mm256_xor_si256(c2[10258],_mm256_xor_si256(c2[10610],_mm256_xor_si256(c2[2180],_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[5011],_mm256_xor_si256(c2[6066],_mm256_xor_si256(c2[10643],_mm256_xor_si256(c2[10995],_mm256_xor_si256(c2[7136],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[2563],_mm256_xor_si256(c2[11012],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[2935],_mm256_xor_si256(c2[5047],_mm256_xor_si256(c2[5399],_mm256_xor_si256(c2[4340],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[6467],_mm256_xor_si256(c2[9285],_mm256_xor_si256(c2[9637],_mm256_xor_si256(c2[9991],_mm256_xor_si256(c2[10343],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[8245],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[5447],_mm256_xor_si256(c2[5793],_mm256_xor_si256(c2[6145],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[3330],_mm256_xor_si256(c2[8627],_mm256_xor_si256(c2[2295],_mm256_xor_si256(c2[11090],_mm256_xor_si256(c2[179],_mm256_xor_si256(c2[3366],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[11111],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[8659],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[4103],_mm256_xor_si256(c2[10086],_mm256_xor_si256(c2[10438],_mm256_xor_si256(c2[4822],_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[3767],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[8708],_mm256_xor_si256(c2[9063],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[10839],_mm256_xor_si256(c2[11191],_mm256_xor_si256(c2[7666],_mm256_xor_si256(c2[8018],_mm256_xor_si256(c2[3110],_mm256_xor_si256(c2[8038],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[10855],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[9127],_mm256_xor_si256(c2[10883],_mm256_xor_si256(c2[11235],_mm256_xor_si256(c2[9124],_mm256_xor_si256(c2[9476],_mm256_xor_si256(c2[3505],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[7728],c2[8080]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[240]=simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[4224],simde_mm256_xor_si256(c2[6691],simde_mm256_xor_si256(c2[7043],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[1060],simde_mm256_xor_si256(c2[8454],simde_mm256_xor_si256(c2[5298],simde_mm256_xor_si256(c2[8467],simde_mm256_xor_si256(c2[8819],simde_mm256_xor_si256(c2[723],simde_mm256_xor_si256(c2[1075],simde_mm256_xor_si256(c2[4263],simde_mm256_xor_si256(c2[8839],simde_mm256_xor_si256(c2[742],simde_mm256_xor_si256(c2[1094],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[10963],simde_mm256_xor_si256(c2[10258],simde_mm256_xor_si256(c2[10610],simde_mm256_xor_si256(c2[2180],simde_mm256_xor_si256(c2[2882],simde_mm256_xor_si256(c2[3234],simde_mm256_xor_si256(c2[10272],simde_mm256_xor_si256(c2[10624],simde_mm256_xor_si256(c2[5011],simde_mm256_xor_si256(c2[6066],simde_mm256_xor_si256(c2[10643],simde_mm256_xor_si256(c2[10995],simde_mm256_xor_si256(c2[7136],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[2563],simde_mm256_xor_si256(c2[11012],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[2935],simde_mm256_xor_si256(c2[5047],simde_mm256_xor_si256(c2[5399],simde_mm256_xor_si256(c2[4340],simde_mm256_xor_si256(c2[4692],simde_mm256_xor_si256(c2[6467],simde_mm256_xor_si256(c2[9285],simde_mm256_xor_si256(c2[9637],simde_mm256_xor_si256(c2[9991],simde_mm256_xor_si256(c2[10343],simde_mm256_xor_si256(c2[1906],simde_mm256_xor_si256(c2[8245],simde_mm256_xor_si256(c2[2963],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[5447],simde_mm256_xor_si256(c2[5793],simde_mm256_xor_si256(c2[6145],simde_mm256_xor_si256(c2[6148],simde_mm256_xor_si256(c2[6500],simde_mm256_xor_si256(c2[3330],simde_mm256_xor_si256(c2[8627],simde_mm256_xor_si256(c2[2295],simde_mm256_xor_si256(c2[11090],simde_mm256_xor_si256(c2[179],simde_mm256_xor_si256(c2[3366],simde_mm256_xor_si256(c2[5827],simde_mm256_xor_si256(c2[11111],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[6896],simde_mm256_xor_si256(c2[8308],simde_mm256_xor_si256(c2[8660],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[1975],simde_mm256_xor_si256(c2[8659],simde_mm256_xor_si256(c2[8323],simde_mm256_xor_si256(c2[3751],simde_mm256_xor_si256(c2[4103],simde_mm256_xor_si256(c2[10086],simde_mm256_xor_si256(c2[10438],simde_mm256_xor_si256(c2[4822],simde_mm256_xor_si256(c2[5172],simde_mm256_xor_si256(c2[3767],simde_mm256_xor_si256(c2[4119],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[8708],simde_mm256_xor_si256(c2[9063],simde_mm256_xor_si256(c2[9415],simde_mm256_xor_si256(c2[2037],simde_mm256_xor_si256(c2[10839],simde_mm256_xor_si256(c2[11191],simde_mm256_xor_si256(c2[7666],simde_mm256_xor_si256(c2[8018],simde_mm256_xor_si256(c2[3110],simde_mm256_xor_si256(c2[8038],simde_mm256_xor_si256(c2[8390],simde_mm256_xor_si256(c2[10503],simde_mm256_xor_si256(c2[10855],simde_mm256_xor_si256(c2[4881],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[9127],simde_mm256_xor_si256(c2[10883],simde_mm256_xor_si256(c2[11235],simde_mm256_xor_si256(c2[9124],simde_mm256_xor_si256(c2[9476],simde_mm256_xor_si256(c2[3505],simde_mm256_xor_si256(c2[2449],simde_mm256_xor_si256(c2[7728],c2[8080]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[248]=_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1776],_mm256_xor_si256(c2[7764],_mm256_xor_si256(c2[8116],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[4964],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[9540],_mm256_xor_si256(c2[4609],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[8135],_mm256_xor_si256(c2[3922],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[6741],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[6036],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[9221],_mm256_xor_si256(c2[3943],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[6050],_mm256_xor_si256(c2[6402],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[6775],_mm256_xor_si256(c2[1844],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[6773],_mm256_xor_si256(c2[7845],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[6790],_mm256_xor_si256(c2[7142],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[9968],_mm256_xor_si256(c2[6100],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[5393],_mm256_xor_si256(c2[118],_mm256_xor_si256(c2[470],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[10338],_mm256_xor_si256(c2[5415],_mm256_xor_si256(c2[11044],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[6113],_mm256_xor_si256(c2[2615],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[8946],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[4016],_mm256_xor_si256(c2[10356],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[6854],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[1926],_mm256_xor_si256(c2[2278],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[2996],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[6868],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[4067],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[6528],_mm256_xor_si256(c2[1605],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[6881],_mm256_xor_si256(c2[7233],_mm256_xor_si256(c2[7605],_mm256_xor_si256(c2[2674],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[2676],_mm256_xor_si256(c2[8656],_mm256_xor_si256(c2[9008],_mm256_xor_si256(c2[9024],_mm256_xor_si256(c2[4101],_mm256_xor_si256(c2[4804],_mm256_xor_si256(c2[11136],_mm256_xor_si256(c2[11139],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[6208],_mm256_xor_si256(c2[5523],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[950],_mm256_xor_si256(c2[4820],_mm256_xor_si256(c2[11152],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[7650],_mm256_xor_si256(c2[9409],_mm256_xor_si256(c2[4486],_mm256_xor_si256(c2[10116],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[2738],_mm256_xor_si256(c2[9078],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[8727],_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[3796],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[10151],_mm256_xor_si256(c2[9091],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[6625],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[9105],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[4897],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[7013],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[5254],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[10546],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[9490],_mm256_xor_si256(c2[8789],_mm256_xor_si256(c2[3506],c2[3858])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[248]=simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[8449],simde_mm256_xor_si256(c2[4933],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[7744],simde_mm256_xor_si256(c2[2821],simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[7749],simde_mm256_xor_si256(c2[8101],simde_mm256_xor_si256(c2[6007],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[9520],simde_mm256_xor_si256(c2[4597],simde_mm256_xor_si256(c2[1776],simde_mm256_xor_si256(c2[7764],simde_mm256_xor_si256(c2[8116],simde_mm256_xor_si256(c2[10930],simde_mm256_xor_si256(c2[4964],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[9540],simde_mm256_xor_si256(c2[4609],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[8135],simde_mm256_xor_si256(c2[3922],simde_mm256_xor_si256(c2[10262],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[6741],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[6036],simde_mm256_xor_si256(c2[6388],simde_mm256_xor_si256(c2[2881],simde_mm256_xor_si256(c2[9221],simde_mm256_xor_si256(c2[3943],simde_mm256_xor_si256(c2[10275],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[6050],simde_mm256_xor_si256(c2[6402],simde_mm256_xor_si256(c2[5712],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[6775],simde_mm256_xor_si256(c2[1844],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[6773],simde_mm256_xor_si256(c2[7845],simde_mm256_xor_si256(c2[2914],simde_mm256_xor_si256(c2[3264],simde_mm256_xor_si256(c2[9604],simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[6790],simde_mm256_xor_si256(c2[7142],simde_mm256_xor_si256(c2[3636],simde_mm256_xor_si256(c2[9968],simde_mm256_xor_si256(c2[6100],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[5393],simde_mm256_xor_si256(c2[118],simde_mm256_xor_si256(c2[470],simde_mm256_xor_si256(c2[6101],simde_mm256_xor_si256(c2[7168],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[10338],simde_mm256_xor_si256(c2[5415],simde_mm256_xor_si256(c2[11044],simde_mm256_xor_si256(c2[5761],simde_mm256_xor_si256(c2[6113],simde_mm256_xor_si256(c2[2615],simde_mm256_xor_si256(c2[8947],simde_mm256_xor_si256(c2[8946],simde_mm256_xor_si256(c2[4023],simde_mm256_xor_si256(c2[4016],simde_mm256_xor_si256(c2[10356],simde_mm256_xor_si256(c2[6148],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[6854],simde_mm256_xor_si256(c2[1923],simde_mm256_xor_si256(c2[7201],simde_mm256_xor_si256(c2[1926],simde_mm256_xor_si256(c2[2278],simde_mm256_xor_si256(c2[9328],simde_mm256_xor_si256(c2[4405],simde_mm256_xor_si256(c2[2996],simde_mm256_xor_si256(c2[9328],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[6868],simde_mm256_xor_si256(c2[7220],simde_mm256_xor_si256(c2[4067],simde_mm256_xor_si256(c2[10407],simde_mm256_xor_si256(c2[6528],simde_mm256_xor_si256(c2[1605],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[6881],simde_mm256_xor_si256(c2[7233],simde_mm256_xor_si256(c2[7605],simde_mm256_xor_si256(c2[2674],simde_mm256_xor_si256(c2[9361],simde_mm256_xor_si256(c2[4438],simde_mm256_xor_si256(c2[2676],simde_mm256_xor_si256(c2[8656],simde_mm256_xor_si256(c2[9008],simde_mm256_xor_si256(c2[9024],simde_mm256_xor_si256(c2[4101],simde_mm256_xor_si256(c2[4804],simde_mm256_xor_si256(c2[11136],simde_mm256_xor_si256(c2[11139],simde_mm256_xor_si256(c2[5856],simde_mm256_xor_si256(c2[6208],simde_mm256_xor_si256(c2[5523],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[5873],simde_mm256_xor_si256(c2[950],simde_mm256_xor_si256(c2[4820],simde_mm256_xor_si256(c2[11152],simde_mm256_xor_si256(c2[1318],simde_mm256_xor_si256(c2[7650],simde_mm256_xor_si256(c2[9409],simde_mm256_xor_si256(c2[4486],simde_mm256_xor_si256(c2[10116],simde_mm256_xor_si256(c2[4833],simde_mm256_xor_si256(c2[5185],simde_mm256_xor_si256(c2[2738],simde_mm256_xor_si256(c2[9078],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[6961],simde_mm256_xor_si256(c2[8727],simde_mm256_xor_si256(c2[3444],simde_mm256_xor_si256(c2[3796],simde_mm256_xor_si256(c2[3811],simde_mm256_xor_si256(c2[10151],simde_mm256_xor_si256(c2[9091],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[6273],simde_mm256_xor_si256(c2[6625],simde_mm256_xor_si256(c2[5590],simde_mm256_xor_si256(c2[659],simde_mm256_xor_si256(c2[4181],simde_mm256_xor_si256(c2[10513],simde_mm256_xor_si256(c2[2773],simde_mm256_xor_si256(c2[9105],simde_mm256_xor_si256(c2[9828],simde_mm256_xor_si256(c2[4897],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[7013],simde_mm256_xor_si256(c2[10177],simde_mm256_xor_si256(c2[4902],simde_mm256_xor_si256(c2[5254],simde_mm256_xor_si256(c2[4214],simde_mm256_xor_si256(c2[10546],simde_mm256_xor_si256(c2[3158],simde_mm256_xor_si256(c2[9490],simde_mm256_xor_si256(c2[8789],simde_mm256_xor_si256(c2[3506],c2[3858])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[256]=_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[9859],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[10933],_mm256_xor_si256(c2[2839],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6358],_mm256_xor_si256(c2[6710],_mm256_xor_si256(c2[9890],_mm256_xor_si256(c2[3203],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[6721],_mm256_xor_si256(c2[8848],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[4630],_mm256_xor_si256(c2[4982],_mm256_xor_si256(c2[7815],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[4644],_mm256_xor_si256(c2[4996],_mm256_xor_si256(c2[10646],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[8198],_mm256_xor_si256(c2[5376],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[8562],_mm256_xor_si256(c2[10674],_mm256_xor_si256(c2[11026],_mm256_xor_si256(c2[9975],_mm256_xor_si256(c2[10327],_mm256_xor_si256(c2[839],_mm256_xor_si256(c2[3649],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[4355],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[5462],_mm256_xor_si256(c2[5814],_mm256_xor_si256(c2[8993],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[7250],_mm256_xor_si256(c2[7602],_mm256_xor_si256(c2[2695],_mm256_xor_si256(c2[9378],_mm256_xor_si256(c2[9730],_mm256_xor_si256(c2[4450],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[10449],_mm256_xor_si256(c2[10807],_mm256_xor_si256(c2[9394],_mm256_xor_si256(c2[9746],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[3427],_mm256_xor_si256(c2[3779],_mm256_xor_si256(c2[7664],_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[2038],_mm256_xor_si256(c2[2390],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2754],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[5219],_mm256_xor_si256(c2[10516],_mm256_xor_si256(c2[9107],_mm256_xor_si256(c2[7347],_mm256_xor_si256(c2[7699],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5255],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[3488],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[9140],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[2100],c2[2452]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[256]=simde_mm256_xor_si256(c2[7043],simde_mm256_xor_si256(c2[9859],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[1415],simde_mm256_xor_si256(c2[6343],simde_mm256_xor_si256(c2[6695],simde_mm256_xor_si256(c2[10214],simde_mm256_xor_si256(c2[10933],simde_mm256_xor_si256(c2[2839],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[6358],simde_mm256_xor_si256(c2[6710],simde_mm256_xor_si256(c2[9890],simde_mm256_xor_si256(c2[3203],simde_mm256_xor_si256(c2[6369],simde_mm256_xor_si256(c2[6721],simde_mm256_xor_si256(c2[8848],simde_mm256_xor_si256(c2[5335],simde_mm256_xor_si256(c2[4630],simde_mm256_xor_si256(c2[4982],simde_mm256_xor_si256(c2[7815],simde_mm256_xor_si256(c2[8517],simde_mm256_xor_si256(c2[8869],simde_mm256_xor_si256(c2[4644],simde_mm256_xor_si256(c2[4996],simde_mm256_xor_si256(c2[10646],simde_mm256_xor_si256(c2[438],simde_mm256_xor_si256(c2[5015],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[7846],simde_mm256_xor_si256(c2[8198],simde_mm256_xor_si256(c2[5376],simde_mm256_xor_si256(c2[5728],simde_mm256_xor_si256(c2[8562],simde_mm256_xor_si256(c2[10674],simde_mm256_xor_si256(c2[11026],simde_mm256_xor_si256(c2[9975],simde_mm256_xor_si256(c2[10327],simde_mm256_xor_si256(c2[839],simde_mm256_xor_si256(c2[3649],simde_mm256_xor_si256(c2[4001],simde_mm256_xor_si256(c2[4355],simde_mm256_xor_si256(c2[4707],simde_mm256_xor_si256(c2[7541],simde_mm256_xor_si256(c2[2609],simde_mm256_xor_si256(c2[8598],simde_mm256_xor_si256(c2[8950],simde_mm256_xor_si256(c2[11074],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[2999],simde_mm256_xor_si256(c2[7922],simde_mm256_xor_si256(c2[5462],simde_mm256_xor_si256(c2[5814],simde_mm256_xor_si256(c2[8993],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[5475],simde_mm256_xor_si256(c2[5827],simde_mm256_xor_si256(c2[5827],simde_mm256_xor_si256(c2[1268],simde_mm256_xor_si256(c2[2672],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[7250],simde_mm256_xor_si256(c2[7602],simde_mm256_xor_si256(c2[2695],simde_mm256_xor_si256(c2[9378],simde_mm256_xor_si256(c2[9730],simde_mm256_xor_si256(c2[4450],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[2694],simde_mm256_xor_si256(c2[10449],simde_mm256_xor_si256(c2[10807],simde_mm256_xor_si256(c2[9394],simde_mm256_xor_si256(c2[9746],simde_mm256_xor_si256(c2[6244],simde_mm256_xor_si256(c2[3072],simde_mm256_xor_si256(c2[3427],simde_mm256_xor_si256(c2[3779],simde_mm256_xor_si256(c2[7664],simde_mm256_xor_si256(c2[5203],simde_mm256_xor_si256(c2[5555],simde_mm256_xor_si256(c2[2038],simde_mm256_xor_si256(c2[2390],simde_mm256_xor_si256(c2[8737],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2754],simde_mm256_xor_si256(c2[4867],simde_mm256_xor_si256(c2[5219],simde_mm256_xor_si256(c2[10516],simde_mm256_xor_si256(c2[9107],simde_mm256_xor_si256(c2[7347],simde_mm256_xor_si256(c2[7699],simde_mm256_xor_si256(c2[3491],simde_mm256_xor_si256(c2[5255],simde_mm256_xor_si256(c2[5607],simde_mm256_xor_si256(c2[3488],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[9140],simde_mm256_xor_si256(c2[8084],simde_mm256_xor_si256(c2[2100],c2[2452]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[264]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9541],_mm256_xor_si256(c2[3345],c2[7030]))); + d2[264]=simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[9541],simde_mm256_xor_si256(c2[3345],c2[7030]))); //row: 34 - d2[272]=_mm256_xor_si256(c2[10915],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[1653],c2[11188]))); + d2[272]=simde_mm256_xor_si256(c2[10915],simde_mm256_xor_si256(c2[2581],simde_mm256_xor_si256(c2[1653],c2[11188]))); //row: 35 - d2[280]=_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[7766],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[3202],_mm256_xor_si256(c2[7778],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[9910],_mm256_xor_si256(c2[9557],_mm256_xor_si256(c2[1127],_mm256_xor_si256(c2[2181],_mm256_xor_si256(c2[9571],_mm256_xor_si256(c2[3958],_mm256_xor_si256(c2[5013],_mm256_xor_si256(c2[9942],_mm256_xor_si256(c2[6083],_mm256_xor_si256(c2[1510],_mm256_xor_si256(c2[10311],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5414],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[9282],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[7184],_mm256_xor_si256(c2[2262],_mm256_xor_si256(c2[4386],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[5447],_mm256_xor_si256(c2[7574],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[10389],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[10402],_mm256_xor_si256(c2[5478],_mm256_xor_si256(c2[5843],_mm256_xor_si256(c2[7607],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[9377],_mm256_xor_si256(c2[3761],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[3058],_mm256_xor_si256(c2[10819],_mm256_xor_si256(c2[7655],_mm256_xor_si256(c2[8354],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[10130],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[7329],_mm256_xor_si256(c2[9794],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[2419],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[8066],_mm256_xor_si256(c2[10182],_mm256_xor_si256(c2[8423],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[1396],c2[7027]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[280]=simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[5990],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[4245],simde_mm256_xor_si256(c2[7766],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[3202],simde_mm256_xor_si256(c2[7778],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[2160],simde_mm256_xor_si256(c2[9910],simde_mm256_xor_si256(c2[9557],simde_mm256_xor_si256(c2[1127],simde_mm256_xor_si256(c2[2181],simde_mm256_xor_si256(c2[9571],simde_mm256_xor_si256(c2[3958],simde_mm256_xor_si256(c2[5013],simde_mm256_xor_si256(c2[9942],simde_mm256_xor_si256(c2[6083],simde_mm256_xor_si256(c2[1510],simde_mm256_xor_si256(c2[10311],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[1874],simde_mm256_xor_si256(c2[4338],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[5414],simde_mm256_xor_si256(c2[8576],simde_mm256_xor_si256(c2[9282],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[7184],simde_mm256_xor_si256(c2[2262],simde_mm256_xor_si256(c2[4386],simde_mm256_xor_si256(c2[5092],simde_mm256_xor_si256(c2[5447],simde_mm256_xor_si256(c2[7574],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[10389],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[4774],simde_mm256_xor_si256(c2[10402],simde_mm256_xor_si256(c2[5478],simde_mm256_xor_si256(c2[5843],simde_mm256_xor_si256(c2[7607],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[7270],simde_mm256_xor_si256(c2[3042],simde_mm256_xor_si256(c2[9377],simde_mm256_xor_si256(c2[3761],simde_mm256_xor_si256(c2[4119],simde_mm256_xor_si256(c2[3058],simde_mm256_xor_si256(c2[10819],simde_mm256_xor_si256(c2[7655],simde_mm256_xor_si256(c2[8354],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[10130],simde_mm256_xor_si256(c2[6965],simde_mm256_xor_si256(c2[2049],simde_mm256_xor_si256(c2[7329],simde_mm256_xor_si256(c2[9794],simde_mm256_xor_si256(c2[3828],simde_mm256_xor_si256(c2[2419],simde_mm256_xor_si256(c2[1011],simde_mm256_xor_si256(c2[8066],simde_mm256_xor_si256(c2[10182],simde_mm256_xor_si256(c2[8423],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[1396],c2[7027]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[288]=_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[3395],_mm256_xor_si256(c2[6929],c2[8739]))); + d2[288]=simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[3395],simde_mm256_xor_si256(c2[6929],c2[8739]))); //row: 37 - d2[296]=_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[10933],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[2134],_mm256_xor_si256(c2[9890],_mm256_xor_si256(c2[10242],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[8848],_mm256_xor_si256(c2[9200],_mm256_xor_si256(c2[5687],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[8167],_mm256_xor_si256(c2[9221],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[10646],_mm256_xor_si256(c2[10998],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[8550],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[8914],_mm256_xor_si256(c2[115],_mm256_xor_si256(c2[10679],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[7893],_mm256_xor_si256(c2[2961],_mm256_xor_si256(c2[9302],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[163],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[6166],_mm256_xor_si256(c2[8993],_mm256_xor_si256(c2[9345],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[1620],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[7954],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[10082],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[10449],_mm256_xor_si256(c2[10801],_mm256_xor_si256(c2[11159],_mm256_xor_si256(c2[10098],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[6596],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[9089],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[5571],_mm256_xor_si256(c2[10516],_mm256_xor_si256(c2[10868],_mm256_xor_si256(c2[9459],_mm256_xor_si256(c2[8051],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[3843],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[4192],_mm256_xor_si256(c2[9140],_mm256_xor_si256(c2[9492],_mm256_xor_si256(c2[8436],c2[2804]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[296]=simde_mm256_xor_si256(c2[7043],simde_mm256_xor_si256(c2[7395],simde_mm256_xor_si256(c2[10211],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[7047],simde_mm256_xor_si256(c2[10933],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[3543],simde_mm256_xor_si256(c2[7062],simde_mm256_xor_si256(c2[2134],simde_mm256_xor_si256(c2[9890],simde_mm256_xor_si256(c2[10242],simde_mm256_xor_si256(c2[3555],simde_mm256_xor_si256(c2[7073],simde_mm256_xor_si256(c2[8848],simde_mm256_xor_si256(c2[9200],simde_mm256_xor_si256(c2[5687],simde_mm256_xor_si256(c2[5334],simde_mm256_xor_si256(c2[8167],simde_mm256_xor_si256(c2[9221],simde_mm256_xor_si256(c2[5348],simde_mm256_xor_si256(c2[10646],simde_mm256_xor_si256(c2[10998],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[5719],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[1860],simde_mm256_xor_si256(c2[8550],simde_mm256_xor_si256(c2[6080],simde_mm256_xor_si256(c2[8914],simde_mm256_xor_si256(c2[115],simde_mm256_xor_si256(c2[10679],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[4353],simde_mm256_xor_si256(c2[5059],simde_mm256_xor_si256(c2[7541],simde_mm256_xor_si256(c2[7893],simde_mm256_xor_si256(c2[2961],simde_mm256_xor_si256(c2[9302],simde_mm256_xor_si256(c2[11074],simde_mm256_xor_si256(c2[163],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[1216],simde_mm256_xor_si256(c2[2999],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[8274],simde_mm256_xor_si256(c2[6166],simde_mm256_xor_si256(c2[8993],simde_mm256_xor_si256(c2[9345],simde_mm256_xor_si256(c2[551],simde_mm256_xor_si256(c2[6179],simde_mm256_xor_si256(c2[1268],simde_mm256_xor_si256(c2[1620],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[7954],simde_mm256_xor_si256(c2[10070],simde_mm256_xor_si256(c2[3047],simde_mm256_xor_si256(c2[10082],simde_mm256_xor_si256(c2[5154],simde_mm256_xor_si256(c2[10449],simde_mm256_xor_si256(c2[10801],simde_mm256_xor_si256(c2[11159],simde_mm256_xor_si256(c2[10098],simde_mm256_xor_si256(c2[6244],simde_mm256_xor_si256(c2[6596],simde_mm256_xor_si256(c2[3424],simde_mm256_xor_si256(c2[4131],simde_mm256_xor_si256(c2[8016],simde_mm256_xor_si256(c2[5907],simde_mm256_xor_si256(c2[2742],simde_mm256_xor_si256(c2[8737],simde_mm256_xor_si256(c2[9089],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[5571],simde_mm256_xor_si256(c2[10516],simde_mm256_xor_si256(c2[10868],simde_mm256_xor_si256(c2[9459],simde_mm256_xor_si256(c2[8051],simde_mm256_xor_si256(c2[3491],simde_mm256_xor_si256(c2[3843],simde_mm256_xor_si256(c2[5959],simde_mm256_xor_si256(c2[4192],simde_mm256_xor_si256(c2[9140],simde_mm256_xor_si256(c2[9492],simde_mm256_xor_si256(c2[8436],c2[2804]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[304]=_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[10372],c2[1253]))); + d2[304]=simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[8244],simde_mm256_xor_si256(c2[10372],c2[1253]))); //row: 39 - d2[312]=_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[7508],c2[304]))); + d2[312]=simde_mm256_xor_si256(c2[4597],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[7508],c2[304]))); //row: 40 - d2[320]=_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[3300],c2[7668])); + d2[320]=simde_mm256_xor_si256(c2[10212],simde_mm256_xor_si256(c2[3300],c2[7668])); //row: 41 - d2[328]=_mm256_xor_si256(c2[2485],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[4020],c2[8388]))); + d2[328]=simde_mm256_xor_si256(c2[2485],simde_mm256_xor_si256(c2[4629],simde_mm256_xor_si256(c2[4020],c2[8388]))); //row: 42 - d2[336]=_mm256_xor_si256(c2[1412],_mm256_xor_si256(c2[4228],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[5302],_mm256_xor_si256(c2[8471],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[1079],_mm256_xor_si256(c2[4259],_mm256_xor_si256(c2[8835],_mm256_xor_si256(c2[738],_mm256_xor_si256(c2[1090],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[10967],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[10614],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[10276],_mm256_xor_si256(c2[10628],_mm256_xor_si256(c2[10276],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[6070],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[10999],_mm256_xor_si256(c2[7140],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[11008],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[5395],_mm256_xor_si256(c2[4336],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[6471],_mm256_xor_si256(c2[9281],_mm256_xor_si256(c2[9633],_mm256_xor_si256(c2[9987],_mm256_xor_si256(c2[10339],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5797],_mm256_xor_si256(c2[6149],_mm256_xor_si256(c2[6144],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[8631],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[11094],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[5831],_mm256_xor_si256(c2[11107],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[8304],_mm256_xor_si256(c2[8656],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[8327],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[4099],_mm256_xor_si256(c2[10082],_mm256_xor_si256(c2[10434],_mm256_xor_si256(c2[4818],_mm256_xor_si256(c2[5168],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[4115],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[9411],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[10835],_mm256_xor_si256(c2[11187],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[8022],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[8034],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[10499],_mm256_xor_si256(c2[10851],_mm256_xor_si256(c2[4885],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[9123],_mm256_xor_si256(c2[10887],_mm256_xor_si256(c2[11239],_mm256_xor_si256(c2[9120],_mm256_xor_si256(c2[9472],_mm256_xor_si256(c2[3509],_mm256_xor_si256(c2[2453],_mm256_xor_si256(c2[7732],c2[8084])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[336]=simde_mm256_xor_si256(c2[1412],simde_mm256_xor_si256(c2[4228],simde_mm256_xor_si256(c2[6695],simde_mm256_xor_si256(c2[7047],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[1056],simde_mm256_xor_si256(c2[7396],simde_mm256_xor_si256(c2[5302],simde_mm256_xor_si256(c2[8471],simde_mm256_xor_si256(c2[8823],simde_mm256_xor_si256(c2[727],simde_mm256_xor_si256(c2[1079],simde_mm256_xor_si256(c2[4259],simde_mm256_xor_si256(c2[8835],simde_mm256_xor_si256(c2[738],simde_mm256_xor_si256(c2[1090],simde_mm256_xor_si256(c2[3217],simde_mm256_xor_si256(c2[10967],simde_mm256_xor_si256(c2[10262],simde_mm256_xor_si256(c2[10614],simde_mm256_xor_si256(c2[2176],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[3238],simde_mm256_xor_si256(c2[10276],simde_mm256_xor_si256(c2[10628],simde_mm256_xor_si256(c2[10276],simde_mm256_xor_si256(c2[5015],simde_mm256_xor_si256(c2[6070],simde_mm256_xor_si256(c2[10647],simde_mm256_xor_si256(c2[10999],simde_mm256_xor_si256(c2[7140],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[2567],simde_mm256_xor_si256(c2[11008],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[2931],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[5395],simde_mm256_xor_si256(c2[4336],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[6471],simde_mm256_xor_si256(c2[9281],simde_mm256_xor_si256(c2[9633],simde_mm256_xor_si256(c2[9987],simde_mm256_xor_si256(c2[10339],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[8241],simde_mm256_xor_si256(c2[2967],simde_mm256_xor_si256(c2[3319],simde_mm256_xor_si256(c2[5443],simde_mm256_xor_si256(c2[5797],simde_mm256_xor_si256(c2[6149],simde_mm256_xor_si256(c2[6144],simde_mm256_xor_si256(c2[6496],simde_mm256_xor_si256(c2[8631],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[11094],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[3362],simde_mm256_xor_si256(c2[5831],simde_mm256_xor_si256(c2[11107],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[6900],simde_mm256_xor_si256(c2[8304],simde_mm256_xor_si256(c2[8656],simde_mm256_xor_si256(c2[1619],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[8327],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[4099],simde_mm256_xor_si256(c2[10082],simde_mm256_xor_si256(c2[10434],simde_mm256_xor_si256(c2[4818],simde_mm256_xor_si256(c2[5168],simde_mm256_xor_si256(c2[3763],simde_mm256_xor_si256(c2[4115],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[8704],simde_mm256_xor_si256(c2[9059],simde_mm256_xor_si256(c2[9411],simde_mm256_xor_si256(c2[2033],simde_mm256_xor_si256(c2[10835],simde_mm256_xor_si256(c2[11187],simde_mm256_xor_si256(c2[7670],simde_mm256_xor_si256(c2[8022],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[8034],simde_mm256_xor_si256(c2[8386],simde_mm256_xor_si256(c2[10499],simde_mm256_xor_si256(c2[10851],simde_mm256_xor_si256(c2[4885],simde_mm256_xor_si256(c2[3476],simde_mm256_xor_si256(c2[1716],simde_mm256_xor_si256(c2[2068],simde_mm256_xor_si256(c2[9123],simde_mm256_xor_si256(c2[10887],simde_mm256_xor_si256(c2[11239],simde_mm256_xor_si256(c2[9120],simde_mm256_xor_si256(c2[9472],simde_mm256_xor_si256(c2[3509],simde_mm256_xor_si256(c2[2453],simde_mm256_xor_si256(c2[7732],c2[8084])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[344]=_mm256_xor_si256(c2[2116],_mm256_xor_si256(c2[4932],_mm256_xor_si256(c2[7751],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[6006],_mm256_xor_si256(c2[9527],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[8116],_mm256_xor_si256(c2[4963],_mm256_xor_si256(c2[9539],_mm256_xor_si256(c2[1794],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[55],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[6774],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[3271],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[3635],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5392],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10337],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[11043],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[8945],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[6147],_mm256_xor_si256(c2[6853],_mm256_xor_si256(c2[6848],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[9335],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[9031],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[11138],_mm256_xor_si256(c2[5522],_mm256_xor_si256(c2[5872],_mm256_xor_si256(c2[4819],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[9408],_mm256_xor_si256(c2[9763],_mm256_xor_si256(c2[10115],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[8726],_mm256_xor_si256(c2[3810],_mm256_xor_si256(c2[9090],_mm256_xor_si256(c2[11203],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[4869],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[9827],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[9824],_mm256_xor_si256(c2[10176],_mm256_xor_si256(c2[4213],_mm256_xor_si256(c2[3157],_mm256_xor_si256(c2[8436],c2[8788])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[344]=simde_mm256_xor_si256(c2[2116],simde_mm256_xor_si256(c2[4932],simde_mm256_xor_si256(c2[7751],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[6006],simde_mm256_xor_si256(c2[9527],simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[8116],simde_mm256_xor_si256(c2[4963],simde_mm256_xor_si256(c2[9539],simde_mm256_xor_si256(c2[1794],simde_mm256_xor_si256(c2[3921],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[10966],simde_mm256_xor_si256(c2[55],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[10980],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[5719],simde_mm256_xor_si256(c2[6774],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[7844],simde_mm256_xor_si256(c2[3271],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[3635],simde_mm256_xor_si256(c2[6099],simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[5392],simde_mm256_xor_si256(c2[7175],simde_mm256_xor_si256(c2[10337],simde_mm256_xor_si256(c2[10691],simde_mm256_xor_si256(c2[11043],simde_mm256_xor_si256(c2[2614],simde_mm256_xor_si256(c2[8945],simde_mm256_xor_si256(c2[4023],simde_mm256_xor_si256(c2[6147],simde_mm256_xor_si256(c2[6853],simde_mm256_xor_si256(c2[6848],simde_mm256_xor_si256(c2[7200],simde_mm256_xor_si256(c2[9335],simde_mm256_xor_si256(c2[2995],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[4066],simde_mm256_xor_si256(c2[6535],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[7604],simde_mm256_xor_si256(c2[9360],simde_mm256_xor_si256(c2[2323],simde_mm256_xor_si256(c2[2675],simde_mm256_xor_si256(c2[9031],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[10786],simde_mm256_xor_si256(c2[11138],simde_mm256_xor_si256(c2[5522],simde_mm256_xor_si256(c2[5872],simde_mm256_xor_si256(c2[4819],simde_mm256_xor_si256(c2[1317],simde_mm256_xor_si256(c2[9408],simde_mm256_xor_si256(c2[9763],simde_mm256_xor_si256(c2[10115],simde_mm256_xor_si256(c2[1317],simde_mm256_xor_si256(c2[2737],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[8374],simde_mm256_xor_si256(c2[8726],simde_mm256_xor_si256(c2[3810],simde_mm256_xor_si256(c2[9090],simde_mm256_xor_si256(c2[11203],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[4869],simde_mm256_xor_si256(c2[5589],simde_mm256_xor_si256(c2[4180],simde_mm256_xor_si256(c2[2772],simde_mm256_xor_si256(c2[9827],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[9824],simde_mm256_xor_si256(c2[10176],simde_mm256_xor_si256(c2[4213],simde_mm256_xor_si256(c2[3157],simde_mm256_xor_si256(c2[8436],c2[8788])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[352]=_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[8096],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[6359],_mm256_xor_si256(c2[9872],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[9892],_mm256_xor_si256(c2[2147],_mm256_xor_si256(c2[4274],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[3233],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[6064],_mm256_xor_si256(c2[7127],_mm256_xor_si256(c2[785],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[6452],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[10324],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[10690],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[9298],_mm256_xor_si256(c2[4368],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[7206],_mm256_xor_si256(c2[7553],_mm256_xor_si256(c2[9680],_mm256_xor_si256(c2[3348],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[7957],_mm256_xor_si256(c2[9713],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[9376],_mm256_xor_si256(c2[5156],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[5875],_mm256_xor_si256(c2[6225],_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[1670],_mm256_xor_si256(c2[9761],_mm256_xor_si256(c2[10468],_mm256_xor_si256(c2[3090],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[9079],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[9443],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[4533],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[10180],_mm256_xor_si256(c2[1025],_mm256_xor_si256(c2[10529],_mm256_xor_si256(c2[4566],_mm256_xor_si256(c2[3510],c2[9141]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[352]=simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[8096],simde_mm256_xor_si256(c2[2113],simde_mm256_xor_si256(c2[3876],simde_mm256_xor_si256(c2[6359],simde_mm256_xor_si256(c2[9872],simde_mm256_xor_si256(c2[2128],simde_mm256_xor_si256(c2[5316],simde_mm256_xor_si256(c2[9892],simde_mm256_xor_si256(c2[2147],simde_mm256_xor_si256(c2[4274],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[3233],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[422],simde_mm256_xor_si256(c2[6064],simde_mm256_xor_si256(c2[7127],simde_mm256_xor_si256(c2[785],simde_mm256_xor_si256(c2[8197],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[3988],simde_mm256_xor_si256(c2[6452],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[10324],simde_mm256_xor_si256(c2[7520],simde_mm256_xor_si256(c2[10690],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[2967],simde_mm256_xor_si256(c2[9298],simde_mm256_xor_si256(c2[4368],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[6500],simde_mm256_xor_si256(c2[7206],simde_mm256_xor_si256(c2[7553],simde_mm256_xor_si256(c2[9680],simde_mm256_xor_si256(c2[3348],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[6880],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[7957],simde_mm256_xor_si256(c2[9713],simde_mm256_xor_si256(c2[3028],simde_mm256_xor_si256(c2[9376],simde_mm256_xor_si256(c2[5156],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[5875],simde_mm256_xor_si256(c2[6225],simde_mm256_xor_si256(c2[5172],simde_mm256_xor_si256(c2[1670],simde_mm256_xor_si256(c2[9761],simde_mm256_xor_si256(c2[10468],simde_mm256_xor_si256(c2[3090],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[9079],simde_mm256_xor_si256(c2[4163],simde_mm256_xor_si256(c2[9443],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[5942],simde_mm256_xor_si256(c2[4533],simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[10180],simde_mm256_xor_si256(c2[1025],simde_mm256_xor_si256(c2[10529],simde_mm256_xor_si256(c2[4566],simde_mm256_xor_si256(c2[3510],c2[9141]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[360]=_mm256_xor_si256(c2[7412],_mm256_xor_si256(c2[8196],c2[2629])); + d2[360]=simde_mm256_xor_si256(c2[7412],simde_mm256_xor_si256(c2[8196],c2[2629])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc288_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc288_byte.c index 239a6e955d..92ef1d48f4 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc288_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc288_byte.c @@ -11,141 +11,141 @@ static inline void ldpc288_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[4110],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[8481],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[9489],c2[5133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[7530],simde_mm256_xor_si256(c2[7529],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[10697],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[11129],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[11130],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[12336],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[4827],simde_mm256_xor_si256(c2[10788],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[7621],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[4880],simde_mm256_xor_si256(c2[10428],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[4110],simde_mm256_xor_si256(c2[12421],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[11646],simde_mm256_xor_si256(c2[8481],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[6520],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[8121],simde_mm256_xor_si256(c2[5349],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[9726],simde_mm256_xor_si256(c2[6156],simde_mm256_xor_si256(c2[10117],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[4196],simde_mm256_xor_si256(c2[1819],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[2239],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[9778],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[12172],simde_mm256_xor_si256(c2[7423],simde_mm256_xor_si256(c2[7834],simde_mm256_xor_si256(c2[9816],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[12602],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[9852],simde_mm256_xor_si256(c2[11434],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[4327],simde_mm256_xor_si256(c2[7095],simde_mm256_xor_si256(c2[2366],simde_mm256_xor_si256(c2[9489],c2[5133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[9]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[9]=simde_mm256_xor_si256(c2[7530],simde_mm256_xor_si256(c2[7926],simde_mm256_xor_si256(c2[7925],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[11093],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[7150],simde_mm256_xor_si256(c2[11129],simde_mm256_xor_si256(c2[11525],simde_mm256_xor_si256(c2[1229],simde_mm256_xor_si256(c2[11526],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[10751],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[10788],simde_mm256_xor_si256(c2[11184],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[8017],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[4470],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[10824],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[4506],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[2526],simde_mm256_xor_si256(c2[11646],simde_mm256_xor_si256(c2[12042],simde_mm256_xor_si256(c2[8877],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[6520],simde_mm256_xor_si256(c2[6916],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[8121],simde_mm256_xor_si256(c2[8517],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[9726],simde_mm256_xor_si256(c2[10122],simde_mm256_xor_si256(c2[6552],simde_mm256_xor_si256(c2[10513],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[8157],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[3818],simde_mm256_xor_si256(c2[2635],simde_mm256_xor_si256(c2[8175],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[4237],simde_mm256_xor_si256(c2[10174],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[7024],simde_mm256_xor_si256(c2[12568],simde_mm256_xor_si256(c2[7819],simde_mm256_xor_si256(c2[8230],simde_mm256_xor_si256(c2[10212],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[12602],simde_mm256_xor_si256(c2[327],simde_mm256_xor_si256(c2[5876],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[9852],simde_mm256_xor_si256(c2[10248],simde_mm256_xor_si256(c2[11830],simde_mm256_xor_si256(c2[3912],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[7491],simde_mm256_xor_si256(c2[2366],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[9885],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[18]=_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[5133],c2[5529])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[18]=simde_mm256_xor_si256(c2[7926],simde_mm256_xor_si256(c2[7925],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[10697],simde_mm256_xor_si256(c2[11093],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[7150],simde_mm256_xor_si256(c2[11525],simde_mm256_xor_si256(c2[1229],simde_mm256_xor_si256(c2[11130],simde_mm256_xor_si256(c2[11526],simde_mm256_xor_si256(c2[10751],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[4827],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[11184],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[7621],simde_mm256_xor_si256(c2[8017],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[4470],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[10428],simde_mm256_xor_si256(c2[10824],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[4506],simde_mm256_xor_si256(c2[12421],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[2526],simde_mm256_xor_si256(c2[12042],simde_mm256_xor_si256(c2[8877],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[6916],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[8517],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[10122],simde_mm256_xor_si256(c2[6552],simde_mm256_xor_si256(c2[10117],simde_mm256_xor_si256(c2[10513],simde_mm256_xor_si256(c2[8157],simde_mm256_xor_si256(c2[4196],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[1819],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[3818],simde_mm256_xor_si256(c2[2239],simde_mm256_xor_si256(c2[2635],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[8175],simde_mm256_xor_si256(c2[4237],simde_mm256_xor_si256(c2[10174],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[7024],simde_mm256_xor_si256(c2[12568],simde_mm256_xor_si256(c2[7423],simde_mm256_xor_si256(c2[7819],simde_mm256_xor_si256(c2[8230],simde_mm256_xor_si256(c2[9816],simde_mm256_xor_si256(c2[10212],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[327],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[5876],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[10248],simde_mm256_xor_si256(c2[11830],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[3912],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4327],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[7095],simde_mm256_xor_si256(c2[7491],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[9885],simde_mm256_xor_si256(c2[5133],c2[5529])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[27]=_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[5133],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[27]=simde_mm256_xor_si256(c2[7926],simde_mm256_xor_si256(c2[7925],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[10697],simde_mm256_xor_si256(c2[11093],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[7150],simde_mm256_xor_si256(c2[11525],simde_mm256_xor_si256(c2[1229],simde_mm256_xor_si256(c2[11526],simde_mm256_xor_si256(c2[10751],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[4827],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[11184],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[8017],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[4470],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[10824],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[4506],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[2526],simde_mm256_xor_si256(c2[12042],simde_mm256_xor_si256(c2[8877],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[6916],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[8517],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[10122],simde_mm256_xor_si256(c2[6552],simde_mm256_xor_si256(c2[10117],simde_mm256_xor_si256(c2[10513],simde_mm256_xor_si256(c2[8157],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[1819],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[3818],simde_mm256_xor_si256(c2[2635],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[8175],simde_mm256_xor_si256(c2[4237],simde_mm256_xor_si256(c2[10174],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[7024],simde_mm256_xor_si256(c2[12568],simde_mm256_xor_si256(c2[7423],simde_mm256_xor_si256(c2[7819],simde_mm256_xor_si256(c2[8230],simde_mm256_xor_si256(c2[10212],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[327],simde_mm256_xor_si256(c2[5876],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[10248],simde_mm256_xor_si256(c2[11830],simde_mm256_xor_si256(c2[3912],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[7095],simde_mm256_xor_si256(c2[7491],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[9885],simde_mm256_xor_si256(c2[5133],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[36]=_mm256_xor_si256(c2[8719],c2[4381]); + d2[36]=simde_mm256_xor_si256(c2[8719],c2[4381]); //row: 5 - d2[45]=_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[1189],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[4357],_mm256_xor_si256(c2[1988],_mm256_xor_si256(c2[8731],_mm256_xor_si256(c2[9126],_mm256_xor_si256(c2[414],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[7164],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[5996],_mm256_xor_si256(c2[8766],_mm256_xor_si256(c2[3224],_mm256_xor_si256(c2[6411],_mm256_xor_si256(c2[8396],_mm256_xor_si256(c2[11167],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[6426],_mm256_xor_si256(c2[1281],_mm256_xor_si256(c2[8032],_mm256_xor_si256(c2[10405],_mm256_xor_si256(c2[907],_mm256_xor_si256(c2[11220],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[8054],_mm256_xor_si256(c2[10441],_mm256_xor_si256(c2[6090],_mm256_xor_si256(c2[8461],_mm256_xor_si256(c2[5315],_mm256_xor_si256(c2[2150],_mm256_xor_si256(c2[6502],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[7708],_mm256_xor_si256(c2[10085],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[11689],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[12496],_mm256_xor_si256(c2[3786],_mm256_xor_si256(c2[10916],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[10536],_mm256_xor_si256(c2[8159],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[8570],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[10172],_mm256_xor_si256(c2[3438],_mm256_xor_si256(c2[6610],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[5832],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[12175],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[8622],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[11811],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[3512],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[9847],_mm256_xor_si256(c2[10266],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[8697],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[11473],c2[6320])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[45]=simde_mm256_xor_si256(c2[1190],simde_mm256_xor_si256(c2[1189],simde_mm256_xor_si256(c2[7131],simde_mm256_xor_si256(c2[4357],simde_mm256_xor_si256(c2[1988],simde_mm256_xor_si256(c2[8731],simde_mm256_xor_si256(c2[9126],simde_mm256_xor_si256(c2[414],simde_mm256_xor_si256(c2[8339],simde_mm256_xor_si256(c2[4789],simde_mm256_xor_si256(c2[7164],simde_mm256_xor_si256(c2[4790],simde_mm256_xor_si256(c2[4015],simde_mm256_xor_si256(c2[5996],simde_mm256_xor_si256(c2[8766],simde_mm256_xor_si256(c2[3224],simde_mm256_xor_si256(c2[6411],simde_mm256_xor_si256(c2[8396],simde_mm256_xor_si256(c2[11167],simde_mm256_xor_si256(c2[4448],simde_mm256_xor_si256(c2[6426],simde_mm256_xor_si256(c2[1281],simde_mm256_xor_si256(c2[8032],simde_mm256_xor_si256(c2[10405],simde_mm256_xor_si256(c2[907],simde_mm256_xor_si256(c2[11220],simde_mm256_xor_si256(c2[4088],simde_mm256_xor_si256(c2[8054],simde_mm256_xor_si256(c2[10441],simde_mm256_xor_si256(c2[6090],simde_mm256_xor_si256(c2[8461],simde_mm256_xor_si256(c2[5315],simde_mm256_xor_si256(c2[2150],simde_mm256_xor_si256(c2[6502],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[7708],simde_mm256_xor_si256(c2[10085],simde_mm256_xor_si256(c2[1790],simde_mm256_xor_si256(c2[11689],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[3386],simde_mm256_xor_si256(c2[12496],simde_mm256_xor_si256(c2[3786],simde_mm256_xor_si256(c2[10916],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[10536],simde_mm256_xor_si256(c2[8159],simde_mm256_xor_si256(c2[9762],simde_mm256_xor_si256(c2[8570],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[10172],simde_mm256_xor_si256(c2[3438],simde_mm256_xor_si256(c2[6610],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[5832],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[12175],simde_mm256_xor_si256(c2[1494],simde_mm256_xor_si256(c2[3476],simde_mm256_xor_si256(c2[8622],simde_mm256_xor_si256(c2[6271],simde_mm256_xor_si256(c2[11811],simde_mm256_xor_si256(c2[6664],simde_mm256_xor_si256(c2[3512],simde_mm256_xor_si256(c2[5094],simde_mm256_xor_si256(c2[9847],simde_mm256_xor_si256(c2[10266],simde_mm256_xor_si256(c2[10658],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[8697],simde_mm256_xor_si256(c2[3158],simde_mm256_xor_si256(c2[11473],c2[6320])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[54]=_mm256_xor_si256(c2[6338],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[10496],_mm256_xor_si256(c2[10927],_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[9436],c2[5115]))))))); + d2[54]=simde_mm256_xor_si256(c2[6338],simde_mm256_xor_si256(c2[6448],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[10496],simde_mm256_xor_si256(c2[10927],simde_mm256_xor_si256(c2[7043],simde_mm256_xor_si256(c2[9436],c2[5115]))))))); //row: 7 - d2[63]=_mm256_xor_si256(c2[3569],_mm256_xor_si256(c2[11507],_mm256_xor_si256(c2[10372],_mm256_xor_si256(c2[9635],_mm256_xor_si256(c2[3315],c2[1841]))))); + d2[63]=simde_mm256_xor_si256(c2[3569],simde_mm256_xor_si256(c2[11507],simde_mm256_xor_si256(c2[10372],simde_mm256_xor_si256(c2[9635],simde_mm256_xor_si256(c2[3315],c2[1841]))))); //row: 8 - d2[72]=_mm256_xor_si256(c2[9904],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[9903],_mm256_xor_si256(c2[3967],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[9504],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[6739],_mm256_xor_si256(c2[7135],_mm256_xor_si256(c2[8713],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[11509],_mm256_xor_si256(c2[5169],_mm256_xor_si256(c2[11508],_mm256_xor_si256(c2[11904],_mm256_xor_si256(c2[9128],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[9942],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[7172],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[6793],_mm256_xor_si256(c2[2039],_mm256_xor_si256(c2[8774],_mm256_xor_si256(c2[4809],_mm256_xor_si256(c2[11148],_mm256_xor_si256(c2[11544],_mm256_xor_si256(c2[11149],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[9180],_mm256_xor_si256(c2[4430],_mm256_xor_si256(c2[10769],_mm256_xor_si256(c2[11165],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[7226],_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[9204],_mm256_xor_si256(c2[9995],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[4050],_mm256_xor_si256(c2[4075],_mm256_xor_si256(c2[10801],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[9612],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[3676],_mm256_xor_si256(c2[7254],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[6470],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[10427],_mm256_xor_si256(c2[10823],_mm256_xor_si256(c2[6484],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[8463],_mm256_xor_si256(c2[8859],_mm256_xor_si256(c2[4504],_mm256_xor_si256(c2[10843],_mm256_xor_si256(c2[11239],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[10855],_mm256_xor_si256(c2[4919],_mm256_xor_si256(c2[2545],_mm256_xor_si256(c2[8875],_mm256_xor_si256(c2[9271],_mm256_xor_si256(c2[8894],_mm256_xor_si256(c2[2958],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[10477],_mm256_xor_si256(c2[6128],_mm256_xor_si256(c2[12458],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[10495],_mm256_xor_si256(c2[4559],_mm256_xor_si256(c2[7723],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[3369],_mm256_xor_si256(c2[9708],_mm256_xor_si256(c2[10104],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[6164],_mm256_xor_si256(c2[8539],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[12500],_mm256_xor_si256(c2[6159],_mm256_xor_si256(c2[6555],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[6570],_mm256_xor_si256(c2[238],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[4202],_mm256_xor_si256(c2[10532],_mm256_xor_si256(c2[10928],_mm256_xor_si256(c2[5796],_mm256_xor_si256(c2[12531],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[10952],_mm256_xor_si256(c2[11348],_mm256_xor_si256(c2[10153],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[4217],_mm256_xor_si256(c2[6215],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[12152],_mm256_xor_si256(c2[6216],_mm256_xor_si256(c2[2653],_mm256_xor_si256(c2[8983],_mm256_xor_si256(c2[9379],_mm256_xor_si256(c2[9002],_mm256_xor_si256(c2[3066],_mm256_xor_si256(c2[1875],_mm256_xor_si256(c2[8610],_mm256_xor_si256(c2[9797],_mm256_xor_si256(c2[3456],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[10208],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[12190],_mm256_xor_si256(c2[5858],_mm256_xor_si256(c2[6254],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[11004],_mm256_xor_si256(c2[11400],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[9040],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1909],_mm256_xor_si256(c2[2707],_mm256_xor_si256(c2[9037],_mm256_xor_si256(c2[9433],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[6290],_mm256_xor_si256(c2[1137],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[5890],_mm256_xor_si256(c2[12229],_mm256_xor_si256(c2[12625],_mm256_xor_si256(c2[5887],_mm256_xor_si256(c2[6300],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[6701],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[756],_mm256_xor_si256(c2[9469],_mm256_xor_si256(c2[3137],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[4740],_mm256_xor_si256(c2[11466],_mm256_xor_si256(c2[11863],_mm256_xor_si256(c2[5927],_mm256_xor_si256(c2[7507],_mm256_xor_si256(c2[1175],_mm256_xor_si256(c2[1571],c2[6318])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[72]=simde_mm256_xor_si256(c2[9904],simde_mm256_xor_si256(c2[3968],simde_mm256_xor_si256(c2[9903],simde_mm256_xor_si256(c2[3967],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[9504],simde_mm256_xor_si256(c2[9900],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[6739],simde_mm256_xor_si256(c2[7135],simde_mm256_xor_si256(c2[8713],simde_mm256_xor_si256(c2[4774],simde_mm256_xor_si256(c2[11509],simde_mm256_xor_si256(c2[5169],simde_mm256_xor_si256(c2[11508],simde_mm256_xor_si256(c2[11904],simde_mm256_xor_si256(c2[9128],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[3192],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[7567],simde_mm256_xor_si256(c2[3207],simde_mm256_xor_si256(c2[9942],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[7172],simde_mm256_xor_si256(c2[7568],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[6793],simde_mm256_xor_si256(c2[2039],simde_mm256_xor_si256(c2[8774],simde_mm256_xor_si256(c2[4809],simde_mm256_xor_si256(c2[11148],simde_mm256_xor_si256(c2[11544],simde_mm256_xor_si256(c2[11149],simde_mm256_xor_si256(c2[2454],simde_mm256_xor_si256(c2[9180],simde_mm256_xor_si256(c2[4430],simde_mm256_xor_si256(c2[10769],simde_mm256_xor_si256(c2[11165],simde_mm256_xor_si256(c2[7201],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[1265],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[7226],simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[9204],simde_mm256_xor_si256(c2[9995],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[4050],simde_mm256_xor_si256(c2[4075],simde_mm256_xor_si256(c2[10801],simde_mm256_xor_si256(c2[6448],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[9612],simde_mm256_xor_si256(c2[3280],simde_mm256_xor_si256(c2[3676],simde_mm256_xor_si256(c2[7254],simde_mm256_xor_si256(c2[1318],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[6470],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[4088],simde_mm256_xor_si256(c2[10427],simde_mm256_xor_si256(c2[10823],simde_mm256_xor_si256(c2[6484],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[2124],simde_mm256_xor_si256(c2[8463],simde_mm256_xor_si256(c2[8859],simde_mm256_xor_si256(c2[4504],simde_mm256_xor_si256(c2[10843],simde_mm256_xor_si256(c2[11239],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[8084],simde_mm256_xor_si256(c2[10855],simde_mm256_xor_si256(c2[4919],simde_mm256_xor_si256(c2[2545],simde_mm256_xor_si256(c2[8875],simde_mm256_xor_si256(c2[9271],simde_mm256_xor_si256(c2[8894],simde_mm256_xor_si256(c2[2958],simde_mm256_xor_si256(c2[3751],simde_mm256_xor_si256(c2[10081],simde_mm256_xor_si256(c2[10477],simde_mm256_xor_si256(c2[6128],simde_mm256_xor_si256(c2[12458],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[10495],simde_mm256_xor_si256(c2[4559],simde_mm256_xor_si256(c2[7723],simde_mm256_xor_si256(c2[1787],simde_mm256_xor_si256(c2[3369],simde_mm256_xor_si256(c2[9708],simde_mm256_xor_si256(c2[10104],simde_mm256_xor_si256(c2[12100],simde_mm256_xor_si256(c2[6164],simde_mm256_xor_si256(c2[8539],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[12500],simde_mm256_xor_si256(c2[6159],simde_mm256_xor_si256(c2[6555],simde_mm256_xor_si256(c2[3781],simde_mm256_xor_si256(c2[10135],simde_mm256_xor_si256(c2[4199],simde_mm256_xor_si256(c2[6570],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[634],simde_mm256_xor_si256(c2[4202],simde_mm256_xor_si256(c2[10532],simde_mm256_xor_si256(c2[10928],simde_mm256_xor_si256(c2[5796],simde_mm256_xor_si256(c2[12531],simde_mm256_xor_si256(c2[4613],simde_mm256_xor_si256(c2[10952],simde_mm256_xor_si256(c2[11348],simde_mm256_xor_si256(c2[10153],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[4217],simde_mm256_xor_si256(c2[6215],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[12152],simde_mm256_xor_si256(c2[6216],simde_mm256_xor_si256(c2[2653],simde_mm256_xor_si256(c2[8983],simde_mm256_xor_si256(c2[9379],simde_mm256_xor_si256(c2[9002],simde_mm256_xor_si256(c2[3066],simde_mm256_xor_si256(c2[1875],simde_mm256_xor_si256(c2[8610],simde_mm256_xor_si256(c2[9797],simde_mm256_xor_si256(c2[3456],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[10208],simde_mm256_xor_si256(c2[4272],simde_mm256_xor_si256(c2[12190],simde_mm256_xor_si256(c2[5858],simde_mm256_xor_si256(c2[6254],simde_mm256_xor_si256(c2[4665],simde_mm256_xor_si256(c2[11004],simde_mm256_xor_si256(c2[11400],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[9040],simde_mm256_xor_si256(c2[7854],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[1909],simde_mm256_xor_si256(c2[2707],simde_mm256_xor_si256(c2[9037],simde_mm256_xor_si256(c2[9433],simde_mm256_xor_si256(c2[12226],simde_mm256_xor_si256(c2[6290],simde_mm256_xor_si256(c2[1137],simde_mm256_xor_si256(c2[7872],simde_mm256_xor_si256(c2[5890],simde_mm256_xor_si256(c2[12229],simde_mm256_xor_si256(c2[12625],simde_mm256_xor_si256(c2[5887],simde_mm256_xor_si256(c2[6300],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[6701],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[9469],simde_mm256_xor_si256(c2[3137],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[4740],simde_mm256_xor_si256(c2[11466],simde_mm256_xor_si256(c2[11863],simde_mm256_xor_si256(c2[5927],simde_mm256_xor_si256(c2[7507],simde_mm256_xor_si256(c2[1175],simde_mm256_xor_si256(c2[1571],c2[6318])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[81]=_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[12298],_mm256_xor_si256(c2[11666],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[5383],_mm256_xor_si256(c2[1894],_mm256_xor_si256(c2[5078],c2[7098]))))))); + d2[81]=simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[12298],simde_mm256_xor_si256(c2[11666],simde_mm256_xor_si256(c2[2578],simde_mm256_xor_si256(c2[5383],simde_mm256_xor_si256(c2[1894],simde_mm256_xor_si256(c2[5078],c2[7098]))))))); //row: 10 - d2[90]=_mm256_xor_si256(c2[7151],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[11160],_mm256_xor_si256(c2[4490],_mm256_xor_si256(c2[4111],c2[3822]))))); + d2[90]=simde_mm256_xor_si256(c2[7151],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[11160],simde_mm256_xor_si256(c2[4490],simde_mm256_xor_si256(c2[4111],c2[3822]))))); //row: 11 - d2[99]=_mm256_xor_si256(c2[10303],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[5551],_mm256_xor_si256(c2[10302],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[3564],_mm256_xor_si256(c2[11492],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[9109],_mm256_xor_si256(c2[5173],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[5568],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[9527],_mm256_xor_si256(c2[4775],_mm256_xor_si256(c2[9126],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[8754],_mm256_xor_si256(c2[9150],_mm256_xor_si256(c2[3606],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[9151],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[7980],_mm256_xor_si256(c2[8376],_mm256_xor_si256(c2[2438],_mm256_xor_si256(c2[10357],_mm256_xor_si256(c2[5208],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[10772],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[7600],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[8413],_mm256_xor_si256(c2[8809],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[10787],_mm256_xor_si256(c2[10394],_mm256_xor_si256(c2[5642],_mm256_xor_si256(c2[4465],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[12384],_mm256_xor_si256(c2[6847],_mm256_xor_si256(c2[2095],_mm256_xor_si256(c2[10011],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[7653],_mm256_xor_si256(c2[2901],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[6883],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[10442],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[1748],_mm256_xor_si256(c2[9271],_mm256_xor_si256(c2[9667],_mm256_xor_si256(c2[11254],_mm256_xor_si256(c2[6502],_mm256_xor_si256(c2[2935],_mm256_xor_si256(c2[10854],_mm256_xor_si256(c2[9293],_mm256_xor_si256(c2[4145],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[12060],_mm256_xor_si256(c2[6518],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[10894],_mm256_xor_si256(c2[5746],_mm256_xor_si256(c2[6142],_mm256_xor_si256(c2[8122],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[3768],_mm256_xor_si256(c2[11687],_mm256_xor_si256(c2[12499],_mm256_xor_si256(c2[7351],_mm256_xor_si256(c2[7747],_mm256_xor_si256(c2[8929],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[219],_mm256_xor_si256(c2[8138],_mm256_xor_si256(c2[7352],_mm256_xor_si256(c2[10534],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[6969],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[12511],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[5012],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[10552],_mm256_xor_si256(c2[5800],_mm256_xor_si256(c2[6614],_mm256_xor_si256(c2[1466],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[12551],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[10962],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[10193],_mm256_xor_si256(c2[10196],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[8609],_mm256_xor_si256(c2[10607],_mm256_xor_si256(c2[5855],_mm256_xor_si256(c2[12589],_mm256_xor_si256(c2[7837],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[10227],_mm256_xor_si256(c2[10623],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[3097],_mm256_xor_si256(c2[11016],_mm256_xor_si256(c2[12625],_mm256_xor_si256(c2[7477],_mm256_xor_si256(c2[7873],_mm256_xor_si256(c2[1536],_mm256_xor_si256(c2[9455],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[6699],_mm256_xor_si256(c2[1551],_mm256_xor_si256(c2[1947],_mm256_xor_si256(c2[7100],_mm256_xor_si256(c2[2348],_mm256_xor_si256(c2[9868],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[12662],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[12262],_mm256_xor_si256(c2[7510],_mm256_xor_si256(c2[7906],_mm256_xor_si256(c2[3154],c2[7118]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[99]=simde_mm256_xor_si256(c2[10303],simde_mm256_xor_si256(c2[5155],simde_mm256_xor_si256(c2[5551],simde_mm256_xor_si256(c2[10302],simde_mm256_xor_si256(c2[5550],simde_mm256_xor_si256(c2[3564],simde_mm256_xor_si256(c2[11492],simde_mm256_xor_si256(c2[799],simde_mm256_xor_si256(c2[8718],simde_mm256_xor_si256(c2[9109],simde_mm256_xor_si256(c2[5173],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[5568],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[9527],simde_mm256_xor_si256(c2[4775],simde_mm256_xor_si256(c2[9126],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[8754],simde_mm256_xor_si256(c2[9150],simde_mm256_xor_si256(c2[3606],simde_mm256_xor_si256(c2[11525],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[9151],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[7980],simde_mm256_xor_si256(c2[8376],simde_mm256_xor_si256(c2[2438],simde_mm256_xor_si256(c2[10357],simde_mm256_xor_si256(c2[5208],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[10772],simde_mm256_xor_si256(c2[4829],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[7600],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[890],simde_mm256_xor_si256(c2[8413],simde_mm256_xor_si256(c2[8809],simde_mm256_xor_si256(c2[2868],simde_mm256_xor_si256(c2[10787],simde_mm256_xor_si256(c2[10394],simde_mm256_xor_si256(c2[5642],simde_mm256_xor_si256(c2[4465],simde_mm256_xor_si256(c2[11988],simde_mm256_xor_si256(c2[12384],simde_mm256_xor_si256(c2[6847],simde_mm256_xor_si256(c2[2095],simde_mm256_xor_si256(c2[10011],simde_mm256_xor_si256(c2[5259],simde_mm256_xor_si256(c2[7653],simde_mm256_xor_si256(c2[2901],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[8449],simde_mm256_xor_si256(c2[4487],simde_mm256_xor_si256(c2[12406],simde_mm256_xor_si256(c2[6883],simde_mm256_xor_si256(c2[2131],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[10442],simde_mm256_xor_si256(c2[4903],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[1748],simde_mm256_xor_si256(c2[9271],simde_mm256_xor_si256(c2[9667],simde_mm256_xor_si256(c2[11254],simde_mm256_xor_si256(c2[6502],simde_mm256_xor_si256(c2[2935],simde_mm256_xor_si256(c2[10854],simde_mm256_xor_si256(c2[9293],simde_mm256_xor_si256(c2[4145],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[12060],simde_mm256_xor_si256(c2[6518],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[10894],simde_mm256_xor_si256(c2[5746],simde_mm256_xor_si256(c2[6142],simde_mm256_xor_si256(c2[8122],simde_mm256_xor_si256(c2[3370],simde_mm256_xor_si256(c2[3768],simde_mm256_xor_si256(c2[11687],simde_mm256_xor_si256(c2[12499],simde_mm256_xor_si256(c2[7351],simde_mm256_xor_si256(c2[7747],simde_mm256_xor_si256(c2[8929],simde_mm256_xor_si256(c2[4177],simde_mm256_xor_si256(c2[219],simde_mm256_xor_si256(c2[8138],simde_mm256_xor_si256(c2[7352],simde_mm256_xor_si256(c2[10534],simde_mm256_xor_si256(c2[5386],simde_mm256_xor_si256(c2[5782],simde_mm256_xor_si256(c2[6969],simde_mm256_xor_si256(c2[2217],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[12511],simde_mm256_xor_si256(c2[6195],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[5012],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[10552],simde_mm256_xor_si256(c2[5800],simde_mm256_xor_si256(c2[6614],simde_mm256_xor_si256(c2[1466],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[12551],simde_mm256_xor_si256(c2[7799],simde_mm256_xor_si256(c2[3043],simde_mm256_xor_si256(c2[10962],simde_mm256_xor_si256(c2[9401],simde_mm256_xor_si256(c2[4253],simde_mm256_xor_si256(c2[4649],simde_mm256_xor_si256(c2[2274],simde_mm256_xor_si256(c2[10193],simde_mm256_xor_si256(c2[10196],simde_mm256_xor_si256(c2[5444],simde_mm256_xor_si256(c2[8609],simde_mm256_xor_si256(c2[10607],simde_mm256_xor_si256(c2[5855],simde_mm256_xor_si256(c2[12589],simde_mm256_xor_si256(c2[7837],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[10227],simde_mm256_xor_si256(c2[10623],simde_mm256_xor_si256(c2[8244],simde_mm256_xor_si256(c2[3492],simde_mm256_xor_si256(c2[3097],simde_mm256_xor_si256(c2[11016],simde_mm256_xor_si256(c2[12625],simde_mm256_xor_si256(c2[7477],simde_mm256_xor_si256(c2[7873],simde_mm256_xor_si256(c2[1536],simde_mm256_xor_si256(c2[9455],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[6699],simde_mm256_xor_si256(c2[1551],simde_mm256_xor_si256(c2[1947],simde_mm256_xor_si256(c2[7100],simde_mm256_xor_si256(c2[2348],simde_mm256_xor_si256(c2[9868],simde_mm256_xor_si256(c2[5116],simde_mm256_xor_si256(c2[5130],simde_mm256_xor_si256(c2[12662],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[12262],simde_mm256_xor_si256(c2[7510],simde_mm256_xor_si256(c2[7906],simde_mm256_xor_si256(c2[3154],c2[7118]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[108]=_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[815],_mm256_xor_si256(c2[8107],_mm256_xor_si256(c2[9310],_mm256_xor_si256(c2[5785],c2[7855]))))); + d2[108]=simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[815],simde_mm256_xor_si256(c2[8107],simde_mm256_xor_si256(c2[9310],simde_mm256_xor_si256(c2[5785],c2[7855]))))); //row: 13 - d2[117]=_mm256_xor_si256(c2[9115],_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[2779],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[4381],_mm256_xor_si256(c2[4776],_mm256_xor_si256(c2[8735],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[440],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[1646],_mm256_xor_si256(c2[4416],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[6808],_mm256_xor_si256(c2[12373],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[2076],_mm256_xor_si256(c2[9602],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[3673],_mm256_xor_si256(c2[6055],_mm256_xor_si256(c2[9219],_mm256_xor_si256(c2[6861],_mm256_xor_si256(c2[12409],_mm256_xor_si256(c2[3695],_mm256_xor_si256(c2[9636],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[4111],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[956],_mm256_xor_si256(c2[10462],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[8501],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[5726],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[10102],_mm256_xor_si256(c2[7330],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[11311],_mm256_xor_si256(c2[11707],_mm256_xor_si256(c2[8137],_mm256_xor_si256(c2[12098],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[9742],_mm256_xor_si256(c2[6177],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[4220],_mm256_xor_si256(c2[9760],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[11759],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[8213],_mm256_xor_si256(c2[8609],_mm256_xor_si256(c2[1482],_mm256_xor_si256(c2[9404],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[11797],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[7452],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[11437],_mm256_xor_si256(c2[11833],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[5497],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[9076],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[11470],c2[7114]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[117]=simde_mm256_xor_si256(c2[9115],simde_mm256_xor_si256(c2[9511],simde_mm256_xor_si256(c2[9510],simde_mm256_xor_si256(c2[2772],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[2779],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[4381],simde_mm256_xor_si256(c2[4776],simde_mm256_xor_si256(c2[8735],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[439],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[11940],simde_mm256_xor_si256(c2[12336],simde_mm256_xor_si256(c2[1646],simde_mm256_xor_si256(c2[4416],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[2052],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[6808],simde_mm256_xor_si256(c2[12373],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[2076],simde_mm256_xor_si256(c2[9602],simde_mm256_xor_si256(c2[3277],simde_mm256_xor_si256(c2[3673],simde_mm256_xor_si256(c2[6055],simde_mm256_xor_si256(c2[9219],simde_mm256_xor_si256(c2[6861],simde_mm256_xor_si256(c2[12409],simde_mm256_xor_si256(c2[3695],simde_mm256_xor_si256(c2[9636],simde_mm256_xor_si256(c2[6091],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[4111],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[956],simde_mm256_xor_si256(c2[10462],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[8105],simde_mm256_xor_si256(c2[8501],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[5726],simde_mm256_xor_si256(c2[9706],simde_mm256_xor_si256(c2[10102],simde_mm256_xor_si256(c2[7330],simde_mm256_xor_si256(c2[2976],simde_mm256_xor_si256(c2[11311],simde_mm256_xor_si256(c2[11707],simde_mm256_xor_si256(c2[8137],simde_mm256_xor_si256(c2[12098],simde_mm256_xor_si256(c2[9346],simde_mm256_xor_si256(c2[9742],simde_mm256_xor_si256(c2[6177],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[5403],simde_mm256_xor_si256(c2[4220],simde_mm256_xor_si256(c2[9760],simde_mm256_xor_si256(c2[5426],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[11759],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[8213],simde_mm256_xor_si256(c2[8609],simde_mm256_xor_si256(c2[1482],simde_mm256_xor_si256(c2[9404],simde_mm256_xor_si256(c2[9815],simde_mm256_xor_si256(c2[11797],simde_mm256_xor_si256(c2[4272],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[1912],simde_mm256_xor_si256(c2[7452],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[11437],simde_mm256_xor_si256(c2[11833],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[5497],simde_mm256_xor_si256(c2[5511],simde_mm256_xor_si256(c2[5907],simde_mm256_xor_si256(c2[6308],simde_mm256_xor_si256(c2[9076],simde_mm256_xor_si256(c2[6301],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[4338],simde_mm256_xor_si256(c2[11470],c2[7114]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[126]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[10517],_mm256_xor_si256(c2[11761],_mm256_xor_si256(c2[6624],_mm256_xor_si256(c2[306],c2[6320]))))); + d2[126]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[10517],simde_mm256_xor_si256(c2[11761],simde_mm256_xor_si256(c2[6624],simde_mm256_xor_si256(c2[306],c2[6320]))))); //row: 15 - d2[135]=_mm256_xor_si256(c2[7928],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[1189],_mm256_xor_si256(c2[10699],_mm256_xor_si256(c2[11095],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[3193],_mm256_xor_si256(c2[6756],_mm256_xor_si256(c2[7152],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[11527],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[11528],_mm256_xor_si256(c2[10753],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[11186],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[8010],_mm256_xor_si256(c2[2090],_mm256_xor_si256(c2[4472],_mm256_xor_si256(c2[7240],_mm256_xor_si256(c2[7636],_mm256_xor_si256(c2[5278],_mm256_xor_si256(c2[10826],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[4508],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[2528],_mm256_xor_si256(c2[12044],_mm256_xor_si256(c2[8879],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[9293],_mm256_xor_si256(c2[8519],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[10124],_mm256_xor_si256(c2[6554],_mm256_xor_si256(c2[10119],_mm256_xor_si256(c2[10515],_mm256_xor_si256(c2[8159],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[2628],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[10176],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[7026],_mm256_xor_si256(c2[12570],_mm256_xor_si256(c2[7416],_mm256_xor_si256(c2[7812],_mm256_xor_si256(c2[8232],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[10250],_mm256_xor_si256(c2[11832],_mm256_xor_si256(c2[3914],_mm256_xor_si256(c2[4324],_mm256_xor_si256(c2[4716],_mm256_xor_si256(c2[7097],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[9887],_mm256_xor_si256(c2[5135],c2[5531])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[135]=simde_mm256_xor_si256(c2[7928],simde_mm256_xor_si256(c2[7927],simde_mm256_xor_si256(c2[1189],simde_mm256_xor_si256(c2[10699],simde_mm256_xor_si256(c2[11095],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[2798],simde_mm256_xor_si256(c2[3193],simde_mm256_xor_si256(c2[6756],simde_mm256_xor_si256(c2[7152],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[11527],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[11528],simde_mm256_xor_si256(c2[10753],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[2833],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[2454],simde_mm256_xor_si256(c2[4829],simde_mm256_xor_si256(c2[5225],simde_mm256_xor_si256(c2[11186],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[8010],simde_mm256_xor_si256(c2[2090],simde_mm256_xor_si256(c2[4472],simde_mm256_xor_si256(c2[7240],simde_mm256_xor_si256(c2[7636],simde_mm256_xor_si256(c2[5278],simde_mm256_xor_si256(c2[10826],simde_mm256_xor_si256(c2[1716],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[4508],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[2528],simde_mm256_xor_si256(c2[12044],simde_mm256_xor_si256(c2[8879],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[6918],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[4143],simde_mm256_xor_si256(c2[9293],simde_mm256_xor_si256(c2[8519],simde_mm256_xor_si256(c2[5747],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[10124],simde_mm256_xor_si256(c2[6554],simde_mm256_xor_si256(c2[10119],simde_mm256_xor_si256(c2[10515],simde_mm256_xor_si256(c2[8159],simde_mm256_xor_si256(c2[4594],simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[2217],simde_mm256_xor_si256(c2[4989],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[2628],simde_mm256_xor_si256(c2[7781],simde_mm256_xor_si256(c2[8177],simde_mm256_xor_si256(c2[4230],simde_mm256_xor_si256(c2[10176],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[7026],simde_mm256_xor_si256(c2[12570],simde_mm256_xor_si256(c2[7416],simde_mm256_xor_si256(c2[7812],simde_mm256_xor_si256(c2[8232],simde_mm256_xor_si256(c2[10214],simde_mm256_xor_si256(c2[2293],simde_mm256_xor_si256(c2[2689],simde_mm256_xor_si256(c2[329],simde_mm256_xor_si256(c2[5869],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[10250],simde_mm256_xor_si256(c2[11832],simde_mm256_xor_si256(c2[3914],simde_mm256_xor_si256(c2[4324],simde_mm256_xor_si256(c2[4716],simde_mm256_xor_si256(c2[7097],simde_mm256_xor_si256(c2[7493],simde_mm256_xor_si256(c2[2755],simde_mm256_xor_si256(c2[9887],simde_mm256_xor_si256(c2[5135],c2[5531])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[144]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[5202],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[4110],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[8481],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[9073],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[9489],c2[5133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[144]=simde_mm256_xor_si256(c2[7530],simde_mm256_xor_si256(c2[7529],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[10697],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[11129],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[11130],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[12336],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[5202],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[4827],simde_mm256_xor_si256(c2[10788],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[7621],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[4880],simde_mm256_xor_si256(c2[10428],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[4110],simde_mm256_xor_si256(c2[12421],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[11646],simde_mm256_xor_si256(c2[8481],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[6520],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[8121],simde_mm256_xor_si256(c2[5349],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[1389],simde_mm256_xor_si256(c2[9726],simde_mm256_xor_si256(c2[6156],simde_mm256_xor_si256(c2[10117],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[4196],simde_mm256_xor_si256(c2[1819],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[2239],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[9778],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[12172],simde_mm256_xor_si256(c2[7423],simde_mm256_xor_si256(c2[7834],simde_mm256_xor_si256(c2[9816],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[12602],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[9852],simde_mm256_xor_si256(c2[11434],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[4327],simde_mm256_xor_si256(c2[7095],simde_mm256_xor_si256(c2[9073],simde_mm256_xor_si256(c2[2366],simde_mm256_xor_si256(c2[9489],c2[5133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[153]=_mm256_xor_si256(c2[9904],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[306],c2[1175])))); + d2[153]=simde_mm256_xor_si256(c2[9904],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[306],c2[1175])))); //row: 18 - d2[162]=_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[7063],c2[6682])))); + d2[162]=simde_mm256_xor_si256(c2[419],simde_mm256_xor_si256(c2[9328],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[7063],c2[6682])))); //row: 19 - d2[171]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[6484],c2[180])))); + d2[171]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[8841],simde_mm256_xor_si256(c2[6484],c2[180])))); //row: 20 - d2[180]=_mm256_xor_si256(c2[9112],_mm256_xor_si256(c2[9111],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[12279],_mm256_xor_si256(c2[3572],_mm256_xor_si256(c2[3982],_mm256_xor_si256(c2[4377],_mm256_xor_si256(c2[8336],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[11937],_mm256_xor_si256(c2[1247],_mm256_xor_si256(c2[4017],_mm256_xor_si256(c2[6788],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[6409],_mm256_xor_si256(c2[12370],_mm256_xor_si256(c2[1677],_mm256_xor_si256(c2[9203],_mm256_xor_si256(c2[3283],_mm256_xor_si256(c2[5656],_mm256_xor_si256(c2[8820],_mm256_xor_si256(c2[6462],_mm256_xor_si256(c2[12010],_mm256_xor_si256(c2[3296],_mm256_xor_si256(c2[5692],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[10063],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[10460],_mm256_xor_si256(c2[8102],_mm256_xor_si256(c2[2959],_mm256_xor_si256(c2[5336],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[6931],_mm256_xor_si256(c2[2577],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[11308],_mm256_xor_si256(c2[7747],_mm256_xor_si256(c2[11708],_mm256_xor_si256(c2[9343],_mm256_xor_si256(c2[5778],_mm256_xor_si256(c2[3410],_mm256_xor_si256(c2[5004],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[11360],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[8210],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[9005],_mm256_xor_si256(c2[9416],_mm256_xor_si256(c2[11398],_mm256_xor_si256(c2[3873],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[1915],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[345],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[5909],_mm256_xor_si256(c2[8677],_mm256_xor_si256(c2[3948],_mm256_xor_si256(c2[11071],c2[6715])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[180]=simde_mm256_xor_si256(c2[9112],simde_mm256_xor_si256(c2[9111],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[12279],simde_mm256_xor_si256(c2[3572],simde_mm256_xor_si256(c2[3982],simde_mm256_xor_si256(c2[4377],simde_mm256_xor_si256(c2[8336],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[2415],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[11937],simde_mm256_xor_si256(c2[1247],simde_mm256_xor_si256(c2[4017],simde_mm256_xor_si256(c2[6788],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[3638],simde_mm256_xor_si256(c2[6409],simde_mm256_xor_si256(c2[12370],simde_mm256_xor_si256(c2[1677],simde_mm256_xor_si256(c2[9203],simde_mm256_xor_si256(c2[3283],simde_mm256_xor_si256(c2[5656],simde_mm256_xor_si256(c2[8820],simde_mm256_xor_si256(c2[6462],simde_mm256_xor_si256(c2[12010],simde_mm256_xor_si256(c2[3296],simde_mm256_xor_si256(c2[5692],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[3712],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[10063],simde_mm256_xor_si256(c2[1753],simde_mm256_xor_si256(c2[10460],simde_mm256_xor_si256(c2[8102],simde_mm256_xor_si256(c2[2959],simde_mm256_xor_si256(c2[5336],simde_mm256_xor_si256(c2[9703],simde_mm256_xor_si256(c2[6931],simde_mm256_xor_si256(c2[2577],simde_mm256_xor_si256(c2[6538],simde_mm256_xor_si256(c2[11308],simde_mm256_xor_si256(c2[7747],simde_mm256_xor_si256(c2[11708],simde_mm256_xor_si256(c2[9343],simde_mm256_xor_si256(c2[5778],simde_mm256_xor_si256(c2[3410],simde_mm256_xor_si256(c2[5004],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[9361],simde_mm256_xor_si256(c2[5423],simde_mm256_xor_si256(c2[11360],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[8210],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[9005],simde_mm256_xor_si256(c2[9416],simde_mm256_xor_si256(c2[11398],simde_mm256_xor_si256(c2[3873],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[7062],simde_mm256_xor_si256(c2[1915],simde_mm256_xor_si256(c2[11434],simde_mm256_xor_si256(c2[345],simde_mm256_xor_si256(c2[5098],simde_mm256_xor_si256(c2[5508],simde_mm256_xor_si256(c2[5909],simde_mm256_xor_si256(c2[8677],simde_mm256_xor_si256(c2[3948],simde_mm256_xor_si256(c2[11071],c2[6715])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[189]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[4256],_mm256_xor_si256(c2[3924],c2[7506])))); + d2[189]=simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[4256],simde_mm256_xor_si256(c2[3924],c2[7506])))); //row: 22 - d2[198]=_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[11705],_mm256_xor_si256(c2[3404],c2[710]))); + d2[198]=simde_mm256_xor_si256(c2[3170],simde_mm256_xor_si256(c2[11705],simde_mm256_xor_si256(c2[3404],c2[710]))); //row: 23 - d2[207]=_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[180],c2[2309]))); + d2[207]=simde_mm256_xor_si256(c2[7943],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[180],c2[2309]))); //row: 24 - d2[216]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[4759],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[4110],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[8481],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[4166],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[9489],c2[5133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[216]=simde_mm256_xor_si256(c2[7530],simde_mm256_xor_si256(c2[7529],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[10697],simde_mm256_xor_si256(c2[4759],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[11129],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[11130],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[12336],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[4827],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[10788],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[7621],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[7238],simde_mm256_xor_si256(c2[4880],simde_mm256_xor_si256(c2[10428],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[4110],simde_mm256_xor_si256(c2[12421],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[11646],simde_mm256_xor_si256(c2[8481],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[6520],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[8121],simde_mm256_xor_si256(c2[5349],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[4166],simde_mm256_xor_si256(c2[9726],simde_mm256_xor_si256(c2[6156],simde_mm256_xor_si256(c2[10117],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[4196],simde_mm256_xor_si256(c2[1819],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[2239],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[9778],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[12172],simde_mm256_xor_si256(c2[7423],simde_mm256_xor_si256(c2[7834],simde_mm256_xor_si256(c2[9816],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[12602],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[9852],simde_mm256_xor_si256(c2[11434],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[4327],simde_mm256_xor_si256(c2[7095],simde_mm256_xor_si256(c2[2366],simde_mm256_xor_si256(c2[9489],c2[5133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[225]=_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[126],c2[9365]))); + d2[225]=simde_mm256_xor_si256(c2[5172],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[126],c2[9365]))); //row: 26 - d2[234]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[72],c2[8594]))); + d2[234]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[72],c2[8594]))); //row: 27 - d2[243]=_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[1693],c2[3314])); + d2[243]=simde_mm256_xor_si256(c2[5167],simde_mm256_xor_si256(c2[1693],c2[3314])); //row: 28 - d2[252]=_mm256_xor_si256(c2[7532],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[11038],c2[12259]))); + d2[252]=simde_mm256_xor_si256(c2[7532],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[11038],c2[12259]))); //row: 29 - d2[261]=_mm256_xor_si256(c2[11887],_mm256_xor_si256(c2[11886],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[1987],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[6757],_mm256_xor_si256(c2[7152],_mm256_xor_si256(c2[10715],_mm256_xor_si256(c2[11111],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[2815],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[2816],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[6396],_mm256_xor_si256(c2[6792],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[8788],_mm256_xor_si256(c2[9184],_mm256_xor_si256(c2[2474],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[11978],_mm256_xor_si256(c2[6049],_mm256_xor_si256(c2[8431],_mm256_xor_si256(c2[11199],_mm256_xor_si256(c2[11595],_mm256_xor_si256(c2[9237],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[6071],_mm256_xor_si256(c2[8467],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[6487],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[167],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[10877],_mm256_xor_si256(c2[5725],_mm256_xor_si256(c2[7706],_mm256_xor_si256(c2[8102],_mm256_xor_si256(c2[12478],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[4956],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[1412],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[12118],_mm256_xor_si256(c2[8553],_mm256_xor_si256(c2[5780],_mm256_xor_si256(c2[6176],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[6596],_mm256_xor_si256(c2[11740],_mm256_xor_si256(c2[12136],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[8198],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[4627],_mm256_xor_si256(c2[10985],_mm256_xor_si256(c2[3858],_mm256_xor_si256(c2[11384],_mm256_xor_si256(c2[11780],_mm256_xor_si256(c2[12191],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[6648],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[4285],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[1538],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[7873],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[11056],_mm256_xor_si256(c2[11452],_mm256_xor_si256(c2[6714],_mm256_xor_si256(c2[1175],_mm256_xor_si256(c2[9094],c2[9490])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[261]=simde_mm256_xor_si256(c2[11887],simde_mm256_xor_si256(c2[11886],simde_mm256_xor_si256(c2[5148],simde_mm256_xor_si256(c2[1987],simde_mm256_xor_si256(c2[2383],simde_mm256_xor_si256(c2[6757],simde_mm256_xor_si256(c2[7152],simde_mm256_xor_si256(c2[10715],simde_mm256_xor_si256(c2[11111],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[2815],simde_mm256_xor_si256(c2[5190],simde_mm256_xor_si256(c2[2816],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[4022],simde_mm256_xor_si256(c2[6396],simde_mm256_xor_si256(c2[6792],simde_mm256_xor_si256(c2[4428],simde_mm256_xor_si256(c2[6413],simde_mm256_xor_si256(c2[8788],simde_mm256_xor_si256(c2[9184],simde_mm256_xor_si256(c2[2474],simde_mm256_xor_si256(c2[4452],simde_mm256_xor_si256(c2[11978],simde_mm256_xor_si256(c2[6049],simde_mm256_xor_si256(c2[8431],simde_mm256_xor_si256(c2[11199],simde_mm256_xor_si256(c2[11595],simde_mm256_xor_si256(c2[9237],simde_mm256_xor_si256(c2[2114],simde_mm256_xor_si256(c2[5675],simde_mm256_xor_si256(c2[6071],simde_mm256_xor_si256(c2[8467],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[6091],simde_mm256_xor_si256(c2[6487],simde_mm256_xor_si256(c2[3332],simde_mm256_xor_si256(c2[167],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[10877],simde_mm256_xor_si256(c2[5725],simde_mm256_xor_si256(c2[7706],simde_mm256_xor_si256(c2[8102],simde_mm256_xor_si256(c2[12478],simde_mm256_xor_si256(c2[9706],simde_mm256_xor_si256(c2[4956],simde_mm256_xor_si256(c2[5352],simde_mm256_xor_si256(c2[1412],simde_mm256_xor_si256(c2[10513],simde_mm256_xor_si256(c2[1407],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[12118],simde_mm256_xor_si256(c2[8553],simde_mm256_xor_si256(c2[5780],simde_mm256_xor_si256(c2[6176],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[6596],simde_mm256_xor_si256(c2[11740],simde_mm256_xor_si256(c2[12136],simde_mm256_xor_si256(c2[8177],simde_mm256_xor_si256(c2[8198],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[4627],simde_mm256_xor_si256(c2[10985],simde_mm256_xor_si256(c2[3858],simde_mm256_xor_si256(c2[11384],simde_mm256_xor_si256(c2[11780],simde_mm256_xor_si256(c2[12191],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[6252],simde_mm256_xor_si256(c2[6648],simde_mm256_xor_si256(c2[4288],simde_mm256_xor_si256(c2[9828],simde_mm256_xor_si256(c2[4285],simde_mm256_xor_si256(c2[4681],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[7873],simde_mm256_xor_si256(c2[8283],simde_mm256_xor_si256(c2[8684],simde_mm256_xor_si256(c2[11056],simde_mm256_xor_si256(c2[11452],simde_mm256_xor_si256(c2[6714],simde_mm256_xor_si256(c2[1175],simde_mm256_xor_si256(c2[9094],c2[9490])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[270]=_mm256_xor_si256(c2[399],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[6340],_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[3566],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[7939],_mm256_xor_si256(c2[8335],_mm256_xor_si256(c2[11898],_mm256_xor_si256(c2[12294],_mm256_xor_si256(c2[3998],_mm256_xor_si256(c2[6373],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[3999],_mm256_xor_si256(c2[3224],_mm256_xor_si256(c2[5205],_mm256_xor_si256(c2[7579],_mm256_xor_si256(c2[7975],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[7596],_mm256_xor_si256(c2[9980],_mm256_xor_si256(c2[10376],_mm256_xor_si256(c2[3657],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[7241],_mm256_xor_si256(c2[9218],_mm256_xor_si256(c2[9614],_mm256_xor_si256(c2[12391],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[10429],_mm256_xor_si256(c2[2901],_mm256_xor_si256(c2[3297],_mm256_xor_si256(c2[6858],_mm256_xor_si256(c2[7254],_mm256_xor_si256(c2[9650],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[7274],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[1350],_mm256_xor_si256(c2[5315],_mm256_xor_si256(c2[5711],_mm256_xor_si256(c2[12060],_mm256_xor_si256(c2[6521],_mm256_xor_si256(c2[6917],_mm256_xor_si256(c2[8898],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[10478],_mm256_xor_si256(c2[990],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[6139],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[11705],_mm256_xor_si256(c2[2599],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[9349],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[6972],_mm256_xor_si256(c2[7368],_mm256_xor_si256(c2[11329],_mm256_xor_si256(c2[8971],_mm256_xor_si256(c2[7383],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[9381],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[5819],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[12567],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[703],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[2685],_mm256_xor_si256(c2[7435],_mm256_xor_si256(c2[7831],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[11020],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[2721],_mm256_xor_si256(c2[4303],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[9056],_mm256_xor_si256(c2[9475],_mm256_xor_si256(c2[9471],_mm256_xor_si256(c2[9867],_mm256_xor_si256(c2[12248],_mm256_xor_si256(c2[12644],_mm256_xor_si256(c2[7906],_mm256_xor_si256(c2[2358],_mm256_xor_si256(c2[10286],c2[10682]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[270]=simde_mm256_xor_si256(c2[399],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[6340],simde_mm256_xor_si256(c2[3170],simde_mm256_xor_si256(c2[3566],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[7940],simde_mm256_xor_si256(c2[7939],simde_mm256_xor_si256(c2[8335],simde_mm256_xor_si256(c2[11898],simde_mm256_xor_si256(c2[12294],simde_mm256_xor_si256(c2[3998],simde_mm256_xor_si256(c2[6373],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[3999],simde_mm256_xor_si256(c2[3224],simde_mm256_xor_si256(c2[5205],simde_mm256_xor_si256(c2[7579],simde_mm256_xor_si256(c2[7975],simde_mm256_xor_si256(c2[5620],simde_mm256_xor_si256(c2[7200],simde_mm256_xor_si256(c2[7596],simde_mm256_xor_si256(c2[9980],simde_mm256_xor_si256(c2[10376],simde_mm256_xor_si256(c2[3657],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[7241],simde_mm256_xor_si256(c2[9218],simde_mm256_xor_si256(c2[9614],simde_mm256_xor_si256(c2[12391],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[10429],simde_mm256_xor_si256(c2[2901],simde_mm256_xor_si256(c2[3297],simde_mm256_xor_si256(c2[6858],simde_mm256_xor_si256(c2[7254],simde_mm256_xor_si256(c2[9650],simde_mm256_xor_si256(c2[4903],simde_mm256_xor_si256(c2[5299],simde_mm256_xor_si256(c2[7274],simde_mm256_xor_si256(c2[7670],simde_mm256_xor_si256(c2[4524],simde_mm256_xor_si256(c2[1350],simde_mm256_xor_si256(c2[5315],simde_mm256_xor_si256(c2[5711],simde_mm256_xor_si256(c2[12060],simde_mm256_xor_si256(c2[6521],simde_mm256_xor_si256(c2[6917],simde_mm256_xor_si256(c2[8898],simde_mm256_xor_si256(c2[9294],simde_mm256_xor_si256(c2[10478],simde_mm256_xor_si256(c2[990],simde_mm256_xor_si256(c2[10898],simde_mm256_xor_si256(c2[6139],simde_mm256_xor_si256(c2[6535],simde_mm256_xor_si256(c2[2595],simde_mm256_xor_si256(c2[11705],simde_mm256_xor_si256(c2[2599],simde_mm256_xor_si256(c2[2995],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[9349],simde_mm256_xor_si256(c2[9745],simde_mm256_xor_si256(c2[6972],simde_mm256_xor_si256(c2[7368],simde_mm256_xor_si256(c2[11329],simde_mm256_xor_si256(c2[8971],simde_mm256_xor_si256(c2[7383],simde_mm256_xor_si256(c2[7779],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[9381],simde_mm256_xor_si256(c2[2647],simde_mm256_xor_si256(c2[5423],simde_mm256_xor_si256(c2[5819],simde_mm256_xor_si256(c2[12168],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[12567],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[703],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[2685],simde_mm256_xor_si256(c2[7435],simde_mm256_xor_si256(c2[7831],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[10624],simde_mm256_xor_si256(c2[11020],simde_mm256_xor_si256(c2[5477],simde_mm256_xor_si256(c2[5873],simde_mm256_xor_si256(c2[2721],simde_mm256_xor_si256(c2[4303],simde_mm256_xor_si256(c2[8660],simde_mm256_xor_si256(c2[9056],simde_mm256_xor_si256(c2[9475],simde_mm256_xor_si256(c2[9471],simde_mm256_xor_si256(c2[9867],simde_mm256_xor_si256(c2[12248],simde_mm256_xor_si256(c2[12644],simde_mm256_xor_si256(c2[7906],simde_mm256_xor_si256(c2[2358],simde_mm256_xor_si256(c2[10286],c2[10682]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[279]=_mm256_xor_si256(c2[9902],_mm256_xor_si256(c2[2779],_mm256_xor_si256(c2[9901],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[3172],_mm256_xor_si256(c2[8720],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[5946],_mm256_xor_si256(c2[4772],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[10715],_mm256_xor_si256(c2[9126],_mm256_xor_si256(c2[1607],_mm256_xor_si256(c2[2003],_mm256_xor_si256(c2[6358],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[6378],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[8753],_mm256_xor_si256(c2[831],_mm256_xor_si256(c2[6379],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[4807],_mm256_xor_si256(c2[9959],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[8000],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[9976],_mm256_xor_si256(c2[7208],_mm256_xor_si256(c2[12351],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[8015],_mm256_xor_si256(c2[9993],_mm256_xor_si256(c2[2870],_mm256_xor_si256(c2[4073],_mm256_xor_si256(c2[9612],_mm256_xor_si256(c2[6446],_mm256_xor_si256(c2[11994],_mm256_xor_si256(c2[9619],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[5677],_mm256_xor_si256(c2[4086],_mm256_xor_si256(c2[9238],_mm256_xor_si256(c2[9634],_mm256_xor_si256(c2[6466],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[12030],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[9654],_mm256_xor_si256(c2[10050],_mm256_xor_si256(c2[1356],_mm256_xor_si256(c2[6895],_mm256_xor_si256(c2[10862],_mm256_xor_si256(c2[3730],_mm256_xor_si256(c2[2543],_mm256_xor_si256(c2[8082],_mm256_xor_si256(c2[8892],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[9288],_mm256_xor_si256(c2[6126],_mm256_xor_si256(c2[11269],_mm256_xor_si256(c2[11665],_mm256_xor_si256(c2[10502],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[7730],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[8519],_mm256_xor_si256(c2[8915],_mm256_xor_si256(c2[12098],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[8537],_mm256_xor_si256(c2[1405],_mm256_xor_si256(c2[12498],_mm256_xor_si256(c2[4970],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[10142],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[6577],_mm256_xor_si256(c2[12116],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[9343],_mm256_xor_si256(c2[9739],_mm256_xor_si256(c2[5803],_mm256_xor_si256(c2[11342],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[10159],_mm256_xor_si256(c2[10160],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[6213],_mm256_xor_si256(c2[11761],_mm256_xor_si256(c2[12150],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[2651],_mm256_xor_si256(c2[8190],_mm256_xor_si256(c2[9000],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[7421],_mm256_xor_si256(c2[9795],_mm256_xor_si256(c2[2276],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[10206],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[12188],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[4663],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[7851],_mm256_xor_si256(c2[7852],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[12224],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[1135],_mm256_xor_si256(c2[6683],_mm256_xor_si256(c2[5888],_mm256_xor_si256(c2[11436],_mm256_xor_si256(c2[6307],_mm256_xor_si256(c2[11846],_mm256_xor_si256(c2[6699],_mm256_xor_si256(c2[12247],_mm256_xor_si256(c2[9476],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[10286],_mm256_xor_si256(c2[11870],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[7514],_mm256_xor_si256(c2[12657],c2[382])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[279]=simde_mm256_xor_si256(c2[9902],simde_mm256_xor_si256(c2[2779],simde_mm256_xor_si256(c2[9901],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[3172],simde_mm256_xor_si256(c2[8720],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[5550],simde_mm256_xor_si256(c2[5946],simde_mm256_xor_si256(c2[4772],simde_mm256_xor_si256(c2[10320],simde_mm256_xor_si256(c2[5167],simde_mm256_xor_si256(c2[10715],simde_mm256_xor_si256(c2[9126],simde_mm256_xor_si256(c2[1607],simde_mm256_xor_si256(c2[2003],simde_mm256_xor_si256(c2[6358],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[6378],simde_mm256_xor_si256(c2[3205],simde_mm256_xor_si256(c2[8753],simde_mm256_xor_si256(c2[831],simde_mm256_xor_si256(c2[6379],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[2037],simde_mm256_xor_si256(c2[7585],simde_mm256_xor_si256(c2[4807],simde_mm256_xor_si256(c2[9959],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[8000],simde_mm256_xor_si256(c2[4428],simde_mm256_xor_si256(c2[9976],simde_mm256_xor_si256(c2[7208],simde_mm256_xor_si256(c2[12351],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[2467],simde_mm256_xor_si256(c2[8015],simde_mm256_xor_si256(c2[9993],simde_mm256_xor_si256(c2[2870],simde_mm256_xor_si256(c2[4073],simde_mm256_xor_si256(c2[9612],simde_mm256_xor_si256(c2[6446],simde_mm256_xor_si256(c2[11994],simde_mm256_xor_si256(c2[9619],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[2487],simde_mm256_xor_si256(c2[7261],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[5677],simde_mm256_xor_si256(c2[4086],simde_mm256_xor_si256(c2[9238],simde_mm256_xor_si256(c2[9634],simde_mm256_xor_si256(c2[6466],simde_mm256_xor_si256(c2[6482],simde_mm256_xor_si256(c2[12030],simde_mm256_xor_si256(c2[2131],simde_mm256_xor_si256(c2[7670],simde_mm256_xor_si256(c2[4502],simde_mm256_xor_si256(c2[9654],simde_mm256_xor_si256(c2[10050],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[6895],simde_mm256_xor_si256(c2[10862],simde_mm256_xor_si256(c2[3730],simde_mm256_xor_si256(c2[2543],simde_mm256_xor_si256(c2[8082],simde_mm256_xor_si256(c2[8892],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[9288],simde_mm256_xor_si256(c2[6126],simde_mm256_xor_si256(c2[11269],simde_mm256_xor_si256(c2[11665],simde_mm256_xor_si256(c2[10502],simde_mm256_xor_si256(c2[3370],simde_mm256_xor_si256(c2[7730],simde_mm256_xor_si256(c2[598],simde_mm256_xor_si256(c2[3367],simde_mm256_xor_si256(c2[8519],simde_mm256_xor_si256(c2[8915],simde_mm256_xor_si256(c2[12098],simde_mm256_xor_si256(c2[4975],simde_mm256_xor_si256(c2[8537],simde_mm256_xor_si256(c2[1405],simde_mm256_xor_si256(c2[12498],simde_mm256_xor_si256(c2[4970],simde_mm256_xor_si256(c2[5366],simde_mm256_xor_si256(c2[10142],simde_mm256_xor_si256(c2[3010],simde_mm256_xor_si256(c2[6577],simde_mm256_xor_si256(c2[12116],simde_mm256_xor_si256(c2[4200],simde_mm256_xor_si256(c2[9343],simde_mm256_xor_si256(c2[9739],simde_mm256_xor_si256(c2[5803],simde_mm256_xor_si256(c2[11342],simde_mm256_xor_si256(c2[4611],simde_mm256_xor_si256(c2[10159],simde_mm256_xor_si256(c2[10160],simde_mm256_xor_si256(c2[2632],simde_mm256_xor_si256(c2[3028],simde_mm256_xor_si256(c2[6213],simde_mm256_xor_si256(c2[11761],simde_mm256_xor_si256(c2[12150],simde_mm256_xor_si256(c2[5027],simde_mm256_xor_si256(c2[2651],simde_mm256_xor_si256(c2[8190],simde_mm256_xor_si256(c2[9000],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[7421],simde_mm256_xor_si256(c2[9795],simde_mm256_xor_si256(c2[2276],simde_mm256_xor_si256(c2[2672],simde_mm256_xor_si256(c2[10206],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[12188],simde_mm256_xor_si256(c2[5065],simde_mm256_xor_si256(c2[4663],simde_mm256_xor_si256(c2[9815],simde_mm256_xor_si256(c2[10211],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[7851],simde_mm256_xor_si256(c2[7852],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[2705],simde_mm256_xor_si256(c2[7848],simde_mm256_xor_si256(c2[8244],simde_mm256_xor_si256(c2[12224],simde_mm256_xor_si256(c2[5101],simde_mm256_xor_si256(c2[1135],simde_mm256_xor_si256(c2[6683],simde_mm256_xor_si256(c2[5888],simde_mm256_xor_si256(c2[11436],simde_mm256_xor_si256(c2[6307],simde_mm256_xor_si256(c2[11846],simde_mm256_xor_si256(c2[6699],simde_mm256_xor_si256(c2[12247],simde_mm256_xor_si256(c2[9476],simde_mm256_xor_si256(c2[1948],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[4738],simde_mm256_xor_si256(c2[10286],simde_mm256_xor_si256(c2[11870],simde_mm256_xor_si256(c2[4738],simde_mm256_xor_si256(c2[7514],simde_mm256_xor_si256(c2[12657],c2[382])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[288]=_mm256_xor_si256(c2[8714],_mm256_xor_si256(c2[8713],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[11485],_mm256_xor_si256(c2[11881],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3584],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[3979],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[7938],_mm256_xor_si256(c2[12313],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[11918],_mm256_xor_si256(c2[12314],_mm256_xor_si256(c2[11539],_mm256_xor_si256(c2[849],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[3619],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5624],_mm256_xor_si256(c2[6020],_mm256_xor_si256(c2[11972],_mm256_xor_si256(c2[1279],_mm256_xor_si256(c2[8409],_mm256_xor_si256(c2[8805],_mm256_xor_si256(c2[2885],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[8035],_mm256_xor_si256(c2[8431],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[11216],_mm256_xor_si256(c2[11612],_mm256_xor_si256(c2[2502],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[943],_mm256_xor_si256(c2[2918],_mm256_xor_si256(c2[3314],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[9674],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[1355],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[4938],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[6542],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[2179],_mm256_xor_si256(c2[10910],_mm256_xor_si256(c2[7349],_mm256_xor_si256(c2[10914],_mm256_xor_si256(c2[11310],_mm256_xor_si256(c2[7746],_mm256_xor_si256(c2[8954],_mm256_xor_si256(c2[4993],_mm256_xor_si256(c2[5389],_mm256_xor_si256(c2[2616],_mm256_xor_si256(c2[3012],_mm256_xor_si256(c2[4615],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[8972],_mm256_xor_si256(c2[1837],_mm256_xor_si256(c2[5025],_mm256_xor_si256(c2[10962],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[7812],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[8211],_mm256_xor_si256(c2[8607],_mm256_xor_si256(c2[9018],_mm256_xor_si256(c2[10604],_mm256_xor_si256(c2[11000],_mm256_xor_si256(c2[3079],_mm256_xor_si256(c2[3475],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[6268],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[11036],_mm256_xor_si256(c2[12618],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[4700],_mm256_xor_si256(c2[5119],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[7892],_mm256_xor_si256(c2[8288],_mm256_xor_si256(c2[3550],_mm256_xor_si256(c2[10682],_mm256_xor_si256(c2[5930],c2[6326]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[288]=simde_mm256_xor_si256(c2[8714],simde_mm256_xor_si256(c2[8713],simde_mm256_xor_si256(c2[1588],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[11485],simde_mm256_xor_si256(c2[11881],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3584],simde_mm256_xor_si256(c2[3583],simde_mm256_xor_si256(c2[3979],simde_mm256_xor_si256(c2[7542],simde_mm256_xor_si256(c2[7938],simde_mm256_xor_si256(c2[12313],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[11918],simde_mm256_xor_si256(c2[12314],simde_mm256_xor_si256(c2[11539],simde_mm256_xor_si256(c2[849],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[3619],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[5624],simde_mm256_xor_si256(c2[6020],simde_mm256_xor_si256(c2[11972],simde_mm256_xor_si256(c2[1279],simde_mm256_xor_si256(c2[8409],simde_mm256_xor_si256(c2[8805],simde_mm256_xor_si256(c2[2885],simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[5258],simde_mm256_xor_si256(c2[8035],simde_mm256_xor_si256(c2[8431],simde_mm256_xor_si256(c2[6073],simde_mm256_xor_si256(c2[11216],simde_mm256_xor_si256(c2[11612],simde_mm256_xor_si256(c2[2502],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[5294],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[943],simde_mm256_xor_si256(c2[2918],simde_mm256_xor_si256(c2[3314],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[9674],simde_mm256_xor_si256(c2[959],simde_mm256_xor_si256(c2[1355],simde_mm256_xor_si256(c2[7704],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[2561],simde_mm256_xor_si256(c2[4542],simde_mm256_xor_si256(c2[4938],simde_mm256_xor_si256(c2[9314],simde_mm256_xor_si256(c2[6542],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[2179],simde_mm256_xor_si256(c2[10910],simde_mm256_xor_si256(c2[7349],simde_mm256_xor_si256(c2[10914],simde_mm256_xor_si256(c2[11310],simde_mm256_xor_si256(c2[7746],simde_mm256_xor_si256(c2[8954],simde_mm256_xor_si256(c2[4993],simde_mm256_xor_si256(c2[5389],simde_mm256_xor_si256(c2[2616],simde_mm256_xor_si256(c2[3012],simde_mm256_xor_si256(c2[4615],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[3423],simde_mm256_xor_si256(c2[8576],simde_mm256_xor_si256(c2[8972],simde_mm256_xor_si256(c2[1837],simde_mm256_xor_si256(c2[5025],simde_mm256_xor_si256(c2[10962],simde_mm256_xor_si256(c2[1067],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[7812],simde_mm256_xor_si256(c2[685],simde_mm256_xor_si256(c2[8211],simde_mm256_xor_si256(c2[8607],simde_mm256_xor_si256(c2[9018],simde_mm256_xor_si256(c2[10604],simde_mm256_xor_si256(c2[11000],simde_mm256_xor_si256(c2[3079],simde_mm256_xor_si256(c2[3475],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[6268],simde_mm256_xor_si256(c2[6664],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[1517],simde_mm256_xor_si256(c2[11036],simde_mm256_xor_si256(c2[12618],simde_mm256_xor_si256(c2[4304],simde_mm256_xor_si256(c2[4700],simde_mm256_xor_si256(c2[5119],simde_mm256_xor_si256(c2[5115],simde_mm256_xor_si256(c2[5511],simde_mm256_xor_si256(c2[7892],simde_mm256_xor_si256(c2[8288],simde_mm256_xor_si256(c2[3550],simde_mm256_xor_si256(c2[10682],simde_mm256_xor_si256(c2[5930],c2[6326]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[297]=_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[4952],c2[7506]))); + d2[297]=simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[4952],c2[7506]))); //row: 34 - d2[306]=_mm256_xor_si256(c2[1986],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[5025],c2[306]))); + d2[306]=simde_mm256_xor_si256(c2[1986],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[5025],c2[306]))); //row: 35 - d2[315]=_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[5945],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[7545],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[11899],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[5978],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[2829],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[9972],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[5240],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[6846],_mm256_xor_si256(c2[9219],_mm256_xor_si256(c2[12392],_mm256_xor_si256(c2[8828],_mm256_xor_si256(c2[10034],_mm256_xor_si256(c2[2902],_mm256_xor_si256(c2[6859],_mm256_xor_si256(c2[9255],_mm256_xor_si256(c2[4904],_mm256_xor_si256(c2[7275],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[955],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[11665],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[8899],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[10494],_mm256_xor_si256(c2[6140],_mm256_xor_si256(c2[2200],_mm256_xor_si256(c2[11310],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[235],_mm256_xor_si256(c2[9350],_mm256_xor_si256(c2[6973],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[8986],_mm256_xor_si256(c2[2252],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[11773],_mm256_xor_si256(c2[4646],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[7436],_mm256_xor_si256(c2[5076],_mm256_xor_si256(c2[10625],_mm256_xor_si256(c2[5478],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[3908],_mm256_xor_si256(c2[8661],_mm256_xor_si256(c2[9080],_mm256_xor_si256(c2[9472],_mm256_xor_si256(c2[12240],_mm256_xor_si256(c2[7511],_mm256_xor_si256(c2[1963],c2[10278]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[315]=simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[3],simde_mm256_xor_si256(c2[5945],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[7545],simde_mm256_xor_si256(c2[7940],simde_mm256_xor_si256(c2[11899],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[5978],simde_mm256_xor_si256(c2[3604],simde_mm256_xor_si256(c2[2829],simde_mm256_xor_si256(c2[4810],simde_mm256_xor_si256(c2[7580],simde_mm256_xor_si256(c2[5225],simde_mm256_xor_si256(c2[7201],simde_mm256_xor_si256(c2[9972],simde_mm256_xor_si256(c2[3262],simde_mm256_xor_si256(c2[5240],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[6846],simde_mm256_xor_si256(c2[9219],simde_mm256_xor_si256(c2[12392],simde_mm256_xor_si256(c2[8828],simde_mm256_xor_si256(c2[10034],simde_mm256_xor_si256(c2[2902],simde_mm256_xor_si256(c2[6859],simde_mm256_xor_si256(c2[9255],simde_mm256_xor_si256(c2[4904],simde_mm256_xor_si256(c2[7275],simde_mm256_xor_si256(c2[4129],simde_mm256_xor_si256(c2[955],simde_mm256_xor_si256(c2[5316],simde_mm256_xor_si256(c2[11665],simde_mm256_xor_si256(c2[6522],simde_mm256_xor_si256(c2[8899],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[10494],simde_mm256_xor_si256(c2[6140],simde_mm256_xor_si256(c2[2200],simde_mm256_xor_si256(c2[11310],simde_mm256_xor_si256(c2[2600],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[235],simde_mm256_xor_si256(c2[9350],simde_mm256_xor_si256(c2[6973],simde_mm256_xor_si256(c2[8576],simde_mm256_xor_si256(c2[7384],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[8986],simde_mm256_xor_si256(c2[2252],simde_mm256_xor_si256(c2[5424],simde_mm256_xor_si256(c2[11773],simde_mm256_xor_si256(c2[4646],simde_mm256_xor_si256(c2[12568],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[2290],simde_mm256_xor_si256(c2[7436],simde_mm256_xor_si256(c2[5076],simde_mm256_xor_si256(c2[10625],simde_mm256_xor_si256(c2[5478],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[3908],simde_mm256_xor_si256(c2[8661],simde_mm256_xor_si256(c2[9080],simde_mm256_xor_si256(c2[9472],simde_mm256_xor_si256(c2[12240],simde_mm256_xor_si256(c2[7511],simde_mm256_xor_si256(c2[1963],c2[10278]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[324]=_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[6588],_mm256_xor_si256(c2[270],c2[324]))); + d2[324]=simde_mm256_xor_si256(c2[9510],simde_mm256_xor_si256(c2[6588],simde_mm256_xor_si256(c2[270],c2[324]))); //row: 37 - d2[333]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[3188],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[6574],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[333]=simde_mm256_xor_si256(c2[7530],simde_mm256_xor_si256(c2[7926],simde_mm256_xor_si256(c2[7925],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[11093],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[7150],simde_mm256_xor_si256(c2[3188],simde_mm256_xor_si256(c2[11129],simde_mm256_xor_si256(c2[11525],simde_mm256_xor_si256(c2[1229],simde_mm256_xor_si256(c2[11526],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[10751],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[10788],simde_mm256_xor_si256(c2[11184],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[8017],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[4470],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[10824],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[4506],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[2526],simde_mm256_xor_si256(c2[11646],simde_mm256_xor_si256(c2[12042],simde_mm256_xor_si256(c2[8877],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[6520],simde_mm256_xor_si256(c2[6916],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[8121],simde_mm256_xor_si256(c2[8517],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[9726],simde_mm256_xor_si256(c2[10122],simde_mm256_xor_si256(c2[6552],simde_mm256_xor_si256(c2[10513],simde_mm256_xor_si256(c2[7761],simde_mm256_xor_si256(c2[8157],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[6574],simde_mm256_xor_si256(c2[3818],simde_mm256_xor_si256(c2[2635],simde_mm256_xor_si256(c2[8175],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[4237],simde_mm256_xor_si256(c2[10174],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[7024],simde_mm256_xor_si256(c2[12568],simde_mm256_xor_si256(c2[7819],simde_mm256_xor_si256(c2[8230],simde_mm256_xor_si256(c2[10212],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[12602],simde_mm256_xor_si256(c2[327],simde_mm256_xor_si256(c2[5876],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[9852],simde_mm256_xor_si256(c2[10248],simde_mm256_xor_si256(c2[11830],simde_mm256_xor_si256(c2[3912],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[7491],simde_mm256_xor_si256(c2[2366],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[9885],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[342]=_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[180],c2[216]))); + d2[342]=simde_mm256_xor_si256(c2[11885],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[180],c2[216]))); //row: 39 - d2[351]=_mm256_xor_si256(c2[9922],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[2111],c2[8661]))); + d2[351]=simde_mm256_xor_si256(c2[9922],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[2111],c2[8661]))); //row: 40 - d2[360]=_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[6484],c2[1098])); + d2[360]=simde_mm256_xor_si256(c2[9510],simde_mm256_xor_si256(c2[6484],c2[1098])); //row: 41 - d2[369]=_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[162],c2[9437]))); + d2[369]=simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[162],c2[9437]))); //row: 42 - d2[378]=_mm256_xor_si256(c2[9115],_mm256_xor_si256(c2[9114],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[11886],_mm256_xor_si256(c2[12282],_mm256_xor_si256(c2[10692],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[4380],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[12319],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[6016],_mm256_xor_si256(c2[6412],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[12373],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[9206],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[5263],_mm256_xor_si256(c2[5659],_mm256_xor_si256(c2[8427],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[6465],_mm256_xor_si256(c2[11617],_mm256_xor_si256(c2[12013],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[5695],_mm256_xor_si256(c2[939],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[3715],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[10066],_mm256_xor_si256(c2[1351],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[6934],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[11311],_mm256_xor_si256(c2[7741],_mm256_xor_si256(c2[11306],_mm256_xor_si256(c2[11702],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[5385],_mm256_xor_si256(c2[5781],_mm256_xor_si256(c2[3008],_mm256_xor_si256(c2[3404],_mm256_xor_si256(c2[5007],_mm256_xor_si256(c2[3428],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[8968],_mm256_xor_si256(c2[9364],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[11363],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[8213],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[8612],_mm256_xor_si256(c2[9008],_mm256_xor_si256(c2[9419],_mm256_xor_si256(c2[11005],_mm256_xor_si256(c2[11401],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[6660],_mm256_xor_si256(c2[7056],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1909],_mm256_xor_si256(c2[11437],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[5516],_mm256_xor_si256(c2[5912],_mm256_xor_si256(c2[8284],_mm256_xor_si256(c2[8680],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[6322],c2[6718])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[378]=simde_mm256_xor_si256(c2[9115],simde_mm256_xor_si256(c2[9114],simde_mm256_xor_si256(c2[1980],simde_mm256_xor_si256(c2[2376],simde_mm256_xor_si256(c2[11886],simde_mm256_xor_si256(c2[12282],simde_mm256_xor_si256(c2[10692],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[3984],simde_mm256_xor_si256(c2[4380],simde_mm256_xor_si256(c2[7943],simde_mm256_xor_si256(c2[8339],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[2418],simde_mm256_xor_si256(c2[12319],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[11940],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[3624],simde_mm256_xor_si256(c2[4020],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[3245],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[6016],simde_mm256_xor_si256(c2[6412],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[12373],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[8810],simde_mm256_xor_si256(c2[9206],simde_mm256_xor_si256(c2[3277],simde_mm256_xor_si256(c2[5263],simde_mm256_xor_si256(c2[5659],simde_mm256_xor_si256(c2[8427],simde_mm256_xor_si256(c2[8823],simde_mm256_xor_si256(c2[6465],simde_mm256_xor_si256(c2[11617],simde_mm256_xor_si256(c2[12013],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[3299],simde_mm256_xor_si256(c2[5695],simde_mm256_xor_si256(c2[939],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[3319],simde_mm256_xor_si256(c2[3715],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[10066],simde_mm256_xor_si256(c2[1351],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[8105],simde_mm256_xor_si256(c2[2557],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[5330],simde_mm256_xor_si256(c2[9706],simde_mm256_xor_si256(c2[6934],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[11311],simde_mm256_xor_si256(c2[7741],simde_mm256_xor_si256(c2[11306],simde_mm256_xor_si256(c2[11702],simde_mm256_xor_si256(c2[9346],simde_mm256_xor_si256(c2[5385],simde_mm256_xor_si256(c2[5781],simde_mm256_xor_si256(c2[3008],simde_mm256_xor_si256(c2[3404],simde_mm256_xor_si256(c2[5007],simde_mm256_xor_si256(c2[3428],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[8968],simde_mm256_xor_si256(c2[9364],simde_mm256_xor_si256(c2[5426],simde_mm256_xor_si256(c2[11363],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[1855],simde_mm256_xor_si256(c2[8213],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[8612],simde_mm256_xor_si256(c2[9008],simde_mm256_xor_si256(c2[9419],simde_mm256_xor_si256(c2[11005],simde_mm256_xor_si256(c2[11401],simde_mm256_xor_si256(c2[3480],simde_mm256_xor_si256(c2[3876],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[6660],simde_mm256_xor_si256(c2[7056],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[1909],simde_mm256_xor_si256(c2[11437],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[5101],simde_mm256_xor_si256(c2[5511],simde_mm256_xor_si256(c2[5516],simde_mm256_xor_si256(c2[5912],simde_mm256_xor_si256(c2[8284],simde_mm256_xor_si256(c2[8680],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[11074],simde_mm256_xor_si256(c2[6322],c2[6718])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[387]=_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[6739],_mm256_xor_si256(c2[3569],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[8734],_mm256_xor_si256(c2[12297],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[7939],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[6772],_mm256_xor_si256(c2[4398],_mm256_xor_si256(c2[3623],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[7978],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[6019],_mm256_xor_si256(c2[7995],_mm256_xor_si256(c2[10370],_mm256_xor_si256(c2[10766],_mm256_xor_si256(c2[4056],_mm256_xor_si256(c2[6034],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[7640],_mm256_xor_si256(c2[10013],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[10819],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[7653],_mm256_xor_si256(c2[10049],_mm256_xor_si256(c2[5689],_mm256_xor_si256(c2[7673],_mm256_xor_si256(c2[8069],_mm256_xor_si256(c2[4914],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[6110],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[7316],_mm256_xor_si256(c2[9288],_mm256_xor_si256(c2[9684],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[11288],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[6934],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[2989],_mm256_xor_si256(c2[3385],_mm256_xor_si256(c2[1029],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[7362],_mm256_xor_si256(c2[7758],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[8178],_mm256_xor_si256(c2[651],_mm256_xor_si256(c2[1047],_mm256_xor_si256(c2[9780],_mm256_xor_si256(c2[3046],_mm256_xor_si256(c2[6218],_mm256_xor_si256(c2[12567],_mm256_xor_si256(c2[5440],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[5870],_mm256_xor_si256(c2[11419],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[6272],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[9455],_mm256_xor_si256(c2[9865],_mm256_xor_si256(c2[10266],_mm256_xor_si256(c2[12638],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[8305],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[10676],c2[11072])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[387]=simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[6739],simde_mm256_xor_si256(c2[3569],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[8339],simde_mm256_xor_si256(c2[8734],simde_mm256_xor_si256(c2[12297],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[7939],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[6772],simde_mm256_xor_si256(c2[4398],simde_mm256_xor_si256(c2[3623],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[7978],simde_mm256_xor_si256(c2[8374],simde_mm256_xor_si256(c2[6019],simde_mm256_xor_si256(c2[7995],simde_mm256_xor_si256(c2[10370],simde_mm256_xor_si256(c2[10766],simde_mm256_xor_si256(c2[4056],simde_mm256_xor_si256(c2[6034],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[7640],simde_mm256_xor_si256(c2[10013],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[10819],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[7257],simde_mm256_xor_si256(c2[7653],simde_mm256_xor_si256(c2[10049],simde_mm256_xor_si256(c2[5689],simde_mm256_xor_si256(c2[7673],simde_mm256_xor_si256(c2[8069],simde_mm256_xor_si256(c2[4914],simde_mm256_xor_si256(c2[1749],simde_mm256_xor_si256(c2[6110],simde_mm256_xor_si256(c2[12459],simde_mm256_xor_si256(c2[7316],simde_mm256_xor_si256(c2[9288],simde_mm256_xor_si256(c2[9684],simde_mm256_xor_si256(c2[1389],simde_mm256_xor_si256(c2[11288],simde_mm256_xor_si256(c2[6538],simde_mm256_xor_si256(c2[6934],simde_mm256_xor_si256(c2[2994],simde_mm256_xor_si256(c2[12104],simde_mm256_xor_si256(c2[2989],simde_mm256_xor_si256(c2[3385],simde_mm256_xor_si256(c2[1029],simde_mm256_xor_si256(c2[10135],simde_mm256_xor_si256(c2[7362],simde_mm256_xor_si256(c2[7758],simde_mm256_xor_si256(c2[9361],simde_mm256_xor_si256(c2[8178],simde_mm256_xor_si256(c2[651],simde_mm256_xor_si256(c2[1047],simde_mm256_xor_si256(c2[9780],simde_mm256_xor_si256(c2[3046],simde_mm256_xor_si256(c2[6218],simde_mm256_xor_si256(c2[12567],simde_mm256_xor_si256(c2[5440],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[7819],simde_mm256_xor_si256(c2[1102],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[7834],simde_mm256_xor_si256(c2[8230],simde_mm256_xor_si256(c2[5870],simde_mm256_xor_si256(c2[11419],simde_mm256_xor_si256(c2[5876],simde_mm256_xor_si256(c2[6272],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[4702],simde_mm256_xor_si256(c2[9455],simde_mm256_xor_si256(c2[9865],simde_mm256_xor_si256(c2[10266],simde_mm256_xor_si256(c2[12638],simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[8305],simde_mm256_xor_si256(c2[2757],simde_mm256_xor_si256(c2[10676],c2[11072])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[396]=_mm256_xor_si256(c2[4760],_mm256_xor_si256(c2[4759],_mm256_xor_si256(c2[10692],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[7128],_mm256_xor_si256(c2[12301],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[8359],_mm256_xor_si256(c2[10734],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[9566],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[9972],_mm256_xor_si256(c2[11957],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[8018],_mm256_xor_si256(c2[9996],_mm256_xor_si256(c2[4842],_mm256_xor_si256(c2[11593],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[7658],_mm256_xor_si256(c2[11615],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[1340],_mm256_xor_si256(c2[9651],_mm256_xor_si256(c2[12031],_mm256_xor_si256(c2[8876],_mm256_xor_si256(c2[5711],_mm256_xor_si256(c2[10063],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[11269],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[5351],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[10896],_mm256_xor_si256(c2[6956],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[7347],_mm256_xor_si256(c2[4991],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[11720],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[12140],_mm256_xor_si256(c2[5009],_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[7008],_mm256_xor_si256(c2[10171],_mm256_xor_si256(c2[3858],_mm256_xor_si256(c2[9402],_mm256_xor_si256(c2[4644],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[12192],_mm256_xor_si256(c2[9832],_mm256_xor_si256(c2[2701],_mm256_xor_si256(c2[10225],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[8664],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[1548],_mm256_xor_si256(c2[4325],_mm256_xor_si256(c2[12258],_mm256_xor_si256(c2[6719],c2[2363]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[396]=simde_mm256_xor_si256(c2[4760],simde_mm256_xor_si256(c2[4759],simde_mm256_xor_si256(c2[10692],simde_mm256_xor_si256(c2[7927],simde_mm256_xor_si256(c2[7128],simde_mm256_xor_si256(c2[12301],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[3984],simde_mm256_xor_si256(c2[8359],simde_mm256_xor_si256(c2[10734],simde_mm256_xor_si256(c2[8360],simde_mm256_xor_si256(c2[7585],simde_mm256_xor_si256(c2[9566],simde_mm256_xor_si256(c2[12336],simde_mm256_xor_si256(c2[9972],simde_mm256_xor_si256(c2[11957],simde_mm256_xor_si256(c2[2057],simde_mm256_xor_si256(c2[8018],simde_mm256_xor_si256(c2[9996],simde_mm256_xor_si256(c2[4842],simde_mm256_xor_si256(c2[11593],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[4468],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[7658],simde_mm256_xor_si256(c2[11615],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[1340],simde_mm256_xor_si256(c2[9651],simde_mm256_xor_si256(c2[12031],simde_mm256_xor_si256(c2[8876],simde_mm256_xor_si256(c2[5711],simde_mm256_xor_si256(c2[10063],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[3750],simde_mm256_xor_si256(c2[11269],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[5351],simde_mm256_xor_si256(c2[2579],simde_mm256_xor_si256(c2[10896],simde_mm256_xor_si256(c2[6956],simde_mm256_xor_si256(c2[3386],simde_mm256_xor_si256(c2[7347],simde_mm256_xor_si256(c2[4991],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[11720],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[12140],simde_mm256_xor_si256(c2[5009],simde_mm256_xor_si256(c2[1062],simde_mm256_xor_si256(c2[7008],simde_mm256_xor_si256(c2[10171],simde_mm256_xor_si256(c2[3858],simde_mm256_xor_si256(c2[9402],simde_mm256_xor_si256(c2[4644],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[7046],simde_mm256_xor_si256(c2[12192],simde_mm256_xor_si256(c2[9832],simde_mm256_xor_si256(c2[2701],simde_mm256_xor_si256(c2[10225],simde_mm256_xor_si256(c2[7082],simde_mm256_xor_si256(c2[8664],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1156],simde_mm256_xor_si256(c2[1548],simde_mm256_xor_si256(c2[4325],simde_mm256_xor_si256(c2[12258],simde_mm256_xor_si256(c2[6719],c2[2363]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[405]=_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[108],c2[6520])); + d2[405]=simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[108],c2[6520])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc320_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc320_byte.c index 9d8e056074..be5cbbdad8 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc320_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc320_byte.c @@ -11,141 +11,141 @@ static inline void ldpc320_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[6609],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[7147],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[7222],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[10346],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[5562],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[6029],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[8702],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[7843],_mm256_xor_si256(c2[10047],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[7420],_mm256_xor_si256(c2[2148],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[13165],_mm256_xor_si256(c2[9208],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6149],c2[2182])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[3962],simde_mm256_xor_si256(c2[6609],simde_mm256_xor_si256(c2[1762],simde_mm256_xor_si256(c2[12326],simde_mm256_xor_si256(c2[6620],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[7066],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[2689],simde_mm256_xor_si256(c2[7082],simde_mm256_xor_si256(c2[7541],simde_mm256_xor_si256(c2[11940],simde_mm256_xor_si256(c2[13260],simde_mm256_xor_si256(c2[2288],simde_mm256_xor_si256(c2[10648],simde_mm256_xor_si256(c2[2286],simde_mm256_xor_si256(c2[7147],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[3201],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[12881],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[4546],simde_mm256_xor_si256(c2[6745],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[6762],simde_mm256_xor_si256(c2[6780],simde_mm256_xor_si256(c2[7222],simde_mm256_xor_si256(c2[3262],simde_mm256_xor_si256(c2[1085],simde_mm256_xor_si256(c2[4603],simde_mm256_xor_si256(c2[11208],simde_mm256_xor_si256(c2[10346],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[6829],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[5529],simde_mm256_xor_si256(c2[13007],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[5562],simde_mm256_xor_si256(c2[12168],simde_mm256_xor_si256(c2[9521],simde_mm256_xor_si256(c2[4709],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[6029],simde_mm256_xor_si256(c2[6483],simde_mm256_xor_si256(c2[3842],simde_mm256_xor_si256(c2[5601],simde_mm256_xor_si256(c2[8702],simde_mm256_xor_si256(c2[10905],simde_mm256_xor_si256(c2[12660],simde_mm256_xor_si256(c2[7843],simde_mm256_xor_si256(c2[10047],simde_mm256_xor_si256(c2[6082],simde_mm256_xor_si256(c2[7420],simde_mm256_xor_si256(c2[2148],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[13165],simde_mm256_xor_si256(c2[9208],simde_mm256_xor_si256(c2[14049],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[6149],c2[2182])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[10]=_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7147],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10346],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[7843],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7420],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13165],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],c2[2622]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[10]=simde_mm256_xor_si256(c2[3962],simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[7049],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[12766],simde_mm256_xor_si256(c2[6620],simde_mm256_xor_si256(c2[7060],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[7506],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[3563],simde_mm256_xor_si256(c2[3129],simde_mm256_xor_si256(c2[7522],simde_mm256_xor_si256(c2[7541],simde_mm256_xor_si256(c2[7981],simde_mm256_xor_si256(c2[12380],simde_mm256_xor_si256(c2[13700],simde_mm256_xor_si256(c2[2728],simde_mm256_xor_si256(c2[11088],simde_mm256_xor_si256(c2[2726],simde_mm256_xor_si256(c2[7147],simde_mm256_xor_si256(c2[7587],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[3181],simde_mm256_xor_si256(c2[3201],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[1887],simde_mm256_xor_si256(c2[13321],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[4986],simde_mm256_xor_si256(c2[7185],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[4126],simde_mm256_xor_si256(c2[7202],simde_mm256_xor_si256(c2[6780],simde_mm256_xor_si256(c2[7220],simde_mm256_xor_si256(c2[7662],simde_mm256_xor_si256(c2[3702],simde_mm256_xor_si256(c2[1085],simde_mm256_xor_si256(c2[1525],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[11648],simde_mm256_xor_si256(c2[10346],simde_mm256_xor_si256(c2[10786],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[7269],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[2445],simde_mm256_xor_si256(c2[5969],simde_mm256_xor_si256(c2[13447],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[3789],simde_mm256_xor_si256(c2[2465],simde_mm256_xor_si256(c2[6002],simde_mm256_xor_si256(c2[12608],simde_mm256_xor_si256(c2[9961],simde_mm256_xor_si256(c2[4709],simde_mm256_xor_si256(c2[5149],simde_mm256_xor_si256(c2[5148],simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[6483],simde_mm256_xor_si256(c2[6923],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[6041],simde_mm256_xor_si256(c2[9142],simde_mm256_xor_si256(c2[11345],simde_mm256_xor_si256(c2[13100],simde_mm256_xor_si256(c2[7843],simde_mm256_xor_si256(c2[8283],simde_mm256_xor_si256(c2[10487],simde_mm256_xor_si256(c2[6522],simde_mm256_xor_si256(c2[7420],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[2588],simde_mm256_xor_si256(c2[3467],simde_mm256_xor_si256(c2[13165],simde_mm256_xor_si256(c2[13605],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[861],simde_mm256_xor_si256(c2[6589],c2[2622]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[20]=_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6029],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10047],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9208],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],_mm256_xor_si256(c2[2182],c2[2622])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[20]=simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[7049],simde_mm256_xor_si256(c2[1762],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[12326],simde_mm256_xor_si256(c2[12766],simde_mm256_xor_si256(c2[7060],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[7066],simde_mm256_xor_si256(c2[7506],simde_mm256_xor_si256(c2[3563],simde_mm256_xor_si256(c2[3129],simde_mm256_xor_si256(c2[7082],simde_mm256_xor_si256(c2[7522],simde_mm256_xor_si256(c2[7981],simde_mm256_xor_si256(c2[12380],simde_mm256_xor_si256(c2[13260],simde_mm256_xor_si256(c2[13700],simde_mm256_xor_si256(c2[2728],simde_mm256_xor_si256(c2[10648],simde_mm256_xor_si256(c2[11088],simde_mm256_xor_si256(c2[2286],simde_mm256_xor_si256(c2[2726],simde_mm256_xor_si256(c2[7587],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[3181],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1887],simde_mm256_xor_si256(c2[12881],simde_mm256_xor_si256(c2[13321],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[4546],simde_mm256_xor_si256(c2[4986],simde_mm256_xor_si256(c2[6745],simde_mm256_xor_si256(c2[7185],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[4126],simde_mm256_xor_si256(c2[6762],simde_mm256_xor_si256(c2[7202],simde_mm256_xor_si256(c2[7220],simde_mm256_xor_si256(c2[7662],simde_mm256_xor_si256(c2[3262],simde_mm256_xor_si256(c2[3702],simde_mm256_xor_si256(c2[1525],simde_mm256_xor_si256(c2[4603],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[11208],simde_mm256_xor_si256(c2[11648],simde_mm256_xor_si256(c2[10786],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[6829],simde_mm256_xor_si256(c2[7269],simde_mm256_xor_si256(c2[2445],simde_mm256_xor_si256(c2[5969],simde_mm256_xor_si256(c2[13007],simde_mm256_xor_si256(c2[13447],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[3789],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[2465],simde_mm256_xor_si256(c2[6002],simde_mm256_xor_si256(c2[12168],simde_mm256_xor_si256(c2[12608],simde_mm256_xor_si256(c2[9521],simde_mm256_xor_si256(c2[9961],simde_mm256_xor_si256(c2[5149],simde_mm256_xor_si256(c2[5148],simde_mm256_xor_si256(c2[6029],simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[6923],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[5601],simde_mm256_xor_si256(c2[6041],simde_mm256_xor_si256(c2[9142],simde_mm256_xor_si256(c2[10905],simde_mm256_xor_si256(c2[11345],simde_mm256_xor_si256(c2[12660],simde_mm256_xor_si256(c2[13100],simde_mm256_xor_si256(c2[8283],simde_mm256_xor_si256(c2[10047],simde_mm256_xor_si256(c2[10487],simde_mm256_xor_si256(c2[6082],simde_mm256_xor_si256(c2[6522],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[2588],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[3467],simde_mm256_xor_si256(c2[13605],simde_mm256_xor_si256(c2[9208],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[14049],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[861],simde_mm256_xor_si256(c2[6589],simde_mm256_xor_si256(c2[2182],c2[2622])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[30]=_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],_mm256_xor_si256(c2[2182],c2[2622]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[30]=simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[7049],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[12326],simde_mm256_xor_si256(c2[12766],simde_mm256_xor_si256(c2[7060],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[7066],simde_mm256_xor_si256(c2[7506],simde_mm256_xor_si256(c2[3563],simde_mm256_xor_si256(c2[3129],simde_mm256_xor_si256(c2[7522],simde_mm256_xor_si256(c2[7981],simde_mm256_xor_si256(c2[12380],simde_mm256_xor_si256(c2[13260],simde_mm256_xor_si256(c2[13700],simde_mm256_xor_si256(c2[2728],simde_mm256_xor_si256(c2[11088],simde_mm256_xor_si256(c2[2286],simde_mm256_xor_si256(c2[2726],simde_mm256_xor_si256(c2[7587],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[3181],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[1887],simde_mm256_xor_si256(c2[12881],simde_mm256_xor_si256(c2[13321],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[4986],simde_mm256_xor_si256(c2[6745],simde_mm256_xor_si256(c2[7185],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[4126],simde_mm256_xor_si256(c2[6762],simde_mm256_xor_si256(c2[7202],simde_mm256_xor_si256(c2[7220],simde_mm256_xor_si256(c2[7662],simde_mm256_xor_si256(c2[3702],simde_mm256_xor_si256(c2[1525],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[11208],simde_mm256_xor_si256(c2[11648],simde_mm256_xor_si256(c2[10786],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[6829],simde_mm256_xor_si256(c2[7269],simde_mm256_xor_si256(c2[2445],simde_mm256_xor_si256(c2[5969],simde_mm256_xor_si256(c2[13007],simde_mm256_xor_si256(c2[13447],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[3789],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[2465],simde_mm256_xor_si256(c2[6002],simde_mm256_xor_si256(c2[12608],simde_mm256_xor_si256(c2[9521],simde_mm256_xor_si256(c2[9961],simde_mm256_xor_si256(c2[5149],simde_mm256_xor_si256(c2[5148],simde_mm256_xor_si256(c2[6469],simde_mm256_xor_si256(c2[6923],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[5601],simde_mm256_xor_si256(c2[6041],simde_mm256_xor_si256(c2[9142],simde_mm256_xor_si256(c2[11345],simde_mm256_xor_si256(c2[12660],simde_mm256_xor_si256(c2[13100],simde_mm256_xor_si256(c2[8283],simde_mm256_xor_si256(c2[10487],simde_mm256_xor_si256(c2[6082],simde_mm256_xor_si256(c2[6522],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[2588],simde_mm256_xor_si256(c2[3467],simde_mm256_xor_si256(c2[13605],simde_mm256_xor_si256(c2[9648],simde_mm256_xor_si256(c2[14049],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[861],simde_mm256_xor_si256(c2[6589],simde_mm256_xor_si256(c2[2182],c2[2622]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[40]=_mm256_xor_si256(c2[3967],c2[5746]); + d2[40]=simde_mm256_xor_si256(c2[3967],c2[5746]); //row: 5 - d2[50]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[2648],_mm256_xor_si256(c2[11880],_mm256_xor_si256(c2[8365],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[13228],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[13241],_mm256_xor_si256(c2[12807],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[3580],_mm256_xor_si256(c2[7989],_mm256_xor_si256(c2[9309],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[6687],_mm256_xor_si256(c2[12404],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[10663],_mm256_xor_si256(c2[12869],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[11565],_mm256_xor_si256(c2[8920],_mm256_xor_si256(c2[12462],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[12048],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[2801],_mm256_xor_si256(c2[2829],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[13380],_mm256_xor_si256(c2[11203],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[10782],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[12123],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[9046],_mm256_xor_si256(c2[13449],_mm256_xor_si256(c2[12582],_mm256_xor_si256(c2[13467],_mm256_xor_si256(c2[12143],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[8207],_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[747],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[13960],_mm256_xor_si256(c2[1640],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[4741],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[8709],_mm256_xor_si256(c2[3882],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[2121],_mm256_xor_si256(c2[3469],_mm256_xor_si256(c2[12266],_mm256_xor_si256(c2[13145],_mm256_xor_si256(c2[9204],_mm256_xor_si256(c2[5247],_mm256_xor_si256(c2[10088],_mm256_xor_si256(c2[10549],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[12300],c2[5268])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[50]=simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[2648],simde_mm256_xor_si256(c2[11880],simde_mm256_xor_si256(c2[8365],simde_mm256_xor_si256(c2[8362],simde_mm256_xor_si256(c2[2669],simde_mm256_xor_si256(c2[13228],simde_mm256_xor_si256(c2[3105],simde_mm256_xor_si256(c2[1789],simde_mm256_xor_si256(c2[13241],simde_mm256_xor_si256(c2[12807],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[3580],simde_mm256_xor_si256(c2[7989],simde_mm256_xor_si256(c2[9309],simde_mm256_xor_si256(c2[7981],simde_mm256_xor_si256(c2[12406],simde_mm256_xor_si256(c2[6687],simde_mm256_xor_si256(c2[12404],simde_mm256_xor_si256(c2[3186],simde_mm256_xor_si256(c2[10663],simde_mm256_xor_si256(c2[12869],simde_mm256_xor_si256(c2[13329],simde_mm256_xor_si256(c2[11565],simde_mm256_xor_si256(c2[8920],simde_mm256_xor_si256(c2[12462],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[12048],simde_mm256_xor_si256(c2[13804],simde_mm256_xor_si256(c2[2801],simde_mm256_xor_si256(c2[2829],simde_mm256_xor_si256(c2[3261],simde_mm256_xor_si256(c2[13380],simde_mm256_xor_si256(c2[11203],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[7247],simde_mm256_xor_si256(c2[6385],simde_mm256_xor_si256(c2[10782],simde_mm256_xor_si256(c2[2868],simde_mm256_xor_si256(c2[12123],simde_mm256_xor_si256(c2[1568],simde_mm256_xor_si256(c2[9046],simde_mm256_xor_si256(c2[13449],simde_mm256_xor_si256(c2[12582],simde_mm256_xor_si256(c2[13467],simde_mm256_xor_si256(c2[12143],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[8207],simde_mm256_xor_si256(c2[5560],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[747],simde_mm256_xor_si256(c2[2068],simde_mm256_xor_si256(c2[2522],simde_mm256_xor_si256(c2[13960],simde_mm256_xor_si256(c2[1640],simde_mm256_xor_si256(c2[4286],simde_mm256_xor_si256(c2[4741],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[8709],simde_mm256_xor_si256(c2[3882],simde_mm256_xor_si256(c2[6086],simde_mm256_xor_si256(c2[2121],simde_mm256_xor_si256(c2[3469],simde_mm256_xor_si256(c2[12266],simde_mm256_xor_si256(c2[13145],simde_mm256_xor_si256(c2[9204],simde_mm256_xor_si256(c2[5247],simde_mm256_xor_si256(c2[10088],simde_mm256_xor_si256(c2[10549],simde_mm256_xor_si256(c2[2188],simde_mm256_xor_si256(c2[12300],c2[5268])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[60]=_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[2409],_mm256_xor_si256(c2[5940],_mm256_xor_si256(c2[3787],_mm256_xor_si256(c2[6509],_mm256_xor_si256(c2[4764],c2[5247]))))))); + d2[60]=simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[9360],simde_mm256_xor_si256(c2[2409],simde_mm256_xor_si256(c2[5940],simde_mm256_xor_si256(c2[3787],simde_mm256_xor_si256(c2[6509],simde_mm256_xor_si256(c2[4764],c2[5247]))))))); //row: 7 - d2[70]=_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[10582],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[8061],_mm256_xor_si256(c2[11160],c2[5562]))))); + d2[70]=simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[10582],simde_mm256_xor_si256(c2[6686],simde_mm256_xor_si256(c2[8061],simde_mm256_xor_si256(c2[11160],c2[5562]))))); //row: 8 - d2[80]=_mm256_xor_si256(c2[13209],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[4404],_mm256_xor_si256(c2[11009],_mm256_xor_si256(c2[13206],_mm256_xor_si256(c2[13646],_mm256_xor_si256(c2[7484],_mm256_xor_si256(c2[9681],_mm256_xor_si256(c2[10121],_mm256_xor_si256(c2[3089],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[12347],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[12360],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[11926],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[2709],_mm256_xor_si256(c2[5346],_mm256_xor_si256(c2[7108],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[8428],_mm256_xor_si256(c2[10625],_mm256_xor_si256(c2[11065],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[5806],_mm256_xor_si256(c2[8003],_mm256_xor_si256(c2[8443],_mm256_xor_si256(c2[11523],_mm256_xor_si256(c2[13720],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[9782],_mm256_xor_si256(c2[12429],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[106],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[12448],_mm256_xor_si256(c2[1006],_mm256_xor_si256(c2[10684],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[8049],_mm256_xor_si256(c2[10246],_mm256_xor_si256(c2[10686],_mm256_xor_si256(c2[11581],_mm256_xor_si256(c2[149],_mm256_xor_si256(c2[13783],_mm256_xor_si256(c2[1901],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[4540],_mm256_xor_si256(c2[11167],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[12923],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[4567],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[4585],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[12509],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[10322],_mm256_xor_si256(c2[12969],_mm256_xor_si256(c2[13840],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[6366],_mm256_xor_si256(c2[8563],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[5504],_mm256_xor_si256(c2[8141],_mm256_xor_si256(c2[9901],_mm256_xor_si256(c2[12548],_mm256_xor_si256(c2[1987],_mm256_xor_si256(c2[4184],_mm256_xor_si256(c2[4624],_mm256_xor_si256(c2[11242],_mm256_xor_si256(c2[13889],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[8165],_mm256_xor_si256(c2[10362],_mm256_xor_si256(c2[10802],_mm256_xor_si256(c2[3327],_mm256_xor_si256(c2[11701],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[12586],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[11262],_mm256_xor_si256(c2[13469],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[9523],_mm256_xor_si256(c2[9963],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[13946],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[13945],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[1187],_mm256_xor_si256(c2[3384],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[13089],_mm256_xor_si256(c2[1647],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3849],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[6507],_mm256_xor_si256(c2[6063],_mm256_xor_si256(c2[8260],_mm256_xor_si256(c2[8700],_mm256_xor_si256(c2[7828],_mm256_xor_si256(c2[10025],_mm256_xor_si256(c2[10465],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[5648],_mm256_xor_si256(c2[5205],_mm256_xor_si256(c2[7402],_mm256_xor_si256(c2[7842],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[3447],_mm256_xor_si256(c2[3887],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[11385],_mm256_xor_si256(c2[14022],_mm256_xor_si256(c2[12264],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[10960],_mm256_xor_si256(c2[4366],_mm256_xor_si256(c2[6563],_mm256_xor_si256(c2[7003],_mm256_xor_si256(c2[9207],_mm256_xor_si256(c2[11404],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[9668],_mm256_xor_si256(c2[12305],_mm256_xor_si256(c2[1307],_mm256_xor_si256(c2[3944],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[13626],_mm256_xor_si256(c2[14066],c2[6148])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[80]=simde_mm256_xor_si256(c2[13209],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[4404],simde_mm256_xor_si256(c2[11009],simde_mm256_xor_si256(c2[13206],simde_mm256_xor_si256(c2[13646],simde_mm256_xor_si256(c2[7484],simde_mm256_xor_si256(c2[9681],simde_mm256_xor_si256(c2[10121],simde_mm256_xor_si256(c2[3089],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[4425],simde_mm256_xor_si256(c2[12347],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[2224],simde_mm256_xor_si256(c2[4421],simde_mm256_xor_si256(c2[4861],simde_mm256_xor_si256(c2[2224],simde_mm256_xor_si256(c2[12360],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[11926],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[4447],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[2709],simde_mm256_xor_si256(c2[5346],simde_mm256_xor_si256(c2[7108],simde_mm256_xor_si256(c2[9745],simde_mm256_xor_si256(c2[8428],simde_mm256_xor_si256(c2[10625],simde_mm256_xor_si256(c2[11065],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[11525],simde_mm256_xor_si256(c2[83],simde_mm256_xor_si256(c2[5806],simde_mm256_xor_si256(c2[8003],simde_mm256_xor_si256(c2[8443],simde_mm256_xor_si256(c2[11523],simde_mm256_xor_si256(c2[13720],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[4942],simde_mm256_xor_si256(c2[9782],simde_mm256_xor_si256(c2[12429],simde_mm256_xor_si256(c2[11988],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[12448],simde_mm256_xor_si256(c2[1006],simde_mm256_xor_si256(c2[10684],simde_mm256_xor_si256(c2[12881],simde_mm256_xor_si256(c2[13321],simde_mm256_xor_si256(c2[8049],simde_mm256_xor_si256(c2[10246],simde_mm256_xor_si256(c2[10686],simde_mm256_xor_si256(c2[11581],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[13783],simde_mm256_xor_si256(c2[1901],simde_mm256_xor_si256(c2[2341],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[4100],simde_mm256_xor_si256(c2[4540],simde_mm256_xor_si256(c2[11167],simde_mm256_xor_si256(c2[13804],simde_mm256_xor_si256(c2[12923],simde_mm256_xor_si256(c2[1041],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[4127],simde_mm256_xor_si256(c2[4567],simde_mm256_xor_si256(c2[1948],simde_mm256_xor_si256(c2[4585],simde_mm256_xor_si256(c2[2380],simde_mm256_xor_si256(c2[5027],simde_mm256_xor_si256(c2[12509],simde_mm256_xor_si256(c2[627],simde_mm256_xor_si256(c2[1067],simde_mm256_xor_si256(c2[10322],simde_mm256_xor_si256(c2[12969],simde_mm256_xor_si256(c2[13840],simde_mm256_xor_si256(c2[1968],simde_mm256_xor_si256(c2[2408],simde_mm256_xor_si256(c2[6366],simde_mm256_xor_si256(c2[8563],simde_mm256_xor_si256(c2[9003],simde_mm256_xor_si256(c2[5504],simde_mm256_xor_si256(c2[8141],simde_mm256_xor_si256(c2[9901],simde_mm256_xor_si256(c2[12548],simde_mm256_xor_si256(c2[1987],simde_mm256_xor_si256(c2[4184],simde_mm256_xor_si256(c2[4624],simde_mm256_xor_si256(c2[11242],simde_mm256_xor_si256(c2[13889],simde_mm256_xor_si256(c2[687],simde_mm256_xor_si256(c2[3324],simde_mm256_xor_si256(c2[8165],simde_mm256_xor_si256(c2[10362],simde_mm256_xor_si256(c2[10802],simde_mm256_xor_si256(c2[3327],simde_mm256_xor_si256(c2[11701],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[12586],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[1144],simde_mm256_xor_si256(c2[11262],simde_mm256_xor_si256(c2[13469],simde_mm256_xor_si256(c2[13909],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[3367],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[9523],simde_mm256_xor_si256(c2[9963],simde_mm256_xor_si256(c2[4689],simde_mm256_xor_si256(c2[6886],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[13946],simde_mm256_xor_si256(c2[2504],simde_mm256_xor_si256(c2[13945],simde_mm256_xor_si256(c2[2503],simde_mm256_xor_si256(c2[1187],simde_mm256_xor_si256(c2[3384],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[4288],simde_mm256_xor_si256(c2[13089],simde_mm256_xor_si256(c2[1647],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[2966],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[3849],simde_mm256_xor_si256(c2[3860],simde_mm256_xor_si256(c2[6507],simde_mm256_xor_si256(c2[6063],simde_mm256_xor_si256(c2[8260],simde_mm256_xor_si256(c2[8700],simde_mm256_xor_si256(c2[7828],simde_mm256_xor_si256(c2[10025],simde_mm256_xor_si256(c2[10465],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[5648],simde_mm256_xor_si256(c2[5205],simde_mm256_xor_si256(c2[7402],simde_mm256_xor_si256(c2[7842],simde_mm256_xor_si256(c2[1240],simde_mm256_xor_si256(c2[3447],simde_mm256_xor_si256(c2[3887],simde_mm256_xor_si256(c2[2588],simde_mm256_xor_si256(c2[5225],simde_mm256_xor_si256(c2[11385],simde_mm256_xor_si256(c2[14022],simde_mm256_xor_si256(c2[12264],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[822],simde_mm256_xor_si256(c2[6543],simde_mm256_xor_si256(c2[8323],simde_mm256_xor_si256(c2[10960],simde_mm256_xor_si256(c2[4366],simde_mm256_xor_si256(c2[6563],simde_mm256_xor_si256(c2[7003],simde_mm256_xor_si256(c2[9207],simde_mm256_xor_si256(c2[11404],simde_mm256_xor_si256(c2[11844],simde_mm256_xor_si256(c2[9668],simde_mm256_xor_si256(c2[12305],simde_mm256_xor_si256(c2[1307],simde_mm256_xor_si256(c2[3944],simde_mm256_xor_si256(c2[11429],simde_mm256_xor_si256(c2[13626],simde_mm256_xor_si256(c2[14066],c2[6148])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[90]=_mm256_xor_si256(c2[12765],_mm256_xor_si256(c2[8827],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[13428],_mm256_xor_si256(c2[10384],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[3444],c2[7886]))))))); + d2[90]=simde_mm256_xor_si256(c2[12765],simde_mm256_xor_si256(c2[8827],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[13428],simde_mm256_xor_si256(c2[10384],simde_mm256_xor_si256(c2[5188],simde_mm256_xor_si256(c2[3444],c2[7886]))))))); //row: 10 - d2[100]=_mm256_xor_si256(c2[6180],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[4982],_mm256_xor_si256(c2[605],c2[10409]))))); + d2[100]=simde_mm256_xor_si256(c2[6180],simde_mm256_xor_si256(c2[7082],simde_mm256_xor_si256(c2[8446],simde_mm256_xor_si256(c2[4982],simde_mm256_xor_si256(c2[605],c2[10409]))))); //row: 11 - d2[110]=_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[11440],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[12760],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[11461],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[7941],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[11907],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[8384],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[13681],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[13687],_mm256_xor_si256(c2[11923],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[12382],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[7129],_mm256_xor_si256(c2[13286],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[7127],_mm256_xor_si256(c2[13284],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[11543],_mm256_xor_si256(c2[7582],_mm256_xor_si256(c2[13749],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[13769],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[6288],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[3643],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[13342],_mm256_xor_si256(c2[9387],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[11586],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[6761],_mm256_xor_si256(c2[12928],_mm256_xor_si256(c2[8527],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[11603],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[11621],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[12063],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[5926],_mm256_xor_si256(c2[11643],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[9444],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[6825],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[11662],_mm256_xor_si256(c2[11660],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[6846],_mm256_xor_si256(c2[12563],_mm256_xor_si256(c2[13003],_mm256_xor_si256(c2[10360],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[3769],_mm256_xor_si256(c2[9926],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[7305],_mm256_xor_si256(c2[13022],_mm256_xor_si256(c2[13462],_mm256_xor_si256(c2[8180],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[13023],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[2920],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[6440],_mm256_xor_si256(c2[9540],_mm256_xor_si256(c2[1188],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[9549],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[10860],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[11324],_mm256_xor_si256(c2[2962],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[8683],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[10442],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[13543],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[7824],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[9589],_mm256_xor_si256(c2[12684],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[10923],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[12261],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[6989],_mm256_xor_si256(c2[13146],_mm256_xor_si256(c2[7868],_mm256_xor_si256(c2[14025],_mm256_xor_si256(c2[3927],_mm256_xor_si256(c2[9644],_mm256_xor_si256(c2[10084],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[10968],_mm256_xor_si256(c2[5262],_mm256_xor_si256(c2[10989],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[3068],_mm256_xor_si256(c2[7023],_mm256_xor_si256(c2[13180],c2[7905]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[110]=simde_mm256_xor_si256(c2[8803],simde_mm256_xor_si256(c2[441],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[11440],simde_mm256_xor_si256(c2[3528],simde_mm256_xor_si256(c2[6603],simde_mm256_xor_si256(c2[12760],simde_mm256_xor_si256(c2[3088],simde_mm256_xor_si256(c2[9245],simde_mm256_xor_si256(c2[7040],simde_mm256_xor_si256(c2[11461],simde_mm256_xor_si256(c2[3109],simde_mm256_xor_si256(c2[3549],simde_mm256_xor_si256(c2[7941],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[11907],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[8384],simde_mm256_xor_si256(c2[7964],simde_mm256_xor_si256(c2[13681],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[7520],simde_mm256_xor_si256(c2[13687],simde_mm256_xor_si256(c2[11923],simde_mm256_xor_si256(c2[4001],simde_mm256_xor_si256(c2[12382],simde_mm256_xor_si256(c2[4020],simde_mm256_xor_si256(c2[4460],simde_mm256_xor_si256(c2[2702],simde_mm256_xor_si256(c2[8869],simde_mm256_xor_si256(c2[4022],simde_mm256_xor_si256(c2[10189],simde_mm256_xor_si256(c2[7129],simde_mm256_xor_si256(c2[13286],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[7567],simde_mm256_xor_si256(c2[7127],simde_mm256_xor_si256(c2[13284],simde_mm256_xor_si256(c2[11988],simde_mm256_xor_si256(c2[3626],simde_mm256_xor_si256(c2[4066],simde_mm256_xor_si256(c2[5386],simde_mm256_xor_si256(c2[11543],simde_mm256_xor_si256(c2[7582],simde_mm256_xor_si256(c2[13749],simde_mm256_xor_si256(c2[8042],simde_mm256_xor_si256(c2[13769],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[6288],simde_mm256_xor_si256(c2[12445],simde_mm256_xor_si256(c2[3643],simde_mm256_xor_si256(c2[9800],simde_mm256_xor_si256(c2[7185],simde_mm256_xor_si256(c2[13342],simde_mm256_xor_si256(c2[9387],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[11586],simde_mm256_xor_si256(c2[3664],simde_mm256_xor_si256(c2[6761],simde_mm256_xor_si256(c2[12928],simde_mm256_xor_si256(c2[8527],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[11603],simde_mm256_xor_si256(c2[3681],simde_mm256_xor_si256(c2[11621],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[3709],simde_mm256_xor_si256(c2[12063],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[8103],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[5926],simde_mm256_xor_si256(c2[11643],simde_mm256_xor_si256(c2[12083],simde_mm256_xor_si256(c2[9444],simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[8127],simde_mm256_xor_si256(c2[1108],simde_mm256_xor_si256(c2[6825],simde_mm256_xor_si256(c2[7265],simde_mm256_xor_si256(c2[5505],simde_mm256_xor_si256(c2[11662],simde_mm256_xor_si256(c2[11660],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[6846],simde_mm256_xor_si256(c2[12563],simde_mm256_xor_si256(c2[13003],simde_mm256_xor_si256(c2[10360],simde_mm256_xor_si256(c2[2448],simde_mm256_xor_si256(c2[3769],simde_mm256_xor_si256(c2[9926],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[7305],simde_mm256_xor_si256(c2[13022],simde_mm256_xor_si256(c2[13462],simde_mm256_xor_si256(c2[8180],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[13023],simde_mm256_xor_si256(c2[10403],simde_mm256_xor_si256(c2[2481],simde_mm256_xor_si256(c2[2920],simde_mm256_xor_si256(c2[9087],simde_mm256_xor_si256(c2[283],simde_mm256_xor_si256(c2[6440],simde_mm256_xor_si256(c2[9540],simde_mm256_xor_si256(c2[1188],simde_mm256_xor_si256(c2[1628],simde_mm256_xor_si256(c2[9549],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[10860],simde_mm256_xor_si256(c2[2948],simde_mm256_xor_si256(c2[11324],simde_mm256_xor_si256(c2[2962],simde_mm256_xor_si256(c2[3402],simde_mm256_xor_si256(c2[8683],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[10442],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[13543],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[1667],simde_mm256_xor_si256(c2[7824],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[9589],simde_mm256_xor_si256(c2[12684],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4762],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[6966],simde_mm256_xor_si256(c2[10923],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[12261],simde_mm256_xor_si256(c2[3909],simde_mm256_xor_si256(c2[4349],simde_mm256_xor_si256(c2[6989],simde_mm256_xor_si256(c2[13146],simde_mm256_xor_si256(c2[7868],simde_mm256_xor_si256(c2[14025],simde_mm256_xor_si256(c2[3927],simde_mm256_xor_si256(c2[9644],simde_mm256_xor_si256(c2[10084],simde_mm256_xor_si256(c2[14049],simde_mm256_xor_si256(c2[6127],simde_mm256_xor_si256(c2[4801],simde_mm256_xor_si256(c2[10968],simde_mm256_xor_si256(c2[5262],simde_mm256_xor_si256(c2[10989],simde_mm256_xor_si256(c2[11429],simde_mm256_xor_si256(c2[10980],simde_mm256_xor_si256(c2[3068],simde_mm256_xor_si256(c2[7023],simde_mm256_xor_si256(c2[13180],c2[7905]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[120]=_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[4223],c2[9161]))))); + d2[120]=simde_mm256_xor_si256(c2[2207],simde_mm256_xor_si256(c2[4867],simde_mm256_xor_si256(c2[4165],simde_mm256_xor_si256(c2[7261],simde_mm256_xor_si256(c2[4223],c2[9161]))))); //row: 13 - d2[130]=_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[9240],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[8821],_mm256_xor_si256(c2[9261],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[9707],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[5764],_mm256_xor_si256(c2[5320],_mm256_xor_si256(c2[9723],_mm256_xor_si256(c2[9742],_mm256_xor_si256(c2[10182],_mm256_xor_si256(c2[502],_mm256_xor_si256(c2[1822],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[4929],_mm256_xor_si256(c2[13289],_mm256_xor_si256(c2[4927],_mm256_xor_si256(c2[9348],_mm256_xor_si256(c2[9788],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[5842],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[4985],_mm256_xor_si256(c2[7187],_mm256_xor_si256(c2[9386],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[6327],_mm256_xor_si256(c2[9403],_mm256_xor_si256(c2[8981],_mm256_xor_si256(c2[9421],_mm256_xor_si256(c2[9863],_mm256_xor_si256(c2[5903],_mm256_xor_si256(c2[3286],_mm256_xor_si256(c2[3726],_mm256_xor_si256(c2[7244],_mm256_xor_si256(c2[13849],_mm256_xor_si256(c2[12547],_mm256_xor_si256(c2[12987],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[9460],_mm256_xor_si256(c2[4206],_mm256_xor_si256(c2[4646],_mm256_xor_si256(c2[8160],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[5980],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[8203],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[12162],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[7340],_mm256_xor_si256(c2[7349],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[9124],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[8242],_mm256_xor_si256(c2[11343],_mm256_xor_si256(c2[13546],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[10044],_mm256_xor_si256(c2[10484],_mm256_xor_si256(c2[12688],_mm256_xor_si256(c2[8723],_mm256_xor_si256(c2[9621],_mm256_xor_si256(c2[10061],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[1287],_mm256_xor_si256(c2[1727],_mm256_xor_si256(c2[11849],_mm256_xor_si256(c2[2601],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[8780],c2[4823]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[130]=simde_mm256_xor_si256(c2[6163],simde_mm256_xor_si256(c2[6603],simde_mm256_xor_si256(c2[9240],simde_mm256_xor_si256(c2[4403],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[8821],simde_mm256_xor_si256(c2[9261],simde_mm256_xor_si256(c2[5741],simde_mm256_xor_si256(c2[9707],simde_mm256_xor_si256(c2[5324],simde_mm256_xor_si256(c2[5764],simde_mm256_xor_si256(c2[5320],simde_mm256_xor_si256(c2[9723],simde_mm256_xor_si256(c2[9742],simde_mm256_xor_si256(c2[10182],simde_mm256_xor_si256(c2[502],simde_mm256_xor_si256(c2[1822],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[4929],simde_mm256_xor_si256(c2[13289],simde_mm256_xor_si256(c2[4927],simde_mm256_xor_si256(c2[9348],simde_mm256_xor_si256(c2[9788],simde_mm256_xor_si256(c2[3186],simde_mm256_xor_si256(c2[5382],simde_mm256_xor_si256(c2[5402],simde_mm256_xor_si256(c2[5842],simde_mm256_xor_si256(c2[4088],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[4985],simde_mm256_xor_si256(c2[7187],simde_mm256_xor_si256(c2[9386],simde_mm256_xor_si256(c2[6749],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[6327],simde_mm256_xor_si256(c2[9403],simde_mm256_xor_si256(c2[8981],simde_mm256_xor_si256(c2[9421],simde_mm256_xor_si256(c2[9863],simde_mm256_xor_si256(c2[5903],simde_mm256_xor_si256(c2[3286],simde_mm256_xor_si256(c2[3726],simde_mm256_xor_si256(c2[7244],simde_mm256_xor_si256(c2[13849],simde_mm256_xor_si256(c2[12547],simde_mm256_xor_si256(c2[12987],simde_mm256_xor_si256(c2[3305],simde_mm256_xor_si256(c2[9460],simde_mm256_xor_si256(c2[4206],simde_mm256_xor_si256(c2[4646],simde_mm256_xor_si256(c2[8160],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[4665],simde_mm256_xor_si256(c2[5105],simde_mm256_xor_si256(c2[5980],simde_mm256_xor_si256(c2[4666],simde_mm256_xor_si256(c2[8203],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[12162],simde_mm256_xor_si256(c2[6900],simde_mm256_xor_si256(c2[7340],simde_mm256_xor_si256(c2[7349],simde_mm256_xor_si256(c2[8660],simde_mm256_xor_si256(c2[8684],simde_mm256_xor_si256(c2[9124],simde_mm256_xor_si256(c2[6483],simde_mm256_xor_si256(c2[8242],simde_mm256_xor_si256(c2[11343],simde_mm256_xor_si256(c2[13546],simde_mm256_xor_si256(c2[1222],simde_mm256_xor_si256(c2[10044],simde_mm256_xor_si256(c2[10484],simde_mm256_xor_si256(c2[12688],simde_mm256_xor_si256(c2[8723],simde_mm256_xor_si256(c2[9621],simde_mm256_xor_si256(c2[10061],simde_mm256_xor_si256(c2[4789],simde_mm256_xor_si256(c2[5668],simde_mm256_xor_si256(c2[1287],simde_mm256_xor_si256(c2[1727],simde_mm256_xor_si256(c2[11849],simde_mm256_xor_si256(c2[2601],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[8780],c2[4823]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[140]=_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[9981],_mm256_xor_si256(c2[13081],_mm256_xor_si256(c2[8705],c2[1308]))))); + d2[140]=simde_mm256_xor_si256(c2[6162],simde_mm256_xor_si256(c2[5089],simde_mm256_xor_si256(c2[9981],simde_mm256_xor_si256(c2[13081],simde_mm256_xor_si256(c2[8705],c2[1308]))))); //row: 15 - d2[150]=_mm256_xor_si256(c2[12763],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[10563],_mm256_xor_si256(c2[6608],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[11901],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[909],_mm256_xor_si256(c2[11924],_mm256_xor_si256(c2[11480],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[6662],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[7982],_mm256_xor_si256(c2[11089],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[11087],_mm256_xor_si256(c2[1869],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[11542],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[7163],_mm256_xor_si256(c2[7603],_mm256_xor_si256(c2[11145],_mm256_xor_si256(c2[13347],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[12487],_mm256_xor_si256(c2[1044],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[12063],_mm256_xor_si256(c2[9886],_mm256_xor_si256(c2[13404],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[5920],_mm256_xor_si256(c2[12521],_mm256_xor_si256(c2[5068],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[1101],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[10806],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7289],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[11265],_mm256_xor_si256(c2[12140],_mm256_xor_si256(c2[10386],_mm256_xor_si256(c2[10826],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[3803],_mm256_xor_si256(c2[4243],_mm256_xor_si256(c2[13500],_mm256_xor_si256(c2[13509],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[12643],_mm256_xor_si256(c2[13962],_mm256_xor_si256(c2[323],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[5627],_mm256_xor_si256(c2[6942],_mm256_xor_si256(c2[7382],_mm256_xor_si256(c2[2565],_mm256_xor_si256(c2[4769],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[10925],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[10949],_mm256_xor_si256(c2[11828],_mm256_xor_si256(c2[7887],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[8761],_mm256_xor_si256(c2[9222],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[10543],c2[10983])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[150]=simde_mm256_xor_si256(c2[12763],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[10563],simde_mm256_xor_si256(c2[6608],simde_mm256_xor_si256(c2[7048],simde_mm256_xor_si256(c2[2207],simde_mm256_xor_si256(c2[1342],simde_mm256_xor_si256(c2[11901],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[909],simde_mm256_xor_si256(c2[11924],simde_mm256_xor_si256(c2[11480],simde_mm256_xor_si256(c2[1804],simde_mm256_xor_si256(c2[2263],simde_mm256_xor_si256(c2[6662],simde_mm256_xor_si256(c2[7542],simde_mm256_xor_si256(c2[7982],simde_mm256_xor_si256(c2[11089],simde_mm256_xor_si256(c2[5360],simde_mm256_xor_si256(c2[10647],simde_mm256_xor_si256(c2[11087],simde_mm256_xor_si256(c2[1869],simde_mm256_xor_si256(c2[9346],simde_mm256_xor_si256(c2[11542],simde_mm256_xor_si256(c2[12002],simde_mm256_xor_si256(c2[10248],simde_mm256_xor_si256(c2[7163],simde_mm256_xor_si256(c2[7603],simde_mm256_xor_si256(c2[11145],simde_mm256_xor_si256(c2[13347],simde_mm256_xor_si256(c2[1027],simde_mm256_xor_si256(c2[1467],simde_mm256_xor_si256(c2[10721],simde_mm256_xor_si256(c2[12487],simde_mm256_xor_si256(c2[1044],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[1944],simde_mm256_xor_si256(c2[12063],simde_mm256_xor_si256(c2[9886],simde_mm256_xor_si256(c2[13404],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[5920],simde_mm256_xor_si256(c2[12521],simde_mm256_xor_si256(c2[5068],simde_mm256_xor_si256(c2[9465],simde_mm256_xor_si256(c2[1101],simde_mm256_xor_si256(c2[1541],simde_mm256_xor_si256(c2[10806],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[7289],simde_mm256_xor_si256(c2[7729],simde_mm256_xor_si256(c2[11265],simde_mm256_xor_si256(c2[12140],simde_mm256_xor_si256(c2[10386],simde_mm256_xor_si256(c2[10826],simde_mm256_xor_si256(c2[1144],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[6880],simde_mm256_xor_si256(c2[3803],simde_mm256_xor_si256(c2[4243],simde_mm256_xor_si256(c2[13500],simde_mm256_xor_si256(c2[13509],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[12643],simde_mm256_xor_si256(c2[13962],simde_mm256_xor_si256(c2[323],simde_mm256_xor_si256(c2[3424],simde_mm256_xor_si256(c2[5627],simde_mm256_xor_si256(c2[6942],simde_mm256_xor_si256(c2[7382],simde_mm256_xor_si256(c2[2565],simde_mm256_xor_si256(c2[4769],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[10925],simde_mm256_xor_si256(c2[2142],simde_mm256_xor_si256(c2[10949],simde_mm256_xor_si256(c2[11828],simde_mm256_xor_si256(c2[7887],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[8321],simde_mm256_xor_si256(c2[8761],simde_mm256_xor_si256(c2[9222],simde_mm256_xor_si256(c2[861],simde_mm256_xor_si256(c2[10543],c2[10983])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[160]=_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[11888],_mm256_xor_si256(c2[7041],_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[11909],_mm256_xor_si256(c2[8389],_mm256_xor_si256(c2[12345],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[8402],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[12361],_mm256_xor_si256(c2[12820],_mm256_xor_si256(c2[3140],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[5344],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[12426],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[8020],_mm256_xor_si256(c2[8480],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[7623],_mm256_xor_si256(c2[9825],_mm256_xor_si256(c2[12024],_mm256_xor_si256(c2[7209],_mm256_xor_si256(c2[8965],_mm256_xor_si256(c2[12041],_mm256_xor_si256(c2[12069],_mm256_xor_si256(c2[12501],_mm256_xor_si256(c2[8541],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[9882],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[12108],_mm256_xor_si256(c2[5941],_mm256_xor_si256(c2[7284],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[7743],_mm256_xor_si256(c2[8628],_mm256_xor_si256(c2[7304],_mm256_xor_si256(c2[10841],_mm256_xor_si256(c2[3368],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[9988],_mm256_xor_si256(c2[9987],_mm256_xor_si256(c2[11308],_mm256_xor_si256(c2[11762],_mm256_xor_si256(c2[9121],_mm256_xor_si256(c2[10880],_mm256_xor_si256(c2[13981],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[13122],_mm256_xor_si256(c2[1247],_mm256_xor_si256(c2[11361],_mm256_xor_si256(c2[12709],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[8306],_mm256_xor_si256(c2[4365],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[5249],_mm256_xor_si256(c2[8763],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[11428],c2[7461])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[160]=simde_mm256_xor_si256(c2[9241],simde_mm256_xor_si256(c2[11888],simde_mm256_xor_si256(c2[7041],simde_mm256_xor_si256(c2[3526],simde_mm256_xor_si256(c2[11909],simde_mm256_xor_si256(c2[8389],simde_mm256_xor_si256(c2[12345],simde_mm256_xor_si256(c2[2222],simde_mm256_xor_si256(c2[8402],simde_mm256_xor_si256(c2[7968],simde_mm256_xor_si256(c2[12361],simde_mm256_xor_si256(c2[12820],simde_mm256_xor_si256(c2[3140],simde_mm256_xor_si256(c2[4460],simde_mm256_xor_si256(c2[5344],simde_mm256_xor_si256(c2[7567],simde_mm256_xor_si256(c2[1848],simde_mm256_xor_si256(c2[7565],simde_mm256_xor_si256(c2[12426],simde_mm256_xor_si256(c2[5824],simde_mm256_xor_si256(c2[8020],simde_mm256_xor_si256(c2[8480],simde_mm256_xor_si256(c2[6726],simde_mm256_xor_si256(c2[4081],simde_mm256_xor_si256(c2[7623],simde_mm256_xor_si256(c2[9825],simde_mm256_xor_si256(c2[12024],simde_mm256_xor_si256(c2[7209],simde_mm256_xor_si256(c2[8965],simde_mm256_xor_si256(c2[12041],simde_mm256_xor_si256(c2[12069],simde_mm256_xor_si256(c2[12501],simde_mm256_xor_si256(c2[8541],simde_mm256_xor_si256(c2[6364],simde_mm256_xor_si256(c2[9882],simde_mm256_xor_si256(c2[2408],simde_mm256_xor_si256(c2[1546],simde_mm256_xor_si256(c2[5943],simde_mm256_xor_si256(c2[12108],simde_mm256_xor_si256(c2[5941],simde_mm256_xor_si256(c2[7284],simde_mm256_xor_si256(c2[10808],simde_mm256_xor_si256(c2[4207],simde_mm256_xor_si256(c2[7743],simde_mm256_xor_si256(c2[8628],simde_mm256_xor_si256(c2[7304],simde_mm256_xor_si256(c2[10841],simde_mm256_xor_si256(c2[3368],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[9988],simde_mm256_xor_si256(c2[9987],simde_mm256_xor_si256(c2[11308],simde_mm256_xor_si256(c2[11762],simde_mm256_xor_si256(c2[9121],simde_mm256_xor_si256(c2[10880],simde_mm256_xor_si256(c2[13981],simde_mm256_xor_si256(c2[2105],simde_mm256_xor_si256(c2[3860],simde_mm256_xor_si256(c2[13122],simde_mm256_xor_si256(c2[1247],simde_mm256_xor_si256(c2[11361],simde_mm256_xor_si256(c2[12709],simde_mm256_xor_si256(c2[7427],simde_mm256_xor_si256(c2[8306],simde_mm256_xor_si256(c2[4365],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[5249],simde_mm256_xor_si256(c2[8763],simde_mm256_xor_si256(c2[5700],simde_mm256_xor_si256(c2[11428],c2[7461])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[170]=_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[8701],c2[2187])))); + d2[170]=simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[8644],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[8701],c2[2187])))); //row: 18 - d2[180]=_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[6084],c2[3469])))); + d2[180]=simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[2889],simde_mm256_xor_si256(c2[1589],simde_mm256_xor_si256(c2[6084],c2[3469])))); //row: 19 - d2[190]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[9265],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[6328],c2[4161])))); + d2[190]=simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[9265],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[6328],c2[4161])))); //row: 20 - d2[200]=_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[11009],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[11020],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[11466],_mm256_xor_si256(c2[7523],_mm256_xor_si256(c2[7089],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[11941],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[3581],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[11547],_mm256_xor_si256(c2[4945],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[5847],_mm256_xor_si256(c2[3202],_mm256_xor_si256(c2[6744],_mm256_xor_si256(c2[8946],_mm256_xor_si256(c2[11145],_mm256_xor_si256(c2[6320],_mm256_xor_si256(c2[8086],_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[11180],_mm256_xor_si256(c2[11622],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[5485],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[11229],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[9929],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[6864],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[6425],_mm256_xor_si256(c2[9962],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[13921],_mm256_xor_si256(c2[9109],_mm256_xor_si256(c2[9108],_mm256_xor_si256(c2[10429],_mm256_xor_si256(c2[10883],_mm256_xor_si256(c2[8242],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[13102],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[12243],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[10482],_mm256_xor_si256(c2[11820],_mm256_xor_si256(c2[6548],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[3486],_mm256_xor_si256(c2[13608],_mm256_xor_si256(c2[4360],_mm256_xor_si256(c2[4821],_mm256_xor_si256(c2[10549],c2[6582])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[200]=simde_mm256_xor_si256(c2[8362],simde_mm256_xor_si256(c2[11009],simde_mm256_xor_si256(c2[6162],simde_mm256_xor_si256(c2[2647],simde_mm256_xor_si256(c2[5729],simde_mm256_xor_si256(c2[11020],simde_mm256_xor_si256(c2[7500],simde_mm256_xor_si256(c2[11466],simde_mm256_xor_si256(c2[7523],simde_mm256_xor_si256(c2[7089],simde_mm256_xor_si256(c2[11482],simde_mm256_xor_si256(c2[11941],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[3581],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[6686],simde_mm256_xor_si256(c2[11547],simde_mm256_xor_si256(c2[4945],simde_mm256_xor_si256(c2[7141],simde_mm256_xor_si256(c2[7601],simde_mm256_xor_si256(c2[5847],simde_mm256_xor_si256(c2[3202],simde_mm256_xor_si256(c2[6744],simde_mm256_xor_si256(c2[8946],simde_mm256_xor_si256(c2[11145],simde_mm256_xor_si256(c2[6320],simde_mm256_xor_si256(c2[8086],simde_mm256_xor_si256(c2[11162],simde_mm256_xor_si256(c2[11180],simde_mm256_xor_si256(c2[11622],simde_mm256_xor_si256(c2[7662],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[5485],simde_mm256_xor_si256(c2[9003],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[667],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[11229],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[6405],simde_mm256_xor_si256(c2[9929],simde_mm256_xor_si256(c2[3328],simde_mm256_xor_si256(c2[6864],simde_mm256_xor_si256(c2[7749],simde_mm256_xor_si256(c2[6425],simde_mm256_xor_si256(c2[9962],simde_mm256_xor_si256(c2[2489],simde_mm256_xor_si256(c2[13921],simde_mm256_xor_si256(c2[9109],simde_mm256_xor_si256(c2[9108],simde_mm256_xor_si256(c2[10429],simde_mm256_xor_si256(c2[10883],simde_mm256_xor_si256(c2[8242],simde_mm256_xor_si256(c2[10001],simde_mm256_xor_si256(c2[13102],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[12243],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[10482],simde_mm256_xor_si256(c2[11820],simde_mm256_xor_si256(c2[6548],simde_mm256_xor_si256(c2[7427],simde_mm256_xor_si256(c2[3486],simde_mm256_xor_si256(c2[13608],simde_mm256_xor_si256(c2[4360],simde_mm256_xor_si256(c2[4821],simde_mm256_xor_si256(c2[10549],c2[6582])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[210]=_mm256_xor_si256(c2[6622],_mm256_xor_si256(c2[6705],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[12288],c2[3503])))); + d2[210]=simde_mm256_xor_si256(c2[6622],simde_mm256_xor_si256(c2[6705],simde_mm256_xor_si256(c2[2084],simde_mm256_xor_si256(c2[12288],c2[3503])))); //row: 22 - d2[220]=_mm256_xor_si256(c2[7485],_mm256_xor_si256(c2[9040],_mm256_xor_si256(c2[10381],c2[12669]))); + d2[220]=simde_mm256_xor_si256(c2[7485],simde_mm256_xor_si256(c2[9040],simde_mm256_xor_si256(c2[10381],c2[12669]))); //row: 23 - d2[230]=_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[7961],_mm256_xor_si256(c2[2404],c2[4323]))); + d2[230]=simde_mm256_xor_si256(c2[11027],simde_mm256_xor_si256(c2[7961],simde_mm256_xor_si256(c2[2404],c2[4323]))); //row: 24 - d2[240]=_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[12760],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[13687],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[10628],_mm256_xor_si256(c2[13286],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[13284],_mm256_xor_si256(c2[6243],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[11543],_mm256_xor_si256(c2[13749],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[13342],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[12928],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[11662],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[12105],_mm256_xor_si256(c2[13003],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[9926],_mm256_xor_si256(c2[13462],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[13023],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[6440],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[7824],_mm256_xor_si256(c2[9589],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[13146],_mm256_xor_si256(c2[14025],_mm256_xor_si256(c2[10084],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[10968],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[3068],c2[13180])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[240]=simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[3528],simde_mm256_xor_si256(c2[12760],simde_mm256_xor_si256(c2[9245],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[3549],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[13687],simde_mm256_xor_si256(c2[4001],simde_mm256_xor_si256(c2[4460],simde_mm256_xor_si256(c2[8869],simde_mm256_xor_si256(c2[10189],simde_mm256_xor_si256(c2[10628],simde_mm256_xor_si256(c2[13286],simde_mm256_xor_si256(c2[7567],simde_mm256_xor_si256(c2[13284],simde_mm256_xor_si256(c2[6243],simde_mm256_xor_si256(c2[4066],simde_mm256_xor_si256(c2[11543],simde_mm256_xor_si256(c2[13749],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[12445],simde_mm256_xor_si256(c2[9800],simde_mm256_xor_si256(c2[13342],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[3664],simde_mm256_xor_si256(c2[12928],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[3681],simde_mm256_xor_si256(c2[3709],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[12083],simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[8127],simde_mm256_xor_si256(c2[7265],simde_mm256_xor_si256(c2[11662],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[12105],simde_mm256_xor_si256(c2[13003],simde_mm256_xor_si256(c2[2448],simde_mm256_xor_si256(c2[9926],simde_mm256_xor_si256(c2[13462],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[13023],simde_mm256_xor_si256(c2[2481],simde_mm256_xor_si256(c2[9087],simde_mm256_xor_si256(c2[6440],simde_mm256_xor_si256(c2[1628],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[2948],simde_mm256_xor_si256(c2[3402],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[7824],simde_mm256_xor_si256(c2[9589],simde_mm256_xor_si256(c2[4762],simde_mm256_xor_si256(c2[6966],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[4349],simde_mm256_xor_si256(c2[13146],simde_mm256_xor_si256(c2[14025],simde_mm256_xor_si256(c2[10084],simde_mm256_xor_si256(c2[6127],simde_mm256_xor_si256(c2[10968],simde_mm256_xor_si256(c2[11429],simde_mm256_xor_si256(c2[3068],c2[13180])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[250]=_mm256_xor_si256(c2[5305],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[143],c2[6441]))); + d2[250]=simde_mm256_xor_si256(c2[5305],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[143],c2[6441]))); //row: 26 - d2[260]=_mm256_xor_si256(c2[6168],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[13289],c2[1622]))); + d2[260]=simde_mm256_xor_si256(c2[6168],simde_mm256_xor_si256(c2[6203],simde_mm256_xor_si256(c2[13289],c2[1622]))); //row: 27 - d2[270]=_mm256_xor_si256(c2[7946],_mm256_xor_si256(c2[12880],c2[7209])); + d2[270]=simde_mm256_xor_si256(c2[7946],simde_mm256_xor_si256(c2[12880],c2[7209])); //row: 28 - d2[280]=_mm256_xor_si256(c2[4840],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[8301],c2[4827]))); + d2[280]=simde_mm256_xor_si256(c2[4840],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[8301],c2[4827]))); //row: 29 - d2[290]=_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[883],_mm256_xor_si256(c2[11007],_mm256_xor_si256(c2[11447],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[6187],_mm256_xor_si256(c2[11900],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[6662],_mm256_xor_si256(c2[11061],_mm256_xor_si256(c2[11941],_mm256_xor_si256(c2[12381],_mm256_xor_si256(c2[1409],_mm256_xor_si256(c2[9769],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[6268],_mm256_xor_si256(c2[13745],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[11562],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[3667],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[2807],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5883],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[9889],_mm256_xor_si256(c2[10329],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[13864],_mm256_xor_si256(c2[5500],_mm256_xor_si256(c2[5940],_mm256_xor_si256(c2[1126],_mm256_xor_si256(c2[4640],_mm256_xor_si256(c2[11688],_mm256_xor_si256(c2[12128],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[1146],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[11289],_mm256_xor_si256(c2[8202],_mm256_xor_si256(c2[8642],_mm256_xor_si256(c2[9089],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[3829],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[7823],_mm256_xor_si256(c2[10026],_mm256_xor_si256(c2[11341],_mm256_xor_si256(c2[11781],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[9168],_mm256_xor_si256(c2[4763],_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[9603],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[2148],_mm256_xor_si256(c2[12286],_mm256_xor_si256(c2[8329],_mm256_xor_si256(c2[12720],_mm256_xor_si256(c2[13160],_mm256_xor_si256(c2[13621],_mm256_xor_si256(c2[5260],_mm256_xor_si256(c2[863],c2[1303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[290]=simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[5720],simde_mm256_xor_si256(c2[883],simde_mm256_xor_si256(c2[11007],simde_mm256_xor_si256(c2[11447],simde_mm256_xor_si256(c2[5741],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[5747],simde_mm256_xor_si256(c2[6187],simde_mm256_xor_si256(c2[11900],simde_mm256_xor_si256(c2[2244],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[6203],simde_mm256_xor_si256(c2[6662],simde_mm256_xor_si256(c2[11061],simde_mm256_xor_si256(c2[11941],simde_mm256_xor_si256(c2[12381],simde_mm256_xor_si256(c2[1409],simde_mm256_xor_si256(c2[9769],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[1407],simde_mm256_xor_si256(c2[6268],simde_mm256_xor_si256(c2[13745],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[11562],simde_mm256_xor_si256(c2[12002],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[3667],simde_mm256_xor_si256(c2[5426],simde_mm256_xor_si256(c2[5866],simde_mm256_xor_si256(c2[1041],simde_mm256_xor_si256(c2[2807],simde_mm256_xor_si256(c2[5443],simde_mm256_xor_si256(c2[5883],simde_mm256_xor_si256(c2[5901],simde_mm256_xor_si256(c2[6343],simde_mm256_xor_si256(c2[2383],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[9889],simde_mm256_xor_si256(c2[10329],simde_mm256_xor_si256(c2[9467],simde_mm256_xor_si256(c2[13864],simde_mm256_xor_si256(c2[5500],simde_mm256_xor_si256(c2[5940],simde_mm256_xor_si256(c2[1126],simde_mm256_xor_si256(c2[4640],simde_mm256_xor_si256(c2[11688],simde_mm256_xor_si256(c2[12128],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[2460],simde_mm256_xor_si256(c2[706],simde_mm256_xor_si256(c2[1146],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[11289],simde_mm256_xor_si256(c2[8202],simde_mm256_xor_si256(c2[8642],simde_mm256_xor_si256(c2[9089],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[3829],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[2963],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[7823],simde_mm256_xor_si256(c2[10026],simde_mm256_xor_si256(c2[11341],simde_mm256_xor_si256(c2[11781],simde_mm256_xor_si256(c2[6964],simde_mm256_xor_si256(c2[9168],simde_mm256_xor_si256(c2[4763],simde_mm256_xor_si256(c2[5203],simde_mm256_xor_si256(c2[9603],simde_mm256_xor_si256(c2[6541],simde_mm256_xor_si256(c2[1269],simde_mm256_xor_si256(c2[2148],simde_mm256_xor_si256(c2[12286],simde_mm256_xor_si256(c2[8329],simde_mm256_xor_si256(c2[12720],simde_mm256_xor_si256(c2[13160],simde_mm256_xor_si256(c2[13621],simde_mm256_xor_si256(c2[5260],simde_mm256_xor_si256(c2[863],c2[1303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[300]=_mm256_xor_si256(c2[7486],_mm256_xor_si256(c2[10123],_mm256_xor_si256(c2[4846],_mm256_xor_si256(c2[5286],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[11882],_mm256_xor_si256(c2[10144],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[6624],_mm256_xor_si256(c2[10140],_mm256_xor_si256(c2[10580],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[10166],_mm256_xor_si256(c2[10606],_mm256_xor_si256(c2[11065],_mm256_xor_si256(c2[1385],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[5802],_mm256_xor_si256(c2[13722],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[5800],_mm256_xor_si256(c2[10661],_mm256_xor_si256(c2[4069],_mm256_xor_si256(c2[5825],_mm256_xor_si256(c2[6265],_mm256_xor_si256(c2[6725],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[5868],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[9829],_mm256_xor_si256(c2[10269],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[6760],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[9846],_mm256_xor_si256(c2[10286],_mm256_xor_si256(c2[10304],_mm256_xor_si256(c2[10746],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[4609],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[13860],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[9903],_mm256_xor_si256(c2[10343],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[9043],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[2442],_mm256_xor_si256(c2[5988],_mm256_xor_si256(c2[6423],_mm256_xor_si256(c2[6863],_mm256_xor_si256(c2[5109],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[4223],_mm256_xor_si256(c2[9086],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[12605],_mm256_xor_si256(c2[13045],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[8222],_mm256_xor_si256(c2[9103],_mm256_xor_si256(c2[9543],_mm256_xor_si256(c2[10007],_mm256_xor_si256(c2[7366],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[9125],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[13989],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[1665],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[11367],_mm256_xor_si256(c2[13121],_mm256_xor_si256(c2[13561],_mm256_xor_si256(c2[9166],_mm256_xor_si256(c2[9606],_mm256_xor_si256(c2[10944],_mm256_xor_si256(c2[5662],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[12282],_mm256_xor_si256(c2[12722],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[3945],_mm256_xor_si256(c2[9663],_mm256_xor_si256(c2[5266],c2[5706]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[300]=simde_mm256_xor_si256(c2[7486],simde_mm256_xor_si256(c2[10123],simde_mm256_xor_si256(c2[4846],simde_mm256_xor_si256(c2[5286],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[11882],simde_mm256_xor_si256(c2[10144],simde_mm256_xor_si256(c2[6184],simde_mm256_xor_si256(c2[6624],simde_mm256_xor_si256(c2[10140],simde_mm256_xor_si256(c2[10580],simde_mm256_xor_si256(c2[6647],simde_mm256_xor_si256(c2[6203],simde_mm256_xor_si256(c2[10166],simde_mm256_xor_si256(c2[10606],simde_mm256_xor_si256(c2[11065],simde_mm256_xor_si256(c2[1385],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[2705],simde_mm256_xor_si256(c2[5802],simde_mm256_xor_si256(c2[13722],simde_mm256_xor_si256(c2[83],simde_mm256_xor_si256(c2[5360],simde_mm256_xor_si256(c2[5800],simde_mm256_xor_si256(c2[10661],simde_mm256_xor_si256(c2[4069],simde_mm256_xor_si256(c2[5825],simde_mm256_xor_si256(c2[6265],simde_mm256_xor_si256(c2[6725],simde_mm256_xor_si256(c2[4521],simde_mm256_xor_si256(c2[4961],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[5868],simde_mm256_xor_si256(c2[7620],simde_mm256_xor_si256(c2[8060],simde_mm256_xor_si256(c2[9829],simde_mm256_xor_si256(c2[10269],simde_mm256_xor_si256(c2[5444],simde_mm256_xor_si256(c2[6760],simde_mm256_xor_si256(c2[7200],simde_mm256_xor_si256(c2[9846],simde_mm256_xor_si256(c2[10286],simde_mm256_xor_si256(c2[10304],simde_mm256_xor_si256(c2[10746],simde_mm256_xor_si256(c2[6346],simde_mm256_xor_si256(c2[6786],simde_mm256_xor_si256(c2[4609],simde_mm256_xor_si256(c2[7687],simde_mm256_xor_si256(c2[8127],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[10320],simde_mm256_xor_si256(c2[13860],simde_mm256_xor_si256(c2[4188],simde_mm256_xor_si256(c2[9903],simde_mm256_xor_si256(c2[10343],simde_mm256_xor_si256(c2[5529],simde_mm256_xor_si256(c2[9043],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[2442],simde_mm256_xor_si256(c2[5988],simde_mm256_xor_si256(c2[6423],simde_mm256_xor_si256(c2[6863],simde_mm256_xor_si256(c2[5109],simde_mm256_xor_si256(c2[5549],simde_mm256_xor_si256(c2[4223],simde_mm256_xor_si256(c2[9086],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[12605],simde_mm256_xor_si256(c2[13045],simde_mm256_xor_si256(c2[8223],simde_mm256_xor_si256(c2[8222],simde_mm256_xor_si256(c2[9103],simde_mm256_xor_si256(c2[9543],simde_mm256_xor_si256(c2[10007],simde_mm256_xor_si256(c2[7366],simde_mm256_xor_si256(c2[8685],simde_mm256_xor_si256(c2[9125],simde_mm256_xor_si256(c2[12226],simde_mm256_xor_si256(c2[13989],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[1665],simde_mm256_xor_si256(c2[2105],simde_mm256_xor_si256(c2[11367],simde_mm256_xor_si256(c2[13121],simde_mm256_xor_si256(c2[13561],simde_mm256_xor_si256(c2[9166],simde_mm256_xor_si256(c2[9606],simde_mm256_xor_si256(c2[10944],simde_mm256_xor_si256(c2[5662],simde_mm256_xor_si256(c2[6101],simde_mm256_xor_si256(c2[6541],simde_mm256_xor_si256(c2[2600],simde_mm256_xor_si256(c2[12282],simde_mm256_xor_si256(c2[12722],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[3484],simde_mm256_xor_si256(c2[3945],simde_mm256_xor_si256(c2[9663],simde_mm256_xor_si256(c2[5266],c2[5706]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[310]=_mm256_xor_si256(c2[4844],_mm256_xor_si256(c2[5287],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[2644],_mm256_xor_si256(c2[3087],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[13201],_mm256_xor_si256(c2[13641],_mm256_xor_si256(c2[7502],_mm256_xor_si256(c2[7945],_mm256_xor_si256(c2[3982],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[7948],_mm256_xor_si256(c2[7941],_mm256_xor_si256(c2[8381],_mm256_xor_si256(c2[13226],_mm256_xor_si256(c2[4005],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[3561],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[8407],_mm256_xor_si256(c2[8423],_mm256_xor_si256(c2[8866],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[13265],_mm256_xor_si256(c2[63],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[11520],_mm256_xor_si256(c2[11963],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3161],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[8029],_mm256_xor_si256(c2[8462],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[3623],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[4083],_mm256_xor_si256(c2[4526],_mm256_xor_si256(c2[2329],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[13763],_mm256_xor_si256(c2[13766],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[5428],_mm256_xor_si256(c2[5861],_mm256_xor_si256(c2[7627],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[8949],_mm256_xor_si256(c2[2802],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[5001],_mm256_xor_si256(c2[7644],_mm256_xor_si256(c2[7647],_mm256_xor_si256(c2[8087],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[8104],_mm256_xor_si256(c2[8547],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[4587],_mm256_xor_si256(c2[1967],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5485],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[12080],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[12523],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11661],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[1989],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[6401],_mm256_xor_si256(c2[6844],_mm256_xor_si256(c2[13889],_mm256_xor_si256(c2[13882],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[3346],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[4221],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[2900],_mm256_xor_si256(c2[3340],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[6887],_mm256_xor_si256(c2[13040],_mm256_xor_si256(c2[13483],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[10406],_mm256_xor_si256(c2[10846],_mm256_xor_si256(c2[5581],_mm256_xor_si256(c2[6024],_mm256_xor_si256(c2[5580],_mm256_xor_si256(c2[6023],_mm256_xor_si256(c2[6901],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[7365],_mm256_xor_si256(c2[7808],_mm256_xor_si256(c2[4724],_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[6486],_mm256_xor_si256(c2[6926],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[10027],_mm256_xor_si256(c2[11787],_mm256_xor_si256(c2[12220],_mm256_xor_si256(c2[13542],_mm256_xor_si256(c2[13545],_mm256_xor_si256(c2[13985],_mm256_xor_si256(c2[8725],_mm256_xor_si256(c2[9168],_mm256_xor_si256(c2[10929],_mm256_xor_si256(c2[11362],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[6967],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[8302],_mm256_xor_si256(c2[8745],_mm256_xor_si256(c2[3020],_mm256_xor_si256(c2[3463],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[14047],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[10080],_mm256_xor_si256(c2[10523],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[7021],_mm256_xor_si256(c2[7464],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[3067],c2[3507])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[310]=simde_mm256_xor_si256(c2[4844],simde_mm256_xor_si256(c2[5287],simde_mm256_xor_si256(c2[7481],simde_mm256_xor_si256(c2[7924],simde_mm256_xor_si256(c2[2644],simde_mm256_xor_si256(c2[3087],simde_mm256_xor_si256(c2[13208],simde_mm256_xor_si256(c2[13201],simde_mm256_xor_si256(c2[13641],simde_mm256_xor_si256(c2[7502],simde_mm256_xor_si256(c2[7945],simde_mm256_xor_si256(c2[3982],simde_mm256_xor_si256(c2[4425],simde_mm256_xor_si256(c2[7948],simde_mm256_xor_si256(c2[7941],simde_mm256_xor_si256(c2[8381],simde_mm256_xor_si256(c2[13226],simde_mm256_xor_si256(c2[4005],simde_mm256_xor_si256(c2[4448],simde_mm256_xor_si256(c2[3561],simde_mm256_xor_si256(c2[4004],simde_mm256_xor_si256(c2[7964],simde_mm256_xor_si256(c2[8407],simde_mm256_xor_si256(c2[8423],simde_mm256_xor_si256(c2[8866],simde_mm256_xor_si256(c2[12822],simde_mm256_xor_si256(c2[13265],simde_mm256_xor_si256(c2[63],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[3160],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[11520],simde_mm256_xor_si256(c2[11963],simde_mm256_xor_si256(c2[3168],simde_mm256_xor_si256(c2[3161],simde_mm256_xor_si256(c2[3601],simde_mm256_xor_si256(c2[8029],simde_mm256_xor_si256(c2[8462],simde_mm256_xor_si256(c2[1427],simde_mm256_xor_si256(c2[1860],simde_mm256_xor_si256(c2[3623],simde_mm256_xor_si256(c2[4066],simde_mm256_xor_si256(c2[4083],simde_mm256_xor_si256(c2[4526],simde_mm256_xor_si256(c2[2329],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[13763],simde_mm256_xor_si256(c2[13766],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[3226],simde_mm256_xor_si256(c2[3669],simde_mm256_xor_si256(c2[5428],simde_mm256_xor_si256(c2[5861],simde_mm256_xor_si256(c2[7627],simde_mm256_xor_si256(c2[7620],simde_mm256_xor_si256(c2[8060],simde_mm256_xor_si256(c2[8949],simde_mm256_xor_si256(c2[2802],simde_mm256_xor_si256(c2[3245],simde_mm256_xor_si256(c2[4568],simde_mm256_xor_si256(c2[5001],simde_mm256_xor_si256(c2[7644],simde_mm256_xor_si256(c2[7647],simde_mm256_xor_si256(c2[8087],simde_mm256_xor_si256(c2[7662],simde_mm256_xor_si256(c2[8105],simde_mm256_xor_si256(c2[8104],simde_mm256_xor_si256(c2[8547],simde_mm256_xor_si256(c2[4144],simde_mm256_xor_si256(c2[4587],simde_mm256_xor_si256(c2[1967],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[5485],simde_mm256_xor_si256(c2[5928],simde_mm256_xor_si256(c2[12080],simde_mm256_xor_si256(c2[12083],simde_mm256_xor_si256(c2[12523],simde_mm256_xor_si256(c2[11228],simde_mm256_xor_si256(c2[11661],simde_mm256_xor_si256(c2[1546],simde_mm256_xor_si256(c2[1989],simde_mm256_xor_si256(c2[7701],simde_mm256_xor_si256(c2[7704],simde_mm256_xor_si256(c2[8144],simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[6401],simde_mm256_xor_si256(c2[6844],simde_mm256_xor_si256(c2[13889],simde_mm256_xor_si256(c2[13882],simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[3346],simde_mm256_xor_si256(c2[3789],simde_mm256_xor_si256(c2[4221],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[2907],simde_mm256_xor_si256(c2[2900],simde_mm256_xor_si256(c2[3340],simde_mm256_xor_si256(c2[6444],simde_mm256_xor_si256(c2[6887],simde_mm256_xor_si256(c2[13040],simde_mm256_xor_si256(c2[13483],simde_mm256_xor_si256(c2[10403],simde_mm256_xor_si256(c2[10406],simde_mm256_xor_si256(c2[10846],simde_mm256_xor_si256(c2[5581],simde_mm256_xor_si256(c2[6024],simde_mm256_xor_si256(c2[5580],simde_mm256_xor_si256(c2[6023],simde_mm256_xor_si256(c2[6901],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[7365],simde_mm256_xor_si256(c2[7808],simde_mm256_xor_si256(c2[4724],simde_mm256_xor_si256(c2[5167],simde_mm256_xor_si256(c2[6483],simde_mm256_xor_si256(c2[6486],simde_mm256_xor_si256(c2[6926],simde_mm256_xor_si256(c2[9584],simde_mm256_xor_si256(c2[10027],simde_mm256_xor_si256(c2[11787],simde_mm256_xor_si256(c2[12220],simde_mm256_xor_si256(c2[13542],simde_mm256_xor_si256(c2[13545],simde_mm256_xor_si256(c2[13985],simde_mm256_xor_si256(c2[8725],simde_mm256_xor_si256(c2[9168],simde_mm256_xor_si256(c2[10929],simde_mm256_xor_si256(c2[11362],simde_mm256_xor_si256(c2[6964],simde_mm256_xor_si256(c2[6967],simde_mm256_xor_si256(c2[7407],simde_mm256_xor_si256(c2[8302],simde_mm256_xor_si256(c2[8745],simde_mm256_xor_si256(c2[3020],simde_mm256_xor_si256(c2[3463],simde_mm256_xor_si256(c2[3909],simde_mm256_xor_si256(c2[4342],simde_mm256_xor_si256(c2[14047],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[10080],simde_mm256_xor_si256(c2[10523],simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[7021],simde_mm256_xor_si256(c2[7464],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[3067],c2[3507])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[320]=_mm256_xor_si256(c2[1329],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[12768],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[9243],_mm256_xor_si256(c2[9683],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[3987],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[3983],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[4009],_mm256_xor_si256(c2[4449],_mm256_xor_si256(c2[4908],_mm256_xor_si256(c2[9307],_mm256_xor_si256(c2[10187],_mm256_xor_si256(c2[10627],_mm256_xor_si256(c2[13724],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[13282],_mm256_xor_si256(c2[13722],_mm256_xor_si256(c2[4504],_mm256_xor_si256(c2[11981],_mm256_xor_si256(c2[13747],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[12443],_mm256_xor_si256(c2[12883],_mm256_xor_si256(c2[9808],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[13780],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[3662],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[13366],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[3689],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[4147],_mm256_xor_si256(c2[4589],_mm256_xor_si256(c2[189],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[12521],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[8125],_mm256_xor_si256(c2[8565],_mm256_xor_si256(c2[7703],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[4186],_mm256_xor_si256(c2[13441],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[9924],_mm256_xor_si256(c2[10364],_mm256_xor_si256(c2[9920],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[13021],_mm256_xor_si256(c2[13461],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[9085],_mm256_xor_si256(c2[9525],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[2066],_mm256_xor_si256(c2[2065],_mm256_xor_si256(c2[2946],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[1209],_mm256_xor_si256(c2[2528],_mm256_xor_si256(c2[2968],_mm256_xor_si256(c2[6069],_mm256_xor_si256(c2[7822],_mm256_xor_si256(c2[8262],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[10027],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[7404],_mm256_xor_si256(c2[3009],_mm256_xor_si256(c2[3449],_mm256_xor_si256(c2[4787],_mm256_xor_si256(c2[13584],_mm256_xor_si256(c2[14023],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[10522],_mm256_xor_si256(c2[6125],_mm256_xor_si256(c2[6565],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[11406],_mm256_xor_si256(c2[11867],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[13188],c2[13628]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[320]=simde_mm256_xor_si256(c2[1329],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[12768],simde_mm256_xor_si256(c2[13208],simde_mm256_xor_si256(c2[9243],simde_mm256_xor_si256(c2[9683],simde_mm256_xor_si256(c2[7926],simde_mm256_xor_si256(c2[3987],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[3983],simde_mm256_xor_si256(c2[4423],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[4009],simde_mm256_xor_si256(c2[4449],simde_mm256_xor_si256(c2[4908],simde_mm256_xor_si256(c2[9307],simde_mm256_xor_si256(c2[10187],simde_mm256_xor_si256(c2[10627],simde_mm256_xor_si256(c2[13724],simde_mm256_xor_si256(c2[7565],simde_mm256_xor_si256(c2[8005],simde_mm256_xor_si256(c2[13282],simde_mm256_xor_si256(c2[13722],simde_mm256_xor_si256(c2[4504],simde_mm256_xor_si256(c2[11981],simde_mm256_xor_si256(c2[13747],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[12443],simde_mm256_xor_si256(c2[12883],simde_mm256_xor_si256(c2[9808],simde_mm256_xor_si256(c2[10248],simde_mm256_xor_si256(c2[13780],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[3662],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[13366],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[1043],simde_mm256_xor_si256(c2[3689],simde_mm256_xor_si256(c2[4129],simde_mm256_xor_si256(c2[4147],simde_mm256_xor_si256(c2[4589],simde_mm256_xor_si256(c2[189],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[12521],simde_mm256_xor_si256(c2[1520],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[8125],simde_mm256_xor_si256(c2[8565],simde_mm256_xor_si256(c2[7703],simde_mm256_xor_si256(c2[12100],simde_mm256_xor_si256(c2[3746],simde_mm256_xor_si256(c2[4186],simde_mm256_xor_si256(c2[13441],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[9924],simde_mm256_xor_si256(c2[10364],simde_mm256_xor_si256(c2[9920],simde_mm256_xor_si256(c2[13900],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[706],simde_mm256_xor_si256(c2[13021],simde_mm256_xor_si256(c2[13461],simde_mm256_xor_si256(c2[2929],simde_mm256_xor_si256(c2[9085],simde_mm256_xor_si256(c2[9525],simde_mm256_xor_si256(c2[6448],simde_mm256_xor_si256(c2[6888],simde_mm256_xor_si256(c2[6888],simde_mm256_xor_si256(c2[2066],simde_mm256_xor_si256(c2[2065],simde_mm256_xor_si256(c2[2946],simde_mm256_xor_si256(c2[3386],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[1209],simde_mm256_xor_si256(c2[2528],simde_mm256_xor_si256(c2[2968],simde_mm256_xor_si256(c2[6069],simde_mm256_xor_si256(c2[7822],simde_mm256_xor_si256(c2[8262],simde_mm256_xor_si256(c2[9587],simde_mm256_xor_si256(c2[10027],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[6964],simde_mm256_xor_si256(c2[7404],simde_mm256_xor_si256(c2[3009],simde_mm256_xor_si256(c2[3449],simde_mm256_xor_si256(c2[4787],simde_mm256_xor_si256(c2[13584],simde_mm256_xor_si256(c2[14023],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[10522],simde_mm256_xor_si256(c2[6125],simde_mm256_xor_si256(c2[6565],simde_mm256_xor_si256(c2[10966],simde_mm256_xor_si256(c2[11406],simde_mm256_xor_si256(c2[11867],simde_mm256_xor_si256(c2[3506],simde_mm256_xor_si256(c2[13188],c2[13628]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[330]=_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[8840],_mm256_xor_si256(c2[5504],c2[861]))); + d2[330]=simde_mm256_xor_si256(c2[4425],simde_mm256_xor_si256(c2[8840],simde_mm256_xor_si256(c2[5504],c2[861]))); //row: 34 - d2[340]=_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[2500],c2[5621]))); + d2[340]=simde_mm256_xor_si256(c2[11885],simde_mm256_xor_si256(c2[3669],simde_mm256_xor_si256(c2[2500],c2[5621]))); //row: 35 - d2[350]=_mm256_xor_si256(c2[2641],_mm256_xor_si256(c2[5288],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[11005],_mm256_xor_si256(c2[5309],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[10629],_mm256_xor_si256(c2[11949],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[9327],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[13303],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[11560],_mm256_xor_si256(c2[13324],_mm256_xor_si256(c2[1023],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[5441],_mm256_xor_si256(c2[5469],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[1941],_mm256_xor_si256(c2[13843],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[9887],_mm256_xor_si256(c2[9025],_mm256_xor_si256(c2[13422],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[4208],_mm256_xor_si256(c2[11686],_mm256_xor_si256(c2[10361],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[10847],_mm256_xor_si256(c2[8200],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[3387],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[4280],_mm256_xor_si256(c2[7381],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[11349],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[8726],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[6109],_mm256_xor_si256(c2[827],_mm256_xor_si256(c2[1706],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[7887],_mm256_xor_si256(c2[12728],_mm256_xor_si256(c2[13189],_mm256_xor_si256(c2[4828],c2[861]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[350]=simde_mm256_xor_si256(c2[2641],simde_mm256_xor_si256(c2[5288],simde_mm256_xor_si256(c2[441],simde_mm256_xor_si256(c2[11005],simde_mm256_xor_si256(c2[5309],simde_mm256_xor_si256(c2[1789],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[6626],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[5761],simde_mm256_xor_si256(c2[6220],simde_mm256_xor_si256(c2[10629],simde_mm256_xor_si256(c2[11949],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[9327],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[5826],simde_mm256_xor_si256(c2[13303],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[11560],simde_mm256_xor_si256(c2[13324],simde_mm256_xor_si256(c2[1023],simde_mm256_xor_si256(c2[3225],simde_mm256_xor_si256(c2[5424],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[2365],simde_mm256_xor_si256(c2[5441],simde_mm256_xor_si256(c2[5469],simde_mm256_xor_si256(c2[5901],simde_mm256_xor_si256(c2[1941],simde_mm256_xor_si256(c2[13843],simde_mm256_xor_si256(c2[3282],simde_mm256_xor_si256(c2[9887],simde_mm256_xor_si256(c2[9025],simde_mm256_xor_si256(c2[13422],simde_mm256_xor_si256(c2[5508],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[4208],simde_mm256_xor_si256(c2[11686],simde_mm256_xor_si256(c2[10361],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[2028],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[4241],simde_mm256_xor_si256(c2[10847],simde_mm256_xor_si256(c2[8200],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[3387],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[5162],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[4280],simde_mm256_xor_si256(c2[7381],simde_mm256_xor_si256(c2[9584],simde_mm256_xor_si256(c2[11349],simde_mm256_xor_si256(c2[6522],simde_mm256_xor_si256(c2[8726],simde_mm256_xor_si256(c2[4761],simde_mm256_xor_si256(c2[6109],simde_mm256_xor_si256(c2[827],simde_mm256_xor_si256(c2[1706],simde_mm256_xor_si256(c2[11844],simde_mm256_xor_si256(c2[7887],simde_mm256_xor_si256(c2[12728],simde_mm256_xor_si256(c2[13189],simde_mm256_xor_si256(c2[4828],c2[861]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[360]=_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[8225],c2[365]))); + d2[360]=simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[8645],simde_mm256_xor_si256(c2[8225],c2[365]))); //row: 37 - d2[370]=_mm256_xor_si256(c2[12325],_mm256_xor_si256(c2[12765],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[11903],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[4429],_mm256_xor_si256(c2[11486],_mm256_xor_si256(c2[11926],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[11081],_mm256_xor_si256(c2[5362],_mm256_xor_si256(c2[11089],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[9348],_mm256_xor_si256(c2[11544],_mm256_xor_si256(c2[11564],_mm256_xor_si256(c2[12004],_mm256_xor_si256(c2[10240],_mm256_xor_si256(c2[7605],_mm256_xor_si256(c2[11147],_mm256_xor_si256(c2[13349],_mm256_xor_si256(c2[1469],_mm256_xor_si256(c2[10723],_mm256_xor_si256(c2[12489],_mm256_xor_si256(c2[1486],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[12065],_mm256_xor_si256(c2[9448],_mm256_xor_si256(c2[9888],_mm256_xor_si256(c2[13406],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[5060],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[10368],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[7721],_mm256_xor_si256(c2[10827],_mm256_xor_si256(c2[11267],_mm256_xor_si256(c2[12142],_mm256_xor_si256(c2[10828],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[6882],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[13062],_mm256_xor_si256(c2[13502],_mm256_xor_si256(c2[13501],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[767],_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[12645],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[3426],_mm256_xor_si256(c2[5629],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[2127],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[806],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[10941],_mm256_xor_si256(c2[11820],_mm256_xor_si256(c2[7449],_mm256_xor_si256(c2[7889],_mm256_xor_si256(c2[3922],_mm256_xor_si256(c2[8763],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[9224],_mm256_xor_si256(c2[863],c2[10985]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[370]=simde_mm256_xor_si256(c2[12325],simde_mm256_xor_si256(c2[12765],simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[10565],simde_mm256_xor_si256(c2[7040],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[11903],simde_mm256_xor_si256(c2[1780],simde_mm256_xor_si256(c2[4429],simde_mm256_xor_si256(c2[11486],simde_mm256_xor_si256(c2[11926],simde_mm256_xor_si256(c2[11482],simde_mm256_xor_si256(c2[1806],simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[6664],simde_mm256_xor_si256(c2[7984],simde_mm256_xor_si256(c2[11081],simde_mm256_xor_si256(c2[5362],simde_mm256_xor_si256(c2[11089],simde_mm256_xor_si256(c2[1421],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[9348],simde_mm256_xor_si256(c2[11544],simde_mm256_xor_si256(c2[11564],simde_mm256_xor_si256(c2[12004],simde_mm256_xor_si256(c2[10240],simde_mm256_xor_si256(c2[7605],simde_mm256_xor_si256(c2[11147],simde_mm256_xor_si256(c2[13349],simde_mm256_xor_si256(c2[1469],simde_mm256_xor_si256(c2[10723],simde_mm256_xor_si256(c2[12489],simde_mm256_xor_si256(c2[1486],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[1946],simde_mm256_xor_si256(c2[12065],simde_mm256_xor_si256(c2[9448],simde_mm256_xor_si256(c2[9888],simde_mm256_xor_si256(c2[13406],simde_mm256_xor_si256(c2[5922],simde_mm256_xor_si256(c2[4620],simde_mm256_xor_si256(c2[5060],simde_mm256_xor_si256(c2[9467],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[10368],simde_mm256_xor_si256(c2[10808],simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[7721],simde_mm256_xor_si256(c2[10827],simde_mm256_xor_si256(c2[11267],simde_mm256_xor_si256(c2[12142],simde_mm256_xor_si256(c2[10828],simde_mm256_xor_si256(c2[6860],simde_mm256_xor_si256(c2[286],simde_mm256_xor_si256(c2[6882],simde_mm256_xor_si256(c2[4245],simde_mm256_xor_si256(c2[13062],simde_mm256_xor_si256(c2[13502],simde_mm256_xor_si256(c2[13501],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[767],simde_mm256_xor_si256(c2[1207],simde_mm256_xor_si256(c2[12645],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[3426],simde_mm256_xor_si256(c2[5629],simde_mm256_xor_si256(c2[7384],simde_mm256_xor_si256(c2[2127],simde_mm256_xor_si256(c2[2567],simde_mm256_xor_si256(c2[4761],simde_mm256_xor_si256(c2[806],simde_mm256_xor_si256(c2[1704],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[10941],simde_mm256_xor_si256(c2[11820],simde_mm256_xor_si256(c2[7449],simde_mm256_xor_si256(c2[7889],simde_mm256_xor_si256(c2[3922],simde_mm256_xor_si256(c2[8763],simde_mm256_xor_si256(c2[8784],simde_mm256_xor_si256(c2[9224],simde_mm256_xor_si256(c2[863],c2[10985]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[380]=_mm256_xor_si256(c2[10124],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[202],c2[9485]))); + d2[380]=simde_mm256_xor_si256(c2[10124],simde_mm256_xor_si256(c2[8545],simde_mm256_xor_si256(c2[202],c2[9485]))); //row: 39 - d2[390]=_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[146],c2[7426]))); + d2[390]=simde_mm256_xor_si256(c2[2663],simde_mm256_xor_si256(c2[5782],simde_mm256_xor_si256(c2[146],c2[7426]))); //row: 40 - d2[400]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[7202],c2[2546])); + d2[400]=simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[7202],c2[2546])); //row: 41 - d2[410]=_mm256_xor_si256(c2[11464],_mm256_xor_si256(c2[6661],_mm256_xor_si256(c2[12503],c2[6966]))); + d2[410]=simde_mm256_xor_si256(c2[11464],simde_mm256_xor_si256(c2[6661],simde_mm256_xor_si256(c2[12503],c2[6966]))); //row: 42 - d2[420]=_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[1326],_mm256_xor_si256(c2[11440],_mm256_xor_si256(c2[11880],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[6180],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[6646],_mm256_xor_si256(c2[7105],_mm256_xor_si256(c2[11504],_mm256_xor_si256(c2[12384],_mm256_xor_si256(c2[12824],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[10202],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[6701],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[2765],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[12005],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5886],_mm256_xor_si256(c2[6326],_mm256_xor_si256(c2[6344],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[2386],_mm256_xor_si256(c2[2826],_mm256_xor_si256(c2[649],_mm256_xor_si256(c2[3727],_mm256_xor_si256(c2[4167],_mm256_xor_si256(c2[10322],_mm256_xor_si256(c2[10762],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[6383],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[5083],_mm256_xor_si256(c2[12121],_mm256_xor_si256(c2[12561],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[2463],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[1149],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[11282],_mm256_xor_si256(c2[11722],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[9085],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[4262],_mm256_xor_si256(c2[5143],_mm256_xor_si256(c2[5583],_mm256_xor_si256(c2[6047],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[5165],_mm256_xor_si256(c2[8266],_mm256_xor_si256(c2[10029],_mm256_xor_si256(c2[10469],_mm256_xor_si256(c2[11784],_mm256_xor_si256(c2[12224],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[9161],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[5206],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[6984],_mm256_xor_si256(c2[1702],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[12729],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[8762],_mm256_xor_si256(c2[13163],_mm256_xor_si256(c2[13603],_mm256_xor_si256(c2[14064],_mm256_xor_si256(c2[5703],_mm256_xor_si256(c2[1306],c2[1746])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[420]=simde_mm256_xor_si256(c2[3526],simde_mm256_xor_si256(c2[6163],simde_mm256_xor_si256(c2[886],simde_mm256_xor_si256(c2[1326],simde_mm256_xor_si256(c2[11440],simde_mm256_xor_si256(c2[11880],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[6184],simde_mm256_xor_si256(c2[2224],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[6180],simde_mm256_xor_si256(c2[6620],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[6206],simde_mm256_xor_si256(c2[6646],simde_mm256_xor_si256(c2[7105],simde_mm256_xor_si256(c2[11504],simde_mm256_xor_si256(c2[12384],simde_mm256_xor_si256(c2[12824],simde_mm256_xor_si256(c2[1842],simde_mm256_xor_si256(c2[9762],simde_mm256_xor_si256(c2[10202],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[6701],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[1865],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[2765],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[1001],simde_mm256_xor_si256(c2[12005],simde_mm256_xor_si256(c2[12445],simde_mm256_xor_si256(c2[1908],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[4100],simde_mm256_xor_si256(c2[5869],simde_mm256_xor_si256(c2[6309],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[2800],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[5886],simde_mm256_xor_si256(c2[6326],simde_mm256_xor_si256(c2[6344],simde_mm256_xor_si256(c2[6786],simde_mm256_xor_si256(c2[2386],simde_mm256_xor_si256(c2[2826],simde_mm256_xor_si256(c2[649],simde_mm256_xor_si256(c2[3727],simde_mm256_xor_si256(c2[4167],simde_mm256_xor_si256(c2[10322],simde_mm256_xor_si256(c2[10762],simde_mm256_xor_si256(c2[9900],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[5943],simde_mm256_xor_si256(c2[6383],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[5083],simde_mm256_xor_si256(c2[12121],simde_mm256_xor_si256(c2[12561],simde_mm256_xor_si256(c2[2028],simde_mm256_xor_si256(c2[2463],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[1149],simde_mm256_xor_si256(c2[1589],simde_mm256_xor_si256(c2[5126],simde_mm256_xor_si256(c2[11282],simde_mm256_xor_si256(c2[11722],simde_mm256_xor_si256(c2[8645],simde_mm256_xor_si256(c2[9085],simde_mm256_xor_si256(c2[4263],simde_mm256_xor_si256(c2[4262],simde_mm256_xor_si256(c2[5143],simde_mm256_xor_si256(c2[5583],simde_mm256_xor_si256(c2[6047],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[4725],simde_mm256_xor_si256(c2[5165],simde_mm256_xor_si256(c2[8266],simde_mm256_xor_si256(c2[10029],simde_mm256_xor_si256(c2[10469],simde_mm256_xor_si256(c2[11784],simde_mm256_xor_si256(c2[12224],simde_mm256_xor_si256(c2[7407],simde_mm256_xor_si256(c2[9161],simde_mm256_xor_si256(c2[9601],simde_mm256_xor_si256(c2[5206],simde_mm256_xor_si256(c2[5646],simde_mm256_xor_si256(c2[6984],simde_mm256_xor_si256(c2[1702],simde_mm256_xor_si256(c2[2141],simde_mm256_xor_si256(c2[2581],simde_mm256_xor_si256(c2[12729],simde_mm256_xor_si256(c2[8322],simde_mm256_xor_si256(c2[8762],simde_mm256_xor_si256(c2[13163],simde_mm256_xor_si256(c2[13603],simde_mm256_xor_si256(c2[14064],simde_mm256_xor_si256(c2[5703],simde_mm256_xor_si256(c2[1306],c2[1746])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[430]=_mm256_xor_si256(c2[7045],_mm256_xor_si256(c2[9682],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[6183],_mm256_xor_si256(c2[9709],_mm256_xor_si256(c2[10149],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[5762],_mm256_xor_si256(c2[10165],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[5361],_mm256_xor_si256(c2[13721],_mm256_xor_si256(c2[4929],_mm256_xor_si256(c2[5369],_mm256_xor_si256(c2[10220],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[6284],_mm256_xor_si256(c2[4520],_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[1885],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[7629],_mm256_xor_si256(c2[9388],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5003],_mm256_xor_si256(c2[6769],_mm256_xor_si256(c2[9405],_mm256_xor_si256(c2[9845],_mm256_xor_si256(c2[9863],_mm256_xor_si256(c2[10305],_mm256_xor_si256(c2[6345],_mm256_xor_si256(c2[4168],_mm256_xor_si256(c2[7686],_mm256_xor_si256(c2[13841],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[13429],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[9462],_mm256_xor_si256(c2[9902],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[8602],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[6422],_mm256_xor_si256(c2[4668],_mm256_xor_si256(c2[5108],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[12164],_mm256_xor_si256(c2[12604],_mm256_xor_si256(c2[7782],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[9102],_mm256_xor_si256(c2[9566],_mm256_xor_si256(c2[6925],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[11785],_mm256_xor_si256(c2[13988],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[10926],_mm256_xor_si256(c2[13120],_mm256_xor_si256(c2[8725],_mm256_xor_si256(c2[9165],_mm256_xor_si256(c2[7405],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[5221],_mm256_xor_si256(c2[6100],_mm256_xor_si256(c2[2169],_mm256_xor_si256(c2[12281],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[9222],_mm256_xor_si256(c2[4825],c2[5265])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[430]=simde_mm256_xor_si256(c2[7045],simde_mm256_xor_si256(c2[9682],simde_mm256_xor_si256(c2[4845],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[9703],simde_mm256_xor_si256(c2[6183],simde_mm256_xor_si256(c2[9709],simde_mm256_xor_si256(c2[10149],simde_mm256_xor_si256(c2[1787],simde_mm256_xor_si256(c2[6206],simde_mm256_xor_si256(c2[5762],simde_mm256_xor_si256(c2[10165],simde_mm256_xor_si256(c2[10624],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[2264],simde_mm256_xor_si256(c2[5361],simde_mm256_xor_si256(c2[13721],simde_mm256_xor_si256(c2[4929],simde_mm256_xor_si256(c2[5369],simde_mm256_xor_si256(c2[10220],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[5824],simde_mm256_xor_si256(c2[6284],simde_mm256_xor_si256(c2[4520],simde_mm256_xor_si256(c2[1445],simde_mm256_xor_si256(c2[1885],simde_mm256_xor_si256(c2[5427],simde_mm256_xor_si256(c2[7629],simde_mm256_xor_si256(c2[9388],simde_mm256_xor_si256(c2[9828],simde_mm256_xor_si256(c2[5003],simde_mm256_xor_si256(c2[6769],simde_mm256_xor_si256(c2[9405],simde_mm256_xor_si256(c2[9845],simde_mm256_xor_si256(c2[9863],simde_mm256_xor_si256(c2[10305],simde_mm256_xor_si256(c2[6345],simde_mm256_xor_si256(c2[4168],simde_mm256_xor_si256(c2[7686],simde_mm256_xor_si256(c2[13841],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[13429],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[9462],simde_mm256_xor_si256(c2[9902],simde_mm256_xor_si256(c2[5088],simde_mm256_xor_si256(c2[8602],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[2001],simde_mm256_xor_si256(c2[5547],simde_mm256_xor_si256(c2[6422],simde_mm256_xor_si256(c2[4668],simde_mm256_xor_si256(c2[5108],simde_mm256_xor_si256(c2[8645],simde_mm256_xor_si256(c2[1162],simde_mm256_xor_si256(c2[12164],simde_mm256_xor_si256(c2[12604],simde_mm256_xor_si256(c2[7782],simde_mm256_xor_si256(c2[7781],simde_mm256_xor_si256(c2[9102],simde_mm256_xor_si256(c2[9566],simde_mm256_xor_si256(c2[6925],simde_mm256_xor_si256(c2[8244],simde_mm256_xor_si256(c2[8684],simde_mm256_xor_si256(c2[2522],simde_mm256_xor_si256(c2[11785],simde_mm256_xor_si256(c2[13988],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[10926],simde_mm256_xor_si256(c2[13120],simde_mm256_xor_si256(c2[8725],simde_mm256_xor_si256(c2[9165],simde_mm256_xor_si256(c2[7405],simde_mm256_xor_si256(c2[10503],simde_mm256_xor_si256(c2[5221],simde_mm256_xor_si256(c2[6100],simde_mm256_xor_si256(c2[2169],simde_mm256_xor_si256(c2[12281],simde_mm256_xor_si256(c2[2603],simde_mm256_xor_si256(c2[3043],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[9222],simde_mm256_xor_si256(c2[4825],c2[5265])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[440]=_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[8367],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[4407],_mm256_xor_si256(c2[8388],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[8824],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[8840],_mm256_xor_si256(c2[9309],_mm256_xor_si256(c2[13708],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[4046],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[4044],_mm256_xor_si256(c2[8905],_mm256_xor_si256(c2[2303],_mm256_xor_si256(c2[4509],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[6304],_mm256_xor_si256(c2[8503],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[3688],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[8520],_mm256_xor_si256(c2[8548],_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[5020],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[6361],_mm256_xor_si256(c2[12966],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[2422],_mm256_xor_si256(c2[8587],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[7287],_mm256_xor_si256(c2[686],_mm256_xor_si256(c2[4222],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[3783],_mm256_xor_si256(c2[7320],_mm256_xor_si256(c2[13926],_mm256_xor_si256(c2[11289],_mm256_xor_si256(c2[6467],_mm256_xor_si256(c2[6466],_mm256_xor_si256(c2[7787],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[10460],_mm256_xor_si256(c2[12663],_mm256_xor_si256(c2[349],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[11805],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[9188],_mm256_xor_si256(c2[3906],_mm256_xor_si256(c2[4785],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[2189],_mm256_xor_si256(c2[7907],c2[3940]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[440]=simde_mm256_xor_si256(c2[5720],simde_mm256_xor_si256(c2[8367],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[4407],simde_mm256_xor_si256(c2[8388],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[8824],simde_mm256_xor_si256(c2[4881],simde_mm256_xor_si256(c2[4447],simde_mm256_xor_si256(c2[8840],simde_mm256_xor_si256(c2[9309],simde_mm256_xor_si256(c2[13708],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[4046],simde_mm256_xor_si256(c2[12406],simde_mm256_xor_si256(c2[4044],simde_mm256_xor_si256(c2[8905],simde_mm256_xor_si256(c2[2303],simde_mm256_xor_si256(c2[4509],simde_mm256_xor_si256(c2[4969],simde_mm256_xor_si256(c2[3205],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[6304],simde_mm256_xor_si256(c2[8503],simde_mm256_xor_si256(c2[1467],simde_mm256_xor_si256(c2[3688],simde_mm256_xor_si256(c2[5444],simde_mm256_xor_si256(c2[8520],simde_mm256_xor_si256(c2[8548],simde_mm256_xor_si256(c2[8980],simde_mm256_xor_si256(c2[5020],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[2843],simde_mm256_xor_si256(c2[6361],simde_mm256_xor_si256(c2[12966],simde_mm256_xor_si256(c2[12104],simde_mm256_xor_si256(c2[2422],simde_mm256_xor_si256(c2[8587],simde_mm256_xor_si256(c2[3763],simde_mm256_xor_si256(c2[7287],simde_mm256_xor_si256(c2[686],simde_mm256_xor_si256(c2[4222],simde_mm256_xor_si256(c2[5107],simde_mm256_xor_si256(c2[3783],simde_mm256_xor_si256(c2[7320],simde_mm256_xor_si256(c2[13926],simde_mm256_xor_si256(c2[11289],simde_mm256_xor_si256(c2[6467],simde_mm256_xor_si256(c2[6466],simde_mm256_xor_si256(c2[7787],simde_mm256_xor_si256(c2[8241],simde_mm256_xor_si256(c2[5600],simde_mm256_xor_si256(c2[7369],simde_mm256_xor_si256(c2[10460],simde_mm256_xor_si256(c2[12663],simde_mm256_xor_si256(c2[349],simde_mm256_xor_si256(c2[9601],simde_mm256_xor_si256(c2[11805],simde_mm256_xor_si256(c2[7840],simde_mm256_xor_si256(c2[9188],simde_mm256_xor_si256(c2[3906],simde_mm256_xor_si256(c2[4785],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[10966],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[2189],simde_mm256_xor_si256(c2[7907],c2[3940]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[450]=_mm256_xor_si256(c2[2223],_mm256_xor_si256(c2[1887],c2[13403])); + d2[450]=simde_mm256_xor_si256(c2[2223],simde_mm256_xor_si256(c2[1887],c2[13403])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc352_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc352_byte.c index 022f43aa4f..271070b719 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc352_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc352_byte.c @@ -11,141 +11,141 @@ static inline void ldpc352_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[6294],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[10673],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[14544],_mm256_xor_si256(c2[3437],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[6873],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[7376],_mm256_xor_si256(c2[5926],_mm256_xor_si256(c2[7373],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[7901],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[6475],_mm256_xor_si256(c2[13246],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[8911],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[12811],_mm256_xor_si256(c2[15227],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[3635],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[9470],_mm256_xor_si256(c2[14307],_mm256_xor_si256(c2[12374],_mm256_xor_si256(c2[4648],_mm256_xor_si256(c2[7065],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[7094],_mm256_xor_si256(c2[14836],_mm256_xor_si256(c2[12413],_mm256_xor_si256(c2[10495],_mm256_xor_si256(c2[9049],_mm256_xor_si256(c2[14369],_mm256_xor_si256(c2[13430],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[8149],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[9136],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[14019],_mm256_xor_si256(c2[7247],c2[12565])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[2913],simde_mm256_xor_si256(c2[6294],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[10673],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[14544],simde_mm256_xor_si256(c2[3437],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[10214],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[8295],simde_mm256_xor_si256(c2[8810],simde_mm256_xor_si256(c2[6873],simde_mm256_xor_si256(c2[11228],simde_mm256_xor_si256(c2[7376],simde_mm256_xor_si256(c2[5926],simde_mm256_xor_si256(c2[7373],simde_mm256_xor_si256(c2[2557],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[5460],simde_mm256_xor_si256(c2[7901],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[6961],simde_mm256_xor_si256(c2[6475],simde_mm256_xor_si256(c2[13246],simde_mm256_xor_si256(c2[9401],simde_mm256_xor_si256(c2[8911],simde_mm256_xor_si256(c2[3111],simde_mm256_xor_si256(c2[12811],simde_mm256_xor_si256(c2[15227],simde_mm256_xor_si256(c2[5063],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[3635],simde_mm256_xor_si256(c2[10897],simde_mm256_xor_si256(c2[9470],simde_mm256_xor_si256(c2[14307],simde_mm256_xor_si256(c2[12374],simde_mm256_xor_si256(c2[4648],simde_mm256_xor_si256(c2[7065],simde_mm256_xor_si256(c2[6586],simde_mm256_xor_si256(c2[7094],simde_mm256_xor_si256(c2[14836],simde_mm256_xor_si256(c2[12413],simde_mm256_xor_si256(c2[10495],simde_mm256_xor_si256(c2[9049],simde_mm256_xor_si256(c2[14369],simde_mm256_xor_si256(c2[13430],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[12459],simde_mm256_xor_si256(c2[2798],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[11512],simde_mm256_xor_si256(c2[8149],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[7660],simde_mm256_xor_si256(c2[3811],simde_mm256_xor_si256(c2[4774],simde_mm256_xor_si256(c2[9136],simde_mm256_xor_si256(c2[7701],simde_mm256_xor_si256(c2[3828],simde_mm256_xor_si256(c2[12543],simde_mm256_xor_si256(c2[14019],simde_mm256_xor_si256(c2[7247],c2[12565])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[11]=_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[3397],_mm256_xor_si256(c2[6778],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[10673],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[1959],_mm256_xor_si256(c2[15028],_mm256_xor_si256(c2[3437],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[10698],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[7357],_mm256_xor_si256(c2[11712],_mm256_xor_si256(c2[7376],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[8385],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[3547],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[13730],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[9395],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[12811],_mm256_xor_si256(c2[13295],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[9470],_mm256_xor_si256(c2[9954],_mm256_xor_si256(c2[14791],_mm256_xor_si256(c2[12858],_mm256_xor_si256(c2[4648],_mm256_xor_si256(c2[5132],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[7070],_mm256_xor_si256(c2[7578],_mm256_xor_si256(c2[15320],_mm256_xor_si256(c2[12897],_mm256_xor_si256(c2[10495],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[14853],_mm256_xor_si256(c2[13430],_mm256_xor_si256(c2[13914],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[12943],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[11996],_mm256_xor_si256(c2[8149],_mm256_xor_si256(c2[8633],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[13027],_mm256_xor_si256(c2[14019],_mm256_xor_si256(c2[14503],_mm256_xor_si256(c2[7731],c2[13049]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[11]=simde_mm256_xor_si256(c2[2913],simde_mm256_xor_si256(c2[3397],simde_mm256_xor_si256(c2[6778],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[10673],simde_mm256_xor_si256(c2[11157],simde_mm256_xor_si256(c2[1959],simde_mm256_xor_si256(c2[15028],simde_mm256_xor_si256(c2[3437],simde_mm256_xor_si256(c2[3921],simde_mm256_xor_si256(c2[1019],simde_mm256_xor_si256(c2[10698],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[5400],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[8779],simde_mm256_xor_si256(c2[9294],simde_mm256_xor_si256(c2[7357],simde_mm256_xor_si256(c2[11712],simde_mm256_xor_si256(c2[7376],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[6410],simde_mm256_xor_si256(c2[7857],simde_mm256_xor_si256(c2[2557],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[4980],simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[8385],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[3547],simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[6959],simde_mm256_xor_si256(c2[13730],simde_mm256_xor_si256(c2[9401],simde_mm256_xor_si256(c2[9885],simde_mm256_xor_si256(c2[9395],simde_mm256_xor_si256(c2[3595],simde_mm256_xor_si256(c2[12811],simde_mm256_xor_si256(c2[13295],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[5547],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[4119],simde_mm256_xor_si256(c2[11381],simde_mm256_xor_si256(c2[9470],simde_mm256_xor_si256(c2[9954],simde_mm256_xor_si256(c2[14791],simde_mm256_xor_si256(c2[12858],simde_mm256_xor_si256(c2[4648],simde_mm256_xor_si256(c2[5132],simde_mm256_xor_si256(c2[7549],simde_mm256_xor_si256(c2[7070],simde_mm256_xor_si256(c2[7578],simde_mm256_xor_si256(c2[15320],simde_mm256_xor_si256(c2[12897],simde_mm256_xor_si256(c2[10495],simde_mm256_xor_si256(c2[10979],simde_mm256_xor_si256(c2[9533],simde_mm256_xor_si256(c2[14853],simde_mm256_xor_si256(c2[13430],simde_mm256_xor_si256(c2[13914],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[12943],simde_mm256_xor_si256(c2[3282],simde_mm256_xor_si256(c2[2314],simde_mm256_xor_si256(c2[11996],simde_mm256_xor_si256(c2[8149],simde_mm256_xor_si256(c2[8633],simde_mm256_xor_si256(c2[2337],simde_mm256_xor_si256(c2[8144],simde_mm256_xor_si256(c2[3811],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[5258],simde_mm256_xor_si256(c2[9620],simde_mm256_xor_si256(c2[7701],simde_mm256_xor_si256(c2[8185],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[13027],simde_mm256_xor_si256(c2[14019],simde_mm256_xor_si256(c2[14503],simde_mm256_xor_si256(c2[7731],c2[13049]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[22]=_mm256_xor_si256(c2[3397],_mm256_xor_si256(c2[6778],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[1959],_mm256_xor_si256(c2[14544],_mm256_xor_si256(c2[15028],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[10698],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[6873],_mm256_xor_si256(c2[7357],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11712],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[7373],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[8385],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[3547],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[6475],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[13246],_mm256_xor_si256(c2[13730],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[9395],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[13295],_mm256_xor_si256(c2[15227],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[9954],_mm256_xor_si256(c2[14791],_mm256_xor_si256(c2[12374],_mm256_xor_si256(c2[12858],_mm256_xor_si256(c2[5132],_mm256_xor_si256(c2[7065],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[7070],_mm256_xor_si256(c2[7578],_mm256_xor_si256(c2[14836],_mm256_xor_si256(c2[15320],_mm256_xor_si256(c2[12413],_mm256_xor_si256(c2[12897],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[14369],_mm256_xor_si256(c2[14853],_mm256_xor_si256(c2[13914],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[12943],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[11996],_mm256_xor_si256(c2[8633],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[9136],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[13027],_mm256_xor_si256(c2[14503],_mm256_xor_si256(c2[7731],_mm256_xor_si256(c2[12565],c2[13049])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[22]=simde_mm256_xor_si256(c2[3397],simde_mm256_xor_si256(c2[6778],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[11157],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[1959],simde_mm256_xor_si256(c2[14544],simde_mm256_xor_si256(c2[15028],simde_mm256_xor_si256(c2[3921],simde_mm256_xor_si256(c2[1019],simde_mm256_xor_si256(c2[10214],simde_mm256_xor_si256(c2[10698],simde_mm256_xor_si256(c2[5400],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[8295],simde_mm256_xor_si256(c2[8779],simde_mm256_xor_si256(c2[9294],simde_mm256_xor_si256(c2[6873],simde_mm256_xor_si256(c2[7357],simde_mm256_xor_si256(c2[11228],simde_mm256_xor_si256(c2[11712],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[6410],simde_mm256_xor_si256(c2[7373],simde_mm256_xor_si256(c2[7857],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[4980],simde_mm256_xor_si256(c2[5460],simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[8385],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[3547],simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[6475],simde_mm256_xor_si256(c2[6959],simde_mm256_xor_si256(c2[13246],simde_mm256_xor_si256(c2[13730],simde_mm256_xor_si256(c2[9885],simde_mm256_xor_si256(c2[9395],simde_mm256_xor_si256(c2[3111],simde_mm256_xor_si256(c2[3595],simde_mm256_xor_si256(c2[13295],simde_mm256_xor_si256(c2[15227],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[5063],simde_mm256_xor_si256(c2[5547],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[4119],simde_mm256_xor_si256(c2[10897],simde_mm256_xor_si256(c2[11381],simde_mm256_xor_si256(c2[9954],simde_mm256_xor_si256(c2[14791],simde_mm256_xor_si256(c2[12374],simde_mm256_xor_si256(c2[12858],simde_mm256_xor_si256(c2[5132],simde_mm256_xor_si256(c2[7065],simde_mm256_xor_si256(c2[7549],simde_mm256_xor_si256(c2[6586],simde_mm256_xor_si256(c2[7070],simde_mm256_xor_si256(c2[7578],simde_mm256_xor_si256(c2[14836],simde_mm256_xor_si256(c2[15320],simde_mm256_xor_si256(c2[12413],simde_mm256_xor_si256(c2[12897],simde_mm256_xor_si256(c2[10979],simde_mm256_xor_si256(c2[9533],simde_mm256_xor_si256(c2[14369],simde_mm256_xor_si256(c2[14853],simde_mm256_xor_si256(c2[13914],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[12459],simde_mm256_xor_si256(c2[12943],simde_mm256_xor_si256(c2[3282],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[2314],simde_mm256_xor_si256(c2[11512],simde_mm256_xor_si256(c2[11996],simde_mm256_xor_si256(c2[8633],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[2337],simde_mm256_xor_si256(c2[7660],simde_mm256_xor_si256(c2[8144],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[5258],simde_mm256_xor_si256(c2[9136],simde_mm256_xor_si256(c2[9620],simde_mm256_xor_si256(c2[8185],simde_mm256_xor_si256(c2[3828],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[12543],simde_mm256_xor_si256(c2[13027],simde_mm256_xor_si256(c2[14503],simde_mm256_xor_si256(c2[7731],simde_mm256_xor_si256(c2[12565],c2[13049])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[33]=_mm256_xor_si256(c2[3397],_mm256_xor_si256(c2[6778],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[1959],_mm256_xor_si256(c2[14544],_mm256_xor_si256(c2[15028],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[10698],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[7357],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11712],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[8385],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[3547],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[13246],_mm256_xor_si256(c2[13730],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[9395],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[13295],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[9954],_mm256_xor_si256(c2[14791],_mm256_xor_si256(c2[12374],_mm256_xor_si256(c2[12858],_mm256_xor_si256(c2[5132],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[7070],_mm256_xor_si256(c2[7578],_mm256_xor_si256(c2[15320],_mm256_xor_si256(c2[12413],_mm256_xor_si256(c2[12897],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[14853],_mm256_xor_si256(c2[13914],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[12943],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[11996],_mm256_xor_si256(c2[8633],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[13027],_mm256_xor_si256(c2[14503],_mm256_xor_si256(c2[7731],_mm256_xor_si256(c2[12565],c2[13049]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[33]=simde_mm256_xor_si256(c2[3397],simde_mm256_xor_si256(c2[6778],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[11157],simde_mm256_xor_si256(c2[1959],simde_mm256_xor_si256(c2[14544],simde_mm256_xor_si256(c2[15028],simde_mm256_xor_si256(c2[3921],simde_mm256_xor_si256(c2[1019],simde_mm256_xor_si256(c2[10698],simde_mm256_xor_si256(c2[5400],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[8295],simde_mm256_xor_si256(c2[8779],simde_mm256_xor_si256(c2[9294],simde_mm256_xor_si256(c2[7357],simde_mm256_xor_si256(c2[11228],simde_mm256_xor_si256(c2[11712],simde_mm256_xor_si256(c2[7860],simde_mm256_xor_si256(c2[6410],simde_mm256_xor_si256(c2[7857],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[4980],simde_mm256_xor_si256(c2[5460],simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[8385],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[3547],simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[6959],simde_mm256_xor_si256(c2[13246],simde_mm256_xor_si256(c2[13730],simde_mm256_xor_si256(c2[9885],simde_mm256_xor_si256(c2[9395],simde_mm256_xor_si256(c2[3595],simde_mm256_xor_si256(c2[13295],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[5063],simde_mm256_xor_si256(c2[5547],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[4119],simde_mm256_xor_si256(c2[10897],simde_mm256_xor_si256(c2[11381],simde_mm256_xor_si256(c2[9954],simde_mm256_xor_si256(c2[14791],simde_mm256_xor_si256(c2[12374],simde_mm256_xor_si256(c2[12858],simde_mm256_xor_si256(c2[5132],simde_mm256_xor_si256(c2[7549],simde_mm256_xor_si256(c2[6586],simde_mm256_xor_si256(c2[7070],simde_mm256_xor_si256(c2[7578],simde_mm256_xor_si256(c2[15320],simde_mm256_xor_si256(c2[12413],simde_mm256_xor_si256(c2[12897],simde_mm256_xor_si256(c2[10979],simde_mm256_xor_si256(c2[9533],simde_mm256_xor_si256(c2[14853],simde_mm256_xor_si256(c2[13914],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[12459],simde_mm256_xor_si256(c2[12943],simde_mm256_xor_si256(c2[3282],simde_mm256_xor_si256(c2[2314],simde_mm256_xor_si256(c2[11512],simde_mm256_xor_si256(c2[11996],simde_mm256_xor_si256(c2[8633],simde_mm256_xor_si256(c2[2337],simde_mm256_xor_si256(c2[7660],simde_mm256_xor_si256(c2[8144],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[5258],simde_mm256_xor_si256(c2[9620],simde_mm256_xor_si256(c2[8185],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[12543],simde_mm256_xor_si256(c2[13027],simde_mm256_xor_si256(c2[14503],simde_mm256_xor_si256(c2[7731],simde_mm256_xor_si256(c2[12565],c2[13049]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[44]=_mm256_xor_si256(c2[4841],c2[30]); + d2[44]=simde_mm256_xor_si256(c2[4841],c2[30]); //row: 5 - d2[55]=_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[3872],_mm256_xor_si256(c2[14040],_mm256_xor_si256(c2[13552],_mm256_xor_si256(c2[13074],_mm256_xor_si256(c2[8251],_mm256_xor_si256(c2[14551],_mm256_xor_si256(c2[12122],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[1015],_mm256_xor_si256(c2[13600],_mm256_xor_si256(c2[7792],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[13134],_mm256_xor_si256(c2[5884],_mm256_xor_si256(c2[13141],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[4451],_mm256_xor_si256(c2[8806],_mm256_xor_si256(c2[4954],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[5479],_mm256_xor_si256(c2[13223],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[4053],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[6979],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[10389],_mm256_xor_si256(c2[12805],_mm256_xor_si256(c2[2641],_mm256_xor_si256(c2[13802],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[8475],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[9952],_mm256_xor_si256(c2[1242],_mm256_xor_si256(c2[2226],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[4672],_mm256_xor_si256(c2[12414],_mm256_xor_si256(c2[9991],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[11947],_mm256_xor_si256(c2[11008],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[10037],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[14895],_mm256_xor_si256(c2[9090],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[14918],_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[6714],_mm256_xor_si256(c2[5290],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[10121],_mm256_xor_si256(c2[11597],_mm256_xor_si256(c2[4825],_mm256_xor_si256(c2[10143],c2[1438])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[55]=simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[3872],simde_mm256_xor_si256(c2[14040],simde_mm256_xor_si256(c2[13552],simde_mm256_xor_si256(c2[13074],simde_mm256_xor_si256(c2[8251],simde_mm256_xor_si256(c2[14551],simde_mm256_xor_si256(c2[12122],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[1015],simde_mm256_xor_si256(c2[13600],simde_mm256_xor_si256(c2[7792],simde_mm256_xor_si256(c2[2494],simde_mm256_xor_si256(c2[13134],simde_mm256_xor_si256(c2[5884],simde_mm256_xor_si256(c2[13141],simde_mm256_xor_si256(c2[6388],simde_mm256_xor_si256(c2[4451],simde_mm256_xor_si256(c2[8806],simde_mm256_xor_si256(c2[4954],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[4951],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[2074],simde_mm256_xor_si256(c2[3038],simde_mm256_xor_si256(c2[5479],simde_mm256_xor_si256(c2[13223],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[4539],simde_mm256_xor_si256(c2[4053],simde_mm256_xor_si256(c2[10824],simde_mm256_xor_si256(c2[6979],simde_mm256_xor_si256(c2[6500],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[10389],simde_mm256_xor_si256(c2[12805],simde_mm256_xor_si256(c2[2641],simde_mm256_xor_si256(c2[13802],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[8475],simde_mm256_xor_si256(c2[7048],simde_mm256_xor_si256(c2[11885],simde_mm256_xor_si256(c2[9952],simde_mm256_xor_si256(c2[1242],simde_mm256_xor_si256(c2[2226],simde_mm256_xor_si256(c2[4643],simde_mm256_xor_si256(c2[4164],simde_mm256_xor_si256(c2[4672],simde_mm256_xor_si256(c2[12414],simde_mm256_xor_si256(c2[9991],simde_mm256_xor_si256(c2[8084],simde_mm256_xor_si256(c2[6627],simde_mm256_xor_si256(c2[11947],simde_mm256_xor_si256(c2[11008],simde_mm256_xor_si256(c2[13909],simde_mm256_xor_si256(c2[10037],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[14895],simde_mm256_xor_si256(c2[9090],simde_mm256_xor_si256(c2[5727],simde_mm256_xor_si256(c2[14918],simde_mm256_xor_si256(c2[5238],simde_mm256_xor_si256(c2[1389],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[6714],simde_mm256_xor_si256(c2[5290],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[10121],simde_mm256_xor_si256(c2[11597],simde_mm256_xor_si256(c2[4825],simde_mm256_xor_si256(c2[10143],c2[1438])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[66]=_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[4490],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[1697],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[11026],_mm256_xor_si256(c2[13956],c2[8677]))))))); + d2[66]=simde_mm256_xor_si256(c2[2913],simde_mm256_xor_si256(c2[4490],simde_mm256_xor_si256(c2[5070],simde_mm256_xor_si256(c2[1697],simde_mm256_xor_si256(c2[6099],simde_mm256_xor_si256(c2[11026],simde_mm256_xor_si256(c2[13956],c2[8677]))))))); //row: 7 - d2[77]=_mm256_xor_si256(c2[1452],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[11314],c2[3697]))))); + d2[77]=simde_mm256_xor_si256(c2[1452],simde_mm256_xor_si256(c2[3413],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[11314],c2[3697]))))); //row: 8 - d2[88]=_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[13073],_mm256_xor_si256(c2[3389],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[13557],_mm256_xor_si256(c2[10651],_mm256_xor_si256(c2[11135],_mm256_xor_si256(c2[13069],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[13562],_mm256_xor_si256(c2[7768],_mm256_xor_si256(c2[5346],_mm256_xor_si256(c2[14068],_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[11639],_mm256_xor_si256(c2[8744],_mm256_xor_si256(c2[9228],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[13597],_mm256_xor_si256(c2[13117],_mm256_xor_si256(c2[10695],_mm256_xor_si256(c2[7309],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[2011],_mm256_xor_si256(c2[15076],_mm256_xor_si256(c2[12651],_mm256_xor_si256(c2[10240],_mm256_xor_si256(c2[5390],_mm256_xor_si256(c2[2495],_mm256_xor_si256(c2[2979],_mm256_xor_si256(c2[10714],_mm256_xor_si256(c2[5905],_mm256_xor_si256(c2[3483],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[5417],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[4471],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[3021],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[1562],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[15139],_mm256_xor_si256(c2[12717],_mm256_xor_si256(c2[1591],_mm256_xor_si256(c2[14172],_mm256_xor_si256(c2[14656],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[15136],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[4996],_mm256_xor_si256(c2[2574],_mm256_xor_si256(c2[12740],_mm256_xor_si256(c2[9834],_mm256_xor_si256(c2[10318],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[12739],_mm256_xor_si256(c2[13223],_mm256_xor_si256(c2[4056],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[1148],_mm256_xor_si256(c2[10341],_mm256_xor_si256(c2[7446],_mm256_xor_si256(c2[7930],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[6006],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[12787],_mm256_xor_si256(c2[13271],_mm256_xor_si256(c2[9906],_mm256_xor_si256(c2[7484],_mm256_xor_si256(c2[12322],_mm256_xor_si256(c2[9416],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[2158],_mm256_xor_si256(c2[14750],_mm256_xor_si256(c2[15234],_mm256_xor_si256(c2[13319],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[730],_mm256_xor_si256(c2[13795],_mm256_xor_si256(c2[7992],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[6565],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[11402],_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[9469],_mm256_xor_si256(c2[6563],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[11889],_mm256_xor_si256(c2[1743],_mm256_xor_si256(c2[14808],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[1254],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[1259],_mm256_xor_si256(c2[4189],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[11931],_mm256_xor_si256(c2[9025],_mm256_xor_si256(c2[9509],_mm256_xor_si256(c2[9508],_mm256_xor_si256(c2[6602],_mm256_xor_si256(c2[7086],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[5179],_mm256_xor_si256(c2[6144],_mm256_xor_si256(c2[3722],_mm256_xor_si256(c2[11464],_mm256_xor_si256(c2[8558],_mm256_xor_si256(c2[9042],_mm256_xor_si256(c2[10525],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[13426],_mm256_xor_si256(c2[11004],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[6648],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[359],_mm256_xor_si256(c2[15380],_mm256_xor_si256(c2[12958],_mm256_xor_si256(c2[14412],_mm256_xor_si256(c2[11506],_mm256_xor_si256(c2[11990],_mm256_xor_si256(c2[8607],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[6185],_mm256_xor_si256(c2[5244],_mm256_xor_si256(c2[2822],_mm256_xor_si256(c2[14435],_mm256_xor_si256(c2[11529],_mm256_xor_si256(c2[12013],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[2333],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[13971],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[14945],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[3325],_mm256_xor_si256(c2[3809],_mm256_xor_si256(c2[8646],_mm256_xor_si256(c2[4796],_mm256_xor_si256(c2[2385],_mm256_xor_si256(c2[934],_mm256_xor_si256(c2[13515],_mm256_xor_si256(c2[13999],_mm256_xor_si256(c2[9638],_mm256_xor_si256(c2[6732],_mm256_xor_si256(c2[7216],_mm256_xor_si256(c2[11114],_mm256_xor_si256(c2[8692],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[9660],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7238],c2[13531])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[88]=simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[13073],simde_mm256_xor_si256(c2[3389],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[13557],simde_mm256_xor_si256(c2[10651],simde_mm256_xor_si256(c2[11135],simde_mm256_xor_si256(c2[13069],simde_mm256_xor_si256(c2[10174],simde_mm256_xor_si256(c2[10658],simde_mm256_xor_si256(c2[13562],simde_mm256_xor_si256(c2[7768],simde_mm256_xor_si256(c2[5346],simde_mm256_xor_si256(c2[14068],simde_mm256_xor_si256(c2[11162],simde_mm256_xor_si256(c2[11646],simde_mm256_xor_si256(c2[11639],simde_mm256_xor_si256(c2[8744],simde_mm256_xor_si256(c2[9228],simde_mm256_xor_si256(c2[5348],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[13597],simde_mm256_xor_si256(c2[13117],simde_mm256_xor_si256(c2[10695],simde_mm256_xor_si256(c2[7309],simde_mm256_xor_si256(c2[4403],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[2011],simde_mm256_xor_si256(c2[15076],simde_mm256_xor_si256(c2[12651],simde_mm256_xor_si256(c2[10240],simde_mm256_xor_si256(c2[5390],simde_mm256_xor_si256(c2[2495],simde_mm256_xor_si256(c2[2979],simde_mm256_xor_si256(c2[10714],simde_mm256_xor_si256(c2[5905],simde_mm256_xor_si256(c2[3483],simde_mm256_xor_si256(c2[3968],simde_mm256_xor_si256(c2[1062],simde_mm256_xor_si256(c2[1546],simde_mm256_xor_si256(c2[8323],simde_mm256_xor_si256(c2[5417],simde_mm256_xor_si256(c2[5901],simde_mm256_xor_si256(c2[4471],simde_mm256_xor_si256(c2[2049],simde_mm256_xor_si256(c2[3021],simde_mm256_xor_si256(c2[599],simde_mm256_xor_si256(c2[4468],simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[2046],simde_mm256_xor_si256(c2[15139],simde_mm256_xor_si256(c2[12717],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[14172],simde_mm256_xor_si256(c2[14656],simde_mm256_xor_si256(c2[2555],simde_mm256_xor_si256(c2[15136],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[4996],simde_mm256_xor_si256(c2[2574],simde_mm256_xor_si256(c2[12740],simde_mm256_xor_si256(c2[9834],simde_mm256_xor_si256(c2[10318],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[12739],simde_mm256_xor_si256(c2[13223],simde_mm256_xor_si256(c2[4056],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[3570],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[1148],simde_mm256_xor_si256(c2[10341],simde_mm256_xor_si256(c2[7446],simde_mm256_xor_si256(c2[7930],simde_mm256_xor_si256(c2[6496],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[6006],simde_mm256_xor_si256(c2[3595],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[12787],simde_mm256_xor_si256(c2[13271],simde_mm256_xor_si256(c2[9906],simde_mm256_xor_si256(c2[7484],simde_mm256_xor_si256(c2[12322],simde_mm256_xor_si256(c2[9416],simde_mm256_xor_si256(c2[9900],simde_mm256_xor_si256(c2[2158],simde_mm256_xor_si256(c2[14750],simde_mm256_xor_si256(c2[15234],simde_mm256_xor_si256(c2[13319],simde_mm256_xor_si256(c2[10897],simde_mm256_xor_si256(c2[730],simde_mm256_xor_si256(c2[13795],simde_mm256_xor_si256(c2[7992],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[6565],simde_mm256_xor_si256(c2[4143],simde_mm256_xor_si256(c2[11402],simde_mm256_xor_si256(c2[8980],simde_mm256_xor_si256(c2[9469],simde_mm256_xor_si256(c2[6563],simde_mm256_xor_si256(c2[7047],simde_mm256_xor_si256(c2[11889],simde_mm256_xor_si256(c2[1743],simde_mm256_xor_si256(c2[14808],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[1254],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[3681],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[1259],simde_mm256_xor_si256(c2[4189],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[11931],simde_mm256_xor_si256(c2[9025],simde_mm256_xor_si256(c2[9509],simde_mm256_xor_si256(c2[9508],simde_mm256_xor_si256(c2[6602],simde_mm256_xor_si256(c2[7086],simde_mm256_xor_si256(c2[7590],simde_mm256_xor_si256(c2[5179],simde_mm256_xor_si256(c2[6144],simde_mm256_xor_si256(c2[3722],simde_mm256_xor_si256(c2[11464],simde_mm256_xor_si256(c2[8558],simde_mm256_xor_si256(c2[9042],simde_mm256_xor_si256(c2[10525],simde_mm256_xor_si256(c2[8103],simde_mm256_xor_si256(c2[13426],simde_mm256_xor_si256(c2[11004],simde_mm256_xor_si256(c2[9554],simde_mm256_xor_si256(c2[6648],simde_mm256_xor_si256(c2[7132],simde_mm256_xor_si256(c2[359],simde_mm256_xor_si256(c2[15380],simde_mm256_xor_si256(c2[12958],simde_mm256_xor_si256(c2[14412],simde_mm256_xor_si256(c2[11506],simde_mm256_xor_si256(c2[11990],simde_mm256_xor_si256(c2[8607],simde_mm256_xor_si256(c2[5701],simde_mm256_xor_si256(c2[6185],simde_mm256_xor_si256(c2[5244],simde_mm256_xor_si256(c2[2822],simde_mm256_xor_si256(c2[14435],simde_mm256_xor_si256(c2[11529],simde_mm256_xor_si256(c2[12013],simde_mm256_xor_si256(c2[4755],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[2333],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[13971],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[14945],simde_mm256_xor_si256(c2[6231],simde_mm256_xor_si256(c2[3325],simde_mm256_xor_si256(c2[3809],simde_mm256_xor_si256(c2[8646],simde_mm256_xor_si256(c2[4796],simde_mm256_xor_si256(c2[2385],simde_mm256_xor_si256(c2[934],simde_mm256_xor_si256(c2[13515],simde_mm256_xor_si256(c2[13999],simde_mm256_xor_si256(c2[9638],simde_mm256_xor_si256(c2[6732],simde_mm256_xor_si256(c2[7216],simde_mm256_xor_si256(c2[11114],simde_mm256_xor_si256(c2[8692],simde_mm256_xor_si256(c2[4342],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[9660],simde_mm256_xor_si256(c2[6754],simde_mm256_xor_si256(c2[7238],c2[13531])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[99]=_mm256_xor_si256(c2[13556],_mm256_xor_si256(c2[11640],_mm256_xor_si256(c2[2649],_mm256_xor_si256(c2[7505],_mm256_xor_si256(c2[13840],_mm256_xor_si256(c2[11994],_mm256_xor_si256(c2[11528],c2[8678]))))))); + d2[99]=simde_mm256_xor_si256(c2[13556],simde_mm256_xor_si256(c2[11640],simde_mm256_xor_si256(c2[2649],simde_mm256_xor_si256(c2[7505],simde_mm256_xor_si256(c2[13840],simde_mm256_xor_si256(c2[11994],simde_mm256_xor_si256(c2[11528],c2[8678]))))))); //row: 10 - d2[110]=_mm256_xor_si256(c2[7287],_mm256_xor_si256(c2[14087],_mm256_xor_si256(c2[13156],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[8405],c2[5640]))))); + d2[110]=simde_mm256_xor_si256(c2[7287],simde_mm256_xor_si256(c2[14087],simde_mm256_xor_si256(c2[13156],simde_mm256_xor_si256(c2[3549],simde_mm256_xor_si256(c2[8405],c2[5640]))))); //row: 11 - d2[121]=_mm256_xor_si256(c2[11624],_mm256_xor_si256(c2[2908],_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[15005],_mm256_xor_si256(c2[6784],_mm256_xor_si256(c2[9686],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[9198],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[3897],_mm256_xor_si256(c2[10679],_mm256_xor_si256(c2[11163],_mm256_xor_si256(c2[10186],_mm256_xor_si256(c2[1965],_mm256_xor_si256(c2[7768],_mm256_xor_si256(c2[15034],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[12148],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[3916],_mm256_xor_si256(c2[9246],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[3438],_mm256_xor_si256(c2[10693],_mm256_xor_si256(c2[13627],_mm256_xor_si256(c2[4911],_mm256_xor_si256(c2[5395],_mm256_xor_si256(c2[8780],_mm256_xor_si256(c2[559],_mm256_xor_si256(c2[1519],_mm256_xor_si256(c2[8785],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[9289],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[7352],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[11707],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[7371],_mm256_xor_si256(c2[7855],_mm256_xor_si256(c2[14637],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[7863],_mm256_xor_si256(c2[11268],_mm256_xor_si256(c2[2552],_mm256_xor_si256(c2[3036],_mm256_xor_si256(c2[13207],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[14171],_mm256_xor_si256(c2[5950],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[8391],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[11774],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[7440],_mm256_xor_si256(c2[15186],_mm256_xor_si256(c2[6954],_mm256_xor_si256(c2[6470],_mm256_xor_si256(c2[13736],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[9396],_mm256_xor_si256(c2[9880],_mm256_xor_si256(c2[2135],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[11822],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[12806],_mm256_xor_si256(c2[13290],_mm256_xor_si256(c2[8451],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[13774],_mm256_xor_si256(c2[5553],_mm256_xor_si256(c2[9448],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[12346],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[4121],_mm256_xor_si256(c2[11376],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[9949],_mm256_xor_si256(c2[7531],_mm256_xor_si256(c2[14786],_mm256_xor_si256(c2[5598],_mm256_xor_si256(c2[12853],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[13359],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[5127],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[7555],_mm256_xor_si256(c2[15297],_mm256_xor_si256(c2[7065],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[7573],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[15315],_mm256_xor_si256(c2[5637],_mm256_xor_si256(c2[12892],_mm256_xor_si256(c2[3719],_mm256_xor_si256(c2[10501],_mm256_xor_si256(c2[10985],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[9528],_mm256_xor_si256(c2[7593],_mm256_xor_si256(c2[14859],_mm256_xor_si256(c2[6654],_mm256_xor_si256(c2[13425],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[9555],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[5683],_mm256_xor_si256(c2[12938],_mm256_xor_si256(c2[15366],_mm256_xor_si256(c2[11509],_mm256_xor_si256(c2[3288],_mm256_xor_si256(c2[10541],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[4736],_mm256_xor_si256(c2[11991],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[8628],_mm256_xor_si256(c2[10564],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[884],_mm256_xor_si256(c2[8150],_mm256_xor_si256(c2[12522],_mm256_xor_si256(c2[3806],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[13496],_mm256_xor_si256(c2[5264],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[9615],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[7707],_mm256_xor_si256(c2[8191],_mm256_xor_si256(c2[12550],_mm256_xor_si256(c2[4318],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[13033],_mm256_xor_si256(c2[7243],_mm256_xor_si256(c2[14014],_mm256_xor_si256(c2[14498],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[7726],_mm256_xor_si256(c2[5789],_mm256_xor_si256(c2[13055],c2[3371]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[121]=simde_mm256_xor_si256(c2[11624],simde_mm256_xor_si256(c2[2908],simde_mm256_xor_si256(c2[3392],simde_mm256_xor_si256(c2[15005],simde_mm256_xor_si256(c2[6784],simde_mm256_xor_si256(c2[9686],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[9198],simde_mm256_xor_si256(c2[977],simde_mm256_xor_si256(c2[12100],simde_mm256_xor_si256(c2[3897],simde_mm256_xor_si256(c2[10679],simde_mm256_xor_si256(c2[11163],simde_mm256_xor_si256(c2[10186],simde_mm256_xor_si256(c2[1965],simde_mm256_xor_si256(c2[7768],simde_mm256_xor_si256(c2[15034],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12148],simde_mm256_xor_si256(c2[3432],simde_mm256_xor_si256(c2[3916],simde_mm256_xor_si256(c2[9246],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[3438],simde_mm256_xor_si256(c2[10693],simde_mm256_xor_si256(c2[13627],simde_mm256_xor_si256(c2[4911],simde_mm256_xor_si256(c2[5395],simde_mm256_xor_si256(c2[8780],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1519],simde_mm256_xor_si256(c2[8785],simde_mm256_xor_si256(c2[2034],simde_mm256_xor_si256(c2[9289],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[7352],simde_mm256_xor_si256(c2[4452],simde_mm256_xor_si256(c2[11707],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[7371],simde_mm256_xor_si256(c2[7855],simde_mm256_xor_si256(c2[14637],simde_mm256_xor_si256(c2[6405],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[7863],simde_mm256_xor_si256(c2[11268],simde_mm256_xor_si256(c2[2552],simde_mm256_xor_si256(c2[3036],simde_mm256_xor_si256(c2[13207],simde_mm256_xor_si256(c2[4975],simde_mm256_xor_si256(c2[14171],simde_mm256_xor_si256(c2[5950],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[8391],simde_mm256_xor_si256(c2[8869],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[11774],simde_mm256_xor_si256(c2[3542],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[7440],simde_mm256_xor_si256(c2[15186],simde_mm256_xor_si256(c2[6954],simde_mm256_xor_si256(c2[6470],simde_mm256_xor_si256(c2[13736],simde_mm256_xor_si256(c2[2625],simde_mm256_xor_si256(c2[9396],simde_mm256_xor_si256(c2[9880],simde_mm256_xor_si256(c2[2135],simde_mm256_xor_si256(c2[9401],simde_mm256_xor_si256(c2[11822],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[6035],simde_mm256_xor_si256(c2[12806],simde_mm256_xor_si256(c2[13290],simde_mm256_xor_si256(c2[8451],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[13774],simde_mm256_xor_si256(c2[5553],simde_mm256_xor_si256(c2[9448],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[1216],simde_mm256_xor_si256(c2[12346],simde_mm256_xor_si256(c2[4114],simde_mm256_xor_si256(c2[4121],simde_mm256_xor_si256(c2[11376],simde_mm256_xor_si256(c2[2694],simde_mm256_xor_si256(c2[9465],simde_mm256_xor_si256(c2[9949],simde_mm256_xor_si256(c2[7531],simde_mm256_xor_si256(c2[14786],simde_mm256_xor_si256(c2[5598],simde_mm256_xor_si256(c2[12853],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[13359],simde_mm256_xor_si256(c2[4643],simde_mm256_xor_si256(c2[5127],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[7555],simde_mm256_xor_si256(c2[15297],simde_mm256_xor_si256(c2[7065],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[7573],simde_mm256_xor_si256(c2[8060],simde_mm256_xor_si256(c2[15315],simde_mm256_xor_si256(c2[5637],simde_mm256_xor_si256(c2[12892],simde_mm256_xor_si256(c2[3719],simde_mm256_xor_si256(c2[10501],simde_mm256_xor_si256(c2[10985],simde_mm256_xor_si256(c2[2273],simde_mm256_xor_si256(c2[9528],simde_mm256_xor_si256(c2[7593],simde_mm256_xor_si256(c2[14859],simde_mm256_xor_si256(c2[6654],simde_mm256_xor_si256(c2[13425],simde_mm256_xor_si256(c2[13909],simde_mm256_xor_si256(c2[9555],simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[5683],simde_mm256_xor_si256(c2[12938],simde_mm256_xor_si256(c2[15366],simde_mm256_xor_si256(c2[11509],simde_mm256_xor_si256(c2[3288],simde_mm256_xor_si256(c2[10541],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[4736],simde_mm256_xor_si256(c2[11991],simde_mm256_xor_si256(c2[1373],simde_mm256_xor_si256(c2[8144],simde_mm256_xor_si256(c2[8628],simde_mm256_xor_si256(c2[10564],simde_mm256_xor_si256(c2[2332],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[8150],simde_mm256_xor_si256(c2[12522],simde_mm256_xor_si256(c2[3806],simde_mm256_xor_si256(c2[4290],simde_mm256_xor_si256(c2[13496],simde_mm256_xor_si256(c2[5264],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[9615],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[7707],simde_mm256_xor_si256(c2[8191],simde_mm256_xor_si256(c2[12550],simde_mm256_xor_si256(c2[4318],simde_mm256_xor_si256(c2[5767],simde_mm256_xor_si256(c2[13033],simde_mm256_xor_si256(c2[7243],simde_mm256_xor_si256(c2[14014],simde_mm256_xor_si256(c2[14498],simde_mm256_xor_si256(c2[471],simde_mm256_xor_si256(c2[7726],simde_mm256_xor_si256(c2[5789],simde_mm256_xor_si256(c2[13055],c2[3371]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[132]=_mm256_xor_si256(c2[13071],_mm256_xor_si256(c2[12128],_mm256_xor_si256(c2[7000],_mm256_xor_si256(c2[7021],_mm256_xor_si256(c2[8035],c2[6206]))))); + d2[132]=simde_mm256_xor_si256(c2[13071],simde_mm256_xor_si256(c2[12128],simde_mm256_xor_si256(c2[7000],simde_mm256_xor_si256(c2[7021],simde_mm256_xor_si256(c2[8035],c2[6206]))))); //row: 13 - d2[143]=_mm256_xor_si256(c2[11132],_mm256_xor_si256(c2[11616],_mm256_xor_si256(c2[15008],_mm256_xor_si256(c2[9689],_mm256_xor_si256(c2[9201],_mm256_xor_si256(c2[11141],_mm256_xor_si256(c2[3416],_mm256_xor_si256(c2[3900],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[7771],_mm256_xor_si256(c2[11667],_mm256_xor_si256(c2[12151],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[3441],_mm256_xor_si256(c2[13135],_mm256_xor_si256(c2[13619],_mm256_xor_si256(c2[8783],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[13141],_mm256_xor_si256(c2[2026],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[119],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[14640],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[10787],_mm256_xor_si256(c2[11271],_mm256_xor_si256(c2[13210],_mm256_xor_si256(c2[14174],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[8872],_mm256_xor_si256(c2[11777],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[15189],_mm256_xor_si256(c2[6473],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[2628],_mm256_xor_si256(c2[2138],_mm256_xor_si256(c2[11814],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[13777],_mm256_xor_si256(c2[8956],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[12349],_mm256_xor_si256(c2[4124],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[2686],_mm256_xor_si256(c2[7534],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[12878],_mm256_xor_si256(c2[13362],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[15300],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[8052],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[3722],_mm256_xor_si256(c2[2276],_mm256_xor_si256(c2[7596],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[6646],_mm256_xor_si256(c2[9558],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[1365],_mm256_xor_si256(c2[10567],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[12041],_mm256_xor_si256(c2[12525],_mm256_xor_si256(c2[13488],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[12542],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[14962],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7246],_mm256_xor_si256(c2[463],c2[5792]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[143]=simde_mm256_xor_si256(c2[11132],simde_mm256_xor_si256(c2[11616],simde_mm256_xor_si256(c2[15008],simde_mm256_xor_si256(c2[9689],simde_mm256_xor_si256(c2[9201],simde_mm256_xor_si256(c2[11141],simde_mm256_xor_si256(c2[3416],simde_mm256_xor_si256(c2[3900],simde_mm256_xor_si256(c2[10189],simde_mm256_xor_si256(c2[7771],simde_mm256_xor_si256(c2[11667],simde_mm256_xor_si256(c2[12151],simde_mm256_xor_si256(c2[9249],simde_mm256_xor_si256(c2[3441],simde_mm256_xor_si256(c2[13135],simde_mm256_xor_si256(c2[13619],simde_mm256_xor_si256(c2[8783],simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[13141],simde_mm256_xor_si256(c2[2026],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[4444],simde_mm256_xor_si256(c2[119],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[14640],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[10787],simde_mm256_xor_si256(c2[11271],simde_mm256_xor_si256(c2[13210],simde_mm256_xor_si256(c2[14174],simde_mm256_xor_si256(c2[1128],simde_mm256_xor_si256(c2[8872],simde_mm256_xor_si256(c2[11777],simde_mm256_xor_si256(c2[4518],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[15189],simde_mm256_xor_si256(c2[6473],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[2628],simde_mm256_xor_si256(c2[2138],simde_mm256_xor_si256(c2[11814],simde_mm256_xor_si256(c2[5554],simde_mm256_xor_si256(c2[6038],simde_mm256_xor_si256(c2[8454],simde_mm256_xor_si256(c2[13777],simde_mm256_xor_si256(c2[8956],simde_mm256_xor_si256(c2[9440],simde_mm256_xor_si256(c2[12349],simde_mm256_xor_si256(c2[4124],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[2686],simde_mm256_xor_si256(c2[7534],simde_mm256_xor_si256(c2[5590],simde_mm256_xor_si256(c2[12878],simde_mm256_xor_si256(c2[13362],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[15300],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[8052],simde_mm256_xor_si256(c2[5640],simde_mm256_xor_si256(c2[3238],simde_mm256_xor_si256(c2[3722],simde_mm256_xor_si256(c2[2276],simde_mm256_xor_si256(c2[7596],simde_mm256_xor_si256(c2[6162],simde_mm256_xor_si256(c2[6646],simde_mm256_xor_si256(c2[9558],simde_mm256_xor_si256(c2[5686],simde_mm256_xor_si256(c2[11512],simde_mm256_xor_si256(c2[10544],simde_mm256_xor_si256(c2[4739],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[1365],simde_mm256_xor_si256(c2[10567],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[12041],simde_mm256_xor_si256(c2[12525],simde_mm256_xor_si256(c2[13488],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[12542],simde_mm256_xor_si256(c2[5770],simde_mm256_xor_si256(c2[14962],simde_mm256_xor_si256(c2[6762],simde_mm256_xor_si256(c2[7246],simde_mm256_xor_si256(c2[463],c2[5792]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[154]=_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[1242],_mm256_xor_si256(c2[10502],_mm256_xor_si256(c2[13908],_mm256_xor_si256(c2[1344],c2[7240]))))); + d2[154]=simde_mm256_xor_si256(c2[10648],simde_mm256_xor_si256(c2[1242],simde_mm256_xor_si256(c2[10502],simde_mm256_xor_si256(c2[13908],simde_mm256_xor_si256(c2[1344],c2[7240]))))); //row: 15 - d2[165]=_mm256_xor_si256(c2[11617],_mm256_xor_si256(c2[15009],_mm256_xor_si256(c2[9690],_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[3901],_mm256_xor_si256(c2[10190],_mm256_xor_si256(c2[7288],_mm256_xor_si256(c2[7772],_mm256_xor_si256(c2[13584],_mm256_xor_si256(c2[12152],_mm256_xor_si256(c2[9250],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[13620],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[1039],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[2027],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[3961],_mm256_xor_si256(c2[4445],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[14630],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[11272],_mm256_xor_si256(c2[13200],_mm256_xor_si256(c2[13691],_mm256_xor_si256(c2[14175],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[8873],_mm256_xor_si256(c2[11294],_mm256_xor_si256(c2[11778],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[15190],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[6474],_mm256_xor_si256(c2[2618],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[11815],_mm256_xor_si256(c2[6028],_mm256_xor_si256(c2[8455],_mm256_xor_si256(c2[13294],_mm256_xor_si256(c2[13778],_mm256_xor_si256(c2[7480],_mm256_xor_si256(c2[9441],_mm256_xor_si256(c2[12350],_mm256_xor_si256(c2[3630],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[7524],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[5591],_mm256_xor_si256(c2[13363],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[14806],_mm256_xor_si256(c2[15290],_mm256_xor_si256(c2[8516],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[8053],_mm256_xor_si256(c2[5157],_mm256_xor_si256(c2[5641],_mm256_xor_si256(c2[3723],_mm256_xor_si256(c2[2266],_mm256_xor_si256(c2[7597],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[9548],_mm256_xor_si256(c2[5192],_mm256_xor_si256(c2[5676],_mm256_xor_si256(c2[11513],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[4256],_mm256_xor_si256(c2[4740],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[404],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[8145],_mm256_xor_si256(c2[12526],_mm256_xor_si256(c2[13489],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[5287],_mm256_xor_si256(c2[5771],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[5309],c2[5793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[165]=simde_mm256_xor_si256(c2[11617],simde_mm256_xor_si256(c2[15009],simde_mm256_xor_si256(c2[9690],simde_mm256_xor_si256(c2[8718],simde_mm256_xor_si256(c2[9202],simde_mm256_xor_si256(c2[7749],simde_mm256_xor_si256(c2[3901],simde_mm256_xor_si256(c2[10190],simde_mm256_xor_si256(c2[7288],simde_mm256_xor_si256(c2[7772],simde_mm256_xor_si256(c2[13584],simde_mm256_xor_si256(c2[12152],simde_mm256_xor_si256(c2[9250],simde_mm256_xor_si256(c2[3442],simde_mm256_xor_si256(c2[13620],simde_mm256_xor_si256(c2[8784],simde_mm256_xor_si256(c2[1039],simde_mm256_xor_si256(c2[1523],simde_mm256_xor_si256(c2[2027],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[3961],simde_mm256_xor_si256(c2[4445],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[14630],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[11272],simde_mm256_xor_si256(c2[13200],simde_mm256_xor_si256(c2[13691],simde_mm256_xor_si256(c2[14175],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[8873],simde_mm256_xor_si256(c2[11294],simde_mm256_xor_si256(c2[11778],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[15190],simde_mm256_xor_si256(c2[5990],simde_mm256_xor_si256(c2[6474],simde_mm256_xor_si256(c2[2618],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[11815],simde_mm256_xor_si256(c2[6028],simde_mm256_xor_si256(c2[8455],simde_mm256_xor_si256(c2[13294],simde_mm256_xor_si256(c2[13778],simde_mm256_xor_si256(c2[7480],simde_mm256_xor_si256(c2[9441],simde_mm256_xor_si256(c2[12350],simde_mm256_xor_si256(c2[3630],simde_mm256_xor_si256(c2[4114],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[7524],simde_mm256_xor_si256(c2[5107],simde_mm256_xor_si256(c2[5591],simde_mm256_xor_si256(c2[13363],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[14806],simde_mm256_xor_si256(c2[15290],simde_mm256_xor_si256(c2[8516],simde_mm256_xor_si256(c2[311],simde_mm256_xor_si256(c2[8053],simde_mm256_xor_si256(c2[5157],simde_mm256_xor_si256(c2[5641],simde_mm256_xor_si256(c2[3723],simde_mm256_xor_si256(c2[2266],simde_mm256_xor_si256(c2[7597],simde_mm256_xor_si256(c2[6647],simde_mm256_xor_si256(c2[9548],simde_mm256_xor_si256(c2[5192],simde_mm256_xor_si256(c2[5676],simde_mm256_xor_si256(c2[11513],simde_mm256_xor_si256(c2[10545],simde_mm256_xor_si256(c2[4256],simde_mm256_xor_si256(c2[4740],simde_mm256_xor_si256(c2[1366],simde_mm256_xor_si256(c2[10568],simde_mm256_xor_si256(c2[404],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[8145],simde_mm256_xor_si256(c2[12526],simde_mm256_xor_si256(c2[13489],simde_mm256_xor_si256(c2[2364],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[12543],simde_mm256_xor_si256(c2[5287],simde_mm256_xor_si256(c2[5771],simde_mm256_xor_si256(c2[7247],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[5309],c2[5793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[176]=_mm256_xor_si256(c2[11617],_mm256_xor_si256(c2[15009],_mm256_xor_si256(c2[9690],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[3901],_mm256_xor_si256(c2[10190],_mm256_xor_si256(c2[7772],_mm256_xor_si256(c2[14547],_mm256_xor_si256(c2[12152],_mm256_xor_si256(c2[9250],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[13620],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[2495],_mm256_xor_si256(c2[2027],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[4445],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[14630],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[11272],_mm256_xor_si256(c2[13200],_mm256_xor_si256(c2[14175],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[8873],_mm256_xor_si256(c2[11778],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[15190],_mm256_xor_si256(c2[6474],_mm256_xor_si256(c2[2618],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[11815],_mm256_xor_si256(c2[6028],_mm256_xor_si256(c2[8455],_mm256_xor_si256(c2[13778],_mm256_xor_si256(c2[9441],_mm256_xor_si256(c2[12350],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[6060],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[7524],_mm256_xor_si256(c2[5591],_mm256_xor_si256(c2[13363],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[15290],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[8053],_mm256_xor_si256(c2[5641],_mm256_xor_si256(c2[3723],_mm256_xor_si256(c2[2266],_mm256_xor_si256(c2[7597],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[9548],_mm256_xor_si256(c2[5676],_mm256_xor_si256(c2[11513],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[4740],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[12526],_mm256_xor_si256(c2[13489],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[5771],_mm256_xor_si256(c2[5774],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[464],c2[5793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[176]=simde_mm256_xor_si256(c2[11617],simde_mm256_xor_si256(c2[15009],simde_mm256_xor_si256(c2[9690],simde_mm256_xor_si256(c2[9202],simde_mm256_xor_si256(c2[3901],simde_mm256_xor_si256(c2[10190],simde_mm256_xor_si256(c2[7772],simde_mm256_xor_si256(c2[14547],simde_mm256_xor_si256(c2[12152],simde_mm256_xor_si256(c2[9250],simde_mm256_xor_si256(c2[3442],simde_mm256_xor_si256(c2[13620],simde_mm256_xor_si256(c2[8784],simde_mm256_xor_si256(c2[1523],simde_mm256_xor_si256(c2[2495],simde_mm256_xor_si256(c2[2027],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[4445],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[14630],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[11272],simde_mm256_xor_si256(c2[13200],simde_mm256_xor_si256(c2[14175],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[8873],simde_mm256_xor_si256(c2[11778],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[15190],simde_mm256_xor_si256(c2[6474],simde_mm256_xor_si256(c2[2618],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[11815],simde_mm256_xor_si256(c2[6028],simde_mm256_xor_si256(c2[8455],simde_mm256_xor_si256(c2[13778],simde_mm256_xor_si256(c2[9441],simde_mm256_xor_si256(c2[12350],simde_mm256_xor_si256(c2[4114],simde_mm256_xor_si256(c2[6060],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[7524],simde_mm256_xor_si256(c2[5591],simde_mm256_xor_si256(c2[13363],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[15290],simde_mm256_xor_si256(c2[311],simde_mm256_xor_si256(c2[8053],simde_mm256_xor_si256(c2[5641],simde_mm256_xor_si256(c2[3723],simde_mm256_xor_si256(c2[2266],simde_mm256_xor_si256(c2[7597],simde_mm256_xor_si256(c2[6647],simde_mm256_xor_si256(c2[9548],simde_mm256_xor_si256(c2[5676],simde_mm256_xor_si256(c2[11513],simde_mm256_xor_si256(c2[10545],simde_mm256_xor_si256(c2[4740],simde_mm256_xor_si256(c2[1366],simde_mm256_xor_si256(c2[10568],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[12526],simde_mm256_xor_si256(c2[13489],simde_mm256_xor_si256(c2[2364],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[12543],simde_mm256_xor_si256(c2[5771],simde_mm256_xor_si256(c2[5774],simde_mm256_xor_si256(c2[7247],simde_mm256_xor_si256(c2[464],c2[5793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[187]=_mm256_xor_si256(c2[6779],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[11491],_mm256_xor_si256(c2[10057],c2[14987])))); + d2[187]=simde_mm256_xor_si256(c2[6779],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[11491],simde_mm256_xor_si256(c2[10057],c2[14987])))); //row: 18 - d2[198]=_mm256_xor_si256(c2[7283],_mm256_xor_si256(c2[14792],_mm256_xor_si256(c2[10941],_mm256_xor_si256(c2[10565],c2[4776])))); + d2[198]=simde_mm256_xor_si256(c2[7283],simde_mm256_xor_si256(c2[14792],simde_mm256_xor_si256(c2[10941],simde_mm256_xor_si256(c2[10565],c2[4776])))); //row: 19 - d2[209]=_mm256_xor_si256(c2[11134],_mm256_xor_si256(c2[6801],_mm256_xor_si256(c2[9354],_mm256_xor_si256(c2[1152],c2[6034])))); + d2[209]=simde_mm256_xor_si256(c2[11134],simde_mm256_xor_si256(c2[6801],simde_mm256_xor_si256(c2[9354],simde_mm256_xor_si256(c2[1152],c2[6034])))); //row: 20 - d2[220]=_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[5327],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[15007],_mm256_xor_si256(c2[12102],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[13577],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[15055],_mm256_xor_si256(c2[9247],_mm256_xor_si256(c2[3938],_mm256_xor_si256(c2[14589],_mm256_xor_si256(c2[7328],_mm256_xor_si256(c2[552],_mm256_xor_si256(c2[7832],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[10261],_mm256_xor_si256(c2[6409],_mm256_xor_si256(c2[4959],_mm256_xor_si256(c2[6406],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[3529],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[6934],_mm256_xor_si256(c2[14678],_mm256_xor_si256(c2[2096],_mm256_xor_si256(c2[5994],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[12279],_mm256_xor_si256(c2[8434],_mm256_xor_si256(c2[7944],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[13270],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[14260],_mm256_xor_si256(c2[4096],_mm256_xor_si256(c2[15246],_mm256_xor_si256(c2[2668],_mm256_xor_si256(c2[9930],_mm256_xor_si256(c2[9929],_mm256_xor_si256(c2[8492],_mm256_xor_si256(c2[13340],_mm256_xor_si256(c2[11396],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[5619],_mm256_xor_si256(c2[6116],_mm256_xor_si256(c2[13869],_mm256_xor_si256(c2[11446],_mm256_xor_si256(c2[9528],_mm256_xor_si256(c2[8082],_mm256_xor_si256(c2[13402],_mm256_xor_si256(c2[12452],_mm256_xor_si256(c2[15364],_mm256_xor_si256(c2[11492],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[863],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[7182],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[6693],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[3807],_mm256_xor_si256(c2[8169],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[11576],_mm256_xor_si256(c2[13052],_mm256_xor_si256(c2[6280],c2[11598])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[220]=simde_mm256_xor_si256(c2[1946],simde_mm256_xor_si256(c2[5327],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[15007],simde_mm256_xor_si256(c2[12102],simde_mm256_xor_si256(c2[9706],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[13577],simde_mm256_xor_si256(c2[2470],simde_mm256_xor_si256(c2[15055],simde_mm256_xor_si256(c2[9247],simde_mm256_xor_si256(c2[3938],simde_mm256_xor_si256(c2[14589],simde_mm256_xor_si256(c2[7328],simde_mm256_xor_si256(c2[552],simde_mm256_xor_si256(c2[7832],simde_mm256_xor_si256(c2[5906],simde_mm256_xor_si256(c2[10261],simde_mm256_xor_si256(c2[6409],simde_mm256_xor_si256(c2[4959],simde_mm256_xor_si256(c2[6406],simde_mm256_xor_si256(c2[1590],simde_mm256_xor_si256(c2[3529],simde_mm256_xor_si256(c2[4493],simde_mm256_xor_si256(c2[6934],simde_mm256_xor_si256(c2[14678],simde_mm256_xor_si256(c2[2096],simde_mm256_xor_si256(c2[5994],simde_mm256_xor_si256(c2[5508],simde_mm256_xor_si256(c2[12279],simde_mm256_xor_si256(c2[8434],simde_mm256_xor_si256(c2[7944],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[13270],simde_mm256_xor_si256(c2[11844],simde_mm256_xor_si256(c2[14260],simde_mm256_xor_si256(c2[4096],simde_mm256_xor_si256(c2[15246],simde_mm256_xor_si256(c2[2668],simde_mm256_xor_si256(c2[9930],simde_mm256_xor_si256(c2[9929],simde_mm256_xor_si256(c2[8492],simde_mm256_xor_si256(c2[13340],simde_mm256_xor_si256(c2[11396],simde_mm256_xor_si256(c2[3681],simde_mm256_xor_si256(c2[6098],simde_mm256_xor_si256(c2[5619],simde_mm256_xor_si256(c2[6116],simde_mm256_xor_si256(c2[13869],simde_mm256_xor_si256(c2[11446],simde_mm256_xor_si256(c2[9528],simde_mm256_xor_si256(c2[8082],simde_mm256_xor_si256(c2[13402],simde_mm256_xor_si256(c2[12452],simde_mm256_xor_si256(c2[15364],simde_mm256_xor_si256(c2[11492],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[863],simde_mm256_xor_si256(c2[10545],simde_mm256_xor_si256(c2[7182],simde_mm256_xor_si256(c2[886],simde_mm256_xor_si256(c2[6693],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[3807],simde_mm256_xor_si256(c2[8169],simde_mm256_xor_si256(c2[6734],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[11576],simde_mm256_xor_si256(c2[13052],simde_mm256_xor_si256(c2[6280],c2[11598])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[231]=_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[3990],_mm256_xor_si256(c2[12946],_mm256_xor_si256(c2[7704],c2[6757])))); + d2[231]=simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[3990],simde_mm256_xor_si256(c2[12946],simde_mm256_xor_si256(c2[7704],c2[6757])))); //row: 22 - d2[242]=_mm256_xor_si256(c2[11624],_mm256_xor_si256(c2[14304],_mm256_xor_si256(c2[6101],c2[8605]))); + d2[242]=simde_mm256_xor_si256(c2[11624],simde_mm256_xor_si256(c2[14304],simde_mm256_xor_si256(c2[6101],c2[8605]))); //row: 23 - d2[253]=_mm256_xor_si256(c2[8734],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[10389],c2[8149]))); + d2[253]=simde_mm256_xor_si256(c2[8734],simde_mm256_xor_si256(c2[2948],simde_mm256_xor_si256(c2[10389],c2[8149]))); //row: 24 - d2[264]=_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[7268],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[11647],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[31],_mm256_xor_si256(c2[4400],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[11177],_mm256_xor_si256(c2[5879],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[9269],_mm256_xor_si256(c2[4911],_mm256_xor_si256(c2[9773],_mm256_xor_si256(c2[7836],_mm256_xor_si256(c2[12191],_mm256_xor_si256(c2[12195],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[6889],_mm256_xor_si256(c2[8347],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[6434],_mm256_xor_si256(c2[8875],_mm256_xor_si256(c2[1132],_mm256_xor_si256(c2[4026],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[14220],_mm256_xor_si256(c2[10364],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[13774],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[4598],_mm256_xor_si256(c2[11860],_mm256_xor_si256(c2[251],_mm256_xor_si256(c2[10433],_mm256_xor_si256(c2[15270],_mm256_xor_si256(c2[13337],_mm256_xor_si256(c2[5611],_mm256_xor_si256(c2[8039],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[8057],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[13376],_mm256_xor_si256(c2[11469],_mm256_xor_si256(c2[10012],_mm256_xor_si256(c2[15343],_mm256_xor_si256(c2[14393],_mm256_xor_si256(c2[1807],_mm256_xor_si256(c2[13422],_mm256_xor_si256(c2[3772],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[12475],_mm256_xor_si256(c2[9112],_mm256_xor_si256(c2[2816],_mm256_xor_si256(c2[8634],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[10099],_mm256_xor_si256(c2[8675],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[13517],_mm256_xor_si256(c2[14982],_mm256_xor_si256(c2[8210],c2[13539])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[264]=simde_mm256_xor_si256(c2[3876],simde_mm256_xor_si256(c2[7268],simde_mm256_xor_si256(c2[1938],simde_mm256_xor_si256(c2[1461],simde_mm256_xor_si256(c2[2905],simde_mm256_xor_si256(c2[11647],simde_mm256_xor_si256(c2[2449],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[4400],simde_mm256_xor_si256(c2[1498],simde_mm256_xor_si256(c2[11177],simde_mm256_xor_si256(c2[5879],simde_mm256_xor_si256(c2[1043],simde_mm256_xor_si256(c2[9269],simde_mm256_xor_si256(c2[4911],simde_mm256_xor_si256(c2[9773],simde_mm256_xor_si256(c2[7836],simde_mm256_xor_si256(c2[12191],simde_mm256_xor_si256(c2[12195],simde_mm256_xor_si256(c2[8339],simde_mm256_xor_si256(c2[6889],simde_mm256_xor_si256(c2[8347],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[5459],simde_mm256_xor_si256(c2[6434],simde_mm256_xor_si256(c2[8875],simde_mm256_xor_si256(c2[1132],simde_mm256_xor_si256(c2[4026],simde_mm256_xor_si256(c2[7924],simde_mm256_xor_si256(c2[7438],simde_mm256_xor_si256(c2[14220],simde_mm256_xor_si256(c2[10364],simde_mm256_xor_si256(c2[9885],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[13774],simde_mm256_xor_si256(c2[714],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[4598],simde_mm256_xor_si256(c2[11860],simde_mm256_xor_si256(c2[251],simde_mm256_xor_si256(c2[10433],simde_mm256_xor_si256(c2[15270],simde_mm256_xor_si256(c2[13337],simde_mm256_xor_si256(c2[5611],simde_mm256_xor_si256(c2[8039],simde_mm256_xor_si256(c2[7549],simde_mm256_xor_si256(c2[8057],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[13376],simde_mm256_xor_si256(c2[11469],simde_mm256_xor_si256(c2[10012],simde_mm256_xor_si256(c2[15343],simde_mm256_xor_si256(c2[14393],simde_mm256_xor_si256(c2[1807],simde_mm256_xor_si256(c2[13422],simde_mm256_xor_si256(c2[3772],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[12475],simde_mm256_xor_si256(c2[9112],simde_mm256_xor_si256(c2[2816],simde_mm256_xor_si256(c2[8634],simde_mm256_xor_si256(c2[4774],simde_mm256_xor_si256(c2[5748],simde_mm256_xor_si256(c2[10099],simde_mm256_xor_si256(c2[8675],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[13517],simde_mm256_xor_si256(c2[14982],simde_mm256_xor_si256(c2[8210],c2[13539])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[275]=_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[15143],_mm256_xor_si256(c2[7417],c2[10957]))); + d2[275]=simde_mm256_xor_si256(c2[11162],simde_mm256_xor_si256(c2[15143],simde_mm256_xor_si256(c2[7417],c2[10957]))); //row: 26 - d2[286]=_mm256_xor_si256(c2[2430],_mm256_xor_si256(c2[2958],_mm256_xor_si256(c2[1063],c2[1785]))); + d2[286]=simde_mm256_xor_si256(c2[2430],simde_mm256_xor_si256(c2[2958],simde_mm256_xor_si256(c2[1063],c2[1785]))); //row: 27 - d2[297]=_mm256_xor_si256(c2[13092],_mm256_xor_si256(c2[3046],c2[5992])); + d2[297]=simde_mm256_xor_si256(c2[13092],simde_mm256_xor_si256(c2[3046],c2[5992])); //row: 28 - d2[308]=_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[572],_mm256_xor_si256(c2[4291],c2[3855]))); + d2[308]=simde_mm256_xor_si256(c2[2907],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[4291],c2[3855]))); //row: 29 - d2[319]=_mm256_xor_si256(c2[8713],_mm256_xor_si256(c2[12105],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[5814],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[8258],_mm256_xor_si256(c2[9248],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[10716],_mm256_xor_si256(c2[5880],_mm256_xor_si256(c2[13622],_mm256_xor_si256(c2[14106],_mm256_xor_si256(c2[14610],_mm256_xor_si256(c2[12673],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[13187],_mm256_xor_si256(c2[11726],_mm256_xor_si256(c2[13184],_mm256_xor_si256(c2[8368],_mm256_xor_si256(c2[10296],_mm256_xor_si256(c2[10787],_mm256_xor_si256(c2[11271],_mm256_xor_si256(c2[13712],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[8874],_mm256_xor_si256(c2[12761],_mm256_xor_si256(c2[12286],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[15212],_mm256_xor_si256(c2[14722],_mm256_xor_si256(c2[8911],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[5551],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[10874],_mm256_xor_si256(c2[6537],_mm256_xor_si256(c2[9446],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[15270],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[2203],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[10459],_mm256_xor_si256(c2[12876],_mm256_xor_si256(c2[11902],_mm256_xor_si256(c2[12386],_mm256_xor_si256(c2[12894],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[2253],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[4183],_mm256_xor_si256(c2[819],_mm256_xor_si256(c2[14860],_mm256_xor_si256(c2[4693],_mm256_xor_si256(c2[3743],_mm256_xor_si256(c2[6644],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[8609],_mm256_xor_si256(c2[7641],_mm256_xor_si256(c2[1352],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[13949],_mm256_xor_si256(c2[7664],_mm256_xor_si256(c2[12987],_mm256_xor_si256(c2[13471],_mm256_xor_si256(c2[9599],_mm256_xor_si256(c2[9622],_mm256_xor_si256(c2[10585],_mm256_xor_si256(c2[14947],_mm256_xor_si256(c2[13512],_mm256_xor_si256(c2[9639],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[13047],_mm256_xor_si256(c2[2405],c2[2889])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[319]=simde_mm256_xor_si256(c2[8713],simde_mm256_xor_si256(c2[12105],simde_mm256_xor_si256(c2[6786],simde_mm256_xor_si256(c2[5814],simde_mm256_xor_si256(c2[6298],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[7286],simde_mm256_xor_si256(c2[4384],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[8258],simde_mm256_xor_si256(c2[9248],simde_mm256_xor_si256(c2[6346],simde_mm256_xor_si256(c2[538],simde_mm256_xor_si256(c2[10716],simde_mm256_xor_si256(c2[5880],simde_mm256_xor_si256(c2[13622],simde_mm256_xor_si256(c2[14106],simde_mm256_xor_si256(c2[14610],simde_mm256_xor_si256(c2[12673],simde_mm256_xor_si256(c2[1057],simde_mm256_xor_si256(c2[1541],simde_mm256_xor_si256(c2[13187],simde_mm256_xor_si256(c2[11726],simde_mm256_xor_si256(c2[13184],simde_mm256_xor_si256(c2[8368],simde_mm256_xor_si256(c2[10296],simde_mm256_xor_si256(c2[10787],simde_mm256_xor_si256(c2[11271],simde_mm256_xor_si256(c2[13712],simde_mm256_xor_si256(c2[5969],simde_mm256_xor_si256(c2[8390],simde_mm256_xor_si256(c2[8874],simde_mm256_xor_si256(c2[12761],simde_mm256_xor_si256(c2[12286],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[3570],simde_mm256_xor_si256(c2[15212],simde_mm256_xor_si256(c2[14722],simde_mm256_xor_si256(c2[8911],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[5551],simde_mm256_xor_si256(c2[10390],simde_mm256_xor_si256(c2[10874],simde_mm256_xor_si256(c2[6537],simde_mm256_xor_si256(c2[9446],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[15270],simde_mm256_xor_si256(c2[4620],simde_mm256_xor_si256(c2[2203],simde_mm256_xor_si256(c2[2687],simde_mm256_xor_si256(c2[10459],simde_mm256_xor_si256(c2[12876],simde_mm256_xor_si256(c2[11902],simde_mm256_xor_si256(c2[12386],simde_mm256_xor_si256(c2[12894],simde_mm256_xor_si256(c2[5149],simde_mm256_xor_si256(c2[2253],simde_mm256_xor_si256(c2[2737],simde_mm256_xor_si256(c2[4183],simde_mm256_xor_si256(c2[819],simde_mm256_xor_si256(c2[14860],simde_mm256_xor_si256(c2[4693],simde_mm256_xor_si256(c2[3743],simde_mm256_xor_si256(c2[6644],simde_mm256_xor_si256(c2[2288],simde_mm256_xor_si256(c2[2772],simde_mm256_xor_si256(c2[8609],simde_mm256_xor_si256(c2[7641],simde_mm256_xor_si256(c2[1352],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[13949],simde_mm256_xor_si256(c2[7664],simde_mm256_xor_si256(c2[12987],simde_mm256_xor_si256(c2[13471],simde_mm256_xor_si256(c2[9599],simde_mm256_xor_si256(c2[9622],simde_mm256_xor_si256(c2[10585],simde_mm256_xor_si256(c2[14947],simde_mm256_xor_si256(c2[13512],simde_mm256_xor_si256(c2[9639],simde_mm256_xor_si256(c2[2383],simde_mm256_xor_si256(c2[2867],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[13047],simde_mm256_xor_si256(c2[2405],c2[2889])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[330]=_mm256_xor_si256(c2[13072],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[10650],_mm256_xor_si256(c2[11134],_mm256_xor_si256(c2[10173],_mm256_xor_si256(c2[10657],_mm256_xor_si256(c2[5329],_mm256_xor_si256(c2[5356],_mm256_xor_si256(c2[11161],_mm256_xor_si256(c2[11645],_mm256_xor_si256(c2[8743],_mm256_xor_si256(c2[9227],_mm256_xor_si256(c2[13596],_mm256_xor_si256(c2[10694],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[4886],_mm256_xor_si256(c2[15075],_mm256_xor_si256(c2[10239],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[2978],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[1545],_mm256_xor_si256(c2[5416],_mm256_xor_si256(c2[5900],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[1572],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[12716],_mm256_xor_si256(c2[14171],_mm256_xor_si256(c2[14655],_mm256_xor_si256(c2[15146],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[2584],_mm256_xor_si256(c2[9844],_mm256_xor_si256(c2[10328],_mm256_xor_si256(c2[12738],_mm256_xor_si256(c2[13222],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[663],_mm256_xor_si256(c2[1147],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[7929],_mm256_xor_si256(c2[4073],_mm256_xor_si256(c2[3594],_mm256_xor_si256(c2[12786],_mm256_xor_si256(c2[13270],_mm256_xor_si256(c2[7483],_mm256_xor_si256(c2[9426],_mm256_xor_si256(c2[9910],_mm256_xor_si256(c2[14749],_mm256_xor_si256(c2[15233],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[10896],_mm256_xor_si256(c2[13794],_mm256_xor_si256(c2[5085],_mm256_xor_si256(c2[5569],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[8979],_mm256_xor_si256(c2[6562],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[14807],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[1748],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[1258],_mm256_xor_si256(c2[15292],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[9024],_mm256_xor_si256(c2[9508],_mm256_xor_si256(c2[6601],_mm256_xor_si256(c2[7085],_mm256_xor_si256(c2[5178],_mm256_xor_si256(c2[3721],_mm256_xor_si256(c2[8568],_mm256_xor_si256(c2[9052],_mm256_xor_si256(c2[8102],_mm256_xor_si256(c2[11003],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[12968],_mm256_xor_si256(c2[11516],_mm256_xor_si256(c2[12000],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[11528],_mm256_xor_si256(c2[12012],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[13970],_mm256_xor_si256(c2[14944],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[2384],_mm256_xor_si256(c2[13514],_mm256_xor_si256(c2[13998],_mm256_xor_si256(c2[6742],_mm256_xor_si256(c2[7226],_mm256_xor_si256(c2[8691],_mm256_xor_si256(c2[1919],_mm256_xor_si256(c2[6764],c2[7248]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[330]=simde_mm256_xor_si256(c2[13072],simde_mm256_xor_si256(c2[977],simde_mm256_xor_si256(c2[10650],simde_mm256_xor_si256(c2[11134],simde_mm256_xor_si256(c2[10173],simde_mm256_xor_si256(c2[10657],simde_mm256_xor_si256(c2[5329],simde_mm256_xor_si256(c2[5356],simde_mm256_xor_si256(c2[11161],simde_mm256_xor_si256(c2[11645],simde_mm256_xor_si256(c2[8743],simde_mm256_xor_si256(c2[9227],simde_mm256_xor_si256(c2[13596],simde_mm256_xor_si256(c2[10694],simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[4886],simde_mm256_xor_si256(c2[15075],simde_mm256_xor_si256(c2[10239],simde_mm256_xor_si256(c2[2494],simde_mm256_xor_si256(c2[2978],simde_mm256_xor_si256(c2[3482],simde_mm256_xor_si256(c2[1061],simde_mm256_xor_si256(c2[1545],simde_mm256_xor_si256(c2[5416],simde_mm256_xor_si256(c2[5900],simde_mm256_xor_si256(c2[2048],simde_mm256_xor_si256(c2[598],simde_mm256_xor_si256(c2[1572],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[12716],simde_mm256_xor_si256(c2[14171],simde_mm256_xor_si256(c2[14655],simde_mm256_xor_si256(c2[15146],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[2584],simde_mm256_xor_si256(c2[9844],simde_mm256_xor_si256(c2[10328],simde_mm256_xor_si256(c2[12738],simde_mm256_xor_si256(c2[13222],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[663],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[7929],simde_mm256_xor_si256(c2[4073],simde_mm256_xor_si256(c2[3594],simde_mm256_xor_si256(c2[12786],simde_mm256_xor_si256(c2[13270],simde_mm256_xor_si256(c2[7483],simde_mm256_xor_si256(c2[9426],simde_mm256_xor_si256(c2[9910],simde_mm256_xor_si256(c2[14749],simde_mm256_xor_si256(c2[15233],simde_mm256_xor_si256(c2[7964],simde_mm256_xor_si256(c2[10896],simde_mm256_xor_si256(c2[13794],simde_mm256_xor_si256(c2[5085],simde_mm256_xor_si256(c2[5569],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[8979],simde_mm256_xor_si256(c2[6562],simde_mm256_xor_si256(c2[7046],simde_mm256_xor_si256(c2[14807],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[1748],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[1258],simde_mm256_xor_si256(c2[15292],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[9024],simde_mm256_xor_si256(c2[9508],simde_mm256_xor_si256(c2[6601],simde_mm256_xor_si256(c2[7085],simde_mm256_xor_si256(c2[5178],simde_mm256_xor_si256(c2[3721],simde_mm256_xor_si256(c2[8568],simde_mm256_xor_si256(c2[9052],simde_mm256_xor_si256(c2[8102],simde_mm256_xor_si256(c2[11003],simde_mm256_xor_si256(c2[6647],simde_mm256_xor_si256(c2[7131],simde_mm256_xor_si256(c2[12968],simde_mm256_xor_si256(c2[11516],simde_mm256_xor_si256(c2[12000],simde_mm256_xor_si256(c2[5700],simde_mm256_xor_si256(c2[6184],simde_mm256_xor_si256(c2[2821],simde_mm256_xor_si256(c2[11528],simde_mm256_xor_si256(c2[12012],simde_mm256_xor_si256(c2[1848],simde_mm256_xor_si256(c2[2332],simde_mm256_xor_si256(c2[13970],simde_mm256_xor_si256(c2[14944],simde_mm256_xor_si256(c2[3324],simde_mm256_xor_si256(c2[3808],simde_mm256_xor_si256(c2[2384],simde_mm256_xor_si256(c2[13514],simde_mm256_xor_si256(c2[13998],simde_mm256_xor_si256(c2[6742],simde_mm256_xor_si256(c2[7226],simde_mm256_xor_si256(c2[8691],simde_mm256_xor_si256(c2[1919],simde_mm256_xor_si256(c2[6764],c2[7248]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[341]=_mm256_xor_si256(c2[14042],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[5817],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[11616],_mm256_xor_si256(c2[15013],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[6315],_mm256_xor_si256(c2[10196],_mm256_xor_si256(c2[12615],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[10186],_mm256_xor_si256(c2[13583],_mm256_xor_si256(c2[14067],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[14566],_mm256_xor_si256(c2[2949],_mm256_xor_si256(c2[11664],_mm256_xor_si256(c2[47],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[11198],_mm256_xor_si256(c2[15079],_mm256_xor_si256(c2[3948],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[7818],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[2515],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[10256],_mm256_xor_si256(c2[10740],_mm256_xor_si256(c2[3018],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[5438],_mm256_xor_si256(c2[3015],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[13686],_mm256_xor_si256(c2[2069],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[4488],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[7424],_mm256_xor_si256(c2[11287],_mm256_xor_si256(c2[15168],_mm256_xor_si256(c2[14192],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2575],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[6473],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[12285],_mm256_xor_si256(c2[12769],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[8913],_mm256_xor_si256(c2[4564],_mm256_xor_si256(c2[8434],_mm256_xor_si256(c2[14240],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[8453],_mm256_xor_si256(c2[12323],_mm256_xor_si256(c2[10869],_mm256_xor_si256(c2[14750],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[4586],_mm256_xor_si256(c2[11866],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[14764],_mm256_xor_si256(c2[3147],_mm256_xor_si256(c2[6539],_mm256_xor_si256(c2[9925],_mm256_xor_si256(c2[10409],_mm256_xor_si256(c2[5112],_mm256_xor_si256(c2[8982],_mm256_xor_si256(c2[9949],_mm256_xor_si256(c2[13819],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[11402],_mm256_xor_si256(c2[11886],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[2707],_mm256_xor_si256(c2[6588],_mm256_xor_si256(c2[2228],_mm256_xor_si256(c2[5614],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[6606],_mm256_xor_si256(c2[10478],_mm256_xor_si256(c2[14348],_mm256_xor_si256(c2[8055],_mm256_xor_si256(c2[11441],_mm256_xor_si256(c2[11925],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[10018],_mm256_xor_si256(c2[4691],_mm256_xor_si256(c2[8561],_mm256_xor_si256(c2[10011],_mm256_xor_si256(c2[13892],_mm256_xor_si256(c2[9072],_mm256_xor_si256(c2[12942],_mm256_xor_si256(c2[11973],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[11487],_mm256_xor_si256(c2[11971],_mm256_xor_si256(c2[13927],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[12959],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[7154],_mm256_xor_si256(c2[10540],_mm256_xor_si256(c2[11024],_mm256_xor_si256(c2[3791],_mm256_xor_si256(c2[7661],_mm256_xor_si256(c2[12982],_mm256_xor_si256(c2[1365],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[7172],_mm256_xor_si256(c2[14940],_mm256_xor_si256(c2[3323],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[4297],_mm256_xor_si256(c2[4778],_mm256_xor_si256(c2[8648],_mm256_xor_si256(c2[3354],_mm256_xor_si256(c2[7224],_mm256_xor_si256(c2[14968],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[11582],_mm256_xor_si256(c2[12066],_mm256_xor_si256(c2[9661],_mm256_xor_si256(c2[13531],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[6759],_mm256_xor_si256(c2[8207],_mm256_xor_si256(c2[11604],c2[12088])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[341]=simde_mm256_xor_si256(c2[14042],simde_mm256_xor_si256(c2[2425],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[5817],simde_mm256_xor_si256(c2[12104],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[11616],simde_mm256_xor_si256(c2[15013],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[6315],simde_mm256_xor_si256(c2[10196],simde_mm256_xor_si256(c2[12615],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[10186],simde_mm256_xor_si256(c2[13583],simde_mm256_xor_si256(c2[14067],simde_mm256_xor_si256(c2[2445],simde_mm256_xor_si256(c2[14566],simde_mm256_xor_si256(c2[2949],simde_mm256_xor_si256(c2[11664],simde_mm256_xor_si256(c2[47],simde_mm256_xor_si256(c2[5856],simde_mm256_xor_si256(c2[9726],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[4428],simde_mm256_xor_si256(c2[11198],simde_mm256_xor_si256(c2[15079],simde_mm256_xor_si256(c2[3948],simde_mm256_xor_si256(c2[7334],simde_mm256_xor_si256(c2[7818],simde_mm256_xor_si256(c2[4452],simde_mm256_xor_si256(c2[8322],simde_mm256_xor_si256(c2[2515],simde_mm256_xor_si256(c2[6385],simde_mm256_xor_si256(c2[6870],simde_mm256_xor_si256(c2[10256],simde_mm256_xor_si256(c2[10740],simde_mm256_xor_si256(c2[3018],simde_mm256_xor_si256(c2[6888],simde_mm256_xor_si256(c2[1568],simde_mm256_xor_si256(c2[5438],simde_mm256_xor_si256(c2[3015],simde_mm256_xor_si256(c2[6896],simde_mm256_xor_si256(c2[13686],simde_mm256_xor_si256(c2[2069],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[4008],simde_mm256_xor_si256(c2[1102],simde_mm256_xor_si256(c2[4488],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[3543],simde_mm256_xor_si256(c2[7424],simde_mm256_xor_si256(c2[11287],simde_mm256_xor_si256(c2[15168],simde_mm256_xor_si256(c2[14192],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[2575],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[2603],simde_mm256_xor_si256(c2[6473],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[5987],simde_mm256_xor_si256(c2[8888],simde_mm256_xor_si256(c2[12285],simde_mm256_xor_si256(c2[12769],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[8913],simde_mm256_xor_si256(c2[4564],simde_mm256_xor_si256(c2[8434],simde_mm256_xor_si256(c2[14240],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[8453],simde_mm256_xor_si256(c2[12323],simde_mm256_xor_si256(c2[10869],simde_mm256_xor_si256(c2[14750],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[4586],simde_mm256_xor_si256(c2[11866],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[14764],simde_mm256_xor_si256(c2[3147],simde_mm256_xor_si256(c2[6539],simde_mm256_xor_si256(c2[9925],simde_mm256_xor_si256(c2[10409],simde_mm256_xor_si256(c2[5112],simde_mm256_xor_si256(c2[8982],simde_mm256_xor_si256(c2[9949],simde_mm256_xor_si256(c2[13819],simde_mm256_xor_si256(c2[8016],simde_mm256_xor_si256(c2[11402],simde_mm256_xor_si256(c2[11886],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[2707],simde_mm256_xor_si256(c2[6588],simde_mm256_xor_si256(c2[2228],simde_mm256_xor_si256(c2[5614],simde_mm256_xor_si256(c2[6098],simde_mm256_xor_si256(c2[2736],simde_mm256_xor_si256(c2[6606],simde_mm256_xor_si256(c2[10478],simde_mm256_xor_si256(c2[14348],simde_mm256_xor_si256(c2[8055],simde_mm256_xor_si256(c2[11441],simde_mm256_xor_si256(c2[11925],simde_mm256_xor_si256(c2[6148],simde_mm256_xor_si256(c2[10018],simde_mm256_xor_si256(c2[4691],simde_mm256_xor_si256(c2[8561],simde_mm256_xor_si256(c2[10011],simde_mm256_xor_si256(c2[13892],simde_mm256_xor_si256(c2[9072],simde_mm256_xor_si256(c2[12942],simde_mm256_xor_si256(c2[11973],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[8101],simde_mm256_xor_si256(c2[11487],simde_mm256_xor_si256(c2[11971],simde_mm256_xor_si256(c2[13927],simde_mm256_xor_si256(c2[2310],simde_mm256_xor_si256(c2[12959],simde_mm256_xor_si256(c2[1342],simde_mm256_xor_si256(c2[7154],simde_mm256_xor_si256(c2[10540],simde_mm256_xor_si256(c2[11024],simde_mm256_xor_si256(c2[3791],simde_mm256_xor_si256(c2[7661],simde_mm256_xor_si256(c2[12982],simde_mm256_xor_si256(c2[1365],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[6688],simde_mm256_xor_si256(c2[7172],simde_mm256_xor_si256(c2[14940],simde_mm256_xor_si256(c2[3323],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[4297],simde_mm256_xor_si256(c2[4778],simde_mm256_xor_si256(c2[8648],simde_mm256_xor_si256(c2[3354],simde_mm256_xor_si256(c2[7224],simde_mm256_xor_si256(c2[14968],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[8185],simde_mm256_xor_si256(c2[11582],simde_mm256_xor_si256(c2[12066],simde_mm256_xor_si256(c2[9661],simde_mm256_xor_si256(c2[13531],simde_mm256_xor_si256(c2[2889],simde_mm256_xor_si256(c2[6759],simde_mm256_xor_si256(c2[8207],simde_mm256_xor_si256(c2[11604],c2[12088])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[352]=_mm256_xor_si256(c2[12584],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[10173],_mm256_xor_si256(c2[10657],_mm256_xor_si256(c2[9685],_mm256_xor_si256(c2[10169],_mm256_xor_si256(c2[15014],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[10673],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[8255],_mm256_xor_si256(c2[8739],_mm256_xor_si256(c2[13119],_mm256_xor_si256(c2[10217],_mm256_xor_si256(c2[3925],_mm256_xor_si256(c2[4409],_mm256_xor_si256(c2[14587],_mm256_xor_si256(c2[9751],_mm256_xor_si256(c2[2006],_mm256_xor_si256(c2[2490],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[573],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[4928],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[12239],_mm256_xor_si256(c2[13694],_mm256_xor_si256(c2[14178],_mm256_xor_si256(c2[14658],_mm256_xor_si256(c2[15142],_mm256_xor_si256(c2[2096],_mm256_xor_si256(c2[9356],_mm256_xor_si256(c2[9840],_mm256_xor_si256(c2[12261],_mm256_xor_si256(c2[12745],_mm256_xor_si256(c2[1145],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[670],_mm256_xor_si256(c2[6957],_mm256_xor_si256(c2[7441],_mm256_xor_si256(c2[3596],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[12298],_mm256_xor_si256(c2[12782],_mm256_xor_si256(c2[7006],_mm256_xor_si256(c2[8938],_mm256_xor_si256(c2[9422],_mm256_xor_si256(c2[14261],_mm256_xor_si256(c2[14745],_mm256_xor_si256(c2[10408],_mm256_xor_si256(c2[13317],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[8502],_mm256_xor_si256(c2[6074],_mm256_xor_si256(c2[6558],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[14330],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[1278],_mm256_xor_si256(c2[8536],_mm256_xor_si256(c2[9020],_mm256_xor_si256(c2[6124],_mm256_xor_si256(c2[6608],_mm256_xor_si256(c2[9030],_mm256_xor_si256(c2[4690],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[8080],_mm256_xor_si256(c2[8564],_mm256_xor_si256(c2[7614],_mm256_xor_si256(c2[10526],_mm256_xor_si256(c2[6170],_mm256_xor_si256(c2[6654],_mm256_xor_si256(c2[12480],_mm256_xor_si256(c2[11028],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[5707],_mm256_xor_si256(c2[2333],_mm256_xor_si256(c2[11051],_mm256_xor_si256(c2[11535],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[13493],_mm256_xor_si256(c2[14456],_mm256_xor_si256(c2[2847],_mm256_xor_si256(c2[3331],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[13026],_mm256_xor_si256(c2[13510],_mm256_xor_si256(c2[6254],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[8214],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[6276],c2[6760]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[352]=simde_mm256_xor_si256(c2[12584],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[10173],simde_mm256_xor_si256(c2[10657],simde_mm256_xor_si256(c2[9685],simde_mm256_xor_si256(c2[10169],simde_mm256_xor_si256(c2[15014],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[10673],simde_mm256_xor_si256(c2[11157],simde_mm256_xor_si256(c2[8255],simde_mm256_xor_si256(c2[8739],simde_mm256_xor_si256(c2[13119],simde_mm256_xor_si256(c2[10217],simde_mm256_xor_si256(c2[3925],simde_mm256_xor_si256(c2[4409],simde_mm256_xor_si256(c2[14587],simde_mm256_xor_si256(c2[9751],simde_mm256_xor_si256(c2[2006],simde_mm256_xor_si256(c2[2490],simde_mm256_xor_si256(c2[2994],simde_mm256_xor_si256(c2[573],simde_mm256_xor_si256(c2[1057],simde_mm256_xor_si256(c2[4928],simde_mm256_xor_si256(c2[5412],simde_mm256_xor_si256(c2[1571],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[1568],simde_mm256_xor_si256(c2[12239],simde_mm256_xor_si256(c2[13694],simde_mm256_xor_si256(c2[14178],simde_mm256_xor_si256(c2[14658],simde_mm256_xor_si256(c2[15142],simde_mm256_xor_si256(c2[2096],simde_mm256_xor_si256(c2[9356],simde_mm256_xor_si256(c2[9840],simde_mm256_xor_si256(c2[12261],simde_mm256_xor_si256(c2[12745],simde_mm256_xor_si256(c2[1145],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[670],simde_mm256_xor_si256(c2[6957],simde_mm256_xor_si256(c2[7441],simde_mm256_xor_si256(c2[3596],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[12298],simde_mm256_xor_si256(c2[12782],simde_mm256_xor_si256(c2[7006],simde_mm256_xor_si256(c2[8938],simde_mm256_xor_si256(c2[9422],simde_mm256_xor_si256(c2[14261],simde_mm256_xor_si256(c2[14745],simde_mm256_xor_si256(c2[10408],simde_mm256_xor_si256(c2[13317],simde_mm256_xor_si256(c2[4608],simde_mm256_xor_si256(c2[5092],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[8502],simde_mm256_xor_si256(c2[6074],simde_mm256_xor_si256(c2[6558],simde_mm256_xor_si256(c2[4628],simde_mm256_xor_si256(c2[14330],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[286],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[8536],simde_mm256_xor_si256(c2[9020],simde_mm256_xor_si256(c2[6124],simde_mm256_xor_si256(c2[6608],simde_mm256_xor_si256(c2[9030],simde_mm256_xor_si256(c2[4690],simde_mm256_xor_si256(c2[3244],simde_mm256_xor_si256(c2[8080],simde_mm256_xor_si256(c2[8564],simde_mm256_xor_si256(c2[7614],simde_mm256_xor_si256(c2[10526],simde_mm256_xor_si256(c2[6170],simde_mm256_xor_si256(c2[6654],simde_mm256_xor_si256(c2[12480],simde_mm256_xor_si256(c2[11028],simde_mm256_xor_si256(c2[11512],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[5707],simde_mm256_xor_si256(c2[2333],simde_mm256_xor_si256(c2[11051],simde_mm256_xor_si256(c2[11535],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[1855],simde_mm256_xor_si256(c2[13493],simde_mm256_xor_si256(c2[14456],simde_mm256_xor_si256(c2[2847],simde_mm256_xor_si256(c2[3331],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[13026],simde_mm256_xor_si256(c2[13510],simde_mm256_xor_si256(c2[6254],simde_mm256_xor_si256(c2[6738],simde_mm256_xor_si256(c2[8214],simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[6276],c2[6760]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[363]=_mm256_xor_si256(c2[11639],_mm256_xor_si256(c2[7797],_mm256_xor_si256(c2[6538],c2[2885]))); + d2[363]=simde_mm256_xor_si256(c2[11639],simde_mm256_xor_si256(c2[7797],simde_mm256_xor_si256(c2[6538],c2[2885]))); //row: 34 - d2[374]=_mm256_xor_si256(c2[13553],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[8077],c2[11023]))); + d2[374]=simde_mm256_xor_si256(c2[13553],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[8077],c2[11023]))); //row: 35 - d2[385]=_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[12110],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[6292],_mm256_xor_si256(c2[991],_mm256_xor_si256(c2[7291],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[9242],_mm256_xor_si256(c2[6340],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[5874],_mm256_xor_si256(c2[14111],_mm256_xor_si256(c2[14615],_mm256_xor_si256(c2[12678],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[13181],_mm256_xor_si256(c2[11731],_mm256_xor_si256(c2[13178],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[10301],_mm256_xor_si256(c2[11265],_mm256_xor_si256(c2[8850],_mm256_xor_si256(c2[13706],_mm256_xor_si256(c2[5963],_mm256_xor_si256(c2[8868],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[12280],_mm256_xor_si256(c2[3564],_mm256_xor_si256(c2[15206],_mm256_xor_si256(c2[14727],_mm256_xor_si256(c2[8916],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[5545],_mm256_xor_si256(c2[10868],_mm256_xor_si256(c2[6542],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[15275],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[10453],_mm256_xor_si256(c2[12870],_mm256_xor_si256(c2[12391],_mm256_xor_si256(c2[12899],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[2731],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[14854],_mm256_xor_si256(c2[4687],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[6649],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[8603],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[13954],_mm256_xor_si256(c2[7658],_mm256_xor_si256(c2[13465],_mm256_xor_si256(c2[9616],_mm256_xor_si256(c2[10590],_mm256_xor_si256(c2[14941],_mm256_xor_si256(c2[13517],_mm256_xor_si256(c2[9644],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[4337],_mm256_xor_si256(c2[13052],c2[2883]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[385]=simde_mm256_xor_si256(c2[8718],simde_mm256_xor_si256(c2[12110],simde_mm256_xor_si256(c2[6780],simde_mm256_xor_si256(c2[6292],simde_mm256_xor_si256(c2[991],simde_mm256_xor_si256(c2[7291],simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[9242],simde_mm256_xor_si256(c2[6340],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[10721],simde_mm256_xor_si256(c2[5874],simde_mm256_xor_si256(c2[14111],simde_mm256_xor_si256(c2[14615],simde_mm256_xor_si256(c2[12678],simde_mm256_xor_si256(c2[1546],simde_mm256_xor_si256(c2[13181],simde_mm256_xor_si256(c2[11731],simde_mm256_xor_si256(c2[13178],simde_mm256_xor_si256(c2[8362],simde_mm256_xor_si256(c2[10301],simde_mm256_xor_si256(c2[11265],simde_mm256_xor_si256(c2[8850],simde_mm256_xor_si256(c2[13706],simde_mm256_xor_si256(c2[5963],simde_mm256_xor_si256(c2[8868],simde_mm256_xor_si256(c2[12766],simde_mm256_xor_si256(c2[12280],simde_mm256_xor_si256(c2[3564],simde_mm256_xor_si256(c2[15206],simde_mm256_xor_si256(c2[14727],simde_mm256_xor_si256(c2[8916],simde_mm256_xor_si256(c2[3129],simde_mm256_xor_si256(c2[5545],simde_mm256_xor_si256(c2[10868],simde_mm256_xor_si256(c2[6542],simde_mm256_xor_si256(c2[9440],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[15275],simde_mm256_xor_si256(c2[4625],simde_mm256_xor_si256(c2[2692],simde_mm256_xor_si256(c2[1722],simde_mm256_xor_si256(c2[10453],simde_mm256_xor_si256(c2[12870],simde_mm256_xor_si256(c2[12391],simde_mm256_xor_si256(c2[12899],simde_mm256_xor_si256(c2[5154],simde_mm256_xor_si256(c2[2731],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[14854],simde_mm256_xor_si256(c2[4687],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[6649],simde_mm256_xor_si256(c2[2777],simde_mm256_xor_si256(c2[8603],simde_mm256_xor_si256(c2[7635],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[13954],simde_mm256_xor_si256(c2[7658],simde_mm256_xor_si256(c2[13465],simde_mm256_xor_si256(c2[9616],simde_mm256_xor_si256(c2[10590],simde_mm256_xor_si256(c2[14941],simde_mm256_xor_si256(c2[13517],simde_mm256_xor_si256(c2[9644],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[4337],simde_mm256_xor_si256(c2[13052],c2[2883]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[396]=_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[1783],c2[13953]))); + d2[396]=simde_mm256_xor_si256(c2[3392],simde_mm256_xor_si256(c2[7568],simde_mm256_xor_si256(c2[1783],c2[13953]))); //row: 37 - d2[407]=_mm256_xor_si256(c2[13068],_mm256_xor_si256(c2[13552],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[11625],_mm256_xor_si256(c2[11137],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[5836],_mm256_xor_si256(c2[12125],_mm256_xor_si256(c2[9707],_mm256_xor_si256(c2[15035],_mm256_xor_si256(c2[13603],_mm256_xor_si256(c2[14087],_mm256_xor_si256(c2[11185],_mm256_xor_si256(c2[5377],_mm256_xor_si256(c2[15071],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[10719],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[6380],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[2539],_mm256_xor_si256(c2[1078],_mm256_xor_si256(c2[2536],_mm256_xor_si256(c2[12723],_mm256_xor_si256(c2[13207],_mm256_xor_si256(c2[15146],_mm256_xor_si256(c2[623],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[13713],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[8409],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[4564],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[13750],_mm256_xor_si256(c2[7490],_mm256_xor_si256(c2[7974],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[10892],_mm256_xor_si256(c2[11376],_mm256_xor_si256(c2[14285],_mm256_xor_si256(c2[6060],_mm256_xor_si256(c2[4138],_mm256_xor_si256(c2[4622],_mm256_xor_si256(c2[9470],_mm256_xor_si256(c2[7526],_mm256_xor_si256(c2[14814],_mm256_xor_si256(c2[15298],_mm256_xor_si256(c2[2228],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[2246],_mm256_xor_si256(c2[9988],_mm256_xor_si256(c2[7576],_mm256_xor_si256(c2[5174],_mm256_xor_si256(c2[5658],_mm256_xor_si256(c2[4212],_mm256_xor_si256(c2[9532],_mm256_xor_si256(c2[8098],_mm256_xor_si256(c2[8582],_mm256_xor_si256(c2[11494],_mm256_xor_si256(c2[7622],_mm256_xor_si256(c2[13448],_mm256_xor_si256(c2[12480],_mm256_xor_si256(c2[6675],_mm256_xor_si256(c2[2817],_mm256_xor_si256(c2[3301],_mm256_xor_si256(c2[12503],_mm256_xor_si256(c2[2823],_mm256_xor_si256(c2[13977],_mm256_xor_si256(c2[14461],_mm256_xor_si256(c2[15424],_mm256_xor_si256(c2[4299],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[14478],_mm256_xor_si256(c2[7706],_mm256_xor_si256(c2[8698],_mm256_xor_si256(c2[9182],_mm256_xor_si256(c2[2399],c2[7728]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[407]=simde_mm256_xor_si256(c2[13068],simde_mm256_xor_si256(c2[13552],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[11625],simde_mm256_xor_si256(c2[11137],simde_mm256_xor_si256(c2[5352],simde_mm256_xor_si256(c2[5836],simde_mm256_xor_si256(c2[12125],simde_mm256_xor_si256(c2[9707],simde_mm256_xor_si256(c2[15035],simde_mm256_xor_si256(c2[13603],simde_mm256_xor_si256(c2[14087],simde_mm256_xor_si256(c2[11185],simde_mm256_xor_si256(c2[5377],simde_mm256_xor_si256(c2[15071],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[10719],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[3962],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[6380],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[2539],simde_mm256_xor_si256(c2[1078],simde_mm256_xor_si256(c2[2536],simde_mm256_xor_si256(c2[12723],simde_mm256_xor_si256(c2[13207],simde_mm256_xor_si256(c2[15146],simde_mm256_xor_si256(c2[623],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[10808],simde_mm256_xor_si256(c2[13713],simde_mm256_xor_si256(c2[2113],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[8409],simde_mm256_xor_si256(c2[4080],simde_mm256_xor_si256(c2[4564],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[13750],simde_mm256_xor_si256(c2[7490],simde_mm256_xor_si256(c2[7974],simde_mm256_xor_si256(c2[10390],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[10892],simde_mm256_xor_si256(c2[11376],simde_mm256_xor_si256(c2[14285],simde_mm256_xor_si256(c2[6060],simde_mm256_xor_si256(c2[4138],simde_mm256_xor_si256(c2[4622],simde_mm256_xor_si256(c2[9470],simde_mm256_xor_si256(c2[7526],simde_mm256_xor_si256(c2[14814],simde_mm256_xor_si256(c2[15298],simde_mm256_xor_si256(c2[2228],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[6101],simde_mm256_xor_si256(c2[2246],simde_mm256_xor_si256(c2[9988],simde_mm256_xor_si256(c2[7576],simde_mm256_xor_si256(c2[5174],simde_mm256_xor_si256(c2[5658],simde_mm256_xor_si256(c2[4212],simde_mm256_xor_si256(c2[9532],simde_mm256_xor_si256(c2[8098],simde_mm256_xor_si256(c2[8582],simde_mm256_xor_si256(c2[11494],simde_mm256_xor_si256(c2[7622],simde_mm256_xor_si256(c2[13448],simde_mm256_xor_si256(c2[12480],simde_mm256_xor_si256(c2[6675],simde_mm256_xor_si256(c2[2817],simde_mm256_xor_si256(c2[3301],simde_mm256_xor_si256(c2[12503],simde_mm256_xor_si256(c2[2823],simde_mm256_xor_si256(c2[13977],simde_mm256_xor_si256(c2[14461],simde_mm256_xor_si256(c2[15424],simde_mm256_xor_si256(c2[4299],simde_mm256_xor_si256(c2[2380],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[14478],simde_mm256_xor_si256(c2[7706],simde_mm256_xor_si256(c2[8698],simde_mm256_xor_si256(c2[9182],simde_mm256_xor_si256(c2[2399],c2[7728]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[418]=_mm256_xor_si256(c2[1941],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[8454],c2[10919]))); + d2[418]=simde_mm256_xor_si256(c2[1941],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[8454],c2[10919]))); //row: 39 - d2[429]=_mm256_xor_si256(c2[5837],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[2575],c2[8170]))); + d2[429]=simde_mm256_xor_si256(c2[5837],simde_mm256_xor_si256(c2[3946],simde_mm256_xor_si256(c2[2575],c2[8170]))); //row: 40 - d2[440]=_mm256_xor_si256(c2[7753],_mm256_xor_si256(c2[6475],c2[3766])); + d2[440]=simde_mm256_xor_si256(c2[7753],simde_mm256_xor_si256(c2[6475],c2[3766])); //row: 41 - d2[451]=_mm256_xor_si256(c2[13093],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[12298],c2[8148]))); + d2[451]=simde_mm256_xor_si256(c2[13093],simde_mm256_xor_si256(c2[6360],simde_mm256_xor_si256(c2[12298],c2[8148]))); //row: 42 - d2[462]=_mm256_xor_si256(c2[11625],_mm256_xor_si256(c2[15006],_mm256_xor_si256(c2[9203],_mm256_xor_si256(c2[9687],_mm256_xor_si256(c2[8715],_mm256_xor_si256(c2[9199],_mm256_xor_si256(c2[9],_mm256_xor_si256(c2[3898],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[10187],_mm256_xor_si256(c2[7285],_mm256_xor_si256(c2[7769],_mm256_xor_si256(c2[12149],_mm256_xor_si256(c2[9247],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[3439],_mm256_xor_si256(c2[13628],_mm256_xor_si256(c2[8781],_mm256_xor_si256(c2[1036],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[15101],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[3969],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[9286],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[14638],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[11269],_mm256_xor_si256(c2[12724],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[13688],_mm256_xor_si256(c2[14172],_mm256_xor_si256(c2[1126],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[8870],_mm256_xor_si256(c2[11291],_mm256_xor_si256(c2[11775],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[14703],_mm256_xor_si256(c2[15187],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[6471],_mm256_xor_si256(c2[2626],_mm256_xor_si256(c2[2136],_mm256_xor_si256(c2[11339],_mm256_xor_si256(c2[11823],_mm256_xor_si256(c2[6036],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[8452],_mm256_xor_si256(c2[13291],_mm256_xor_si256(c2[13775],_mm256_xor_si256(c2[9438],_mm256_xor_si256(c2[12347],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[4122],_mm256_xor_si256(c2[2684],_mm256_xor_si256(c2[7532],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[5588],_mm256_xor_si256(c2[13360],_mm256_xor_si256(c2[15293],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[14814],_mm256_xor_si256(c2[15298],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[7577],_mm256_xor_si256(c2[8061],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[5638],_mm256_xor_si256(c2[3720],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[7110],_mm256_xor_si256(c2[7594],_mm256_xor_si256(c2[6644],_mm256_xor_si256(c2[9556],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[11510],_mm256_xor_si256(c2[10058],_mm256_xor_si256(c2[10542],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[1374],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[12523],_mm256_xor_si256(c2[13486],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[2361],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[12056],_mm256_xor_si256(c2[12540],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[7244],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[5306],c2[5790])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[462]=simde_mm256_xor_si256(c2[11625],simde_mm256_xor_si256(c2[15006],simde_mm256_xor_si256(c2[9203],simde_mm256_xor_si256(c2[9687],simde_mm256_xor_si256(c2[8715],simde_mm256_xor_si256(c2[9199],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[3898],simde_mm256_xor_si256(c2[9703],simde_mm256_xor_si256(c2[10187],simde_mm256_xor_si256(c2[7285],simde_mm256_xor_si256(c2[7769],simde_mm256_xor_si256(c2[12149],simde_mm256_xor_si256(c2[9247],simde_mm256_xor_si256(c2[2955],simde_mm256_xor_si256(c2[3439],simde_mm256_xor_si256(c2[13628],simde_mm256_xor_si256(c2[8781],simde_mm256_xor_si256(c2[1036],simde_mm256_xor_si256(c2[1520],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[15101],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[3969],simde_mm256_xor_si256(c2[4453],simde_mm256_xor_si256(c2[9286],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[14638],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[598],simde_mm256_xor_si256(c2[11269],simde_mm256_xor_si256(c2[12724],simde_mm256_xor_si256(c2[13208],simde_mm256_xor_si256(c2[13688],simde_mm256_xor_si256(c2[14172],simde_mm256_xor_si256(c2[1126],simde_mm256_xor_si256(c2[8386],simde_mm256_xor_si256(c2[8870],simde_mm256_xor_si256(c2[11291],simde_mm256_xor_si256(c2[11775],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[14703],simde_mm256_xor_si256(c2[15187],simde_mm256_xor_si256(c2[5987],simde_mm256_xor_si256(c2[6471],simde_mm256_xor_si256(c2[2626],simde_mm256_xor_si256(c2[2136],simde_mm256_xor_si256(c2[11339],simde_mm256_xor_si256(c2[11823],simde_mm256_xor_si256(c2[6036],simde_mm256_xor_si256(c2[7968],simde_mm256_xor_si256(c2[8452],simde_mm256_xor_si256(c2[13291],simde_mm256_xor_si256(c2[13775],simde_mm256_xor_si256(c2[9438],simde_mm256_xor_si256(c2[12347],simde_mm256_xor_si256(c2[3638],simde_mm256_xor_si256(c2[4122],simde_mm256_xor_si256(c2[2684],simde_mm256_xor_si256(c2[7532],simde_mm256_xor_si256(c2[5104],simde_mm256_xor_si256(c2[5588],simde_mm256_xor_si256(c2[13360],simde_mm256_xor_si256(c2[15293],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[14814],simde_mm256_xor_si256(c2[15298],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[7577],simde_mm256_xor_si256(c2[8061],simde_mm256_xor_si256(c2[5154],simde_mm256_xor_si256(c2[5638],simde_mm256_xor_si256(c2[3720],simde_mm256_xor_si256(c2[2274],simde_mm256_xor_si256(c2[7110],simde_mm256_xor_si256(c2[7594],simde_mm256_xor_si256(c2[6644],simde_mm256_xor_si256(c2[9556],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[11510],simde_mm256_xor_si256(c2[10058],simde_mm256_xor_si256(c2[10542],simde_mm256_xor_si256(c2[4253],simde_mm256_xor_si256(c2[4737],simde_mm256_xor_si256(c2[1374],simde_mm256_xor_si256(c2[10081],simde_mm256_xor_si256(c2[10565],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[12523],simde_mm256_xor_si256(c2[13486],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[12056],simde_mm256_xor_si256(c2[12540],simde_mm256_xor_si256(c2[5284],simde_mm256_xor_si256(c2[5768],simde_mm256_xor_si256(c2[7244],simde_mm256_xor_si256(c2[472],simde_mm256_xor_si256(c2[5306],c2[5790])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[473]=_mm256_xor_si256(c2[6779],_mm256_xor_si256(c2[10171],_mm256_xor_si256(c2[4841],_mm256_xor_si256(c2[3880],_mm256_xor_si256(c2[4364],_mm256_xor_si256(c2[14550],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[2934],_mm256_xor_si256(c2[8740],_mm256_xor_si256(c2[7314],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[14080],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[11688],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[12676],_mm256_xor_si256(c2[10739],_mm256_xor_si256(c2[14610],_mm256_xor_si256(c2[15094],_mm256_xor_si256(c2[11242],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[11250],_mm256_xor_si256(c2[6434],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[8853],_mm256_xor_si256(c2[9337],_mm256_xor_si256(c2[11778],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[6456],_mm256_xor_si256(c2[6940],_mm256_xor_si256(c2[10827],_mm256_xor_si256(c2[10341],_mm256_xor_si256(c2[1152],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[13267],_mm256_xor_si256(c2[12788],_mm256_xor_si256(c2[6977],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[8456],_mm256_xor_si256(c2[8940],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[7512],_mm256_xor_si256(c2[14279],_mm256_xor_si256(c2[14763],_mm256_xor_si256(c2[13336],_mm256_xor_si256(c2[2686],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[8514],_mm256_xor_si256(c2[10942],_mm256_xor_si256(c2[9968],_mm256_xor_si256(c2[10452],_mm256_xor_si256(c2[10960],_mm256_xor_si256(c2[3215],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[14372],_mm256_xor_si256(c2[12915],_mm256_xor_si256(c2[2759],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[4710],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[838],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[6675],_mm256_xor_si256(c2[5707],_mm256_xor_si256(c2[14894],_mm256_xor_si256(c2[15378],_mm256_xor_si256(c2[12015],_mm256_xor_si256(c2[5730],_mm256_xor_si256(c2[11053],_mm256_xor_si256(c2[11537],_mm256_xor_si256(c2[10561],_mm256_xor_si256(c2[7688],_mm256_xor_si256(c2[8651],_mm256_xor_si256(c2[13002],_mm256_xor_si256(c2[11578],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[2398],_mm256_xor_si256(c2[11113],_mm256_xor_si256(c2[471],c2[955])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[473]=simde_mm256_xor_si256(c2[6779],simde_mm256_xor_si256(c2[10171],simde_mm256_xor_si256(c2[4841],simde_mm256_xor_si256(c2[3880],simde_mm256_xor_si256(c2[4364],simde_mm256_xor_si256(c2[14550],simde_mm256_xor_si256(c2[5352],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[2934],simde_mm256_xor_si256(c2[8740],simde_mm256_xor_si256(c2[7314],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[14080],simde_mm256_xor_si256(c2[8782],simde_mm256_xor_si256(c2[3946],simde_mm256_xor_si256(c2[11688],simde_mm256_xor_si256(c2[12172],simde_mm256_xor_si256(c2[12676],simde_mm256_xor_si256(c2[10739],simde_mm256_xor_si256(c2[14610],simde_mm256_xor_si256(c2[15094],simde_mm256_xor_si256(c2[11242],simde_mm256_xor_si256(c2[9792],simde_mm256_xor_si256(c2[11250],simde_mm256_xor_si256(c2[6434],simde_mm256_xor_si256(c2[8362],simde_mm256_xor_si256(c2[8853],simde_mm256_xor_si256(c2[9337],simde_mm256_xor_si256(c2[11778],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[6456],simde_mm256_xor_si256(c2[6940],simde_mm256_xor_si256(c2[10827],simde_mm256_xor_si256(c2[10341],simde_mm256_xor_si256(c2[1152],simde_mm256_xor_si256(c2[1636],simde_mm256_xor_si256(c2[13267],simde_mm256_xor_si256(c2[12788],simde_mm256_xor_si256(c2[6977],simde_mm256_xor_si256(c2[1190],simde_mm256_xor_si256(c2[3617],simde_mm256_xor_si256(c2[8456],simde_mm256_xor_si256(c2[8940],simde_mm256_xor_si256(c2[4603],simde_mm256_xor_si256(c2[7512],simde_mm256_xor_si256(c2[14279],simde_mm256_xor_si256(c2[14763],simde_mm256_xor_si256(c2[13336],simde_mm256_xor_si256(c2[2686],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[8514],simde_mm256_xor_si256(c2[10942],simde_mm256_xor_si256(c2[9968],simde_mm256_xor_si256(c2[10452],simde_mm256_xor_si256(c2[10960],simde_mm256_xor_si256(c2[3215],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[14372],simde_mm256_xor_si256(c2[12915],simde_mm256_xor_si256(c2[2759],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[4710],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[838],simde_mm256_xor_si256(c2[1804],simde_mm256_xor_si256(c2[6675],simde_mm256_xor_si256(c2[5707],simde_mm256_xor_si256(c2[14894],simde_mm256_xor_si256(c2[15378],simde_mm256_xor_si256(c2[12015],simde_mm256_xor_si256(c2[5730],simde_mm256_xor_si256(c2[11053],simde_mm256_xor_si256(c2[11537],simde_mm256_xor_si256(c2[10561],simde_mm256_xor_si256(c2[7688],simde_mm256_xor_si256(c2[8651],simde_mm256_xor_si256(c2[13002],simde_mm256_xor_si256(c2[11578],simde_mm256_xor_si256(c2[7705],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[2398],simde_mm256_xor_si256(c2[11113],simde_mm256_xor_si256(c2[471],c2[955])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[484]=_mm256_xor_si256(c2[10654],_mm256_xor_si256(c2[14046],_mm256_xor_si256(c2[8716],_mm256_xor_si256(c2[8228],_mm256_xor_si256(c2[7262],_mm256_xor_si256(c2[2927],_mm256_xor_si256(c2[9227],_mm256_xor_si256(c2[6798],_mm256_xor_si256(c2[11178],_mm256_xor_si256(c2[8276],_mm256_xor_si256(c2[2468],_mm256_xor_si256(c2[12657],_mm256_xor_si256(c2[7810],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[14614],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[15117],_mm256_xor_si256(c2[13667],_mm256_xor_si256(c2[15114],_mm256_xor_si256(c2[10298],_mm256_xor_si256(c2[12237],_mm256_xor_si256(c2[13201],_mm256_xor_si256(c2[155],_mm256_xor_si256(c2[7899],_mm256_xor_si256(c2[10804],_mm256_xor_si256(c2[9841],_mm256_xor_si256(c2[14702],_mm256_xor_si256(c2[14216],_mm256_xor_si256(c2[5500],_mm256_xor_si256(c2[1655],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[10852],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[12804],_mm256_xor_si256(c2[8478],_mm256_xor_si256(c2[11376],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[1724],_mm256_xor_si256(c2[6561],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[12389],_mm256_xor_si256(c2[14806],_mm256_xor_si256(c2[14327],_mm256_xor_si256(c2[14835],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[4667],_mm256_xor_si256(c2[2760],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[6623],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[8585],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[10539],_mm256_xor_si256(c2[9571],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[9594],_mm256_xor_si256(c2[15401],_mm256_xor_si256(c2[11552],_mm256_xor_si256(c2[12526],_mm256_xor_si256(c2[1390],_mm256_xor_si256(c2[15453],_mm256_xor_si256(c2[11580],_mm256_xor_si256(c2[4797],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[14988],c2[4819]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[484]=simde_mm256_xor_si256(c2[10654],simde_mm256_xor_si256(c2[14046],simde_mm256_xor_si256(c2[8716],simde_mm256_xor_si256(c2[8228],simde_mm256_xor_si256(c2[7262],simde_mm256_xor_si256(c2[2927],simde_mm256_xor_si256(c2[9227],simde_mm256_xor_si256(c2[6798],simde_mm256_xor_si256(c2[11178],simde_mm256_xor_si256(c2[8276],simde_mm256_xor_si256(c2[2468],simde_mm256_xor_si256(c2[12657],simde_mm256_xor_si256(c2[7810],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[14614],simde_mm256_xor_si256(c2[3482],simde_mm256_xor_si256(c2[15117],simde_mm256_xor_si256(c2[13667],simde_mm256_xor_si256(c2[15114],simde_mm256_xor_si256(c2[10298],simde_mm256_xor_si256(c2[12237],simde_mm256_xor_si256(c2[13201],simde_mm256_xor_si256(c2[155],simde_mm256_xor_si256(c2[7899],simde_mm256_xor_si256(c2[10804],simde_mm256_xor_si256(c2[9841],simde_mm256_xor_si256(c2[14702],simde_mm256_xor_si256(c2[14216],simde_mm256_xor_si256(c2[5500],simde_mm256_xor_si256(c2[1655],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[10852],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[5065],simde_mm256_xor_si256(c2[7481],simde_mm256_xor_si256(c2[12804],simde_mm256_xor_si256(c2[8478],simde_mm256_xor_si256(c2[11376],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[1724],simde_mm256_xor_si256(c2[6561],simde_mm256_xor_si256(c2[4628],simde_mm256_xor_si256(c2[12389],simde_mm256_xor_si256(c2[14806],simde_mm256_xor_si256(c2[14327],simde_mm256_xor_si256(c2[14835],simde_mm256_xor_si256(c2[7090],simde_mm256_xor_si256(c2[4667],simde_mm256_xor_si256(c2[2760],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[6623],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[8585],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[10539],simde_mm256_xor_si256(c2[9571],simde_mm256_xor_si256(c2[3766],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[9594],simde_mm256_xor_si256(c2[15401],simde_mm256_xor_si256(c2[11552],simde_mm256_xor_si256(c2[12526],simde_mm256_xor_si256(c2[1390],simde_mm256_xor_si256(c2[15453],simde_mm256_xor_si256(c2[11580],simde_mm256_xor_si256(c2[4797],simde_mm256_xor_si256(c2[6273],simde_mm256_xor_si256(c2[14988],c2[4819]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[495]=_mm256_xor_si256(c2[8736],_mm256_xor_si256(c2[1586],c2[5551])); + d2[495]=simde_mm256_xor_si256(c2[8736],simde_mm256_xor_si256(c2[1586],c2[5551])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc384_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc384_byte.c index 02c2db3295..fa906bbefb 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc384_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc384_byte.c @@ -11,141 +11,141 @@ static inline void ldpc384_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[10041],_mm256_xor_si256(c2[6338],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[10056],_mm256_xor_si256(c2[13759],_mm256_xor_si256(c2[12170],_mm256_xor_si256(c2[9553],_mm256_xor_si256(c2[6386],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[4826],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[105],_mm256_xor_si256(c2[6442],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[11213],_mm256_xor_si256(c2[8572],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[5986],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[6010],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[12865],_mm256_xor_si256(c2[15537],_mm256_xor_si256(c2[9725],_mm256_xor_si256(c2[16585],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[3969],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[11914],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[11410],_mm256_xor_si256(c2[13542],_mm256_xor_si256(c2[13010],_mm256_xor_si256(c2[10902],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[1947],_mm256_xor_si256(c2[11449],_mm256_xor_si256(c2[5667],_mm256_xor_si256(c2[1451],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[9915],_mm256_xor_si256(c2[1996],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[9943],_mm256_xor_si256(c2[8887],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[11021],_mm256_xor_si256(c2[6274],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[14242],_mm256_xor_si256(c2[8955],c2[3155])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[10041],simde_mm256_xor_si256(c2[6338],simde_mm256_xor_si256(c2[6870],simde_mm256_xor_si256(c2[10568],simde_mm256_xor_si256(c2[10056],simde_mm256_xor_si256(c2[13759],simde_mm256_xor_si256(c2[12170],simde_mm256_xor_si256(c2[9553],simde_mm256_xor_si256(c2[6386],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[9059],simde_mm256_xor_si256(c2[4826],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[105],simde_mm256_xor_si256(c2[6442],simde_mm256_xor_si256(c2[10136],simde_mm256_xor_si256(c2[11213],simde_mm256_xor_si256(c2[8572],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[12822],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[3846],simde_mm256_xor_si256(c2[5986],simde_mm256_xor_si256(c2[5984],simde_mm256_xor_si256(c2[13372],simde_mm256_xor_si256(c2[6010],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[12865],simde_mm256_xor_si256(c2[15537],simde_mm256_xor_si256(c2[9725],simde_mm256_xor_si256(c2[16585],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[2356],simde_mm256_xor_si256(c2[7131],simde_mm256_xor_si256(c2[3969],simde_mm256_xor_si256(c2[9249],simde_mm256_xor_si256(c2[9264],simde_mm256_xor_si256(c2[11914],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[2963],simde_mm256_xor_si256(c2[4542],simde_mm256_xor_si256(c2[11410],simde_mm256_xor_si256(c2[13542],simde_mm256_xor_si256(c2[13010],simde_mm256_xor_si256(c2[10902],simde_mm256_xor_si256(c2[12510],simde_mm256_xor_si256(c2[1947],simde_mm256_xor_si256(c2[11449],simde_mm256_xor_si256(c2[5667],simde_mm256_xor_si256(c2[1451],simde_mm256_xor_si256(c2[8841],simde_mm256_xor_si256(c2[9915],simde_mm256_xor_si256(c2[1996],simde_mm256_xor_si256(c2[6753],simde_mm256_xor_si256(c2[9943],simde_mm256_xor_si256(c2[8887],simde_mm256_xor_si256(c2[8360],simde_mm256_xor_si256(c2[11021],simde_mm256_xor_si256(c2[6274],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[5770],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[4177],simde_mm256_xor_si256(c2[14242],simde_mm256_xor_si256(c2[8955],c2[3155])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 1 - d2[12]=_mm256_xor_si256(c2[10041],_mm256_xor_si256(c2[10569],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[7398],_mm256_xor_si256(c2[11096],_mm256_xor_si256(c2[10056],_mm256_xor_si256(c2[10584],_mm256_xor_si256(c2[14287],_mm256_xor_si256(c2[12698],_mm256_xor_si256(c2[9553],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[6970],_mm256_xor_si256(c2[10664],_mm256_xor_si256(c2[11213],_mm256_xor_si256(c2[11741],_mm256_xor_si256(c2[9100],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[13350],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[13393],_mm256_xor_si256(c2[15537],_mm256_xor_si256(c2[16065],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[12442],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[11938],_mm256_xor_si256(c2[14070],_mm256_xor_si256(c2[13538],_mm256_xor_si256(c2[11430],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[13038],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[11977],_mm256_xor_si256(c2[5667],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[9369],_mm256_xor_si256(c2[10443],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[9943],_mm256_xor_si256(c2[10471],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[11021],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[6802],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[14242],_mm256_xor_si256(c2[14770],_mm256_xor_si256(c2[9483],c2[3683]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[10041],simde_mm256_xor_si256(c2[10569],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[7398],simde_mm256_xor_si256(c2[11096],simde_mm256_xor_si256(c2[10056],simde_mm256_xor_si256(c2[10584],simde_mm256_xor_si256(c2[14287],simde_mm256_xor_si256(c2[12698],simde_mm256_xor_si256(c2[9553],simde_mm256_xor_si256(c2[10081],simde_mm256_xor_si256(c2[6914],simde_mm256_xor_si256(c2[4810],simde_mm256_xor_si256(c2[9059],simde_mm256_xor_si256(c2[9587],simde_mm256_xor_si256(c2[5354],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[6970],simde_mm256_xor_si256(c2[10664],simde_mm256_xor_si256(c2[11213],simde_mm256_xor_si256(c2[11741],simde_mm256_xor_si256(c2[9100],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[12822],simde_mm256_xor_si256(c2[13350],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[4374],simde_mm256_xor_si256(c2[6514],simde_mm256_xor_si256(c2[6512],simde_mm256_xor_si256(c2[13900],simde_mm256_xor_si256(c2[6538],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[13393],simde_mm256_xor_si256(c2[15537],simde_mm256_xor_si256(c2[16065],simde_mm256_xor_si256(c2[10253],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[7131],simde_mm256_xor_si256(c2[7659],simde_mm256_xor_si256(c2[4497],simde_mm256_xor_si256(c2[9777],simde_mm256_xor_si256(c2[9264],simde_mm256_xor_si256(c2[9792],simde_mm256_xor_si256(c2[12442],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[2963],simde_mm256_xor_si256(c2[3491],simde_mm256_xor_si256(c2[5070],simde_mm256_xor_si256(c2[11938],simde_mm256_xor_si256(c2[14070],simde_mm256_xor_si256(c2[13538],simde_mm256_xor_si256(c2[11430],simde_mm256_xor_si256(c2[12510],simde_mm256_xor_si256(c2[13038],simde_mm256_xor_si256(c2[2475],simde_mm256_xor_si256(c2[11977],simde_mm256_xor_si256(c2[5667],simde_mm256_xor_si256(c2[6195],simde_mm256_xor_si256(c2[1979],simde_mm256_xor_si256(c2[9369],simde_mm256_xor_si256(c2[10443],simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[7281],simde_mm256_xor_si256(c2[9943],simde_mm256_xor_si256(c2[10471],simde_mm256_xor_si256(c2[9415],simde_mm256_xor_si256(c2[8888],simde_mm256_xor_si256(c2[11021],simde_mm256_xor_si256(c2[11549],simde_mm256_xor_si256(c2[6802],simde_mm256_xor_si256(c2[7854],simde_mm256_xor_si256(c2[5770],simde_mm256_xor_si256(c2[6298],simde_mm256_xor_si256(c2[7872],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[14242],simde_mm256_xor_si256(c2[14770],simde_mm256_xor_si256(c2[9483],c2[3683]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 2 - d2[24]=_mm256_xor_si256(c2[10569],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[7398],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[11096],_mm256_xor_si256(c2[10584],_mm256_xor_si256(c2[13759],_mm256_xor_si256(c2[14287],_mm256_xor_si256(c2[12170],_mm256_xor_si256(c2[12698],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[6442],_mm256_xor_si256(c2[6970],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[10664],_mm256_xor_si256(c2[11741],_mm256_xor_si256(c2[9100],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[13350],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[12865],_mm256_xor_si256(c2[13393],_mm256_xor_si256(c2[16065],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[16585],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[12442],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[11410],_mm256_xor_si256(c2[11938],_mm256_xor_si256(c2[14070],_mm256_xor_si256(c2[13010],_mm256_xor_si256(c2[13538],_mm256_xor_si256(c2[10902],_mm256_xor_si256(c2[11430],_mm256_xor_si256(c2[13038],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[11449],_mm256_xor_si256(c2[11977],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[9369],_mm256_xor_si256(c2[10443],_mm256_xor_si256(c2[1996],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[10471],_mm256_xor_si256(c2[8887],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[6802],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[14770],_mm256_xor_si256(c2[9483],_mm256_xor_si256(c2[3155],c2[3683])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[10569],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[6870],simde_mm256_xor_si256(c2[7398],simde_mm256_xor_si256(c2[10568],simde_mm256_xor_si256(c2[11096],simde_mm256_xor_si256(c2[10584],simde_mm256_xor_si256(c2[13759],simde_mm256_xor_si256(c2[14287],simde_mm256_xor_si256(c2[12170],simde_mm256_xor_si256(c2[12698],simde_mm256_xor_si256(c2[10081],simde_mm256_xor_si256(c2[6914],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[4810],simde_mm256_xor_si256(c2[9587],simde_mm256_xor_si256(c2[5354],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[6442],simde_mm256_xor_si256(c2[6970],simde_mm256_xor_si256(c2[10136],simde_mm256_xor_si256(c2[10664],simde_mm256_xor_si256(c2[11741],simde_mm256_xor_si256(c2[9100],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[13350],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[3846],simde_mm256_xor_si256(c2[4374],simde_mm256_xor_si256(c2[6514],simde_mm256_xor_si256(c2[5984],simde_mm256_xor_si256(c2[6512],simde_mm256_xor_si256(c2[13372],simde_mm256_xor_si256(c2[13900],simde_mm256_xor_si256(c2[6538],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[12865],simde_mm256_xor_si256(c2[13393],simde_mm256_xor_si256(c2[16065],simde_mm256_xor_si256(c2[10253],simde_mm256_xor_si256(c2[16585],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[2356],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[7659],simde_mm256_xor_si256(c2[4497],simde_mm256_xor_si256(c2[9249],simde_mm256_xor_si256(c2[9777],simde_mm256_xor_si256(c2[9792],simde_mm256_xor_si256(c2[12442],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[3491],simde_mm256_xor_si256(c2[4542],simde_mm256_xor_si256(c2[5070],simde_mm256_xor_si256(c2[11410],simde_mm256_xor_si256(c2[11938],simde_mm256_xor_si256(c2[14070],simde_mm256_xor_si256(c2[13010],simde_mm256_xor_si256(c2[13538],simde_mm256_xor_si256(c2[10902],simde_mm256_xor_si256(c2[11430],simde_mm256_xor_si256(c2[13038],simde_mm256_xor_si256(c2[2475],simde_mm256_xor_si256(c2[11449],simde_mm256_xor_si256(c2[11977],simde_mm256_xor_si256(c2[6195],simde_mm256_xor_si256(c2[1979],simde_mm256_xor_si256(c2[8841],simde_mm256_xor_si256(c2[9369],simde_mm256_xor_si256(c2[10443],simde_mm256_xor_si256(c2[1996],simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[6753],simde_mm256_xor_si256(c2[7281],simde_mm256_xor_si256(c2[10471],simde_mm256_xor_si256(c2[8887],simde_mm256_xor_si256(c2[9415],simde_mm256_xor_si256(c2[8360],simde_mm256_xor_si256(c2[8888],simde_mm256_xor_si256(c2[11549],simde_mm256_xor_si256(c2[6802],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[7854],simde_mm256_xor_si256(c2[6298],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[7872],simde_mm256_xor_si256(c2[4177],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[14770],simde_mm256_xor_si256(c2[9483],simde_mm256_xor_si256(c2[3155],c2[3683])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[36]=_mm256_xor_si256(c2[10569],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[7398],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[11096],_mm256_xor_si256(c2[10584],_mm256_xor_si256(c2[14287],_mm256_xor_si256(c2[12170],_mm256_xor_si256(c2[12698],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[6970],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[10664],_mm256_xor_si256(c2[11741],_mm256_xor_si256(c2[9100],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[13350],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[12865],_mm256_xor_si256(c2[13393],_mm256_xor_si256(c2[16065],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[12442],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[11410],_mm256_xor_si256(c2[11938],_mm256_xor_si256(c2[14070],_mm256_xor_si256(c2[13538],_mm256_xor_si256(c2[10902],_mm256_xor_si256(c2[11430],_mm256_xor_si256(c2[13038],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[11977],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[9369],_mm256_xor_si256(c2[10443],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[10471],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[6802],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[14770],_mm256_xor_si256(c2[9483],_mm256_xor_si256(c2[3155],c2[3683]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[36]=simde_mm256_xor_si256(c2[10569],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[7398],simde_mm256_xor_si256(c2[10568],simde_mm256_xor_si256(c2[11096],simde_mm256_xor_si256(c2[10584],simde_mm256_xor_si256(c2[14287],simde_mm256_xor_si256(c2[12170],simde_mm256_xor_si256(c2[12698],simde_mm256_xor_si256(c2[10081],simde_mm256_xor_si256(c2[6914],simde_mm256_xor_si256(c2[4810],simde_mm256_xor_si256(c2[9587],simde_mm256_xor_si256(c2[5354],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[6970],simde_mm256_xor_si256(c2[10136],simde_mm256_xor_si256(c2[10664],simde_mm256_xor_si256(c2[11741],simde_mm256_xor_si256(c2[9100],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[13350],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[3846],simde_mm256_xor_si256(c2[4374],simde_mm256_xor_si256(c2[6514],simde_mm256_xor_si256(c2[6512],simde_mm256_xor_si256(c2[13372],simde_mm256_xor_si256(c2[13900],simde_mm256_xor_si256(c2[6538],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[12865],simde_mm256_xor_si256(c2[13393],simde_mm256_xor_si256(c2[16065],simde_mm256_xor_si256(c2[10253],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[2356],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[7659],simde_mm256_xor_si256(c2[4497],simde_mm256_xor_si256(c2[9249],simde_mm256_xor_si256(c2[9777],simde_mm256_xor_si256(c2[9792],simde_mm256_xor_si256(c2[12442],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[3491],simde_mm256_xor_si256(c2[5070],simde_mm256_xor_si256(c2[11410],simde_mm256_xor_si256(c2[11938],simde_mm256_xor_si256(c2[14070],simde_mm256_xor_si256(c2[13538],simde_mm256_xor_si256(c2[10902],simde_mm256_xor_si256(c2[11430],simde_mm256_xor_si256(c2[13038],simde_mm256_xor_si256(c2[2475],simde_mm256_xor_si256(c2[11977],simde_mm256_xor_si256(c2[6195],simde_mm256_xor_si256(c2[1979],simde_mm256_xor_si256(c2[8841],simde_mm256_xor_si256(c2[9369],simde_mm256_xor_si256(c2[10443],simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[6753],simde_mm256_xor_si256(c2[7281],simde_mm256_xor_si256(c2[10471],simde_mm256_xor_si256(c2[9415],simde_mm256_xor_si256(c2[8360],simde_mm256_xor_si256(c2[8888],simde_mm256_xor_si256(c2[11549],simde_mm256_xor_si256(c2[6802],simde_mm256_xor_si256(c2[7854],simde_mm256_xor_si256(c2[6298],simde_mm256_xor_si256(c2[7872],simde_mm256_xor_si256(c2[4177],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[14770],simde_mm256_xor_si256(c2[9483],simde_mm256_xor_si256(c2[3155],c2[3683]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 4 - d2[48]=_mm256_xor_si256(c2[6346],c2[11117]); + d2[48]=simde_mm256_xor_si256(c2[6346],c2[11117]); //row: 5 - d2[60]=_mm256_xor_si256(c2[8450],_mm256_xor_si256(c2[4759],_mm256_xor_si256(c2[5291],_mm256_xor_si256(c2[8977],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[8477],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[10591],_mm256_xor_si256(c2[7416],_mm256_xor_si256(c2[7974],_mm256_xor_si256(c2[4807],_mm256_xor_si256(c2[2691],_mm256_xor_si256(c2[7468],_mm256_xor_si256(c2[3247],_mm256_xor_si256(c2[15388],_mm256_xor_si256(c2[10107],_mm256_xor_si256(c2[15409],_mm256_xor_si256(c2[4851],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[9634],_mm256_xor_si256(c2[6993],_mm256_xor_si256(c2[15432],_mm256_xor_si256(c2[11243],_mm256_xor_si256(c2[15993],_mm256_xor_si256(c2[2267],_mm256_xor_si256(c2[4395],_mm256_xor_si256(c2[4393],_mm256_xor_si256(c2[11793],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[15513],_mm256_xor_si256(c2[11286],_mm256_xor_si256(c2[13946],_mm256_xor_si256(c2[8146],_mm256_xor_si256(c2[15006],_mm256_xor_si256(c2[15553],_mm256_xor_si256(c2[16088],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[5552],_mm256_xor_si256(c2[2378],_mm256_xor_si256(c2[7658],_mm256_xor_si256(c2[7685],_mm256_xor_si256(c2[10323],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3461],_mm256_xor_si256(c2[1372],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[9819],_mm256_xor_si256(c2[11963],_mm256_xor_si256(c2[11431],_mm256_xor_si256(c2[9323],_mm256_xor_si256(c2[10931],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[9870],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[16755],_mm256_xor_si256(c2[7250],_mm256_xor_si256(c2[9367],_mm256_xor_si256(c2[8336],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[7296],_mm256_xor_si256(c2[6769],_mm256_xor_si256(c2[9442],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[4179],_mm256_xor_si256(c2[5765],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[12651],_mm256_xor_si256(c2[7376],_mm256_xor_si256(c2[1564],c2[10537])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[60]=simde_mm256_xor_si256(c2[8450],simde_mm256_xor_si256(c2[4759],simde_mm256_xor_si256(c2[5291],simde_mm256_xor_si256(c2[8977],simde_mm256_xor_si256(c2[1590],simde_mm256_xor_si256(c2[8477],simde_mm256_xor_si256(c2[12168],simde_mm256_xor_si256(c2[10591],simde_mm256_xor_si256(c2[7416],simde_mm256_xor_si256(c2[7974],simde_mm256_xor_si256(c2[4807],simde_mm256_xor_si256(c2[2691],simde_mm256_xor_si256(c2[7468],simde_mm256_xor_si256(c2[3247],simde_mm256_xor_si256(c2[15388],simde_mm256_xor_si256(c2[10107],simde_mm256_xor_si256(c2[15409],simde_mm256_xor_si256(c2[4851],simde_mm256_xor_si256(c2[8545],simde_mm256_xor_si256(c2[9634],simde_mm256_xor_si256(c2[6993],simde_mm256_xor_si256(c2[15432],simde_mm256_xor_si256(c2[11243],simde_mm256_xor_si256(c2[15993],simde_mm256_xor_si256(c2[2267],simde_mm256_xor_si256(c2[4395],simde_mm256_xor_si256(c2[4393],simde_mm256_xor_si256(c2[11793],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[15513],simde_mm256_xor_si256(c2[11286],simde_mm256_xor_si256(c2[13946],simde_mm256_xor_si256(c2[8146],simde_mm256_xor_si256(c2[15006],simde_mm256_xor_si256(c2[15553],simde_mm256_xor_si256(c2[16088],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[5552],simde_mm256_xor_si256(c2[2378],simde_mm256_xor_si256(c2[7658],simde_mm256_xor_si256(c2[7685],simde_mm256_xor_si256(c2[10323],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[3461],simde_mm256_xor_si256(c2[1372],simde_mm256_xor_si256(c2[2963],simde_mm256_xor_si256(c2[9819],simde_mm256_xor_si256(c2[11963],simde_mm256_xor_si256(c2[11431],simde_mm256_xor_si256(c2[9323],simde_mm256_xor_si256(c2[10931],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[9870],simde_mm256_xor_si256(c2[4088],simde_mm256_xor_si256(c2[16755],simde_mm256_xor_si256(c2[7250],simde_mm256_xor_si256(c2[9367],simde_mm256_xor_si256(c2[8336],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[5162],simde_mm256_xor_si256(c2[8352],simde_mm256_xor_si256(c2[7296],simde_mm256_xor_si256(c2[6769],simde_mm256_xor_si256(c2[9442],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[5747],simde_mm256_xor_si256(c2[4179],simde_mm256_xor_si256(c2[5765],simde_mm256_xor_si256(c2[2598],simde_mm256_xor_si256(c2[12651],simde_mm256_xor_si256(c2[7376],simde_mm256_xor_si256(c2[1564],c2[10537])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 6 - d2[72]=_mm256_xor_si256(c2[11624],_mm256_xor_si256(c2[680],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[16642],_mm256_xor_si256(c2[15098],_mm256_xor_si256(c2[15727],_mm256_xor_si256(c2[9936],c2[1015]))))))); + d2[72]=simde_mm256_xor_si256(c2[11624],simde_mm256_xor_si256(c2[680],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[16642],simde_mm256_xor_si256(c2[15098],simde_mm256_xor_si256(c2[15727],simde_mm256_xor_si256(c2[9936],c2[1015]))))))); //row: 7 - d2[84]=_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[15865],_mm256_xor_si256(c2[14889],_mm256_xor_si256(c2[7042],_mm256_xor_si256(c2[1257],c2[9843]))))); + d2[84]=simde_mm256_xor_si256(c2[4752],simde_mm256_xor_si256(c2[15865],simde_mm256_xor_si256(c2[14889],simde_mm256_xor_si256(c2[7042],simde_mm256_xor_si256(c2[1257],c2[9843]))))); //row: 8 - d2[96]=_mm256_xor_si256(c2[11627],_mm256_xor_si256(c2[15842],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[12151],_mm256_xor_si256(c2[8456],_mm256_xor_si256(c2[12155],_mm256_xor_si256(c2[12683],_mm256_xor_si256(c2[12154],_mm256_xor_si256(c2[15841],_mm256_xor_si256(c2[16369],_mm256_xor_si256(c2[10041],_mm256_xor_si256(c2[11642],_mm256_xor_si256(c2[15869],_mm256_xor_si256(c2[15345],_mm256_xor_si256(c2[2137],_mm256_xor_si256(c2[2665],_mm256_xor_si256(c2[13756],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[10061],_mm256_xor_si256(c2[11139],_mm256_xor_si256(c2[15366],_mm256_xor_si256(c2[7972],_mm256_xor_si256(c2[12199],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[9555],_mm256_xor_si256(c2[10083],_mm256_xor_si256(c2[10633],_mm256_xor_si256(c2[14860],_mm256_xor_si256(c2[6412],_mm256_xor_si256(c2[10639],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[5357],_mm256_xor_si256(c2[5885],_mm256_xor_si256(c2[2717],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[11715],_mm256_xor_si256(c2[12243],_mm256_xor_si256(c2[11722],_mm256_xor_si256(c2[15409],_mm256_xor_si256(c2[15937],_mm256_xor_si256(c2[12799],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[10158],_mm256_xor_si256(c2[14385],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[5401],_mm256_xor_si256(c2[5929],_mm256_xor_si256(c2[14408],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[5962],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[5432],_mm256_xor_si256(c2[9131],_mm256_xor_si256(c2[9659],_mm256_xor_si256(c2[7560],_mm256_xor_si256(c2[11787],_mm256_xor_si256(c2[7570],_mm256_xor_si256(c2[11257],_mm256_xor_si256(c2[11785],_mm256_xor_si256(c2[14958],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[7584],_mm256_xor_si256(c2[11811],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[5482],_mm256_xor_si256(c2[6010],_mm256_xor_si256(c2[14451],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[4443],_mm256_xor_si256(c2[11311],_mm256_xor_si256(c2[15538],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[5503],_mm256_xor_si256(c2[1835],_mm256_xor_si256(c2[6050],_mm256_xor_si256(c2[2358],_mm256_xor_si256(c2[6057],_mm256_xor_si256(c2[6585],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[7641],_mm256_xor_si256(c2[8169],_mm256_xor_si256(c2[8717],_mm256_xor_si256(c2[12944],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[9770],_mm256_xor_si256(c2[10835],_mm256_xor_si256(c2[14522],_mm256_xor_si256(c2[15050],_mm256_xor_si256(c2[10850],_mm256_xor_si256(c2[15077],_mm256_xor_si256(c2[13488],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[5577],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[4537],_mm256_xor_si256(c2[8764],_mm256_xor_si256(c2[6128],_mm256_xor_si256(c2[9827],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12984],_mm256_xor_si256(c2[16683],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[15128],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[14596],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1928],_mm256_xor_si256(c2[12488],_mm256_xor_si256(c2[16187],_mm256_xor_si256(c2[16715],_mm256_xor_si256(c2[14096],_mm256_xor_si256(c2[1416],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[7760],_mm256_xor_si256(c2[13035],_mm256_xor_si256(c2[16734],_mm256_xor_si256(c2[367],_mm256_xor_si256(c2[7253],_mm256_xor_si256(c2[11480],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[7252],_mm256_xor_si256(c2[10427],_mm256_xor_si256(c2[14114],_mm256_xor_si256(c2[14642],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[11501],_mm256_xor_si256(c2[15728],_mm256_xor_si256(c2[3582],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[7809],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[12026],_mm256_xor_si256(c2[12554],_mm256_xor_si256(c2[11529],_mm256_xor_si256(c2[15744],_mm256_xor_si256(c2[10473],_mm256_xor_si256(c2[14160],_mm256_xor_si256(c2[14688],_mm256_xor_si256(c2[9946],_mm256_xor_si256(c2[13633],_mm256_xor_si256(c2[14161],_mm256_xor_si256(c2[12607],_mm256_xor_si256(c2[16834],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[12075],_mm256_xor_si256(c2[8912],_mm256_xor_si256(c2[12611],_mm256_xor_si256(c2[13139],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[11571],_mm256_xor_si256(c2[8930],_mm256_xor_si256(c2[12629],_mm256_xor_si256(c2[13157],_mm256_xor_si256(c2[5763],_mm256_xor_si256(c2[9462],_mm256_xor_si256(c2[9990],_mm256_xor_si256(c2[15816],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[10541],_mm256_xor_si256(c2[14768],_mm256_xor_si256(c2[4729],_mm256_xor_si256(c2[8428],_mm256_xor_si256(c2[8956],c2[8963])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[96]=simde_mm256_xor_si256(c2[11627],simde_mm256_xor_si256(c2[15842],simde_mm256_xor_si256(c2[7924],simde_mm256_xor_si256(c2[12151],simde_mm256_xor_si256(c2[8456],simde_mm256_xor_si256(c2[12155],simde_mm256_xor_si256(c2[12683],simde_mm256_xor_si256(c2[12154],simde_mm256_xor_si256(c2[15841],simde_mm256_xor_si256(c2[16369],simde_mm256_xor_si256(c2[10041],simde_mm256_xor_si256(c2[11642],simde_mm256_xor_si256(c2[15869],simde_mm256_xor_si256(c2[15345],simde_mm256_xor_si256(c2[2137],simde_mm256_xor_si256(c2[2665],simde_mm256_xor_si256(c2[13756],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[10061],simde_mm256_xor_si256(c2[11139],simde_mm256_xor_si256(c2[15366],simde_mm256_xor_si256(c2[7972],simde_mm256_xor_si256(c2[12199],simde_mm256_xor_si256(c2[5856],simde_mm256_xor_si256(c2[9555],simde_mm256_xor_si256(c2[10083],simde_mm256_xor_si256(c2[10633],simde_mm256_xor_si256(c2[14860],simde_mm256_xor_si256(c2[6412],simde_mm256_xor_si256(c2[10639],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[5357],simde_mm256_xor_si256(c2[5885],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[1691],simde_mm256_xor_si256(c2[5906],simde_mm256_xor_si256(c2[8016],simde_mm256_xor_si256(c2[11715],simde_mm256_xor_si256(c2[12243],simde_mm256_xor_si256(c2[11722],simde_mm256_xor_si256(c2[15409],simde_mm256_xor_si256(c2[15937],simde_mm256_xor_si256(c2[12799],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[10158],simde_mm256_xor_si256(c2[14385],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[5401],simde_mm256_xor_si256(c2[5929],simde_mm256_xor_si256(c2[14408],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[2263],simde_mm256_xor_si256(c2[5962],simde_mm256_xor_si256(c2[6490],simde_mm256_xor_si256(c2[5432],simde_mm256_xor_si256(c2[9131],simde_mm256_xor_si256(c2[9659],simde_mm256_xor_si256(c2[7560],simde_mm256_xor_si256(c2[11787],simde_mm256_xor_si256(c2[7570],simde_mm256_xor_si256(c2[11257],simde_mm256_xor_si256(c2[11785],simde_mm256_xor_si256(c2[14958],simde_mm256_xor_si256(c2[1762],simde_mm256_xor_si256(c2[2290],simde_mm256_xor_si256(c2[7584],simde_mm256_xor_si256(c2[11811],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[5482],simde_mm256_xor_si256(c2[6010],simde_mm256_xor_si256(c2[14451],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[4443],simde_mm256_xor_si256(c2[11311],simde_mm256_xor_si256(c2[15538],simde_mm256_xor_si256(c2[1276],simde_mm256_xor_si256(c2[4975],simde_mm256_xor_si256(c2[5503],simde_mm256_xor_si256(c2[1835],simde_mm256_xor_si256(c2[6050],simde_mm256_xor_si256(c2[2358],simde_mm256_xor_si256(c2[6057],simde_mm256_xor_si256(c2[6585],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[7641],simde_mm256_xor_si256(c2[8169],simde_mm256_xor_si256(c2[8717],simde_mm256_xor_si256(c2[12944],simde_mm256_xor_si256(c2[5555],simde_mm256_xor_si256(c2[9770],simde_mm256_xor_si256(c2[10835],simde_mm256_xor_si256(c2[14522],simde_mm256_xor_si256(c2[15050],simde_mm256_xor_si256(c2[10850],simde_mm256_xor_si256(c2[15077],simde_mm256_xor_si256(c2[13488],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[5577],simde_mm256_xor_si256(c2[9264],simde_mm256_xor_si256(c2[9792],simde_mm256_xor_si256(c2[9792],simde_mm256_xor_si256(c2[4537],simde_mm256_xor_si256(c2[8764],simde_mm256_xor_si256(c2[6128],simde_mm256_xor_si256(c2[9827],simde_mm256_xor_si256(c2[10355],simde_mm256_xor_si256(c2[12984],simde_mm256_xor_si256(c2[16683],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[15128],simde_mm256_xor_si256(c2[2448],simde_mm256_xor_si256(c2[14596],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1928],simde_mm256_xor_si256(c2[12488],simde_mm256_xor_si256(c2[16187],simde_mm256_xor_si256(c2[16715],simde_mm256_xor_si256(c2[14096],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[7760],simde_mm256_xor_si256(c2[13035],simde_mm256_xor_si256(c2[16734],simde_mm256_xor_si256(c2[367],simde_mm256_xor_si256(c2[7253],simde_mm256_xor_si256(c2[11480],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[7252],simde_mm256_xor_si256(c2[10427],simde_mm256_xor_si256(c2[14114],simde_mm256_xor_si256(c2[14642],simde_mm256_xor_si256(c2[4081],simde_mm256_xor_si256(c2[11501],simde_mm256_xor_si256(c2[15728],simde_mm256_xor_si256(c2[3582],simde_mm256_xor_si256(c2[7281],simde_mm256_xor_si256(c2[7809],simde_mm256_xor_si256(c2[8339],simde_mm256_xor_si256(c2[12026],simde_mm256_xor_si256(c2[12554],simde_mm256_xor_si256(c2[11529],simde_mm256_xor_si256(c2[15744],simde_mm256_xor_si256(c2[10473],simde_mm256_xor_si256(c2[14160],simde_mm256_xor_si256(c2[14688],simde_mm256_xor_si256(c2[9946],simde_mm256_xor_si256(c2[13633],simde_mm256_xor_si256(c2[14161],simde_mm256_xor_si256(c2[12607],simde_mm256_xor_si256(c2[16834],simde_mm256_xor_si256(c2[7848],simde_mm256_xor_si256(c2[12075],simde_mm256_xor_si256(c2[8912],simde_mm256_xor_si256(c2[12611],simde_mm256_xor_si256(c2[13139],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[11571],simde_mm256_xor_si256(c2[8930],simde_mm256_xor_si256(c2[12629],simde_mm256_xor_si256(c2[13157],simde_mm256_xor_si256(c2[5763],simde_mm256_xor_si256(c2[9462],simde_mm256_xor_si256(c2[9990],simde_mm256_xor_si256(c2[15816],simde_mm256_xor_si256(c2[3148],simde_mm256_xor_si256(c2[10541],simde_mm256_xor_si256(c2[14768],simde_mm256_xor_si256(c2[4729],simde_mm256_xor_si256(c2[8428],simde_mm256_xor_si256(c2[8956],c2[8963])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[108]=_mm256_xor_si256(c2[7403],_mm256_xor_si256(c2[4255],_mm256_xor_si256(c2[778],_mm256_xor_si256(c2[2908],_mm256_xor_si256(c2[13513],_mm256_xor_si256(c2[8337],_mm256_xor_si256(c2[16801],c2[9986]))))))); + d2[108]=simde_mm256_xor_si256(c2[7403],simde_mm256_xor_si256(c2[4255],simde_mm256_xor_si256(c2[778],simde_mm256_xor_si256(c2[2908],simde_mm256_xor_si256(c2[13513],simde_mm256_xor_si256(c2[8337],simde_mm256_xor_si256(c2[16801],c2[9986]))))))); //row: 10 - d2[120]=_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[10090],_mm256_xor_si256(c2[9608],_mm256_xor_si256(c2[8091],_mm256_xor_si256(c2[16571],c2[1403]))))); + d2[120]=simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[10090],simde_mm256_xor_si256(c2[9608],simde_mm256_xor_si256(c2[8091],simde_mm256_xor_si256(c2[16571],c2[1403]))))); //row: 11 - d2[132]=_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[3169],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[13728],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[14260],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[3196],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[4254],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[2665],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[13776],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[11672],_mm256_xor_si256(c2[14833],_mm256_xor_si256(c2[16449],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[12216],_mm256_xor_si256(c2[15389],_mm256_xor_si256(c2[7474],_mm256_xor_si256(c2[10635],_mm256_xor_si256(c2[7495],_mm256_xor_si256(c2[10656],_mm256_xor_si256(c2[13832],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[15962],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[7518],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[3317],_mm256_xor_si256(c2[5962],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[11240],_mm256_xor_si256(c2[11236],_mm256_xor_si256(c2[14409],_mm256_xor_si256(c2[13376],_mm256_xor_si256(c2[16537],_mm256_xor_si256(c2[13374],_mm256_xor_si256(c2[16547],_mm256_xor_si256(c2[3867],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[13400],_mm256_xor_si256(c2[16561],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[10760],_mm256_xor_si256(c2[3360],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[6032],_mm256_xor_si256(c2[8665],_mm256_xor_si256(c2[9193],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[3393],_mm256_xor_si256(c2[7080],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[7639],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[8162],_mm256_xor_si256(c2[11335],_mm256_xor_si256(c2[9746],_mm256_xor_si256(c2[12919],_mm256_xor_si256(c2[14521],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[11359],_mm256_xor_si256(c2[14520],_mm256_xor_si256(c2[16639],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[16666],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[2409],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[14554],_mm256_xor_si256(c2[4512],_mm256_xor_si256(c2[10353],_mm256_xor_si256(c2[12986],_mm256_xor_si256(c2[13514],_mm256_xor_si256(c2[11932],_mm256_xor_si256(c2[15105],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[7210],_mm256_xor_si256(c2[3505],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[1397],_mm256_xor_si256(c2[4570],_mm256_xor_si256(c2[3005],_mm256_xor_si256(c2[5650],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[9337],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[5117],_mm256_xor_si256(c2[13057],_mm256_xor_si256(c2[15702],_mm256_xor_si256(c2[16230],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[16231],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[8305],_mm256_xor_si256(c2[410],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[9386],_mm256_xor_si256(c2[12559],_mm256_xor_si256(c2[14143],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3611],_mm256_xor_si256(c2[16277],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[15750],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[13664],_mm256_xor_si256(c2[16825],_mm256_xor_si256(c2[14716],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[13160],_mm256_xor_si256(c2[15793],_mm256_xor_si256(c2[16321],_mm256_xor_si256(c2[14746],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[11579],_mm256_xor_si256(c2[14740],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[7370],_mm256_xor_si256(c2[7898],_mm256_xor_si256(c2[16345],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[13706],c2[15293]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[132]=simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[3169],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[13728],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[14260],simde_mm256_xor_si256(c2[538],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[4224],simde_mm256_xor_si256(c2[8449],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[3196],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[4254],simde_mm256_xor_si256(c2[7427],simde_mm256_xor_si256(c2[2665],simde_mm256_xor_si256(c2[5838],simde_mm256_xor_si256(c2[3195],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[13776],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[11672],simde_mm256_xor_si256(c2[14833],simde_mm256_xor_si256(c2[16449],simde_mm256_xor_si256(c2[2187],simde_mm256_xor_si256(c2[2715],simde_mm256_xor_si256(c2[12216],simde_mm256_xor_si256(c2[15389],simde_mm256_xor_si256(c2[7474],simde_mm256_xor_si256(c2[10635],simde_mm256_xor_si256(c2[7495],simde_mm256_xor_si256(c2[10656],simde_mm256_xor_si256(c2[13832],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[4353],simde_mm256_xor_si256(c2[4881],simde_mm256_xor_si256(c2[15962],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[7518],simde_mm256_xor_si256(c2[10691],simde_mm256_xor_si256(c2[3317],simde_mm256_xor_si256(c2[5962],simde_mm256_xor_si256(c2[6490],simde_mm256_xor_si256(c2[8067],simde_mm256_xor_si256(c2[11240],simde_mm256_xor_si256(c2[11236],simde_mm256_xor_si256(c2[14409],simde_mm256_xor_si256(c2[13376],simde_mm256_xor_si256(c2[16537],simde_mm256_xor_si256(c2[13374],simde_mm256_xor_si256(c2[16547],simde_mm256_xor_si256(c2[3867],simde_mm256_xor_si256(c2[7040],simde_mm256_xor_si256(c2[13400],simde_mm256_xor_si256(c2[16561],simde_mm256_xor_si256(c2[7587],simde_mm256_xor_si256(c2[10760],simde_mm256_xor_si256(c2[3360],simde_mm256_xor_si256(c2[6533],simde_mm256_xor_si256(c2[6032],simde_mm256_xor_si256(c2[8665],simde_mm256_xor_si256(c2[9193],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[3393],simde_mm256_xor_si256(c2[7080],simde_mm256_xor_si256(c2[10253],simde_mm256_xor_si256(c2[7639],simde_mm256_xor_si256(c2[10272],simde_mm256_xor_si256(c2[10800],simde_mm256_xor_si256(c2[8162],simde_mm256_xor_si256(c2[11335],simde_mm256_xor_si256(c2[9746],simde_mm256_xor_si256(c2[12919],simde_mm256_xor_si256(c2[14521],simde_mm256_xor_si256(c2[271],simde_mm256_xor_si256(c2[799],simde_mm256_xor_si256(c2[11359],simde_mm256_xor_si256(c2[14520],simde_mm256_xor_si256(c2[16639],simde_mm256_xor_si256(c2[2905],simde_mm256_xor_si256(c2[16666],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[2932],simde_mm256_xor_si256(c2[2409],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[11381],simde_mm256_xor_si256(c2[14554],simde_mm256_xor_si256(c2[4512],simde_mm256_xor_si256(c2[10353],simde_mm256_xor_si256(c2[12986],simde_mm256_xor_si256(c2[13514],simde_mm256_xor_si256(c2[11932],simde_mm256_xor_si256(c2[15105],simde_mm256_xor_si256(c2[1905],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[7210],simde_mm256_xor_si256(c2[3505],simde_mm256_xor_si256(c2[6678],simde_mm256_xor_si256(c2[1397],simde_mm256_xor_si256(c2[4570],simde_mm256_xor_si256(c2[3005],simde_mm256_xor_si256(c2[5650],simde_mm256_xor_si256(c2[6178],simde_mm256_xor_si256(c2[9337],simde_mm256_xor_si256(c2[12510],simde_mm256_xor_si256(c2[1944],simde_mm256_xor_si256(c2[5117],simde_mm256_xor_si256(c2[13057],simde_mm256_xor_si256(c2[15702],simde_mm256_xor_si256(c2[16230],simde_mm256_xor_si256(c2[8841],simde_mm256_xor_si256(c2[12002],simde_mm256_xor_si256(c2[16231],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[8305],simde_mm256_xor_si256(c2[410],simde_mm256_xor_si256(c2[3583],simde_mm256_xor_si256(c2[9386],simde_mm256_xor_si256(c2[12559],simde_mm256_xor_si256(c2[14143],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[438],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[3611],simde_mm256_xor_si256(c2[16277],simde_mm256_xor_si256(c2[2555],simde_mm256_xor_si256(c2[15750],simde_mm256_xor_si256(c2[2016],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[4689],simde_mm256_xor_si256(c2[13664],simde_mm256_xor_si256(c2[16825],simde_mm256_xor_si256(c2[14716],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[13160],simde_mm256_xor_si256(c2[15793],simde_mm256_xor_si256(c2[16321],simde_mm256_xor_si256(c2[14746],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[11579],simde_mm256_xor_si256(c2[14740],simde_mm256_xor_si256(c2[4737],simde_mm256_xor_si256(c2[7370],simde_mm256_xor_si256(c2[7898],simde_mm256_xor_si256(c2[16345],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[10545],simde_mm256_xor_si256(c2[13706],c2[15293]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 12 - d2[144]=_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[13757],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[4495],_mm256_xor_si256(c2[9817],c2[5714]))))); + d2[144]=simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[13757],simde_mm256_xor_si256(c2[7637],simde_mm256_xor_si256(c2[4495],simde_mm256_xor_si256(c2[9817],c2[5714]))))); //row: 13 - d2[156]=_mm256_xor_si256(c2[2649],_mm256_xor_si256(c2[3177],_mm256_xor_si256(c2[16369],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[3704],_mm256_xor_si256(c2[13209],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[6895],_mm256_xor_si256(c2[5306],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[16417],_mm256_xor_si256(c2[14313],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[14857],_mm256_xor_si256(c2[10115],_mm256_xor_si256(c2[9053],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[16473],_mm256_xor_si256(c2[3272],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[10159],_mm256_xor_si256(c2[5430],_mm256_xor_si256(c2[5958],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[13877],_mm256_xor_si256(c2[16017],_mm256_xor_si256(c2[16015],_mm256_xor_si256(c2[6508],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[16041],_mm256_xor_si256(c2[10228],_mm256_xor_si256(c2[6001],_mm256_xor_si256(c2[8145],_mm256_xor_si256(c2[8673],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[9721],_mm256_xor_si256(c2[9752],_mm256_xor_si256(c2[10280],_mm256_xor_si256(c2[10803],_mm256_xor_si256(c2[12387],_mm256_xor_si256(c2[16634],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[14000],_mm256_xor_si256(c2[2385],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5050],_mm256_xor_si256(c2[14022],_mm256_xor_si256(c2[12466],_mm256_xor_si256(c2[12994],_mm256_xor_si256(c2[14573],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[6146],_mm256_xor_si256(c2[4038],_mm256_xor_si256(c2[5118],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[11978],_mm256_xor_si256(c2[4585],_mm256_xor_si256(c2[15170],_mm256_xor_si256(c2[15698],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[3051],_mm256_xor_si256(c2[12027],_mm256_xor_si256(c2[16784],_mm256_xor_si256(c2[2551],_mm256_xor_si256(c2[3079],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[1496],_mm256_xor_si256(c2[3629],_mm256_xor_si256(c2[4157],_mm256_xor_si256(c2[16305],_mm256_xor_si256(c2[462],_mm256_xor_si256(c2[15273],_mm256_xor_si256(c2[15801],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[14208],_mm256_xor_si256(c2[10515],_mm256_xor_si256(c2[6850],_mm256_xor_si256(c2[7378],_mm256_xor_si256(c2[2091],c2[13186]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[156]=simde_mm256_xor_si256(c2[2649],simde_mm256_xor_si256(c2[3177],simde_mm256_xor_si256(c2[16369],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[3704],simde_mm256_xor_si256(c2[13209],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[3192],simde_mm256_xor_si256(c2[6895],simde_mm256_xor_si256(c2[5306],simde_mm256_xor_si256(c2[2161],simde_mm256_xor_si256(c2[2689],simde_mm256_xor_si256(c2[16417],simde_mm256_xor_si256(c2[14313],simde_mm256_xor_si256(c2[1667],simde_mm256_xor_si256(c2[2195],simde_mm256_xor_si256(c2[14857],simde_mm256_xor_si256(c2[10115],simde_mm256_xor_si256(c2[9053],simde_mm256_xor_si256(c2[10136],simde_mm256_xor_si256(c2[16473],simde_mm256_xor_si256(c2[3272],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[4349],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[10159],simde_mm256_xor_si256(c2[5430],simde_mm256_xor_si256(c2[5958],simde_mm256_xor_si256(c2[10708],simde_mm256_xor_si256(c2[13877],simde_mm256_xor_si256(c2[16017],simde_mm256_xor_si256(c2[16015],simde_mm256_xor_si256(c2[6508],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[16041],simde_mm256_xor_si256(c2[10228],simde_mm256_xor_si256(c2[6001],simde_mm256_xor_si256(c2[8145],simde_mm256_xor_si256(c2[8673],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[9721],simde_mm256_xor_si256(c2[9752],simde_mm256_xor_si256(c2[10280],simde_mm256_xor_si256(c2[10803],simde_mm256_xor_si256(c2[12387],simde_mm256_xor_si256(c2[16634],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[14000],simde_mm256_xor_si256(c2[2385],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[5050],simde_mm256_xor_si256(c2[14022],simde_mm256_xor_si256(c2[12466],simde_mm256_xor_si256(c2[12994],simde_mm256_xor_si256(c2[14573],simde_mm256_xor_si256(c2[4546],simde_mm256_xor_si256(c2[6678],simde_mm256_xor_si256(c2[6146],simde_mm256_xor_si256(c2[4038],simde_mm256_xor_si256(c2[5118],simde_mm256_xor_si256(c2[5646],simde_mm256_xor_si256(c2[11978],simde_mm256_xor_si256(c2[4585],simde_mm256_xor_si256(c2[15170],simde_mm256_xor_si256(c2[15698],simde_mm256_xor_si256(c2[11482],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[3051],simde_mm256_xor_si256(c2[12027],simde_mm256_xor_si256(c2[16784],simde_mm256_xor_si256(c2[2551],simde_mm256_xor_si256(c2[3079],simde_mm256_xor_si256(c2[2023],simde_mm256_xor_si256(c2[1496],simde_mm256_xor_si256(c2[3629],simde_mm256_xor_si256(c2[4157],simde_mm256_xor_si256(c2[16305],simde_mm256_xor_si256(c2[462],simde_mm256_xor_si256(c2[15273],simde_mm256_xor_si256(c2[15801],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[14208],simde_mm256_xor_si256(c2[10515],simde_mm256_xor_si256(c2[6850],simde_mm256_xor_si256(c2[7378],simde_mm256_xor_si256(c2[2091],c2[13186]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 14 - d2[168]=_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[12967],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[13586],_mm256_xor_si256(c2[14674],c2[6840]))))); + d2[168]=simde_mm256_xor_si256(c2[7396],simde_mm256_xor_si256(c2[12967],simde_mm256_xor_si256(c2[5116],simde_mm256_xor_si256(c2[13586],simde_mm256_xor_si256(c2[14674],c2[6840]))))); //row: 15 - d2[180]=_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[13738],_mm256_xor_si256(c2[14258],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[8983],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[4252],_mm256_xor_si256(c2[2147],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[13786],_mm256_xor_si256(c2[11670],_mm256_xor_si256(c2[16447],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[13830],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[1706],_mm256_xor_si256(c2[15960],_mm256_xor_si256(c2[7516],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[8065],_mm256_xor_si256(c2[10706],_mm256_xor_si256(c2[11234],_mm256_xor_si256(c2[13374],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[3865],_mm256_xor_si256(c2[13398],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[2842],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[6030],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[8160],_mm256_xor_si256(c2[9216],_mm256_xor_si256(c2[9744],_mm256_xor_si256(c2[9750],_mm256_xor_si256(c2[14531],_mm256_xor_si256(c2[11357],_mm256_xor_si256(c2[16109],_mm256_xor_si256(c2[16637],_mm256_xor_si256(c2[16664],_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[10851],_mm256_xor_si256(c2[11379],_mm256_xor_si256(c2[10351],_mm256_xor_si256(c2[11930],_mm256_xor_si256(c2[1375],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[16161],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[3515],_mm256_xor_si256(c2[867],_mm256_xor_si256(c2[1395],_mm256_xor_si256(c2[3003],_mm256_xor_si256(c2[9347],_mm256_xor_si256(c2[1954],_mm256_xor_si256(c2[13067],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[15701],_mm256_xor_si256(c2[16229],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[13613],_mm256_xor_si256(c2[14141],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[16275],_mm256_xor_si256(c2[15220],_mm256_xor_si256(c2[15748],_mm256_xor_si256(c2[12577],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[13662],_mm256_xor_si256(c2[14714],_mm256_xor_si256(c2[13158],_mm256_xor_si256(c2[14744],_mm256_xor_si256(c2[11049],_mm256_xor_si256(c2[11577],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[16355],_mm256_xor_si256(c2[10015],c2[10543])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[180]=simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[13738],simde_mm256_xor_si256(c2[14258],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[1061],simde_mm256_xor_si256(c2[8983],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[4252],simde_mm256_xor_si256(c2[2147],simde_mm256_xor_si256(c2[2675],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[13786],simde_mm256_xor_si256(c2[11670],simde_mm256_xor_si256(c2[16447],simde_mm256_xor_si256(c2[12226],simde_mm256_xor_si256(c2[6944],simde_mm256_xor_si256(c2[7472],simde_mm256_xor_si256(c2[7493],simde_mm256_xor_si256(c2[13830],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[1706],simde_mm256_xor_si256(c2[15960],simde_mm256_xor_si256(c2[7516],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[8065],simde_mm256_xor_si256(c2[10706],simde_mm256_xor_si256(c2[11234],simde_mm256_xor_si256(c2[13374],simde_mm256_xor_si256(c2[13372],simde_mm256_xor_si256(c2[3337],simde_mm256_xor_si256(c2[3865],simde_mm256_xor_si256(c2[13398],simde_mm256_xor_si256(c2[7585],simde_mm256_xor_si256(c2[2842],simde_mm256_xor_si256(c2[3370],simde_mm256_xor_si256(c2[6030],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[7090],simde_mm256_xor_si256(c2[7637],simde_mm256_xor_si256(c2[8160],simde_mm256_xor_si256(c2[9216],simde_mm256_xor_si256(c2[9744],simde_mm256_xor_si256(c2[9750],simde_mm256_xor_si256(c2[14531],simde_mm256_xor_si256(c2[11357],simde_mm256_xor_si256(c2[16109],simde_mm256_xor_si256(c2[16637],simde_mm256_xor_si256(c2[16664],simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[10851],simde_mm256_xor_si256(c2[11379],simde_mm256_xor_si256(c2[10351],simde_mm256_xor_si256(c2[11930],simde_mm256_xor_si256(c2[1375],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[16161],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[3515],simde_mm256_xor_si256(c2[867],simde_mm256_xor_si256(c2[1395],simde_mm256_xor_si256(c2[3003],simde_mm256_xor_si256(c2[9347],simde_mm256_xor_si256(c2[1954],simde_mm256_xor_si256(c2[13067],simde_mm256_xor_si256(c2[8839],simde_mm256_xor_si256(c2[15701],simde_mm256_xor_si256(c2[16229],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[9384],simde_mm256_xor_si256(c2[13613],simde_mm256_xor_si256(c2[14141],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[16275],simde_mm256_xor_si256(c2[15220],simde_mm256_xor_si256(c2[15748],simde_mm256_xor_si256(c2[12577],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[13662],simde_mm256_xor_si256(c2[14714],simde_mm256_xor_si256(c2[13158],simde_mm256_xor_si256(c2[14744],simde_mm256_xor_si256(c2[11049],simde_mm256_xor_si256(c2[11577],simde_mm256_xor_si256(c2[4735],simde_mm256_xor_si256(c2[16355],simde_mm256_xor_si256(c2[10015],c2[10543])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[192]=_mm256_xor_si256(c2[6347],_mm256_xor_si256(c2[2644],_mm256_xor_si256(c2[3176],_mm256_xor_si256(c2[6874],_mm256_xor_si256(c2[6362],_mm256_xor_si256(c2[10065],_mm256_xor_si256(c2[8476],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[5859],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[1132],_mm256_xor_si256(c2[13273],_mm256_xor_si256(c2[9586],_mm256_xor_si256(c2[13306],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[6442],_mm256_xor_si256(c2[7519],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[9128],_mm256_xor_si256(c2[13878],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[2280],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[9678],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[13398],_mm256_xor_si256(c2[9171],_mm256_xor_si256(c2[11843],_mm256_xor_si256(c2[6031],_mm256_xor_si256(c2[12891],_mm256_xor_si256(c2[13450],_mm256_xor_si256(c2[13973],_mm256_xor_si256(c2[15557],_mm256_xor_si256(c2[3437],_mm256_xor_si256(c2[275],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[13465],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[8208],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[16152],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[9848],_mm256_xor_si256(c2[9316],_mm256_xor_si256(c2[7208],_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[15148],_mm256_xor_si256(c2[7755],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[14640],_mm256_xor_si256(c2[5147],_mm256_xor_si256(c2[6221],_mm256_xor_si256(c2[15197],_mm256_xor_si256(c2[3059],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[5193],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[7327],_mm256_xor_si256(c2[2568],_mm256_xor_si256(c2[3632],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[3650],_mm256_xor_si256(c2[483],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[10536],_mm256_xor_si256(c2[5261],c2[16344])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[192]=simde_mm256_xor_si256(c2[6347],simde_mm256_xor_si256(c2[2644],simde_mm256_xor_si256(c2[3176],simde_mm256_xor_si256(c2[6874],simde_mm256_xor_si256(c2[6362],simde_mm256_xor_si256(c2[10065],simde_mm256_xor_si256(c2[8476],simde_mm256_xor_si256(c2[6888],simde_mm256_xor_si256(c2[5859],simde_mm256_xor_si256(c2[2692],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[5353],simde_mm256_xor_si256(c2[1132],simde_mm256_xor_si256(c2[13273],simde_mm256_xor_si256(c2[9586],simde_mm256_xor_si256(c2[13306],simde_mm256_xor_si256(c2[2736],simde_mm256_xor_si256(c2[6442],simde_mm256_xor_si256(c2[7519],simde_mm256_xor_si256(c2[4878],simde_mm256_xor_si256(c2[13329],simde_mm256_xor_si256(c2[9128],simde_mm256_xor_si256(c2[13878],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[2280],simde_mm256_xor_si256(c2[2290],simde_mm256_xor_si256(c2[9678],simde_mm256_xor_si256(c2[2304],simde_mm256_xor_si256(c2[13398],simde_mm256_xor_si256(c2[9171],simde_mm256_xor_si256(c2[11843],simde_mm256_xor_si256(c2[6031],simde_mm256_xor_si256(c2[12891],simde_mm256_xor_si256(c2[13450],simde_mm256_xor_si256(c2[13973],simde_mm256_xor_si256(c2[15557],simde_mm256_xor_si256(c2[3437],simde_mm256_xor_si256(c2[275],simde_mm256_xor_si256(c2[5555],simde_mm256_xor_si256(c2[13465],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[8208],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[16152],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[7704],simde_mm256_xor_si256(c2[9848],simde_mm256_xor_si256(c2[9316],simde_mm256_xor_si256(c2[7208],simde_mm256_xor_si256(c2[8816],simde_mm256_xor_si256(c2[15148],simde_mm256_xor_si256(c2[7755],simde_mm256_xor_si256(c2[1973],simde_mm256_xor_si256(c2[14640],simde_mm256_xor_si256(c2[5147],simde_mm256_xor_si256(c2[6221],simde_mm256_xor_si256(c2[15197],simde_mm256_xor_si256(c2[3059],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[5193],simde_mm256_xor_si256(c2[4666],simde_mm256_xor_si256(c2[7327],simde_mm256_xor_si256(c2[2568],simde_mm256_xor_si256(c2[3632],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[3650],simde_mm256_xor_si256(c2[483],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[10536],simde_mm256_xor_si256(c2[5261],c2[16344])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[204]=_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[8265],_mm256_xor_si256(c2[9362],_mm256_xor_si256(c2[3587],c2[12659])))); + d2[204]=simde_mm256_xor_si256(c2[2120],simde_mm256_xor_si256(c2[8265],simde_mm256_xor_si256(c2[9362],simde_mm256_xor_si256(c2[3587],c2[12659])))); //row: 18 - d2[216]=_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[12992],_mm256_xor_si256(c2[2548],c2[2568])))); + d2[216]=simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[12992],simde_mm256_xor_si256(c2[2548],c2[2568])))); //row: 19 - d2[228]=_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[11118],_mm256_xor_si256(c2[12850],_mm256_xor_si256(c2[9703],c2[2886])))); + d2[228]=simde_mm256_xor_si256(c2[8980],simde_mm256_xor_si256(c2[11118],simde_mm256_xor_si256(c2[12850],simde_mm256_xor_si256(c2[9703],c2[2886])))); //row: 20 - d2[240]=_mm256_xor_si256(c2[7403],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[4232],_mm256_xor_si256(c2[7930],_mm256_xor_si256(c2[14261],_mm256_xor_si256(c2[7418],_mm256_xor_si256(c2[11121],_mm256_xor_si256(c2[9532],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[1632],_mm256_xor_si256(c2[6409],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[14329],_mm256_xor_si256(c2[7470],_mm256_xor_si256(c2[14362],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[7498],_mm256_xor_si256(c2[8575],_mm256_xor_si256(c2[5934],_mm256_xor_si256(c2[14385],_mm256_xor_si256(c2[10184],_mm256_xor_si256(c2[14934],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[3346],_mm256_xor_si256(c2[10734],_mm256_xor_si256(c2[3360],_mm256_xor_si256(c2[14454],_mm256_xor_si256(c2[10227],_mm256_xor_si256(c2[12899],_mm256_xor_si256(c2[7087],_mm256_xor_si256(c2[13947],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[14506],_mm256_xor_si256(c2[15029],_mm256_xor_si256(c2[16613],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[6611],_mm256_xor_si256(c2[11362],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[1353],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[8760],_mm256_xor_si256(c2[10904],_mm256_xor_si256(c2[10372],_mm256_xor_si256(c2[8264],_mm256_xor_si256(c2[9872],_mm256_xor_si256(c2[16204],_mm256_xor_si256(c2[8811],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[15696],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[7277],_mm256_xor_si256(c2[16253],_mm256_xor_si256(c2[4115],_mm256_xor_si256(c2[7305],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[5722],_mm256_xor_si256(c2[8383],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[11592],_mm256_xor_si256(c2[6317],c2[505])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[240]=simde_mm256_xor_si256(c2[7403],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[4232],simde_mm256_xor_si256(c2[7930],simde_mm256_xor_si256(c2[14261],simde_mm256_xor_si256(c2[7418],simde_mm256_xor_si256(c2[11121],simde_mm256_xor_si256(c2[9532],simde_mm256_xor_si256(c2[6915],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[1632],simde_mm256_xor_si256(c2[6409],simde_mm256_xor_si256(c2[2188],simde_mm256_xor_si256(c2[14329],simde_mm256_xor_si256(c2[7470],simde_mm256_xor_si256(c2[14362],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[7498],simde_mm256_xor_si256(c2[8575],simde_mm256_xor_si256(c2[5934],simde_mm256_xor_si256(c2[14385],simde_mm256_xor_si256(c2[10184],simde_mm256_xor_si256(c2[14934],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[3346],simde_mm256_xor_si256(c2[10734],simde_mm256_xor_si256(c2[3360],simde_mm256_xor_si256(c2[14454],simde_mm256_xor_si256(c2[10227],simde_mm256_xor_si256(c2[12899],simde_mm256_xor_si256(c2[7087],simde_mm256_xor_si256(c2[13947],simde_mm256_xor_si256(c2[4448],simde_mm256_xor_si256(c2[14506],simde_mm256_xor_si256(c2[15029],simde_mm256_xor_si256(c2[16613],simde_mm256_xor_si256(c2[4493],simde_mm256_xor_si256(c2[1331],simde_mm256_xor_si256(c2[6611],simde_mm256_xor_si256(c2[11362],simde_mm256_xor_si256(c2[6626],simde_mm256_xor_si256(c2[9264],simde_mm256_xor_si256(c2[1353],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[8760],simde_mm256_xor_si256(c2[10904],simde_mm256_xor_si256(c2[10372],simde_mm256_xor_si256(c2[8264],simde_mm256_xor_si256(c2[9872],simde_mm256_xor_si256(c2[16204],simde_mm256_xor_si256(c2[8811],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[15696],simde_mm256_xor_si256(c2[6203],simde_mm256_xor_si256(c2[7277],simde_mm256_xor_si256(c2[16253],simde_mm256_xor_si256(c2[4115],simde_mm256_xor_si256(c2[7305],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[5722],simde_mm256_xor_si256(c2[8383],simde_mm256_xor_si256(c2[3624],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[4706],simde_mm256_xor_si256(c2[1539],simde_mm256_xor_si256(c2[11592],simde_mm256_xor_si256(c2[6317],c2[505])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 21 - d2[252]=_mm256_xor_si256(c2[6894],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[4618],_mm256_xor_si256(c2[11574],c2[1035])))); + d2[252]=simde_mm256_xor_si256(c2[6894],simde_mm256_xor_si256(c2[3291],simde_mm256_xor_si256(c2[4618],simde_mm256_xor_si256(c2[11574],c2[1035])))); //row: 22 - d2[264]=_mm256_xor_si256(c2[15840],_mm256_xor_si256(c2[6096],_mm256_xor_si256(c2[5071],c2[12024]))); + d2[264]=simde_mm256_xor_si256(c2[15840],simde_mm256_xor_si256(c2[6096],simde_mm256_xor_si256(c2[5071],c2[12024]))); //row: 23 - d2[276]=_mm256_xor_si256(c2[12696],_mm256_xor_si256(c2[13250],_mm256_xor_si256(c2[15553],c2[14688]))); + d2[276]=simde_mm256_xor_si256(c2[12696],simde_mm256_xor_si256(c2[13250],simde_mm256_xor_si256(c2[15553],c2[14688]))); //row: 24 - d2[288]=_mm256_xor_si256(c2[15316],_mm256_xor_si256(c2[11625],_mm256_xor_si256(c2[12145],_mm256_xor_si256(c2[15843],_mm256_xor_si256(c2[5289],_mm256_xor_si256(c2[15343],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[562],_mm256_xor_si256(c2[14840],_mm256_xor_si256(c2[11673],_mm256_xor_si256(c2[9557],_mm256_xor_si256(c2[14334],_mm256_xor_si256(c2[10113],_mm256_xor_si256(c2[5359],_mm256_xor_si256(c2[15916],_mm256_xor_si256(c2[5380],_mm256_xor_si256(c2[11717],_mm256_xor_si256(c2[15411],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[16488],_mm256_xor_si256(c2[13859],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[5952],_mm256_xor_si256(c2[9121],_mm256_xor_si256(c2[11261],_mm256_xor_si256(c2[11259],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[11285],_mm256_xor_si256(c2[5472],_mm256_xor_si256(c2[1257],_mm256_xor_si256(c2[3917],_mm256_xor_si256(c2[15000],_mm256_xor_si256(c2[4977],_mm256_xor_si256(c2[5524],_mm256_xor_si256(c2[6059],_mm256_xor_si256(c2[7643],_mm256_xor_si256(c2[12418],_mm256_xor_si256(c2[9244],_mm256_xor_si256(c2[14524],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[14551],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[9266],_mm256_xor_si256(c2[8238],_mm256_xor_si256(c2[9817],_mm256_xor_si256(c2[16685],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[16177],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[7234],_mm256_xor_si256(c2[16736],_mm256_xor_si256(c2[10954],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[14116],_mm256_xor_si256(c2[15202],_mm256_xor_si256(c2[7283],_mm256_xor_si256(c2[12028],_mm256_xor_si256(c2[15218],_mm256_xor_si256(c2[14162],_mm256_xor_si256(c2[13635],_mm256_xor_si256(c2[16296],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[12601],_mm256_xor_si256(c2[11045],_mm256_xor_si256(c2[12631],_mm256_xor_si256(c2[9464],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[14242],c2[8430])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[288]=simde_mm256_xor_si256(c2[15316],simde_mm256_xor_si256(c2[11625],simde_mm256_xor_si256(c2[12145],simde_mm256_xor_si256(c2[15843],simde_mm256_xor_si256(c2[5289],simde_mm256_xor_si256(c2[15343],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[562],simde_mm256_xor_si256(c2[14840],simde_mm256_xor_si256(c2[11673],simde_mm256_xor_si256(c2[9557],simde_mm256_xor_si256(c2[14334],simde_mm256_xor_si256(c2[10113],simde_mm256_xor_si256(c2[5359],simde_mm256_xor_si256(c2[15916],simde_mm256_xor_si256(c2[5380],simde_mm256_xor_si256(c2[11717],simde_mm256_xor_si256(c2[15411],simde_mm256_xor_si256(c2[5911],simde_mm256_xor_si256(c2[16488],simde_mm256_xor_si256(c2[13859],simde_mm256_xor_si256(c2[5403],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[5952],simde_mm256_xor_si256(c2[9121],simde_mm256_xor_si256(c2[11261],simde_mm256_xor_si256(c2[11259],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[11285],simde_mm256_xor_si256(c2[5472],simde_mm256_xor_si256(c2[1257],simde_mm256_xor_si256(c2[3917],simde_mm256_xor_si256(c2[15000],simde_mm256_xor_si256(c2[4977],simde_mm256_xor_si256(c2[5524],simde_mm256_xor_si256(c2[6059],simde_mm256_xor_si256(c2[7643],simde_mm256_xor_si256(c2[12418],simde_mm256_xor_si256(c2[9244],simde_mm256_xor_si256(c2[14524],simde_mm256_xor_si256(c2[10306],simde_mm256_xor_si256(c2[14551],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[9266],simde_mm256_xor_si256(c2[8238],simde_mm256_xor_si256(c2[9817],simde_mm256_xor_si256(c2[16685],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[1402],simde_mm256_xor_si256(c2[16177],simde_mm256_xor_si256(c2[890],simde_mm256_xor_si256(c2[7234],simde_mm256_xor_si256(c2[16736],simde_mm256_xor_si256(c2[10954],simde_mm256_xor_si256(c2[6726],simde_mm256_xor_si256(c2[14116],simde_mm256_xor_si256(c2[15202],simde_mm256_xor_si256(c2[7283],simde_mm256_xor_si256(c2[12028],simde_mm256_xor_si256(c2[15218],simde_mm256_xor_si256(c2[14162],simde_mm256_xor_si256(c2[13635],simde_mm256_xor_si256(c2[16296],simde_mm256_xor_si256(c2[11549],simde_mm256_xor_si256(c2[12601],simde_mm256_xor_si256(c2[11045],simde_mm256_xor_si256(c2[12631],simde_mm256_xor_si256(c2[9464],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[14242],c2[8430])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 25 - d2[300]=_mm256_xor_si256(c2[4250],_mm256_xor_si256(c2[9120],_mm256_xor_si256(c2[16547],c2[13017]))); + d2[300]=simde_mm256_xor_si256(c2[4250],simde_mm256_xor_si256(c2[9120],simde_mm256_xor_si256(c2[16547],c2[13017]))); //row: 26 - d2[312]=_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[9026],_mm256_xor_si256(c2[6434],c2[4588]))); + d2[312]=simde_mm256_xor_si256(c2[3698],simde_mm256_xor_si256(c2[9026],simde_mm256_xor_si256(c2[6434],c2[4588]))); //row: 27 - d2[324]=_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[1206],c2[2835])); + d2[324]=simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[1206],c2[2835])); //row: 28 - d2[336]=_mm256_xor_si256(c2[15846],_mm256_xor_si256(c2[10128],_mm256_xor_si256(c2[11023],c2[10016]))); + d2[336]=simde_mm256_xor_si256(c2[15846],simde_mm256_xor_si256(c2[10128],simde_mm256_xor_si256(c2[11023],c2[10016]))); //row: 29 - d2[348]=_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[14260],_mm256_xor_si256(c2[14792],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[1595],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[4786],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[14815],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[14308],_mm256_xor_si256(c2[12192],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[12748],_mm256_xor_si256(c2[7466],_mm256_xor_si256(c2[7994],_mm256_xor_si256(c2[8027],_mm256_xor_si256(c2[14352],_mm256_xor_si256(c2[635],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[16494],_mm256_xor_si256(c2[8050],_mm256_xor_si256(c2[3849],_mm256_xor_si256(c2[8599],_mm256_xor_si256(c2[11240],_mm256_xor_si256(c2[11768],_mm256_xor_si256(c2[13896],_mm256_xor_si256(c2[13906],_mm256_xor_si256(c2[3871],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[13920],_mm256_xor_si256(c2[8119],_mm256_xor_si256(c2[3364],_mm256_xor_si256(c2[3892],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[7612],_mm256_xor_si256(c2[8171],_mm256_xor_si256(c2[8694],_mm256_xor_si256(c2[9750],_mm256_xor_si256(c2[10278],_mm256_xor_si256(c2[15053],_mm256_xor_si256(c2[11891],_mm256_xor_si256(c2[16643],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[11385],_mm256_xor_si256(c2[11913],_mm256_xor_si256(c2[10873],_mm256_xor_si256(c2[12464],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[4569],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[1401],_mm256_xor_si256(c2[1929],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[9869],_mm256_xor_si256(c2[2476],_mm256_xor_si256(c2[13589],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[16235],_mm256_xor_si256(c2[16763],_mm256_xor_si256(c2[942],_mm256_xor_si256(c2[9918],_mm256_xor_si256(c2[14147],_mm256_xor_si256(c2[14675],_mm256_xor_si256(c2[970],_mm256_xor_si256(c2[16809],_mm256_xor_si256(c2[15754],_mm256_xor_si256(c2[16282],_mm256_xor_si256(c2[10468],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[14184],_mm256_xor_si256(c2[15248],_mm256_xor_si256(c2[13680],_mm256_xor_si256(c2[15266],_mm256_xor_si256(c2[11571],_mm256_xor_si256(c2[12099],_mm256_xor_si256(c2[5257],_mm256_xor_si256(c2[16877],_mm256_xor_si256(c2[10537],c2[11065])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[348]=simde_mm256_xor_si256(c2[1056],simde_mm256_xor_si256(c2[14260],simde_mm256_xor_si256(c2[14792],simde_mm256_xor_si256(c2[1067],simde_mm256_xor_si256(c2[1595],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[4786],simde_mm256_xor_si256(c2[2669],simde_mm256_xor_si256(c2[3197],simde_mm256_xor_si256(c2[14815],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[14308],simde_mm256_xor_si256(c2[12192],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[12748],simde_mm256_xor_si256(c2[7466],simde_mm256_xor_si256(c2[7994],simde_mm256_xor_si256(c2[8027],simde_mm256_xor_si256(c2[14352],simde_mm256_xor_si256(c2[635],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[16494],simde_mm256_xor_si256(c2[8050],simde_mm256_xor_si256(c2[3849],simde_mm256_xor_si256(c2[8599],simde_mm256_xor_si256(c2[11240],simde_mm256_xor_si256(c2[11768],simde_mm256_xor_si256(c2[13896],simde_mm256_xor_si256(c2[13906],simde_mm256_xor_si256(c2[3871],simde_mm256_xor_si256(c2[4399],simde_mm256_xor_si256(c2[13920],simde_mm256_xor_si256(c2[8119],simde_mm256_xor_si256(c2[3364],simde_mm256_xor_si256(c2[3892],simde_mm256_xor_si256(c2[6552],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[7612],simde_mm256_xor_si256(c2[8171],simde_mm256_xor_si256(c2[8694],simde_mm256_xor_si256(c2[9750],simde_mm256_xor_si256(c2[10278],simde_mm256_xor_si256(c2[15053],simde_mm256_xor_si256(c2[11891],simde_mm256_xor_si256(c2[16643],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[2929],simde_mm256_xor_si256(c2[11385],simde_mm256_xor_si256(c2[11913],simde_mm256_xor_si256(c2[10873],simde_mm256_xor_si256(c2[12464],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[2425],simde_mm256_xor_si256(c2[4569],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[1401],simde_mm256_xor_si256(c2[1929],simde_mm256_xor_si256(c2[2976],simde_mm256_xor_si256(c2[3537],simde_mm256_xor_si256(c2[9869],simde_mm256_xor_si256(c2[2476],simde_mm256_xor_si256(c2[13589],simde_mm256_xor_si256(c2[9361],simde_mm256_xor_si256(c2[16235],simde_mm256_xor_si256(c2[16763],simde_mm256_xor_si256(c2[942],simde_mm256_xor_si256(c2[9918],simde_mm256_xor_si256(c2[14147],simde_mm256_xor_si256(c2[14675],simde_mm256_xor_si256(c2[970],simde_mm256_xor_si256(c2[16809],simde_mm256_xor_si256(c2[15754],simde_mm256_xor_si256(c2[16282],simde_mm256_xor_si256(c2[10468],simde_mm256_xor_si256(c2[2048],simde_mm256_xor_si256(c2[14184],simde_mm256_xor_si256(c2[15248],simde_mm256_xor_si256(c2[13680],simde_mm256_xor_si256(c2[15266],simde_mm256_xor_si256(c2[11571],simde_mm256_xor_si256(c2[12099],simde_mm256_xor_si256(c2[5257],simde_mm256_xor_si256(c2[16877],simde_mm256_xor_si256(c2[10537],c2[11065])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 30 - d2[360]=_mm256_xor_si256(c2[7392],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[3705],_mm256_xor_si256(c2[4233],_mm256_xor_si256(c2[7403],_mm256_xor_si256(c2[7931],_mm256_xor_si256(c2[16372],_mm256_xor_si256(c2[7419],_mm256_xor_si256(c2[10594],_mm256_xor_si256(c2[11122],_mm256_xor_si256(c2[9005],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[1105],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[2189],_mm256_xor_si256(c2[13802],_mm256_xor_si256(c2[14330],_mm256_xor_si256(c2[14363],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[6971],_mm256_xor_si256(c2[7499],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[5935],_mm256_xor_si256(c2[13858],_mm256_xor_si256(c2[14386],_mm256_xor_si256(c2[10185],_mm256_xor_si256(c2[14407],_mm256_xor_si256(c2[14935],_mm256_xor_si256(c2[681],_mm256_xor_si256(c2[1209],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[2819],_mm256_xor_si256(c2[3347],_mm256_xor_si256(c2[10207],_mm256_xor_si256(c2[10735],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[13927],_mm256_xor_si256(c2[14455],_mm256_xor_si256(c2[9700],_mm256_xor_si256(c2[10228],_mm256_xor_si256(c2[12888],_mm256_xor_si256(c2[7088],_mm256_xor_si256(c2[13420],_mm256_xor_si256(c2[13948],_mm256_xor_si256(c2[14507],_mm256_xor_si256(c2[14502],_mm256_xor_si256(c2[15030],_mm256_xor_si256(c2[16086],_mm256_xor_si256(c2[16614],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[4494],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[6072],_mm256_xor_si256(c2[6600],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[9265],_mm256_xor_si256(c2[826],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[8233],_mm256_xor_si256(c2[8761],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[9845],_mm256_xor_si256(c2[10373],_mm256_xor_si256(c2[7737],_mm256_xor_si256(c2[8265],_mm256_xor_si256(c2[9873],_mm256_xor_si256(c2[16205],_mm256_xor_si256(c2[8284],_mm256_xor_si256(c2[8812],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[15697],_mm256_xor_si256(c2[5664],_mm256_xor_si256(c2[6192],_mm256_xor_si256(c2[7278],_mm256_xor_si256(c2[15726],_mm256_xor_si256(c2[16254],_mm256_xor_si256(c2[3576],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[7306],_mm256_xor_si256(c2[5722],_mm256_xor_si256(c2[6250],_mm256_xor_si256(c2[5195],_mm256_xor_si256(c2[5723],_mm256_xor_si256(c2[8384],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[4179],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[1540],_mm256_xor_si256(c2[11593],_mm256_xor_si256(c2[6318],_mm256_xor_si256(c2[16873],c2[506]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[360]=simde_mm256_xor_si256(c2[7392],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[3705],simde_mm256_xor_si256(c2[4233],simde_mm256_xor_si256(c2[7403],simde_mm256_xor_si256(c2[7931],simde_mm256_xor_si256(c2[16372],simde_mm256_xor_si256(c2[7419],simde_mm256_xor_si256(c2[10594],simde_mm256_xor_si256(c2[11122],simde_mm256_xor_si256(c2[9005],simde_mm256_xor_si256(c2[9533],simde_mm256_xor_si256(c2[6916],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[1105],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[6410],simde_mm256_xor_si256(c2[2189],simde_mm256_xor_si256(c2[13802],simde_mm256_xor_si256(c2[14330],simde_mm256_xor_si256(c2[14363],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[3793],simde_mm256_xor_si256(c2[6971],simde_mm256_xor_si256(c2[7499],simde_mm256_xor_si256(c2[8576],simde_mm256_xor_si256(c2[5935],simde_mm256_xor_si256(c2[13858],simde_mm256_xor_si256(c2[14386],simde_mm256_xor_si256(c2[10185],simde_mm256_xor_si256(c2[14407],simde_mm256_xor_si256(c2[14935],simde_mm256_xor_si256(c2[681],simde_mm256_xor_si256(c2[1209],simde_mm256_xor_si256(c2[3337],simde_mm256_xor_si256(c2[2819],simde_mm256_xor_si256(c2[3347],simde_mm256_xor_si256(c2[10207],simde_mm256_xor_si256(c2[10735],simde_mm256_xor_si256(c2[3361],simde_mm256_xor_si256(c2[13927],simde_mm256_xor_si256(c2[14455],simde_mm256_xor_si256(c2[9700],simde_mm256_xor_si256(c2[10228],simde_mm256_xor_si256(c2[12888],simde_mm256_xor_si256(c2[7088],simde_mm256_xor_si256(c2[13420],simde_mm256_xor_si256(c2[13948],simde_mm256_xor_si256(c2[14507],simde_mm256_xor_si256(c2[14502],simde_mm256_xor_si256(c2[15030],simde_mm256_xor_si256(c2[16086],simde_mm256_xor_si256(c2[16614],simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[4494],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[6072],simde_mm256_xor_si256(c2[6600],simde_mm256_xor_si256(c2[6627],simde_mm256_xor_si256(c2[9265],simde_mm256_xor_si256(c2[826],simde_mm256_xor_si256(c2[1354],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[1905],simde_mm256_xor_si256(c2[8233],simde_mm256_xor_si256(c2[8761],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[10905],simde_mm256_xor_si256(c2[9845],simde_mm256_xor_si256(c2[10373],simde_mm256_xor_si256(c2[7737],simde_mm256_xor_si256(c2[8265],simde_mm256_xor_si256(c2[9873],simde_mm256_xor_si256(c2[16205],simde_mm256_xor_si256(c2[8284],simde_mm256_xor_si256(c2[8812],simde_mm256_xor_si256(c2[3030],simde_mm256_xor_si256(c2[15697],simde_mm256_xor_si256(c2[5664],simde_mm256_xor_si256(c2[6192],simde_mm256_xor_si256(c2[7278],simde_mm256_xor_si256(c2[15726],simde_mm256_xor_si256(c2[16254],simde_mm256_xor_si256(c2[3576],simde_mm256_xor_si256(c2[4104],simde_mm256_xor_si256(c2[7306],simde_mm256_xor_si256(c2[5722],simde_mm256_xor_si256(c2[6250],simde_mm256_xor_si256(c2[5195],simde_mm256_xor_si256(c2[5723],simde_mm256_xor_si256(c2[8384],simde_mm256_xor_si256(c2[3625],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[4689],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[4179],simde_mm256_xor_si256(c2[4707],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[1540],simde_mm256_xor_si256(c2[11593],simde_mm256_xor_si256(c2[6318],simde_mm256_xor_si256(c2[16873],c2[506]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 31 - d2[372]=_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[7402],_mm256_xor_si256(c2[6874],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[11620],_mm256_xor_si256(c2[10564],_mm256_xor_si256(c2[11092],_mm256_xor_si256(c2[11120],_mm256_xor_si256(c2[10592],_mm256_xor_si256(c2[14811],_mm256_xor_si256(c2[14283],_mm256_xor_si256(c2[13234],_mm256_xor_si256(c2[12178],_mm256_xor_si256(c2[12706],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[10617],_mm256_xor_si256(c2[10089],_mm256_xor_si256(c2[7450],_mm256_xor_si256(c2[6922],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[4806],_mm256_xor_si256(c2[10111],_mm256_xor_si256(c2[9583],_mm256_xor_si256(c2[5890],_mm256_xor_si256(c2[5362],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1157],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[7494],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[11188],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[10660],_mm256_xor_si256(c2[12265],_mm256_xor_si256(c2[11737],_mm256_xor_si256(c2[9624],_mm256_xor_si256(c2[9096],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[13874],_mm256_xor_si256(c2[13346],_mm256_xor_si256(c2[1729],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[4898],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[4370],_mm256_xor_si256(c2[7038],_mm256_xor_si256(c2[6510],_mm256_xor_si256(c2[7036],_mm256_xor_si256(c2[6508],_mm256_xor_si256(c2[14424],_mm256_xor_si256(c2[13368],_mm256_xor_si256(c2[13896],_mm256_xor_si256(c2[12318],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[6534],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[13929],_mm256_xor_si256(c2[12873],_mm256_xor_si256(c2[13401],_mm256_xor_si256(c2[16589],_mm256_xor_si256(c2[16061],_mm256_xor_si256(c2[10777],_mm256_xor_si256(c2[10249],_mm256_xor_si256(c2[754],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[8195],_mm256_xor_si256(c2[7667],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[10301],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[9773],_mm256_xor_si256(c2[10328],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[12966],_mm256_xor_si256(c2[12438],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[3987],_mm256_xor_si256(c2[4515],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[3487],_mm256_xor_si256(c2[5594],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[12462],_mm256_xor_si256(c2[11406],_mm256_xor_si256(c2[11934],_mm256_xor_si256(c2[14594],_mm256_xor_si256(c2[14066],_mm256_xor_si256(c2[14074],_mm256_xor_si256(c2[13546],_mm256_xor_si256(c2[11954],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[11426],_mm256_xor_si256(c2[13562],_mm256_xor_si256(c2[13034],_mm256_xor_si256(c2[3011],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[12513],_mm256_xor_si256(c2[11985],_mm256_xor_si256(c2[6731],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[9893],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[9365],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[10451],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[7805],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[7277],_mm256_xor_si256(c2[10995],_mm256_xor_si256(c2[10467],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[9411],_mm256_xor_si256(c2[9412],_mm256_xor_si256(c2[8356],_mm256_xor_si256(c2[8884],_mm256_xor_si256(c2[12073],_mm256_xor_si256(c2[11545],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[6798],_mm256_xor_si256(c2[8378],_mm256_xor_si256(c2[7850],_mm256_xor_si256(c2[6822],_mm256_xor_si256(c2[6294],_mm256_xor_si256(c2[8408],_mm256_xor_si256(c2[7880],_mm256_xor_si256(c2[5241],_mm256_xor_si256(c2[4185],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[15294],_mm256_xor_si256(c2[14766],_mm256_xor_si256(c2[10019],_mm256_xor_si256(c2[9491],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[3151],c2[3679])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[372]=simde_mm256_xor_si256(c2[11093],simde_mm256_xor_si256(c2[10565],simde_mm256_xor_si256(c2[7402],simde_mm256_xor_si256(c2[6874],simde_mm256_xor_si256(c2[7922],simde_mm256_xor_si256(c2[7394],simde_mm256_xor_si256(c2[11620],simde_mm256_xor_si256(c2[10564],simde_mm256_xor_si256(c2[11092],simde_mm256_xor_si256(c2[11120],simde_mm256_xor_si256(c2[10592],simde_mm256_xor_si256(c2[14811],simde_mm256_xor_si256(c2[14283],simde_mm256_xor_si256(c2[13234],simde_mm256_xor_si256(c2[12178],simde_mm256_xor_si256(c2[12706],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[10617],simde_mm256_xor_si256(c2[10089],simde_mm256_xor_si256(c2[7450],simde_mm256_xor_si256(c2[6922],simde_mm256_xor_si256(c2[5334],simde_mm256_xor_si256(c2[4806],simde_mm256_xor_si256(c2[10111],simde_mm256_xor_si256(c2[9583],simde_mm256_xor_si256(c2[5890],simde_mm256_xor_si256(c2[5362],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1157],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[7494],simde_mm256_xor_si256(c2[6966],simde_mm256_xor_si256(c2[11188],simde_mm256_xor_si256(c2[10132],simde_mm256_xor_si256(c2[10660],simde_mm256_xor_si256(c2[12265],simde_mm256_xor_si256(c2[11737],simde_mm256_xor_si256(c2[9624],simde_mm256_xor_si256(c2[9096],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[13874],simde_mm256_xor_si256(c2[13346],simde_mm256_xor_si256(c2[1729],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[4898],simde_mm256_xor_si256(c2[3842],simde_mm256_xor_si256(c2[4370],simde_mm256_xor_si256(c2[7038],simde_mm256_xor_si256(c2[6510],simde_mm256_xor_si256(c2[7036],simde_mm256_xor_si256(c2[6508],simde_mm256_xor_si256(c2[14424],simde_mm256_xor_si256(c2[13368],simde_mm256_xor_si256(c2[13896],simde_mm256_xor_si256(c2[12318],simde_mm256_xor_si256(c2[7062],simde_mm256_xor_si256(c2[6534],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[13929],simde_mm256_xor_si256(c2[12873],simde_mm256_xor_si256(c2[13401],simde_mm256_xor_si256(c2[16589],simde_mm256_xor_si256(c2[16061],simde_mm256_xor_si256(c2[10777],simde_mm256_xor_si256(c2[10249],simde_mm256_xor_si256(c2[754],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[3408],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[8195],simde_mm256_xor_si256(c2[7667],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[4493],simde_mm256_xor_si256(c2[10301],simde_mm256_xor_si256(c2[9245],simde_mm256_xor_si256(c2[9773],simde_mm256_xor_si256(c2[10328],simde_mm256_xor_si256(c2[9800],simde_mm256_xor_si256(c2[12966],simde_mm256_xor_si256(c2[12438],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[3987],simde_mm256_xor_si256(c2[4515],simde_mm256_xor_si256(c2[4015],simde_mm256_xor_si256(c2[3487],simde_mm256_xor_si256(c2[5594],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[12462],simde_mm256_xor_si256(c2[11406],simde_mm256_xor_si256(c2[11934],simde_mm256_xor_si256(c2[14594],simde_mm256_xor_si256(c2[14066],simde_mm256_xor_si256(c2[14074],simde_mm256_xor_si256(c2[13546],simde_mm256_xor_si256(c2[11954],simde_mm256_xor_si256(c2[10898],simde_mm256_xor_si256(c2[11426],simde_mm256_xor_si256(c2[13562],simde_mm256_xor_si256(c2[13034],simde_mm256_xor_si256(c2[3011],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[12513],simde_mm256_xor_si256(c2[11985],simde_mm256_xor_si256(c2[6731],simde_mm256_xor_si256(c2[6203],simde_mm256_xor_si256(c2[2503],simde_mm256_xor_si256(c2[1975],simde_mm256_xor_si256(c2[9893],simde_mm256_xor_si256(c2[8837],simde_mm256_xor_si256(c2[9365],simde_mm256_xor_si256(c2[10979],simde_mm256_xor_si256(c2[10451],simde_mm256_xor_si256(c2[3048],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[7805],simde_mm256_xor_si256(c2[6749],simde_mm256_xor_si256(c2[7277],simde_mm256_xor_si256(c2[10995],simde_mm256_xor_si256(c2[10467],simde_mm256_xor_si256(c2[9939],simde_mm256_xor_si256(c2[9411],simde_mm256_xor_si256(c2[9412],simde_mm256_xor_si256(c2[8356],simde_mm256_xor_si256(c2[8884],simde_mm256_xor_si256(c2[12073],simde_mm256_xor_si256(c2[11545],simde_mm256_xor_si256(c2[7326],simde_mm256_xor_si256(c2[6798],simde_mm256_xor_si256(c2[8378],simde_mm256_xor_si256(c2[7850],simde_mm256_xor_si256(c2[6822],simde_mm256_xor_si256(c2[6294],simde_mm256_xor_si256(c2[8408],simde_mm256_xor_si256(c2[7880],simde_mm256_xor_si256(c2[5241],simde_mm256_xor_si256(c2[4185],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[15294],simde_mm256_xor_si256(c2[14766],simde_mm256_xor_si256(c2[10019],simde_mm256_xor_si256(c2[9491],simde_mm256_xor_si256(c2[4207],simde_mm256_xor_si256(c2[3151],c2[3679])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 32 - d2[384]=_mm256_xor_si256(c2[10038],_mm256_xor_si256(c2[6347],_mm256_xor_si256(c2[6339],_mm256_xor_si256(c2[6867],_mm256_xor_si256(c2[10037],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[10065],_mm256_xor_si256(c2[13228],_mm256_xor_si256(c2[13756],_mm256_xor_si256(c2[11651],_mm256_xor_si256(c2[12179],_mm256_xor_si256(c2[9562],_mm256_xor_si256(c2[6395],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[4279],_mm256_xor_si256(c2[9056],_mm256_xor_si256(c2[4835],_mm256_xor_si256(c2[16448],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[6439],_mm256_xor_si256(c2[9605],_mm256_xor_si256(c2[10133],_mm256_xor_si256(c2[11210],_mm256_xor_si256(c2[8569],_mm256_xor_si256(c2[16492],_mm256_xor_si256(c2[125],_mm256_xor_si256(c2[12819],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[3843],_mm256_xor_si256(c2[5983],_mm256_xor_si256(c2[5453],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[12841],_mm256_xor_si256(c2[13369],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[16561],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[12346],_mm256_xor_si256(c2[12874],_mm256_xor_si256(c2[15534],_mm256_xor_si256(c2[9722],_mm256_xor_si256(c2[16066],_mm256_xor_si256(c2[16594],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7128],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[9246],_mm256_xor_si256(c2[9273],_mm256_xor_si256(c2[11911],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[5046],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[4011],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[10879],_mm256_xor_si256(c2[11407],_mm256_xor_si256(c2[13539],_mm256_xor_si256(c2[12491],_mm256_xor_si256(c2[13019],_mm256_xor_si256(c2[10371],_mm256_xor_si256(c2[10899],_mm256_xor_si256(c2[8261],_mm256_xor_si256(c2[12507],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[11458],_mm256_xor_si256(c2[5664],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[8310],_mm256_xor_si256(c2[8838],_mm256_xor_si256(c2[9912],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[6222],_mm256_xor_si256(c2[6750],_mm256_xor_si256(c2[9940],_mm256_xor_si256(c2[8356],_mm256_xor_si256(c2[8884],_mm256_xor_si256(c2[7829],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[11018],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[6795],_mm256_xor_si256(c2[7323],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[6825],_mm256_xor_si256(c2[7353],_mm256_xor_si256(c2[3658],_mm256_xor_si256(c2[4186],_mm256_xor_si256(c2[14239],_mm256_xor_si256(c2[8952],_mm256_xor_si256(c2[2624],c2[3152]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[384]=simde_mm256_xor_si256(c2[10038],simde_mm256_xor_si256(c2[6347],simde_mm256_xor_si256(c2[6339],simde_mm256_xor_si256(c2[6867],simde_mm256_xor_si256(c2[10037],simde_mm256_xor_si256(c2[10565],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[10065],simde_mm256_xor_si256(c2[13228],simde_mm256_xor_si256(c2[13756],simde_mm256_xor_si256(c2[11651],simde_mm256_xor_si256(c2[12179],simde_mm256_xor_si256(c2[9562],simde_mm256_xor_si256(c2[6395],simde_mm256_xor_si256(c2[3751],simde_mm256_xor_si256(c2[4279],simde_mm256_xor_si256(c2[9056],simde_mm256_xor_si256(c2[4835],simde_mm256_xor_si256(c2[16448],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[5911],simde_mm256_xor_si256(c2[6439],simde_mm256_xor_si256(c2[9605],simde_mm256_xor_si256(c2[10133],simde_mm256_xor_si256(c2[11210],simde_mm256_xor_si256(c2[8569],simde_mm256_xor_si256(c2[16492],simde_mm256_xor_si256(c2[125],simde_mm256_xor_si256(c2[12819],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[3843],simde_mm256_xor_si256(c2[5983],simde_mm256_xor_si256(c2[5453],simde_mm256_xor_si256(c2[5981],simde_mm256_xor_si256(c2[12841],simde_mm256_xor_si256(c2[13369],simde_mm256_xor_si256(c2[6007],simde_mm256_xor_si256(c2[16561],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[12346],simde_mm256_xor_si256(c2[12874],simde_mm256_xor_si256(c2[15534],simde_mm256_xor_si256(c2[9722],simde_mm256_xor_si256(c2[16066],simde_mm256_xor_si256(c2[16594],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[7128],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[8718],simde_mm256_xor_si256(c2[9246],simde_mm256_xor_si256(c2[9273],simde_mm256_xor_si256(c2[11911],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[3988],simde_mm256_xor_si256(c2[5046],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[4011],simde_mm256_xor_si256(c2[4539],simde_mm256_xor_si256(c2[10879],simde_mm256_xor_si256(c2[11407],simde_mm256_xor_si256(c2[13539],simde_mm256_xor_si256(c2[12491],simde_mm256_xor_si256(c2[13019],simde_mm256_xor_si256(c2[10371],simde_mm256_xor_si256(c2[10899],simde_mm256_xor_si256(c2[8261],simde_mm256_xor_si256(c2[12507],simde_mm256_xor_si256(c2[1944],simde_mm256_xor_si256(c2[10930],simde_mm256_xor_si256(c2[11458],simde_mm256_xor_si256(c2[5664],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[8310],simde_mm256_xor_si256(c2[8838],simde_mm256_xor_si256(c2[9912],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[6222],simde_mm256_xor_si256(c2[6750],simde_mm256_xor_si256(c2[9940],simde_mm256_xor_si256(c2[8356],simde_mm256_xor_si256(c2[8884],simde_mm256_xor_si256(c2[7829],simde_mm256_xor_si256(c2[8357],simde_mm256_xor_si256(c2[11018],simde_mm256_xor_si256(c2[6271],simde_mm256_xor_si256(c2[6795],simde_mm256_xor_si256(c2[7323],simde_mm256_xor_si256(c2[5767],simde_mm256_xor_si256(c2[6825],simde_mm256_xor_si256(c2[7353],simde_mm256_xor_si256(c2[3658],simde_mm256_xor_si256(c2[4186],simde_mm256_xor_si256(c2[14239],simde_mm256_xor_si256(c2[8952],simde_mm256_xor_si256(c2[2624],c2[3152]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[396]=_mm256_xor_si256(c2[1618],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[5027],c2[5259]))); + d2[396]=simde_mm256_xor_si256(c2[1618],simde_mm256_xor_si256(c2[4272],simde_mm256_xor_si256(c2[5027],c2[5259]))); //row: 34 - d2[408]=_mm256_xor_si256(c2[3175],_mm256_xor_si256(c2[10732],_mm256_xor_si256(c2[5646],c2[13089]))); + d2[408]=simde_mm256_xor_si256(c2[3175],simde_mm256_xor_si256(c2[10732],simde_mm256_xor_si256(c2[5646],c2[13089]))); //row: 35 - d2[420]=_mm256_xor_si256(c2[15317],_mm256_xor_si256(c2[11626],_mm256_xor_si256(c2[12146],_mm256_xor_si256(c2[15844],_mm256_xor_si256(c2[15344],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[14841],_mm256_xor_si256(c2[11674],_mm256_xor_si256(c2[9558],_mm256_xor_si256(c2[14335],_mm256_xor_si256(c2[10114],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[5381],_mm256_xor_si256(c2[11718],_mm256_xor_si256(c2[15412],_mm256_xor_si256(c2[16489],_mm256_xor_si256(c2[13848],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[9122],_mm256_xor_si256(c2[8074],_mm256_xor_si256(c2[11262],_mm256_xor_si256(c2[11260],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[11286],_mm256_xor_si256(c2[5473],_mm256_xor_si256(c2[1258],_mm256_xor_si256(c2[3918],_mm256_xor_si256(c2[15001],_mm256_xor_si256(c2[4978],_mm256_xor_si256(c2[5525],_mm256_xor_si256(c2[6048],_mm256_xor_si256(c2[7632],_mm256_xor_si256(c2[12419],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[14525],_mm256_xor_si256(c2[14552],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[9267],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[8239],_mm256_xor_si256(c2[9818],_mm256_xor_si256(c2[16686],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[16178],_mm256_xor_si256(c2[891],_mm256_xor_si256(c2[7235],_mm256_xor_si256(c2[16737],_mm256_xor_si256(c2[10955],_mm256_xor_si256(c2[6727],_mm256_xor_si256(c2[14117],_mm256_xor_si256(c2[15203],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[12029],_mm256_xor_si256(c2[15219],_mm256_xor_si256(c2[14163],_mm256_xor_si256(c2[13636],_mm256_xor_si256(c2[16297],_mm256_xor_si256(c2[11550],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[11046],_mm256_xor_si256(c2[12632],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[14243],c2[8431]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[420]=simde_mm256_xor_si256(c2[15317],simde_mm256_xor_si256(c2[11626],simde_mm256_xor_si256(c2[12146],simde_mm256_xor_si256(c2[15844],simde_mm256_xor_si256(c2[15344],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[14841],simde_mm256_xor_si256(c2[11674],simde_mm256_xor_si256(c2[9558],simde_mm256_xor_si256(c2[14335],simde_mm256_xor_si256(c2[10114],simde_mm256_xor_si256(c2[5360],simde_mm256_xor_si256(c2[5381],simde_mm256_xor_si256(c2[11718],simde_mm256_xor_si256(c2[15412],simde_mm256_xor_si256(c2[16489],simde_mm256_xor_si256(c2[13848],simde_mm256_xor_si256(c2[5404],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[5953],simde_mm256_xor_si256(c2[9122],simde_mm256_xor_si256(c2[8074],simde_mm256_xor_si256(c2[11262],simde_mm256_xor_si256(c2[11260],simde_mm256_xor_si256(c2[1753],simde_mm256_xor_si256(c2[11286],simde_mm256_xor_si256(c2[5473],simde_mm256_xor_si256(c2[1258],simde_mm256_xor_si256(c2[3918],simde_mm256_xor_si256(c2[15001],simde_mm256_xor_si256(c2[4978],simde_mm256_xor_si256(c2[5525],simde_mm256_xor_si256(c2[6048],simde_mm256_xor_si256(c2[7632],simde_mm256_xor_si256(c2[12419],simde_mm256_xor_si256(c2[9245],simde_mm256_xor_si256(c2[14525],simde_mm256_xor_si256(c2[14552],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[9267],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[8239],simde_mm256_xor_si256(c2[9818],simde_mm256_xor_si256(c2[16686],simde_mm256_xor_si256(c2[1923],simde_mm256_xor_si256(c2[1403],simde_mm256_xor_si256(c2[16178],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[7235],simde_mm256_xor_si256(c2[16737],simde_mm256_xor_si256(c2[10955],simde_mm256_xor_si256(c2[6727],simde_mm256_xor_si256(c2[14117],simde_mm256_xor_si256(c2[15203],simde_mm256_xor_si256(c2[7272],simde_mm256_xor_si256(c2[12029],simde_mm256_xor_si256(c2[15219],simde_mm256_xor_si256(c2[14163],simde_mm256_xor_si256(c2[13636],simde_mm256_xor_si256(c2[16297],simde_mm256_xor_si256(c2[11550],simde_mm256_xor_si256(c2[12602],simde_mm256_xor_si256(c2[11046],simde_mm256_xor_si256(c2[12632],simde_mm256_xor_si256(c2[9465],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[14243],c2[8431]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 36 - d2[432]=_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[13545],_mm256_xor_si256(c2[5121],c2[11520]))); + d2[432]=simde_mm256_xor_si256(c2[9510],simde_mm256_xor_si256(c2[13545],simde_mm256_xor_si256(c2[5121],c2[11520]))); //row: 37 - d2[444]=_mm256_xor_si256(c2[3169],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[3196],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[14833],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[15389],_mm256_xor_si256(c2[10635],_mm256_xor_si256(c2[10656],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[5962],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[11240],_mm256_xor_si256(c2[14409],_mm256_xor_si256(c2[16537],_mm256_xor_si256(c2[16547],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[16561],_mm256_xor_si256(c2[10760],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[8665],_mm256_xor_si256(c2[9193],_mm256_xor_si256(c2[3393],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[11335],_mm256_xor_si256(c2[12919],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[14520],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[14554],_mm256_xor_si256(c2[12986],_mm256_xor_si256(c2[13514],_mm256_xor_si256(c2[15105],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[9818],_mm256_xor_si256(c2[7210],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[4570],_mm256_xor_si256(c2[5650],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[5117],_mm256_xor_si256(c2[15702],_mm256_xor_si256(c2[16230],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[12559],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3611],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[16825],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[15793],_mm256_xor_si256(c2[16321],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[14740],_mm256_xor_si256(c2[7370],_mm256_xor_si256(c2[7898],_mm256_xor_si256(c2[2623],c2[13706]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[444]=simde_mm256_xor_si256(c2[3169],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[538],simde_mm256_xor_si256(c2[4224],simde_mm256_xor_si256(c2[3196],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[7427],simde_mm256_xor_si256(c2[5838],simde_mm256_xor_si256(c2[6896],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[14833],simde_mm256_xor_si256(c2[2187],simde_mm256_xor_si256(c2[2715],simde_mm256_xor_si256(c2[15389],simde_mm256_xor_si256(c2[10635],simde_mm256_xor_si256(c2[10656],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[4353],simde_mm256_xor_si256(c2[4881],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[10691],simde_mm256_xor_si256(c2[5962],simde_mm256_xor_si256(c2[6490],simde_mm256_xor_si256(c2[11240],simde_mm256_xor_si256(c2[14409],simde_mm256_xor_si256(c2[16537],simde_mm256_xor_si256(c2[16547],simde_mm256_xor_si256(c2[7040],simde_mm256_xor_si256(c2[16561],simde_mm256_xor_si256(c2[10760],simde_mm256_xor_si256(c2[6533],simde_mm256_xor_si256(c2[8665],simde_mm256_xor_si256(c2[9193],simde_mm256_xor_si256(c2[3393],simde_mm256_xor_si256(c2[10253],simde_mm256_xor_si256(c2[10272],simde_mm256_xor_si256(c2[10800],simde_mm256_xor_si256(c2[11335],simde_mm256_xor_si256(c2[12919],simde_mm256_xor_si256(c2[271],simde_mm256_xor_si256(c2[799],simde_mm256_xor_si256(c2[14520],simde_mm256_xor_si256(c2[2905],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[2932],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[14554],simde_mm256_xor_si256(c2[12986],simde_mm256_xor_si256(c2[13514],simde_mm256_xor_si256(c2[15105],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[9818],simde_mm256_xor_si256(c2[7210],simde_mm256_xor_si256(c2[6678],simde_mm256_xor_si256(c2[4570],simde_mm256_xor_si256(c2[5650],simde_mm256_xor_si256(c2[6178],simde_mm256_xor_si256(c2[12510],simde_mm256_xor_si256(c2[5117],simde_mm256_xor_si256(c2[15702],simde_mm256_xor_si256(c2[16230],simde_mm256_xor_si256(c2[12002],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[3583],simde_mm256_xor_si256(c2[12559],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[3611],simde_mm256_xor_si256(c2[2555],simde_mm256_xor_si256(c2[2016],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[4689],simde_mm256_xor_si256(c2[16825],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[15793],simde_mm256_xor_si256(c2[16321],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[14740],simde_mm256_xor_si256(c2[7370],simde_mm256_xor_si256(c2[7898],simde_mm256_xor_si256(c2[2623],c2[13706]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[456]=_mm256_xor_si256(c2[13205],_mm256_xor_si256(c2[9197],_mm256_xor_si256(c2[777],c2[11910]))); + d2[456]=simde_mm256_xor_si256(c2[13205],simde_mm256_xor_si256(c2[9197],simde_mm256_xor_si256(c2[777],c2[11910]))); //row: 39 - d2[468]=_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[15386],_mm256_xor_si256(c2[13906],c2[5217]))); + d2[468]=simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[15386],simde_mm256_xor_si256(c2[13906],c2[5217]))); //row: 40 - d2[480]=_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[2833],c2[13089])); + d2[480]=simde_mm256_xor_si256(c2[7925],simde_mm256_xor_si256(c2[2833],c2[13089])); //row: 41 - d2[492]=_mm256_xor_si256(c2[10585],_mm256_xor_si256(c2[13809],_mm256_xor_si256(c2[6028],c2[441]))); + d2[492]=simde_mm256_xor_si256(c2[10585],simde_mm256_xor_si256(c2[13809],simde_mm256_xor_si256(c2[6028],c2[441]))); //row: 42 - d2[504]=_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[3705],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[8979],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[10586],_mm256_xor_si256(c2[11114],_mm256_xor_si256(c2[9009],_mm256_xor_si256(c2[9537],_mm256_xor_si256(c2[6920],_mm256_xor_si256(c2[3753],_mm256_xor_si256(c2[1109],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[6414],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[13806],_mm256_xor_si256(c2[14334],_mm256_xor_si256(c2[14355],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3797],_mm256_xor_si256(c2[6963],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[7488],_mm256_xor_si256(c2[8568],_mm256_xor_si256(c2[5939],_mm256_xor_si256(c2[13850],_mm256_xor_si256(c2[14378],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[14411],_mm256_xor_si256(c2[14939],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[3341],_mm256_xor_si256(c2[2811],_mm256_xor_si256(c2[3339],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[10739],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[13931],_mm256_xor_si256(c2[14459],_mm256_xor_si256(c2[9704],_mm256_xor_si256(c2[10232],_mm256_xor_si256(c2[12892],_mm256_xor_si256(c2[7080],_mm256_xor_si256(c2[13424],_mm256_xor_si256(c2[13952],_mm256_xor_si256(c2[14499],_mm256_xor_si256(c2[14506],_mm256_xor_si256(c2[15034],_mm256_xor_si256(c2[16090],_mm256_xor_si256(c2[16618],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[1324],_mm256_xor_si256(c2[6076],_mm256_xor_si256(c2[6604],_mm256_xor_si256(c2[6631],_mm256_xor_si256(c2[9269],_mm256_xor_si256(c2[818],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[1369],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[8237],_mm256_xor_si256(c2[8765],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[9849],_mm256_xor_si256(c2[10377],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[8257],_mm256_xor_si256(c2[9865],_mm256_xor_si256(c2[16209],_mm256_xor_si256(c2[8288],_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[3034],_mm256_xor_si256(c2[15701],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[6196],_mm256_xor_si256(c2[7282],_mm256_xor_si256(c2[15730],_mm256_xor_si256(c2[16258],_mm256_xor_si256(c2[3580],_mm256_xor_si256(c2[4108],_mm256_xor_si256(c2[7298],_mm256_xor_si256(c2[5714],_mm256_xor_si256(c2[6242],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[5715],_mm256_xor_si256(c2[8376],_mm256_xor_si256(c2[3629],_mm256_xor_si256(c2[4153],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[4183],_mm256_xor_si256(c2[4711],_mm256_xor_si256(c2[1016],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[11597],_mm256_xor_si256(c2[6322],_mm256_xor_si256(c2[16877],c2[510])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[504]=simde_mm256_xor_si256(c2[7396],simde_mm256_xor_si256(c2[3705],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[4225],simde_mm256_xor_si256(c2[7395],simde_mm256_xor_si256(c2[7923],simde_mm256_xor_si256(c2[8979],simde_mm256_xor_si256(c2[7423],simde_mm256_xor_si256(c2[10586],simde_mm256_xor_si256(c2[11114],simde_mm256_xor_si256(c2[9009],simde_mm256_xor_si256(c2[9537],simde_mm256_xor_si256(c2[6920],simde_mm256_xor_si256(c2[3753],simde_mm256_xor_si256(c2[1109],simde_mm256_xor_si256(c2[1637],simde_mm256_xor_si256(c2[6414],simde_mm256_xor_si256(c2[2193],simde_mm256_xor_si256(c2[13806],simde_mm256_xor_si256(c2[14334],simde_mm256_xor_si256(c2[14355],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[3797],simde_mm256_xor_si256(c2[6963],simde_mm256_xor_si256(c2[7491],simde_mm256_xor_si256(c2[7488],simde_mm256_xor_si256(c2[8568],simde_mm256_xor_si256(c2[5939],simde_mm256_xor_si256(c2[13850],simde_mm256_xor_si256(c2[14378],simde_mm256_xor_si256(c2[10177],simde_mm256_xor_si256(c2[14411],simde_mm256_xor_si256(c2[14939],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[3341],simde_mm256_xor_si256(c2[2811],simde_mm256_xor_si256(c2[3339],simde_mm256_xor_si256(c2[10211],simde_mm256_xor_si256(c2[10739],simde_mm256_xor_si256(c2[3365],simde_mm256_xor_si256(c2[13931],simde_mm256_xor_si256(c2[14459],simde_mm256_xor_si256(c2[9704],simde_mm256_xor_si256(c2[10232],simde_mm256_xor_si256(c2[12892],simde_mm256_xor_si256(c2[7080],simde_mm256_xor_si256(c2[13424],simde_mm256_xor_si256(c2[13952],simde_mm256_xor_si256(c2[14499],simde_mm256_xor_si256(c2[14506],simde_mm256_xor_si256(c2[15034],simde_mm256_xor_si256(c2[16090],simde_mm256_xor_si256(c2[16618],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[1324],simde_mm256_xor_si256(c2[6076],simde_mm256_xor_si256(c2[6604],simde_mm256_xor_si256(c2[6631],simde_mm256_xor_si256(c2[9269],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[1369],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[8237],simde_mm256_xor_si256(c2[8765],simde_mm256_xor_si256(c2[10897],simde_mm256_xor_si256(c2[9849],simde_mm256_xor_si256(c2[10377],simde_mm256_xor_si256(c2[7729],simde_mm256_xor_si256(c2[8257],simde_mm256_xor_si256(c2[9865],simde_mm256_xor_si256(c2[16209],simde_mm256_xor_si256(c2[8288],simde_mm256_xor_si256(c2[8816],simde_mm256_xor_si256(c2[3034],simde_mm256_xor_si256(c2[15701],simde_mm256_xor_si256(c2[5668],simde_mm256_xor_si256(c2[6196],simde_mm256_xor_si256(c2[7282],simde_mm256_xor_si256(c2[15730],simde_mm256_xor_si256(c2[16258],simde_mm256_xor_si256(c2[3580],simde_mm256_xor_si256(c2[4108],simde_mm256_xor_si256(c2[7298],simde_mm256_xor_si256(c2[5714],simde_mm256_xor_si256(c2[6242],simde_mm256_xor_si256(c2[5187],simde_mm256_xor_si256(c2[5715],simde_mm256_xor_si256(c2[8376],simde_mm256_xor_si256(c2[3629],simde_mm256_xor_si256(c2[4153],simde_mm256_xor_si256(c2[4681],simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[4183],simde_mm256_xor_si256(c2[4711],simde_mm256_xor_si256(c2[1016],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[11597],simde_mm256_xor_si256(c2[6322],simde_mm256_xor_si256(c2[16877],c2[510])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 43 - d2[516]=_mm256_xor_si256(c2[14786],_mm256_xor_si256(c2[11095],_mm256_xor_si256(c2[11627],_mm256_xor_si256(c2[14785],_mm256_xor_si256(c2[15313],_mm256_xor_si256(c2[14813],_mm256_xor_si256(c2[1609],_mm256_xor_si256(c2[16399],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[14310],_mm256_xor_si256(c2[11143],_mm256_xor_si256(c2[9027],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[9583],_mm256_xor_si256(c2[4301],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11187],_mm256_xor_si256(c2[14353],_mm256_xor_si256(c2[14881],_mm256_xor_si256(c2[15970],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[4873],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[5434],_mm256_xor_si256(c2[8075],_mm256_xor_si256(c2[8603],_mm256_xor_si256(c2[10731],_mm256_xor_si256(c2[10729],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[10755],_mm256_xor_si256(c2[4954],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[3387],_mm256_xor_si256(c2[14482],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4994],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[6585],_mm256_xor_si256(c2[7113],_mm256_xor_si256(c2[11888],_mm256_xor_si256(c2[8714],_mm256_xor_si256(c2[13466],_mm256_xor_si256(c2[13994],_mm256_xor_si256(c2[14021],_mm256_xor_si256(c2[16659],_mm256_xor_si256(c2[8208],_mm256_xor_si256(c2[8736],_mm256_xor_si256(c2[7708],_mm256_xor_si256(c2[9299],_mm256_xor_si256(c2[15627],_mm256_xor_si256(c2[16155],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[15131],_mm256_xor_si256(c2[15659],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[6704],_mm256_xor_si256(c2[16206],_mm256_xor_si256(c2[10424],_mm256_xor_si256(c2[6196],_mm256_xor_si256(c2[13058],_mm256_xor_si256(c2[13586],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[14672],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[10970],_mm256_xor_si256(c2[11498],_mm256_xor_si256(c2[14688],_mm256_xor_si256(c2[13632],_mm256_xor_si256(c2[12577],_mm256_xor_si256(c2[13105],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[15778],_mm256_xor_si256(c2[11019],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[10515],_mm256_xor_si256(c2[12101],_mm256_xor_si256(c2[8406],_mm256_xor_si256(c2[8934],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[13712],_mm256_xor_si256(c2[7372],c2[7900])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[516]=simde_mm256_xor_si256(c2[14786],simde_mm256_xor_si256(c2[11095],simde_mm256_xor_si256(c2[11627],simde_mm256_xor_si256(c2[14785],simde_mm256_xor_si256(c2[15313],simde_mm256_xor_si256(c2[14813],simde_mm256_xor_si256(c2[1609],simde_mm256_xor_si256(c2[16399],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[9003],simde_mm256_xor_si256(c2[14310],simde_mm256_xor_si256(c2[11143],simde_mm256_xor_si256(c2[9027],simde_mm256_xor_si256(c2[13804],simde_mm256_xor_si256(c2[9583],simde_mm256_xor_si256(c2[4301],simde_mm256_xor_si256(c2[4829],simde_mm256_xor_si256(c2[4850],simde_mm256_xor_si256(c2[11187],simde_mm256_xor_si256(c2[14353],simde_mm256_xor_si256(c2[14881],simde_mm256_xor_si256(c2[15970],simde_mm256_xor_si256(c2[13329],simde_mm256_xor_si256(c2[4873],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[5434],simde_mm256_xor_si256(c2[8075],simde_mm256_xor_si256(c2[8603],simde_mm256_xor_si256(c2[10731],simde_mm256_xor_si256(c2[10729],simde_mm256_xor_si256(c2[706],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[10755],simde_mm256_xor_si256(c2[4954],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[727],simde_mm256_xor_si256(c2[3387],simde_mm256_xor_si256(c2[14482],simde_mm256_xor_si256(c2[4447],simde_mm256_xor_si256(c2[4994],simde_mm256_xor_si256(c2[5529],simde_mm256_xor_si256(c2[6585],simde_mm256_xor_si256(c2[7113],simde_mm256_xor_si256(c2[11888],simde_mm256_xor_si256(c2[8714],simde_mm256_xor_si256(c2[13466],simde_mm256_xor_si256(c2[13994],simde_mm256_xor_si256(c2[14021],simde_mm256_xor_si256(c2[16659],simde_mm256_xor_si256(c2[8208],simde_mm256_xor_si256(c2[8736],simde_mm256_xor_si256(c2[7708],simde_mm256_xor_si256(c2[9299],simde_mm256_xor_si256(c2[15627],simde_mm256_xor_si256(c2[16155],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[15131],simde_mm256_xor_si256(c2[15659],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[6704],simde_mm256_xor_si256(c2[16206],simde_mm256_xor_si256(c2[10424],simde_mm256_xor_si256(c2[6196],simde_mm256_xor_si256(c2[13058],simde_mm256_xor_si256(c2[13586],simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[14672],simde_mm256_xor_si256(c2[6753],simde_mm256_xor_si256(c2[10970],simde_mm256_xor_si256(c2[11498],simde_mm256_xor_si256(c2[14688],simde_mm256_xor_si256(c2[13632],simde_mm256_xor_si256(c2[12577],simde_mm256_xor_si256(c2[13105],simde_mm256_xor_si256(c2[9939],simde_mm256_xor_si256(c2[15778],simde_mm256_xor_si256(c2[11019],simde_mm256_xor_si256(c2[12083],simde_mm256_xor_si256(c2[10515],simde_mm256_xor_si256(c2[12101],simde_mm256_xor_si256(c2[8406],simde_mm256_xor_si256(c2[8934],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[13712],simde_mm256_xor_si256(c2[7372],c2[7900])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 44 - d2[528]=_mm256_xor_si256(c2[2646],_mm256_xor_si256(c2[15850],_mm256_xor_si256(c2[16370],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[8450],_mm256_xor_si256(c2[2673],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[4787],_mm256_xor_si256(c2[2170],_mm256_xor_si256(c2[15898],_mm256_xor_si256(c2[13782],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[14338],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[9605],_mm256_xor_si256(c2[15942],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[1177],_mm256_xor_si256(c2[9628],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[13346],_mm256_xor_si256(c2[15486],_mm256_xor_si256(c2[15484],_mm256_xor_si256(c2[5977],_mm256_xor_si256(c2[7562],_mm256_xor_si256(c2[15510],_mm256_xor_si256(c2[9697],_mm256_xor_si256(c2[5482],_mm256_xor_si256(c2[8142],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[9749],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[11856],_mm256_xor_si256(c2[16643],_mm256_xor_si256(c2[13469],_mm256_xor_si256(c2[1854],_mm256_xor_si256(c2[1881],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[13491],_mm256_xor_si256(c2[12463],_mm256_xor_si256(c2[14042],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[6147],_mm256_xor_si256(c2[5627],_mm256_xor_si256(c2[3507],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[11459],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[15179],_mm256_xor_si256(c2[10951],_mm256_xor_si256(c2[1446],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[11496],_mm256_xor_si256(c2[16253],_mm256_xor_si256(c2[2548],_mm256_xor_si256(c2[1492],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[15774],_mm256_xor_si256(c2[16826],_mm256_xor_si256(c2[15270],_mm256_xor_si256(c2[16856],_mm256_xor_si256(c2[13689],_mm256_xor_si256(c2[6847],_mm256_xor_si256(c2[1560],c2[12655]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[528]=simde_mm256_xor_si256(c2[2646],simde_mm256_xor_si256(c2[15850],simde_mm256_xor_si256(c2[16370],simde_mm256_xor_si256(c2[3173],simde_mm256_xor_si256(c2[8450],simde_mm256_xor_si256(c2[2673],simde_mm256_xor_si256(c2[6364],simde_mm256_xor_si256(c2[4787],simde_mm256_xor_si256(c2[2170],simde_mm256_xor_si256(c2[15898],simde_mm256_xor_si256(c2[13782],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[14338],simde_mm256_xor_si256(c2[9584],simde_mm256_xor_si256(c2[9605],simde_mm256_xor_si256(c2[15942],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[3818],simde_mm256_xor_si256(c2[1177],simde_mm256_xor_si256(c2[9628],simde_mm256_xor_si256(c2[5427],simde_mm256_xor_si256(c2[10177],simde_mm256_xor_si256(c2[13346],simde_mm256_xor_si256(c2[15486],simde_mm256_xor_si256(c2[15484],simde_mm256_xor_si256(c2[5977],simde_mm256_xor_si256(c2[7562],simde_mm256_xor_si256(c2[15510],simde_mm256_xor_si256(c2[9697],simde_mm256_xor_si256(c2[5482],simde_mm256_xor_si256(c2[8142],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[9202],simde_mm256_xor_si256(c2[1805],simde_mm256_xor_si256(c2[9749],simde_mm256_xor_si256(c2[10272],simde_mm256_xor_si256(c2[11856],simde_mm256_xor_si256(c2[16643],simde_mm256_xor_si256(c2[13469],simde_mm256_xor_si256(c2[1854],simde_mm256_xor_si256(c2[1881],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[13491],simde_mm256_xor_si256(c2[12463],simde_mm256_xor_si256(c2[14042],simde_mm256_xor_si256(c2[4015],simde_mm256_xor_si256(c2[6147],simde_mm256_xor_si256(c2[5627],simde_mm256_xor_si256(c2[3507],simde_mm256_xor_si256(c2[5115],simde_mm256_xor_si256(c2[11459],simde_mm256_xor_si256(c2[4066],simde_mm256_xor_si256(c2[15179],simde_mm256_xor_si256(c2[10951],simde_mm256_xor_si256(c2[1446],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[11496],simde_mm256_xor_si256(c2[16253],simde_mm256_xor_si256(c2[2548],simde_mm256_xor_si256(c2[1492],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[3626],simde_mm256_xor_si256(c2[15774],simde_mm256_xor_si256(c2[16826],simde_mm256_xor_si256(c2[15270],simde_mm256_xor_si256(c2[16856],simde_mm256_xor_si256(c2[13689],simde_mm256_xor_si256(c2[6847],simde_mm256_xor_si256(c2[1560],c2[12655]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 45 - d2[540]=_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[11236],c2[8160])); + d2[540]=simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[11236],c2[8160])); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc128_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc128_byte.c index 45ad07040b..ad1bc53f1f 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc128_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc128_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc128_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[898],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[1737],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[1267],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[2235],c2[2555])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[898],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[1737],simde_mm256_xor_si256(c2[2546],simde_mm256_xor_si256(c2[1267],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[2235],c2[2555])))))))))))))))))))))))))); //row: 1 - d2[4]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[898],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[1737],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[1267],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[1114],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[2235],c2[2555])))))))))))))))))))))))))))))))); + d2[4]=simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1691],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[898],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[1737],simde_mm256_xor_si256(c2[2546],simde_mm256_xor_si256(c2[1267],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[1114],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[2235],c2[2555])))))))))))))))))))))))))))))))); //row: 2 - d2[8]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[898],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[2296],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[1737],_mm256_xor_si256(c2[67],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[1267],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[1114],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[2315],_mm256_xor_si256(c2[2235],c2[2555])))))))))))))))))))))))))))))))))))))))); + d2[8]=simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1691],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[898],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[1737],simde_mm256_xor_si256(c2[67],simde_mm256_xor_si256(c2[2546],simde_mm256_xor_si256(c2[1267],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[1114],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[2315],simde_mm256_xor_si256(c2[2235],c2[2555])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[12]=_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[898],_mm256_xor_si256(c2[2097],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[683],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[1817],_mm256_xor_si256(c2[1737],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[1267],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[2235],_mm256_xor_si256(c2[72],c2[2555])))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[898],simde_mm256_xor_si256(c2[2097],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[683],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[1817],simde_mm256_xor_si256(c2[1737],simde_mm256_xor_si256(c2[2546],simde_mm256_xor_si256(c2[1267],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[2235],simde_mm256_xor_si256(c2[72],c2[2555])))))))))))))))))))))))))))))))))); //row: 4 - d2[16]=_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[2169],_mm256_xor_si256(c2[1929],_mm256_xor_si256(c2[1130],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[1536],_mm256_xor_si256(c2[1456],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[107],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[987],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[1161],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[1888],_mm256_xor_si256(c2[219],_mm256_xor_si256(c2[2299],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[1986],_mm256_xor_si256(c2[1672],_mm256_xor_si256(c2[1592],_mm256_xor_si256(c2[234],c2[554])))))))))))))))))))))))))))))))))); + d2[16]=simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1043],simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[2249],simde_mm256_xor_si256(c2[2169],simde_mm256_xor_si256(c2[1929],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[1536],simde_mm256_xor_si256(c2[1456],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[107],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[987],simde_mm256_xor_si256(c2[1467],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[2115],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[1161],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[1888],simde_mm256_xor_si256(c2[219],simde_mm256_xor_si256(c2[2299],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[1986],simde_mm256_xor_si256(c2[1672],simde_mm256_xor_si256(c2[1592],simde_mm256_xor_si256(c2[234],c2[554])))))))))))))))))))))))))))))))))); //row: 5 - d2[20]=_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[2170],_mm256_xor_si256(c2[1930],_mm256_xor_si256(c2[1131],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[275],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[690],_mm256_xor_si256(c2[1889],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[2296],_mm256_xor_si256(c2[2536],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1987],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[1593],_mm256_xor_si256(c2[235],c2[555])))))))))))))))))))))))))))))))))))); + d2[20]=simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[2170],simde_mm256_xor_si256(c2[1930],simde_mm256_xor_si256(c2[1131],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[275],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[283],simde_mm256_xor_si256(c2[1162],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[690],simde_mm256_xor_si256(c2[1889],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[2536],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1987],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[1593],simde_mm256_xor_si256(c2[235],c2[555])))))))))))))))))))))))))))))))))))); //row: 6 - d2[24]=_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[1528],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[819],_mm256_xor_si256(c2[739],_mm256_xor_si256(c2[1858],_mm256_xor_si256(c2[1945],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[440],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[2210],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[2531],_mm256_xor_si256(c2[1171],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[1097],_mm256_xor_si256(c2[2387],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[955],_mm256_xor_si256(c2[875],_mm256_xor_si256(c2[2072],_mm256_xor_si256(c2[2392],c2[2312])))))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[2160],simde_mm256_xor_si256(c2[1528],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[819],simde_mm256_xor_si256(c2[739],simde_mm256_xor_si256(c2[1858],simde_mm256_xor_si256(c2[1945],simde_mm256_xor_si256(c2[1865],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[2193],simde_mm256_xor_si256(c2[2120],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[2210],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[2531],simde_mm256_xor_si256(c2[1171],simde_mm256_xor_si256(c2[2057],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1097],simde_mm256_xor_si256(c2[2387],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[1265],simde_mm256_xor_si256(c2[955],simde_mm256_xor_si256(c2[875],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[2392],c2[2312])))))))))))))))))))))))))))))))))))); //row: 7 - d2[28]=_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[1931],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[651],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[411],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[2171],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[1137],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[1145],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[2515],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[1793],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[1472],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[843],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[2529],_mm256_xor_si256(c2[1329],_mm256_xor_si256(c2[371],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[2456],_mm256_xor_si256(c2[1256],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[1016],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[307],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[1274],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[1275],_mm256_xor_si256(c2[1675],_mm256_xor_si256(c2[232],c2[1595])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[28]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[2080],simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[1931],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[651],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[411],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[2171],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[1138],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[1137],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1057],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[2264],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[1145],simde_mm256_xor_si256(c2[2504],simde_mm256_xor_si256(c2[2515],simde_mm256_xor_si256(c2[1315],simde_mm256_xor_si256(c2[1793],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[843],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[2529],simde_mm256_xor_si256(c2[1329],simde_mm256_xor_si256(c2[371],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[2456],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[857],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[1016],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[307],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[1354],simde_mm256_xor_si256(c2[1274],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[2475],simde_mm256_xor_si256(c2[1275],simde_mm256_xor_si256(c2[1675],simde_mm256_xor_si256(c2[232],c2[1595])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[32]=_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[1120],_mm256_xor_si256(c2[2170],_mm256_xor_si256(c2[2090],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[2410],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[2496],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[2507],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1384],_mm256_xor_si256(c2[275],_mm256_xor_si256(c2[195],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[690],_mm256_xor_si256(c2[610],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[466],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[1907],_mm256_xor_si256(c2[1593],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[235],_mm256_xor_si256(c2[155],c2[475])))))))))))))))))))))))))))))))))))))))))); + d2[32]=simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[1120],simde_mm256_xor_si256(c2[2170],simde_mm256_xor_si256(c2[2090],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1051],simde_mm256_xor_si256(c2[2410],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[2496],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[2507],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[1384],simde_mm256_xor_si256(c2[275],simde_mm256_xor_si256(c2[195],simde_mm256_xor_si256(c2[2032],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[283],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[209],simde_mm256_xor_si256(c2[690],simde_mm256_xor_si256(c2[610],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[466],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[1907],simde_mm256_xor_si256(c2[1593],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[235],simde_mm256_xor_si256(c2[155],c2[475])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[36]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[562],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[1369],_mm256_xor_si256(c2[891],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[651],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[2411],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[1779],_mm256_xor_si256(c2[1297],_mm256_xor_si256(c2[1384],_mm256_xor_si256(c2[1786],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[187],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[1632],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[2442],_mm256_xor_si256(c2[1649],_mm256_xor_si256(c2[2051],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[610],_mm256_xor_si256(c2[1978],_mm256_xor_si256(c2[1496],_mm256_xor_si256(c2[1499],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1025],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[1186],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[394],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[2313],c2[1835]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[36]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[562],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[1369],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[651],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[2411],simde_mm256_xor_si256(c2[890],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[1779],simde_mm256_xor_si256(c2[1297],simde_mm256_xor_si256(c2[1384],simde_mm256_xor_si256(c2[1786],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[187],simde_mm256_xor_si256(c2[2264],simde_mm256_xor_si256(c2[667],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[2033],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[1315],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[2114],simde_mm256_xor_si256(c2[1632],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[2442],simde_mm256_xor_si256(c2[1649],simde_mm256_xor_si256(c2[2051],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[2448],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[610],simde_mm256_xor_si256(c2[1978],simde_mm256_xor_si256(c2[1496],simde_mm256_xor_si256(c2[1499],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[2304],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1025],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[1186],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[394],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[2313],c2[1835]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[40]=_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[2009],_mm256_xor_si256(c2[48],c2[1739]))); + d2[40]=simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[2009],simde_mm256_xor_si256(c2[48],c2[1739]))); //row: 11 - d2[44]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[1379],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[2346],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[915],_mm256_xor_si256(c2[1794],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[1651],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[1099],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[786],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[1593],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1913],c2[1514]))))))))))))))))))))))))))))))))))))); + d2[44]=simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[2489],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[1379],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[2346],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[915],simde_mm256_xor_si256(c2[1794],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[1651],simde_mm256_xor_si256(c2[2048],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1179],simde_mm256_xor_si256(c2[1099],simde_mm256_xor_si256(c2[1019],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[786],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[1593],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1913],c2[1514]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[48]=_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[2491],_mm256_xor_si256(c2[1688],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[2098],_mm256_xor_si256(c2[2018],_mm256_xor_si256(c2[578],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[1545],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[1227],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[1723],_mm256_xor_si256(c2[930],_mm256_xor_si256(c2[850],_mm256_xor_si256(c2[1251],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[298],_mm256_xor_si256(c2[1107],_mm256_xor_si256(c2[2387],_mm256_xor_si256(c2[2544],_mm256_xor_si256(c2[2234],_mm256_xor_si256(c2[2154],_mm256_xor_si256(c2[792],c2[1112])))))))))))))))))))))))))))))))))); + d2[48]=simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[2491],simde_mm256_xor_si256(c2[1688],simde_mm256_xor_si256(c2[2489],simde_mm256_xor_si256(c2[2098],simde_mm256_xor_si256(c2[2018],simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[1545],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[1227],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[1723],simde_mm256_xor_si256(c2[930],simde_mm256_xor_si256(c2[850],simde_mm256_xor_si256(c2[1251],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[298],simde_mm256_xor_si256(c2[1107],simde_mm256_xor_si256(c2[2387],simde_mm256_xor_si256(c2[2544],simde_mm256_xor_si256(c2[2234],simde_mm256_xor_si256(c2[2154],simde_mm256_xor_si256(c2[792],c2[1112])))))))))))))))))))))))))))))))))); //row: 13 - d2[52]=_mm256_xor_si256(c2[483],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[1450],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[411],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[1856],_mm256_xor_si256(c2[1867],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[2122],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[442],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[2529],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[2059],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[1576],_mm256_xor_si256(c2[2385],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[1267],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[873],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[2474],c2[2394]))))))))))))))))))))))))))))))))))))); + d2[52]=simde_mm256_xor_si256(c2[483],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[1450],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[411],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[1856],simde_mm256_xor_si256(c2[1867],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[2114],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[2275],simde_mm256_xor_si256(c2[2195],simde_mm256_xor_si256(c2[2122],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[442],simde_mm256_xor_si256(c2[2128],simde_mm256_xor_si256(c2[2529],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[2059],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[1576],simde_mm256_xor_si256(c2[2385],simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[1347],simde_mm256_xor_si256(c2[1267],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[873],simde_mm256_xor_si256(c2[2074],simde_mm256_xor_si256(c2[2474],c2[2394]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[56]=_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[1120],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[1921],_mm256_xor_si256(c2[1931],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[2010],_mm256_xor_si256(c2[1291],_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[1211],_mm256_xor_si256(c2[1531],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1145],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[2515],_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[1793],_mm256_xor_si256(c2[2192],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[843],_mm256_xor_si256(c2[1242],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[2529],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[371],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[1969],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[2456],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[2456],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[626],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[2147],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[2067],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[1274],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[715],_mm256_xor_si256(c2[232],c2[635]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[56]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[1120],simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[1921],simde_mm256_xor_si256(c2[1931],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[2010],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[1211],simde_mm256_xor_si256(c2[1531],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[1138],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[2264],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1145],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[2515],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[1793],simde_mm256_xor_si256(c2[2192],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[843],simde_mm256_xor_si256(c2[1242],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[2529],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[371],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[2049],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[1969],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[2456],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[2456],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[2376],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[626],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[1906],simde_mm256_xor_si256(c2[2147],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[2067],simde_mm256_xor_si256(c2[1354],simde_mm256_xor_si256(c2[1274],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[2475],simde_mm256_xor_si256(c2[315],simde_mm256_xor_si256(c2[715],simde_mm256_xor_si256(c2[232],c2[635]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[60]=_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[1682],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[730],_mm256_xor_si256(c2[9],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[2099],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1227],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[1147],_mm256_xor_si256(c2[1626],_mm256_xor_si256(c2[2107],_mm256_xor_si256(c2[2106],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[195],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[2281],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[931],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[2531],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[858],_mm256_xor_si256(c2[1339],_mm256_xor_si256(c2[379],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[1184],_mm256_xor_si256(c2[1665],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[2235],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[873],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[1193],c2[1674])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[60]=simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[1682],simde_mm256_xor_si256(c2[2163],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[730],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[2099],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[659],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1227],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[1626],simde_mm256_xor_si256(c2[2107],simde_mm256_xor_si256(c2[2106],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[195],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[1402],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[1488],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[2531],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[858],simde_mm256_xor_si256(c2[1339],simde_mm256_xor_si256(c2[379],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[1184],simde_mm256_xor_si256(c2[1665],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[2235],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[873],simde_mm256_xor_si256(c2[1354],simde_mm256_xor_si256(c2[1193],c2[1674])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[64]=_mm256_xor_si256(c2[1360],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[2083],_mm256_xor_si256(c2[2000],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[2331],_mm256_xor_si256(c2[571],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[2011],_mm256_xor_si256(c2[251],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[2011],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[1618],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[1538],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[897],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[105],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[1545],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[1155],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[1650],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[1096],_mm256_xor_si256(c2[2377],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[1506],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[1907],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[1674],_mm256_xor_si256(c2[2473],_mm256_xor_si256(c2[1195],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[1115],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[1435],c2[1192]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[64]=simde_mm256_xor_si256(c2[1360],simde_mm256_xor_si256(c2[2163],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[2083],simde_mm256_xor_si256(c2[2000],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[571],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[2011],simde_mm256_xor_si256(c2[251],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[2011],simde_mm256_xor_si256(c2[890],simde_mm256_xor_si256(c2[1618],simde_mm256_xor_si256(c2[2417],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[2337],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[105],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[1944],simde_mm256_xor_si256(c2[1065],simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[1545],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[1155],simde_mm256_xor_si256(c2[2193],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[1650],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[1096],simde_mm256_xor_si256(c2[2377],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[1506],simde_mm256_xor_si256(c2[627],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[1907],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[2553],simde_mm256_xor_si256(c2[1674],simde_mm256_xor_si256(c2[2473],simde_mm256_xor_si256(c2[1195],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[1115],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[1435],c2[1192]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[68]=_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[2083],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[483],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[571],_mm256_xor_si256(c2[1689],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[1609],_mm256_xor_si256(c2[251],_mm256_xor_si256(c2[1369],_mm256_xor_si256(c2[2011],_mm256_xor_si256(c2[570],_mm256_xor_si256(c2[2411],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[897],_mm256_xor_si256(c2[2019],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[2106],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[2026],_mm256_xor_si256(c2[507],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[907],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[1155],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[2354],_mm256_xor_si256(c2[2361],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[2281],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[2371],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[1096],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[1739],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[2544],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[1112],_mm256_xor_si256(c2[2473],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[2313],_mm256_xor_si256(c2[1115],_mm256_xor_si256(c2[2233],_mm256_xor_si256(c2[1435],c2[2553]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[68]=simde_mm256_xor_si256(c2[2163],simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[2083],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[483],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[571],simde_mm256_xor_si256(c2[1689],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[1609],simde_mm256_xor_si256(c2[251],simde_mm256_xor_si256(c2[1369],simde_mm256_xor_si256(c2[2011],simde_mm256_xor_si256(c2[570],simde_mm256_xor_si256(c2[2411],simde_mm256_xor_si256(c2[2417],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[2337],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[2019],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[2106],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[2026],simde_mm256_xor_si256(c2[507],simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[907],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[1155],simde_mm256_xor_si256(c2[2273],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[2354],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[2371],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[209],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[2298],simde_mm256_xor_si256(c2[1096],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[1739],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[2544],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[1265],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[2553],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[2473],simde_mm256_xor_si256(c2[1032],simde_mm256_xor_si256(c2[2313],simde_mm256_xor_si256(c2[1115],simde_mm256_xor_si256(c2[2233],simde_mm256_xor_si256(c2[1435],c2[2553]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[72]=_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[210],c2[1497])); + d2[72]=simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[210],c2[1497])); //row: 19 - d2[76]=_mm256_xor_si256(c2[82],_mm256_xor_si256(c2[2482],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1608],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[1466],_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[347],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1794],_mm256_xor_si256(c2[1721],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[1673],c2[1993])))))))))))))))))))))))))))); + d2[76]=simde_mm256_xor_si256(c2[82],simde_mm256_xor_si256(c2[2482],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[1842],simde_mm256_xor_si256(c2[1049],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1608],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[1466],simde_mm256_xor_si256(c2[2426],simde_mm256_xor_si256(c2[347],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[1794],simde_mm256_xor_si256(c2[1721],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[2128],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[1179],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[472],simde_mm256_xor_si256(c2[1673],c2[1993])))))))))))))))))))))))))))); //row: 20 - d2[80]=_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[739],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[1785],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[1314],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[755],_mm256_xor_si256(c2[2040],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[1091],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[2307],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[1185],_mm256_xor_si256(c2[875],_mm256_xor_si256(c2[795],_mm256_xor_si256(c2[1992],c2[2312])))))))))))))))))))))))))))))))))); + d2[80]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[1043],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[1128],simde_mm256_xor_si256(c2[329],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[739],simde_mm256_xor_si256(c2[659],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[1865],simde_mm256_xor_si256(c2[1785],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[2032],simde_mm256_xor_si256(c2[1314],simde_mm256_xor_si256(c2[2113],simde_mm256_xor_si256(c2[755],simde_mm256_xor_si256(c2[2040],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[1091],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[1498],simde_mm256_xor_si256(c2[2307],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[1185],simde_mm256_xor_si256(c2[875],simde_mm256_xor_si256(c2[795],simde_mm256_xor_si256(c2[1992],c2[2312])))))))))))))))))))))))))))))))))); //row: 21 - d2[84]=_mm256_xor_si256(c2[2082],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[250],_mm256_xor_si256(c2[2090],_mm256_xor_si256(c2[2010],_mm256_xor_si256(c2[2336],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[907],_mm256_xor_si256(c2[1867],_mm256_xor_si256(c2[2347],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[2121],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[1099],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[1425],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[307],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[2472],_mm256_xor_si256(c2[1114],_mm256_xor_si256(c2[1514],c2[1434])))))))))))))))))))))))))))))))))))); + d2[84]=simde_mm256_xor_si256(c2[2082],simde_mm256_xor_si256(c2[1923],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[2090],simde_mm256_xor_si256(c2[2010],simde_mm256_xor_si256(c2[2336],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[907],simde_mm256_xor_si256(c2[1867],simde_mm256_xor_si256(c2[2347],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[1315],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[1162],simde_mm256_xor_si256(c2[2121],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[209],simde_mm256_xor_si256(c2[1099],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[1425],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[387],simde_mm256_xor_si256(c2[307],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[2472],simde_mm256_xor_si256(c2[1114],simde_mm256_xor_si256(c2[1514],c2[1434])))))))))))))))))))))))))))))))))))); //row: 22 - d2[88]=_mm256_xor_si256(c2[2410],c2[2497]); + d2[88]=simde_mm256_xor_si256(c2[2410],c2[2497]); //row: 23 - d2[92]=_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[907],c2[1163])); + d2[92]=simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[907],c2[1163])); //row: 24 - d2[96]=_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[896],c2[712])); + d2[96]=simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[896],c2[712])); //row: 25 - d2[100]=_mm256_xor_si256(c2[323],c2[2280]); + d2[100]=simde_mm256_xor_si256(c2[323],c2[2280]); //row: 26 - d2[104]=_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[562],_mm256_xor_si256(c2[482],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[1688],_mm256_xor_si256(c2[1608],_mm256_xor_si256(c2[1131],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[891],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[569],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[979],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[418],_mm256_xor_si256(c2[1617],_mm256_xor_si256(c2[2018],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[2336],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[1554],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[2280],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[2370],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[2210],_mm256_xor_si256(c2[930],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[850],_mm256_xor_si256(c2[2297],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[1736],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[1257],_mm256_xor_si256(c2[1256],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[2547],_mm256_xor_si256(c2[2066],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[787],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[1425],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1115],_mm256_xor_si256(c2[1035],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[2232],_mm256_xor_si256(c2[1755],_mm256_xor_si256(c2[2155],_mm256_xor_si256(c2[2552],c2[2075]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[104]=simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[562],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[1688],simde_mm256_xor_si256(c2[1608],simde_mm256_xor_si256(c2[1131],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[569],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[979],simde_mm256_xor_si256(c2[899],simde_mm256_xor_si256(c2[418],simde_mm256_xor_si256(c2[1617],simde_mm256_xor_si256(c2[2018],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[2336],simde_mm256_xor_si256(c2[2105],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[2504],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2272],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1554],simde_mm256_xor_si256(c2[1073],simde_mm256_xor_si256(c2[1952],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[2280],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[123],simde_mm256_xor_si256(c2[2370],simde_mm256_xor_si256(c2[2290],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[2210],simde_mm256_xor_si256(c2[930],simde_mm256_xor_si256(c2[1331],simde_mm256_xor_si256(c2[850],simde_mm256_xor_si256(c2[2297],simde_mm256_xor_si256(c2[2217],simde_mm256_xor_si256(c2[1736],simde_mm256_xor_si256(c2[1337],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[1257],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[2547],simde_mm256_xor_si256(c2[2066],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[1425],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[1115],simde_mm256_xor_si256(c2[1035],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[2232],simde_mm256_xor_si256(c2[1755],simde_mm256_xor_si256(c2[2155],simde_mm256_xor_si256(c2[2552],c2[2075]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[108]=_mm256_xor_si256(c2[640],c2[1888]); + d2[108]=simde_mm256_xor_si256(c2[640],c2[1888]); //row: 28 - d2[112]=_mm256_xor_si256(c2[171],_mm256_xor_si256(c2[419],c2[600])); + d2[112]=simde_mm256_xor_si256(c2[171],simde_mm256_xor_si256(c2[419],c2[600])); //row: 29 - d2[116]=_mm256_xor_si256(c2[1440],c2[2272]); + d2[116]=simde_mm256_xor_si256(c2[1440],c2[2272]); //row: 30 - d2[120]=_mm256_xor_si256(c2[578],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[776],c2[1674]))); + d2[120]=simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[776],c2[1674]))); //row: 31 - d2[124]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[1362],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[1451],_mm256_xor_si256(c2[728],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[811],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[2177],_mm256_xor_si256(c2[2097],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[763],_mm256_xor_si256(c2[683],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[2296],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[1817],_mm256_xor_si256(c2[67],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1114],_mm256_xor_si256(c2[2315],_mm256_xor_si256(c2[152],c2[72]))))))))))))))))))))))))))))))))))); + d2[124]=simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[1691],simde_mm256_xor_si256(c2[1451],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[2177],simde_mm256_xor_si256(c2[2097],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[763],simde_mm256_xor_si256(c2[683],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1817],simde_mm256_xor_si256(c2[67],simde_mm256_xor_si256(c2[1347],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[1114],simde_mm256_xor_si256(c2[2315],simde_mm256_xor_si256(c2[152],c2[72]))))))))))))))))))))))))))))))))))); //row: 32 - d2[128]=_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[1042],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1763],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[2168],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[1379],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[2505],_mm256_xor_si256(c2[986],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[273],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[1744],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[1595],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[153],c2[473])))))))))))))))))))))))))))))))))))))))))); + d2[128]=simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1763],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[2168],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[1848],simde_mm256_xor_si256(c2[1049],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[1379],simde_mm256_xor_si256(c2[2498],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[2505],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[273],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[2034],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[1001],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[1744],simde_mm256_xor_si256(c2[1905],simde_mm256_xor_si256(c2[1595],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[153],c2[473])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[132]=_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[1360],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[2490],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[1451],_mm256_xor_si256(c2[1777],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[1784],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[1482],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[1010],_mm256_xor_si256(c2[2209],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[377],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2146],_mm256_xor_si256(c2[2307],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[555],c2[875])))))))))))))))))))))))))))); + d2[132]=simde_mm256_xor_si256(c2[1523],simde_mm256_xor_si256(c2[1360],simde_mm256_xor_si256(c2[2161],simde_mm256_xor_si256(c2[2490],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[1451],simde_mm256_xor_si256(c2[1777],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[1784],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[1482],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[2209],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[377],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[2146],simde_mm256_xor_si256(c2[2307],simde_mm256_xor_si256(c2[1913],simde_mm256_xor_si256(c2[555],c2[875])))))))))))))))))))))))))))); //row: 34 - d2[136]=_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[730],_mm256_xor_si256(c2[1928],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[1688],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[1219],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[1227],_mm256_xor_si256(c2[1147],_mm256_xor_si256(c2[2345],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[2107],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[1474],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[1482],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[2281],_mm256_xor_si256(c2[920],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[51],_mm256_xor_si256(c2[1889],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[1651],_mm256_xor_si256(c2[1419],_mm256_xor_si256(c2[1339],_mm256_xor_si256(c2[2537],_mm256_xor_si256(c2[2138],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[2058],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[1665],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[1355],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[2552],_mm256_xor_si256(c2[393],_mm256_xor_si256(c2[1674],c2[313])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[136]=simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[2163],simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[1520],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[730],simde_mm256_xor_si256(c2[1928],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[1688],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[2418],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[1227],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[2345],simde_mm256_xor_si256(c2[2187],simde_mm256_xor_si256(c2[2107],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1474],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[1874],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[1482],simde_mm256_xor_si256(c2[1402],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[920],simde_mm256_xor_si256(c2[1488],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[51],simde_mm256_xor_si256(c2[1889],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[1651],simde_mm256_xor_si256(c2[1419],simde_mm256_xor_si256(c2[1339],simde_mm256_xor_si256(c2[2537],simde_mm256_xor_si256(c2[2138],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[2058],simde_mm256_xor_si256(c2[1745],simde_mm256_xor_si256(c2[1665],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[1745],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[1355],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1354],simde_mm256_xor_si256(c2[2552],simde_mm256_xor_si256(c2[393],simde_mm256_xor_si256(c2[1674],c2[313])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[140]=_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[562],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[1609],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[1289],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[2009],_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[1939],_mm256_xor_si256(c2[2026],_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[347],_mm256_xor_si256(c2[827],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[521],_mm256_xor_si256(c2[681],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[49],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[2138],_mm256_xor_si256(c2[1659],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[1185],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[952],_mm256_xor_si256(c2[2153],c2[2473])))))))))))))))))))))))))))))))))); + d2[140]=simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[562],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[1609],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[1289],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[2009],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[1939],simde_mm256_xor_si256(c2[2026],simde_mm256_xor_si256(c2[1946],simde_mm256_xor_si256(c2[347],simde_mm256_xor_si256(c2[827],simde_mm256_xor_si256(c2[2193],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[2274],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[521],simde_mm256_xor_si256(c2[681],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[49],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[2138],simde_mm256_xor_si256(c2[1659],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[1185],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[1032],simde_mm256_xor_si256(c2[952],simde_mm256_xor_si256(c2[2153],c2[2473])))))))))))))))))))))))))))))))))); //row: 36 - d2[144]=_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[497],c2[2136])); + d2[144]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[497],c2[2136])); //row: 37 - d2[148]=_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[2480],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2321],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[970],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[171],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[497],_mm256_xor_si256(c2[179],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[1616],_mm256_xor_si256(c2[1298],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[1305],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[1552],_mm256_xor_si256(c2[1152],_mm256_xor_si256(c2[834],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[1955],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[1882],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[2443],_mm256_xor_si256(c2[1888],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[611],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[1497],_mm256_xor_si256(c2[1098],_mm256_xor_si256(c2[1336],_mm256_xor_si256(c2[1018],_mm256_xor_si256(c2[2145],_mm256_xor_si256(c2[1827],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[785],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[1834],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[2154],c2[1832]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[148]=simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[2480],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[2321],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[970],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[2488],simde_mm256_xor_si256(c2[171],simde_mm256_xor_si256(c2[2408],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[179],simde_mm256_xor_si256(c2[1378],simde_mm256_xor_si256(c2[1616],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[1305],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[1874],simde_mm256_xor_si256(c2[1552],simde_mm256_xor_si256(c2[1152],simde_mm256_xor_si256(c2[834],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[1955],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[1882],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[2443],simde_mm256_xor_si256(c2[1888],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[611],simde_mm256_xor_si256(c2[1819],simde_mm256_xor_si256(c2[1497],simde_mm256_xor_si256(c2[1098],simde_mm256_xor_si256(c2[1336],simde_mm256_xor_si256(c2[1018],simde_mm256_xor_si256(c2[2145],simde_mm256_xor_si256(c2[1827],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[785],simde_mm256_xor_si256(c2[1027],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[315],simde_mm256_xor_si256(c2[1834],simde_mm256_xor_si256(c2[1512],simde_mm256_xor_si256(c2[1912],simde_mm256_xor_si256(c2[2154],c2[1832]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[152]=_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1763],_mm256_xor_si256(c2[2168],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[1379],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[2505],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[1744],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[1595],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[153],c2[473])))))))))))))))))))))))))))))))))); + d2[152]=simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1763],simde_mm256_xor_si256(c2[2168],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[1848],simde_mm256_xor_si256(c2[1049],simde_mm256_xor_si256(c2[2488],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[1379],simde_mm256_xor_si256(c2[2498],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[2505],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[2034],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[1744],simde_mm256_xor_si256(c2[1905],simde_mm256_xor_si256(c2[1595],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[153],c2[473])))))))))))))))))))))))))))))))))); //row: 39 - d2[156]=_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[1768],_mm256_xor_si256(c2[1528],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[1059],_mm256_xor_si256(c2[2178],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[2185],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[586],_mm256_xor_si256(c2[1066],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[2440],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[2530],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[2457],_mm256_xor_si256(c2[2377],_mm256_xor_si256(c2[1898],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1275],_mm256_xor_si256(c2[1195],_mm256_xor_si256(c2[2472],_mm256_xor_si256(c2[2392],c2[153])))))))))))))))))))))))))))))))))))))))))); + d2[156]=simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[1848],simde_mm256_xor_si256(c2[1768],simde_mm256_xor_si256(c2[1528],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[1059],simde_mm256_xor_si256(c2[2178],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[2185],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[586],simde_mm256_xor_si256(c2[1066],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[2513],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[2440],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[2530],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[1491],simde_mm256_xor_si256(c2[2457],simde_mm256_xor_si256(c2[2377],simde_mm256_xor_si256(c2[1898],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1275],simde_mm256_xor_si256(c2[1195],simde_mm256_xor_si256(c2[2472],simde_mm256_xor_si256(c2[2392],c2[153])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[160]=_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[731],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[1450],_mm256_xor_si256(c2[2491],_mm256_xor_si256(c2[1776],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[347],_mm256_xor_si256(c2[1384],_mm256_xor_si256(c2[1307],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[265],_mm256_xor_si256(c2[594],_mm256_xor_si256(c2[1635],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[675],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[1643],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1649],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[2208],_mm256_xor_si256(c2[690],_mm256_xor_si256(c2[539],_mm256_xor_si256(c2[1576],_mm256_xor_si256(c2[1177],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[1097],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[2145],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[2306],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[394],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[1595],_mm256_xor_si256(c2[1995],_mm256_xor_si256(c2[874],c2[1915])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[160]=simde_mm256_xor_si256(c2[1522],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[2160],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[2489],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[2249],simde_mm256_xor_si256(c2[731],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[1450],simde_mm256_xor_si256(c2[2491],simde_mm256_xor_si256(c2[1776],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[347],simde_mm256_xor_si256(c2[1384],simde_mm256_xor_si256(c2[1307],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[1787],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[594],simde_mm256_xor_si256(c2[1635],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[675],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[1643],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[2522],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1649],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[2208],simde_mm256_xor_si256(c2[690],simde_mm256_xor_si256(c2[539],simde_mm256_xor_si256(c2[1576],simde_mm256_xor_si256(c2[1177],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[1097],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[1906],simde_mm256_xor_si256(c2[2145],simde_mm256_xor_si256(c2[627],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[2306],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[1912],simde_mm256_xor_si256(c2[394],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[1595],simde_mm256_xor_si256(c2[1995],simde_mm256_xor_si256(c2[874],c2[1915])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[164]=_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[482],_mm256_xor_si256(c2[891],_mm256_xor_si256(c2[811],_mm256_xor_si256(c2[571],_mm256_xor_si256(c2[2331],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[105],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[1552],_mm256_xor_si256(c2[1483],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[443],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[1489],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[1416],_mm256_xor_si256(c2[937],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[624],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[1435],c2[1755])))))))))))))))))))))))))))))))))); + d2[164]=simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[2240],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[571],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[105],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[1552],simde_mm256_xor_si256(c2[1483],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[443],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[1435],c2[1755])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc160_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc160_byte.c index 88a453a74d..b2f90e62d0 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc160_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc160_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc160_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[3114],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[511],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[2733],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2291],c2[1391])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[3114],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[511],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[2733],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[3154],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2081],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2291],c2[1391])))))))))))))))))))))))))); //row: 1 - d2[5]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[3114],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[511],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[2733],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2291],c2[1391])))))))))))))))))))))))))))))))); + d2[5]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[3114],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[511],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[2733],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[3154],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2081],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2291],c2[1391])))))))))))))))))))))))))))))))); //row: 2 - d2[10]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[3114],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[511],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[2733],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[2462],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[2291],c2[1391])))))))))))))))))))))))))))))))))))))))); + d2[10]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[3114],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[511],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[2833],simde_mm256_xor_si256(c2[2733],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[3154],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[2462],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2081],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[2291],c2[1391])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[15]=_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[3114],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[611],_mm256_xor_si256(c2[511],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[2733],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[1854],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[2571],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[2181],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[1491],c2[1391])))))))))))))))))))))))))))))))))); + d2[15]=simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[3114],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[611],simde_mm256_xor_si256(c2[511],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[1520],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[2733],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[3154],simde_mm256_xor_si256(c2[1854],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[2571],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2181],simde_mm256_xor_si256(c2[2081],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[1491],c2[1391])))))))))))))))))))))))))))))))))); //row: 4 - d2[20]=_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[2612],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[814],_mm256_xor_si256(c2[2924],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[1120],_mm256_xor_si256(c2[2934],_mm256_xor_si256(c2[2834],_mm256_xor_si256(c2[2433],_mm256_xor_si256(c2[3132],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[2854],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[2964],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[2062],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[2874],_mm256_xor_si256(c2[2171],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[883],_mm256_xor_si256(c2[1781],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[2894],_mm256_xor_si256(c2[1991],c2[1091])))))))))))))))))))))))))))))))))); + d2[20]=simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[1600],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2914],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[2612],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[814],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[1120],simde_mm256_xor_si256(c2[2934],simde_mm256_xor_si256(c2[2834],simde_mm256_xor_si256(c2[2433],simde_mm256_xor_si256(c2[3132],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[2854],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[2964],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[2062],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[2874],simde_mm256_xor_si256(c2[2171],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[883],simde_mm256_xor_si256(c2[1781],simde_mm256_xor_si256(c2[2994],simde_mm256_xor_si256(c2[2894],simde_mm256_xor_si256(c2[1991],c2[1091])))))))))))))))))))))))))))))))))); //row: 5 - d2[25]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[1902],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[1422],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[3131],_mm256_xor_si256(c2[2730],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[1751],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[3161],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[2473],_mm256_xor_si256(c2[1374],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[2083],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[2293],c2[1393])))))))))))))))))))))))))))))))))))); + d2[25]=simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[1902],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[3111],simde_mm256_xor_si256(c2[2914],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[1422],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[3131],simde_mm256_xor_si256(c2[2730],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[1751],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[3161],simde_mm256_xor_si256(c2[2364],simde_mm256_xor_si256(c2[1162],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[2473],simde_mm256_xor_si256(c2[1374],simde_mm256_xor_si256(c2[3181],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[2083],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[2293],c2[1393])))))))))))))))))))))))))))))))))))); //row: 6 - d2[30]=_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[2803],_mm256_xor_si256(c2[700],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2014],_mm256_xor_si256(c2[1914],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[2510],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[1934],_mm256_xor_si256(c2[1533],_mm256_xor_si256(c2[2232],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[2542],_mm256_xor_si256(c2[1954],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[2853],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[1974],_mm256_xor_si256(c2[1271],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[3182],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[2094],_mm256_xor_si256(c2[1994],_mm256_xor_si256(c2[1091],_mm256_xor_si256(c2[191],c2[1391])))))))))))))))))))))))))))))))))))); + d2[30]=simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[2803],simde_mm256_xor_si256(c2[700],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2014],simde_mm256_xor_si256(c2[1914],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[2510],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[2034],simde_mm256_xor_si256(c2[1934],simde_mm256_xor_si256(c2[1533],simde_mm256_xor_si256(c2[2232],simde_mm256_xor_si256(c2[1944],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[2542],simde_mm256_xor_si256(c2[1954],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[2853],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[1162],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[1974],simde_mm256_xor_si256(c2[1271],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[3182],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[2094],simde_mm256_xor_si256(c2[1994],simde_mm256_xor_si256(c2[1091],simde_mm256_xor_si256(c2[191],c2[1391])))))))))))))))))))))))))))))))))))); //row: 7 - d2[35]=_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[3102],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[13],_mm256_xor_si256(c2[3112],_mm256_xor_si256(c2[1312],_mm256_xor_si256(c2[2910],_mm256_xor_si256(c2[1110],_mm256_xor_si256(c2[514],_mm256_xor_si256(c2[2013],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[23],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[1423],_mm256_xor_si256(c2[2922],_mm256_xor_si256(c2[2822],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[3132],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[2731],_mm256_xor_si256(c2[931],_mm256_xor_si256(c2[231],_mm256_xor_si256(c2[1630],_mm256_xor_si256(c2[3142],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[843],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[2040],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[1352],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[1351],_mm256_xor_si256(c2[63],_mm256_xor_si256(c2[3162],_mm256_xor_si256(c2[1362],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[3172],_mm256_xor_si256(c2[1372],_mm256_xor_si256(c2[2474],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[3182],_mm256_xor_si256(c2[1382],_mm256_xor_si256(c2[1181],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[93],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[2294],_mm256_xor_si256(c2[494],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[2893],c2[2793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[35]=simde_mm256_xor_si256(c2[3],simde_mm256_xor_si256(c2[3102],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[13],simde_mm256_xor_si256(c2[3112],simde_mm256_xor_si256(c2[1312],simde_mm256_xor_si256(c2[2910],simde_mm256_xor_si256(c2[1110],simde_mm256_xor_si256(c2[514],simde_mm256_xor_si256(c2[2013],simde_mm256_xor_si256(c2[1913],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[23],simde_mm256_xor_si256(c2[3122],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1423],simde_mm256_xor_si256(c2[2922],simde_mm256_xor_si256(c2[2822],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[3132],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[2731],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[231],simde_mm256_xor_si256(c2[1630],simde_mm256_xor_si256(c2[3142],simde_mm256_xor_si256(c2[1342],simde_mm256_xor_si256(c2[843],simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[2040],simde_mm256_xor_si256(c2[1940],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[1352],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[1351],simde_mm256_xor_si256(c2[63],simde_mm256_xor_si256(c2[3162],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[3172],simde_mm256_xor_si256(c2[1372],simde_mm256_xor_si256(c2[2474],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[2074],simde_mm256_xor_si256(c2[3182],simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[1181],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[2084],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[93],simde_mm256_xor_si256(c2[3192],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[2294],simde_mm256_xor_si256(c2[494],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[2893],c2[2793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[40]=_mm256_xor_si256(c2[2302],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[1003],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[2212],_mm256_xor_si256(c2[2010],_mm256_xor_si256(c2[2813],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[523],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[2232],_mm256_xor_si256(c2[1931],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[2530],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[3142],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2252],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[2262],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[1460],_mm256_xor_si256(c2[263],_mm256_xor_si256(c2[2372],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[1184],_mm256_xor_si256(c2[2392],_mm256_xor_si256(c2[2292],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[1394],c2[494])))))))))))))))))))))))))))))))))))))))))); + d2[40]=simde_mm256_xor_si256(c2[2302],simde_mm256_xor_si256(c2[2202],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[1003],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[2212],simde_mm256_xor_si256(c2[2010],simde_mm256_xor_si256(c2[2813],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[2222],simde_mm256_xor_si256(c2[523],simde_mm256_xor_si256(c2[2332],simde_mm256_xor_si256(c2[2232],simde_mm256_xor_si256(c2[1931],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[2530],simde_mm256_xor_si256(c2[2342],simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[3142],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[2252],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[2262],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1460],simde_mm256_xor_si256(c2[263],simde_mm256_xor_si256(c2[2372],simde_mm256_xor_si256(c2[2272],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[1184],simde_mm256_xor_si256(c2[2392],simde_mm256_xor_si256(c2[2292],simde_mm256_xor_si256(c2[1494],simde_mm256_xor_si256(c2[1394],c2[494])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[45]=_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[2700],_mm256_xor_si256(c2[2901],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[803],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[2012],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[2412],_mm256_xor_si256(c2[2613],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[2122],_mm256_xor_si256(c2[2022],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[323],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[1631],_mm256_xor_si256(c2[2134],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[2942],_mm256_xor_si256(c2[2444],_mm256_xor_si256(c2[2640],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[451],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[2162],_mm256_xor_si256(c2[2062],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[3061],_mm256_xor_si256(c2[63],_mm256_xor_si256(c2[1871],_mm256_xor_si256(c2[2072],_mm256_xor_si256(c2[1173],_mm256_xor_si256(c2[1374],_mm256_xor_si256(c2[1881],_mm256_xor_si256(c2[2082],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[783],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[1891],_mm256_xor_si256(c2[2192],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[993],_mm256_xor_si256(c2[1194],_mm256_xor_si256(c2[93],c2[294]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[45]=simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[2102],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[2700],simde_mm256_xor_si256(c2[2901],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[803],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[2012],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[1810],simde_mm256_xor_si256(c2[2412],simde_mm256_xor_si256(c2[2613],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[2122],simde_mm256_xor_si256(c2[2022],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[323],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[2032],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[1631],simde_mm256_xor_si256(c2[2134],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[2942],simde_mm256_xor_si256(c2[2444],simde_mm256_xor_si256(c2[2640],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[2052],simde_mm256_xor_si256(c2[451],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[2162],simde_mm256_xor_si256(c2[2062],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[3061],simde_mm256_xor_si256(c2[63],simde_mm256_xor_si256(c2[1871],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[1173],simde_mm256_xor_si256(c2[1374],simde_mm256_xor_si256(c2[1881],simde_mm256_xor_si256(c2[2082],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[783],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[1891],simde_mm256_xor_si256(c2[2192],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[1194],simde_mm256_xor_si256(c2[93],c2[294]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[50]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1710],_mm256_xor_si256(c2[2864],c2[2070]))); + d2[50]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1710],simde_mm256_xor_si256(c2[2864],c2[2070]))); //row: 11 - d2[55]=_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[1004],_mm256_xor_si256(c2[2100],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[3112],_mm256_xor_si256(c2[811],_mm256_xor_si256(c2[711],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[1720],_mm256_xor_si256(c2[1620],_mm256_xor_si256(c2[130],_mm256_xor_si256(c2[2933],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[843],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[2054],_mm256_xor_si256(c2[1954],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[1460],_mm256_xor_si256(c2[1360],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[2771],_mm256_xor_si256(c2[2671],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[1383],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[2281],_mm256_xor_si256(c2[190],_mm256_xor_si256(c2[2491],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[1591],c2[490]))))))))))))))))))))))))))))))))))))); + d2[55]=simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[2100],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[3112],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[711],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[1720],simde_mm256_xor_si256(c2[1620],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[2933],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[843],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[2054],simde_mm256_xor_si256(c2[1954],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[1460],simde_mm256_xor_si256(c2[1360],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[2771],simde_mm256_xor_si256(c2[2671],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[1383],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[2491],simde_mm256_xor_si256(c2[1691],simde_mm256_xor_si256(c2[1591],c2[490]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[60]=_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1511],_mm256_xor_si256(c2[1314],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[3021],_mm256_xor_si256(c2[1631],_mm256_xor_si256(c2[1531],_mm256_xor_si256(c2[1130],_mm256_xor_si256(c2[1834],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[2441],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[1551],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[1661],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[2761],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[873],_mm256_xor_si256(c2[1581],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[483],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[1591],_mm256_xor_si256(c2[693],c2[2992])))))))))))))))))))))))))))))))))); + d2[60]=simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1511],simde_mm256_xor_si256(c2[1314],simde_mm256_xor_si256(c2[2112],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[3021],simde_mm256_xor_si256(c2[1631],simde_mm256_xor_si256(c2[1531],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[1834],simde_mm256_xor_si256(c2[1733],simde_mm256_xor_si256(c2[1541],simde_mm256_xor_si256(c2[2441],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[1551],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[1661],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[2761],simde_mm256_xor_si256(c2[1571],simde_mm256_xor_si256(c2[873],simde_mm256_xor_si256(c2[1581],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[483],simde_mm256_xor_si256(c2[1691],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[693],c2[2992])))))))))))))))))))))))))))))))))); //row: 13 - d2[65]=_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2510],_mm256_xor_si256(c2[2313],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[821],_mm256_xor_si256(c2[2530],_mm256_xor_si256(c2[2134],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[2540],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[3143],_mm256_xor_si256(c2[2550],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[1150],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[1763],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[2570],_mm256_xor_si256(c2[1972],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[584],_mm256_xor_si256(c2[1582],_mm256_xor_si256(c2[1482],_mm256_xor_si256(c2[683],_mm256_xor_si256(c2[2590],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[892],c2[792]))))))))))))))))))))))))))))))))))))); + d2[65]=simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2510],simde_mm256_xor_si256(c2[2313],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[3111],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[2530],simde_mm256_xor_si256(c2[2134],simde_mm256_xor_si256(c2[2833],simde_mm256_xor_si256(c2[2540],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[3143],simde_mm256_xor_si256(c2[2550],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[1150],simde_mm256_xor_si256(c2[2560],simde_mm256_xor_si256(c2[1763],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[2570],simde_mm256_xor_si256(c2[1972],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[584],simde_mm256_xor_si256(c2[1582],simde_mm256_xor_si256(c2[1482],simde_mm256_xor_si256(c2[683],simde_mm256_xor_si256(c2[2590],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[892],c2[792]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[70]=_mm256_xor_si256(c2[2501],_mm256_xor_si256(c2[2401],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1401],_mm256_xor_si256(c2[2511],_mm256_xor_si256(c2[2411],_mm256_xor_si256(c2[2610],_mm256_xor_si256(c2[2214],_mm256_xor_si256(c2[2413],_mm256_xor_si256(c2[3012],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[2421],_mm256_xor_si256(c2[2620],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[2531],_mm256_xor_si256(c2[2431],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[2030],_mm256_xor_si256(c2[2234],_mm256_xor_si256(c2[2734],_mm256_xor_si256(c2[2933],_mm256_xor_si256(c2[2441],_mm256_xor_si256(c2[2640],_mm256_xor_si256(c2[142],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2650],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[1350],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[2461],_mm256_xor_si256(c2[2660],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[1863],_mm256_xor_si256(c2[462],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[2670],_mm256_xor_si256(c2[1773],_mm256_xor_si256(c2[2072],_mm256_xor_si256(c2[1972],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[1383],_mm256_xor_si256(c2[1682],_mm256_xor_si256(c2[1582],_mm256_xor_si256(c2[2591],_mm256_xor_si256(c2[2491],_mm256_xor_si256(c2[2690],_mm256_xor_si256(c2[1593],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[693],_mm256_xor_si256(c2[992],c2[892]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[70]=simde_mm256_xor_si256(c2[2501],simde_mm256_xor_si256(c2[2401],simde_mm256_xor_si256(c2[2600],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1401],simde_mm256_xor_si256(c2[2511],simde_mm256_xor_si256(c2[2411],simde_mm256_xor_si256(c2[2610],simde_mm256_xor_si256(c2[2214],simde_mm256_xor_si256(c2[2413],simde_mm256_xor_si256(c2[3012],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[2421],simde_mm256_xor_si256(c2[2620],simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[2531],simde_mm256_xor_si256(c2[2431],simde_mm256_xor_si256(c2[2630],simde_mm256_xor_si256(c2[2030],simde_mm256_xor_si256(c2[2234],simde_mm256_xor_si256(c2[2734],simde_mm256_xor_si256(c2[2933],simde_mm256_xor_si256(c2[2441],simde_mm256_xor_si256(c2[2640],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[2650],simde_mm256_xor_si256(c2[1051],simde_mm256_xor_si256(c2[1350],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[2561],simde_mm256_xor_si256(c2[2461],simde_mm256_xor_si256(c2[2660],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[1863],simde_mm256_xor_si256(c2[462],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[2670],simde_mm256_xor_si256(c2[1773],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[1972],simde_mm256_xor_si256(c2[2481],simde_mm256_xor_si256(c2[2680],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[1383],simde_mm256_xor_si256(c2[1682],simde_mm256_xor_si256(c2[1582],simde_mm256_xor_si256(c2[2591],simde_mm256_xor_si256(c2[2491],simde_mm256_xor_si256(c2[2690],simde_mm256_xor_si256(c2[1593],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[693],simde_mm256_xor_si256(c2[992],c2[892]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[75]=_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[303],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[1701],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[2802],_mm256_xor_si256(c2[2203],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[213],_mm256_xor_si256(c2[610],_mm256_xor_si256(c2[11],_mm256_xor_si256(c2[1413],_mm256_xor_si256(c2[814],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[323],_mm256_xor_si256(c2[223],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[1723],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[333],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[431],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[1130],_mm256_xor_si256(c2[531],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[2651],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[862],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[263],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[2660],_mm256_xor_si256(c2[2062],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[273],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[882],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[2983],_mm256_xor_si256(c2[2384],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[393],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[3193],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[2293],c2[1694])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[75]=simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[303],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[1701],simde_mm256_xor_si256(c2[1102],simde_mm256_xor_si256(c2[2802],simde_mm256_xor_si256(c2[2203],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[610],simde_mm256_xor_si256(c2[11],simde_mm256_xor_si256(c2[1413],simde_mm256_xor_si256(c2[814],simde_mm256_xor_si256(c2[822],simde_mm256_xor_si256(c2[323],simde_mm256_xor_si256(c2[223],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[1723],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[333],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[431],simde_mm256_xor_si256(c2[3031],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[531],simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[243],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[2651],simde_mm256_xor_si256(c2[2052],simde_mm256_xor_si256(c2[862],simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[263],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[2660],simde_mm256_xor_si256(c2[2062],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[273],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[882],simde_mm256_xor_si256(c2[283],simde_mm256_xor_si256(c2[2080],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[2983],simde_mm256_xor_si256(c2[2384],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[393],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[3193],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[2293],c2[1694])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[80]=_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1404],_mm256_xor_si256(c2[2302],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[2303],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1413],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[1211],_mm256_xor_si256(c2[1212],_mm256_xor_si256(c2[2014],_mm256_xor_si256(c2[2010],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[1423],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[2923],_mm256_xor_si256(c2[2924],_mm256_xor_si256(c2[1533],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[1133],_mm256_xor_si256(c2[1033],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[1554],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[1564],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[662],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[1473],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[1474],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[1483],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[2681],_mm256_xor_si256(c2[2682],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[1593],_mm256_xor_si256(c2[1493],_mm256_xor_si256(c2[1594],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[590],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[591],_mm256_xor_si256(c2[2894],_mm256_xor_si256(c2[2890],c2[1592]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[80]=simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[1403],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[1404],simde_mm256_xor_si256(c2[2302],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[2303],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[1413],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[1414],simde_mm256_xor_si256(c2[1211],simde_mm256_xor_si256(c2[1212],simde_mm256_xor_si256(c2[2014],simde_mm256_xor_si256(c2[2010],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1523],simde_mm256_xor_si256(c2[1423],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[2923],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[1533],simde_mm256_xor_si256(c2[1433],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1032],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[1554],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[1564],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[662],simde_mm256_xor_si256(c2[2663],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[1473],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[1474],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[1483],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[2681],simde_mm256_xor_si256(c2[2682],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[1593],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[1594],simde_mm256_xor_si256(c2[1494],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[591],simde_mm256_xor_si256(c2[2894],simde_mm256_xor_si256(c2[2890],c2[1592]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[85]=_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[2604],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[501],_mm256_xor_si256(c2[1313],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[1710],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[1223],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[1720],_mm256_xor_si256(c2[2723],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[1233],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[1334],_mm256_xor_si256(c2[1531],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[1740],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[2640],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[1750],_mm256_xor_si256(c2[3052],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[1263],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[461],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[963],_mm256_xor_si256(c2[2463],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[1273],_mm256_xor_si256(c2[1870],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[570],_mm256_xor_si256(c2[1072],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[2983],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[682],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[1293],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[2694],c2[3191]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[85]=simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[2102],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[2604],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[501],simde_mm256_xor_si256(c2[1313],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[1810],simde_mm256_xor_si256(c2[1710],simde_mm256_xor_si256(c2[1011],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[1814],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[1223],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[1720],simde_mm256_xor_si256(c2[2723],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[1233],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[1531],simde_mm256_xor_si256(c2[2033],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[1740],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[2640],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1750],simde_mm256_xor_si256(c2[3052],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1263],simde_mm256_xor_si256(c2[1860],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[963],simde_mm256_xor_si256(c2[2463],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[1273],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[570],simde_mm256_xor_si256(c2[1072],simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[1780],simde_mm256_xor_si256(c2[2481],simde_mm256_xor_si256(c2[2983],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[682],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[1293],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[1790],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[2694],c2[3191]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[90]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1860],c2[2272])); + d2[90]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1860],c2[2272])); //row: 19 - d2[95]=_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2514],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[3110],_mm256_xor_si256(c2[3014],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2133],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[2544],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[3142],_mm256_xor_si256(c2[2554],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[2574],_mm256_xor_si256(c2[1871],_mm256_xor_si256(c2[2584],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[1691],c2[791])))))))))))))))))))))))))))); + d2[95]=simde_mm256_xor_si256(c2[2504],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2514],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[3110],simde_mm256_xor_si256(c2[3014],simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[2133],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[2544],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[3142],simde_mm256_xor_si256(c2[2554],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[1762],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[2574],simde_mm256_xor_si256(c2[1871],simde_mm256_xor_si256(c2[2584],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[1691],c2[791])))))))))))))))))))))))))))); //row: 20 - d2[100]=_mm256_xor_si256(c2[803],_mm256_xor_si256(c2[703],_mm256_xor_si256(c2[1602],_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[713],_mm256_xor_si256(c2[511],_mm256_xor_si256(c2[1314],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[823],_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[2223],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[1031],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[1643],_mm256_xor_si256(c2[1341],_mm256_xor_si256(c2[2044],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[2552],_mm256_xor_si256(c2[863],_mm256_xor_si256(c2[763],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[1963],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[783],_mm256_xor_si256(c2[1981],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[893],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[3094],c2[2194])))))))))))))))))))))))))))))))))); + d2[100]=simde_mm256_xor_si256(c2[803],simde_mm256_xor_si256(c2[703],simde_mm256_xor_si256(c2[1602],simde_mm256_xor_si256(c2[2703],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[511],simde_mm256_xor_si256(c2[1314],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[823],simde_mm256_xor_si256(c2[723],simde_mm256_xor_si256(c2[2223],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[1031],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[1643],simde_mm256_xor_si256(c2[1341],simde_mm256_xor_si256(c2[2044],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[2552],simde_mm256_xor_si256(c2[863],simde_mm256_xor_si256(c2[763],simde_mm256_xor_si256(c2[3160],simde_mm256_xor_si256(c2[1963],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[783],simde_mm256_xor_si256(c2[1981],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[893],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[3094],c2[2194])))))))))))))))))))))))))))))))))); //row: 21 - d2[105]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[11],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[712],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[31],_mm256_xor_si256(c2[2834],_mm256_xor_si256(c2[334],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[51],_mm256_xor_si256(c2[1950],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2463],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[71],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[2572],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[2182],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[91],_mm256_xor_si256(c2[2392],_mm256_xor_si256(c2[1592],c2[1492])))))))))))))))))))))))))))))))))))); + d2[105]=simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[2001],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[11],simde_mm256_xor_si256(c2[3013],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[2834],simde_mm256_xor_si256(c2[334],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[51],simde_mm256_xor_si256(c2[1950],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[2463],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[71],simde_mm256_xor_si256(c2[2672],simde_mm256_xor_si256(c2[2572],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[2182],simde_mm256_xor_si256(c2[1780],simde_mm256_xor_si256(c2[91],simde_mm256_xor_si256(c2[2392],simde_mm256_xor_si256(c2[1592],c2[1492])))))))))))))))))))))))))))))))))))); //row: 22 - d2[110]=_mm256_xor_si256(c2[10],c2[420]); + d2[110]=simde_mm256_xor_si256(c2[10],c2[420]); //row: 23 - d2[115]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1132],c2[3054])); + d2[115]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1132],c2[3054])); //row: 24 - d2[120]=_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[522],c2[2392])); + d2[120]=simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[522],c2[2392])); //row: 25 - d2[125]=_mm256_xor_si256(c2[0],c2[152]); + d2[125]=simde_mm256_xor_si256(c2[0],c2[152]); //row: 26 - d2[130]=_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[2204],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[1310],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[610],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[413],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[1311],_mm256_xor_si256(c2[1211],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[2220],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[934],_mm256_xor_si256(c2[834],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[1533],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[1340],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[1540],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[1343],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[1350],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[3054],_mm256_xor_si256(c2[2554],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[1360],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[1370],_mm256_xor_si256(c2[1270],_mm256_xor_si256(c2[670],_mm256_xor_si256(c2[572],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[473],_mm256_xor_si256(c2[1380],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[680],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[1883],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[2781],_mm256_xor_si256(c2[1390],_mm256_xor_si256(c2[1290],_mm256_xor_si256(c2[690],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[2991],_mm256_xor_si256(c2[2691],_mm256_xor_si256(c2[2191],c2[2091]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[130]=simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[2204],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[2600],simde_mm256_xor_si256(c2[1310],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[610],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[1311],simde_mm256_xor_si256(c2[1211],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[2220],simde_mm256_xor_si256(c2[2120],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[1230],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[934],simde_mm256_xor_si256(c2[834],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[1533],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[1340],simde_mm256_xor_si256(c2[1240],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[1540],simde_mm256_xor_si256(c2[1843],simde_mm256_xor_si256(c2[1343],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1350],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[3054],simde_mm256_xor_si256(c2[2554],simde_mm256_xor_si256(c2[2454],simde_mm256_xor_si256(c2[1360],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[2460],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[1860],simde_mm256_xor_si256(c2[1370],simde_mm256_xor_si256(c2[1270],simde_mm256_xor_si256(c2[670],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[1380],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[680],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[1883],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[2881],simde_mm256_xor_si256(c2[2781],simde_mm256_xor_si256(c2[1390],simde_mm256_xor_si256(c2[1290],simde_mm256_xor_si256(c2[690],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[2991],simde_mm256_xor_si256(c2[2691],simde_mm256_xor_si256(c2[2191],c2[2091]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[135]=_mm256_xor_si256(c2[0],c2[61]); + d2[135]=simde_mm256_xor_si256(c2[0],c2[61]); //row: 28 - d2[140]=_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[3023],c2[1453])); + d2[140]=simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[3023],c2[1453])); //row: 29 - d2[145]=_mm256_xor_si256(c2[0],c2[2644]); + d2[145]=simde_mm256_xor_si256(c2[0],c2[2644]); //row: 30 - d2[150]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[351],_mm256_xor_si256(c2[1971],c2[694]))); + d2[150]=simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[351],simde_mm256_xor_si256(c2[1971],c2[694]))); //row: 31 - d2[155]=_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[2611],_mm256_xor_si256(c2[2511],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[321],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[1930],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[2233],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[2543],_mm256_xor_si256(c2[1950],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[1372],_mm256_xor_si256(c2[1272],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[3183],_mm256_xor_si256(c2[982],_mm256_xor_si256(c2[882],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[1092],_mm256_xor_si256(c2[292],c2[192]))))))))))))))))))))))))))))))))))); + d2[155]=simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[2611],simde_mm256_xor_si256(c2[2511],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[1930],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[2233],simde_mm256_xor_si256(c2[1940],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[2643],simde_mm256_xor_si256(c2[2543],simde_mm256_xor_si256(c2[1950],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[550],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[3160],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[1372],simde_mm256_xor_si256(c2[1272],simde_mm256_xor_si256(c2[1980],simde_mm256_xor_si256(c2[3183],simde_mm256_xor_si256(c2[982],simde_mm256_xor_si256(c2[882],simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[1092],simde_mm256_xor_si256(c2[292],c2[192]))))))))))))))))))))))))))))))))))); //row: 32 - d2[160]=_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[303],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2613],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[3114],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[2633],_mm256_xor_si256(c2[2533],_mm256_xor_si256(c2[2232],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[2543],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[2653],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[1153],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[2563],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[2673],_mm256_xor_si256(c2[2573],_mm256_xor_si256(c2[1870],_mm256_xor_si256(c2[2683],_mm256_xor_si256(c2[2583],_mm256_xor_si256(c2[582],_mm256_xor_si256(c2[1480],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[2593],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[1690],c2[790])))))))))))))))))))))))))))))))))))))))))); + d2[160]=simde_mm256_xor_si256(c2[2603],simde_mm256_xor_si256(c2[2503],simde_mm256_xor_si256(c2[303],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2613],simde_mm256_xor_si256(c2[2513],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[3114],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[2633],simde_mm256_xor_si256(c2[2533],simde_mm256_xor_si256(c2[2232],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[2643],simde_mm256_xor_si256(c2[2543],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[2653],simde_mm256_xor_si256(c2[2553],simde_mm256_xor_si256(c2[1153],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[2663],simde_mm256_xor_si256(c2[2563],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[2673],simde_mm256_xor_si256(c2[2573],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[2683],simde_mm256_xor_si256(c2[2583],simde_mm256_xor_si256(c2[582],simde_mm256_xor_si256(c2[1480],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[2593],simde_mm256_xor_si256(c2[1790],simde_mm256_xor_si256(c2[1690],c2[790])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[165]=_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[834],_mm256_xor_si256(c2[1533],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[3054],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[1270],_mm256_xor_si256(c2[572],_mm256_xor_si256(c2[2472],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[1290],_mm256_xor_si256(c2[392],c2[2691])))))))))))))))))))))))))))); + d2[165]=simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1230],simde_mm256_xor_si256(c2[834],simde_mm256_xor_si256(c2[1533],simde_mm256_xor_si256(c2[1240],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[1843],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[3054],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[2460],simde_mm256_xor_si256(c2[1270],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[2472],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[1290],simde_mm256_xor_si256(c2[392],c2[2691])))))))))))))))))))))))))))); //row: 34 - d2[170]=_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[1312],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[1110],_mm256_xor_si256(c2[2411],_mm256_xor_si256(c2[2013],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[2922],_mm256_xor_si256(c2[2822],_mm256_xor_si256(c2[1930],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[931],_mm256_xor_si256(c2[2133],_mm256_xor_si256(c2[1630],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[2443],_mm256_xor_si256(c2[2040],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[1950],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[1352],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[1362],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[3060],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[1870],_mm256_xor_si256(c2[1372],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[1382],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[1092],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[494],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[2893],c2[2793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[170]=simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1810],simde_mm256_xor_si256(c2[1312],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[1110],simde_mm256_xor_si256(c2[2411],simde_mm256_xor_si256(c2[2013],simde_mm256_xor_si256(c2[1913],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[2922],simde_mm256_xor_si256(c2[2822],simde_mm256_xor_si256(c2[1930],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[2133],simde_mm256_xor_si256(c2[1630],simde_mm256_xor_si256(c2[1940],simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[1342],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[2443],simde_mm256_xor_si256(c2[2040],simde_mm256_xor_si256(c2[1940],simde_mm256_xor_si256(c2[1950],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1352],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[1860],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[3060],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1372],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[1980],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[1092],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[494],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[2893],c2[2793])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[175]=_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[1404],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[610],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[1111],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[520],_mm256_xor_si256(c2[2020],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[2354],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[2962],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[570],_mm256_xor_si256(c2[3071],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[2681],_mm256_xor_si256(c2[690],_mm256_xor_si256(c2[590],_mm256_xor_si256(c2[2891],c2[1991])))))))))))))))))))))))))))))))))); + d2[175]=simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[1404],simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[610],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[1111],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[520],simde_mm256_xor_si256(c2[2020],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[550],simde_mm256_xor_si256(c2[2354],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[2962],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[570],simde_mm256_xor_si256(c2[3071],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[2681],simde_mm256_xor_si256(c2[690],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[2891],c2[1991])))))))))))))))))))))))))))))))))); //row: 36 - d2[180]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3121],c2[1872])); + d2[180]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3121],c2[1872])); //row: 37 - d2[185]=_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[3114],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[1312],_mm256_xor_si256(c2[511],_mm256_xor_si256(c2[2210],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[2733],_mm256_xor_si256(c2[1133],_mm256_xor_si256(c2[233],_mm256_xor_si256(c2[1832],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[2444],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[1554],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[1564],_mm256_xor_si256(c2[2362],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[871],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[2782],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[1594],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[3090],c2[2990]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[185]=simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[3114],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[1312],simde_mm256_xor_si256(c2[511],simde_mm256_xor_si256(c2[2210],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1420],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[2733],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[233],simde_mm256_xor_si256(c2[1832],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[2444],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[2142],simde_mm256_xor_si256(c2[3154],simde_mm256_xor_si256(c2[1554],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[1564],simde_mm256_xor_si256(c2[2362],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[2764],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[871],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2782],simde_mm256_xor_si256(c2[2081],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[1594],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[3090],c2[2990]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[190]=_mm256_xor_si256(c2[1900],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[2411],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[1930],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[2133],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[2443],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[2952],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[3060],_mm256_xor_si256(c2[1870],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[992],c2[92])))))))))))))))))))))))))))))))))); + d2[190]=simde_mm256_xor_si256(c2[1900],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1810],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[2411],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[1930],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[2133],simde_mm256_xor_si256(c2[1840],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[2443],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[2952],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[1860],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[3060],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[992],c2[92])))))))))))))))))))))))))))))))))); //row: 39 - d2[195]=_mm256_xor_si256(c2[1004],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[712],_mm256_xor_si256(c2[1510],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[2424],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[934],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[1044],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1844],_mm256_xor_si256(c2[1542],_mm256_xor_si256(c2[1054],_mm256_xor_si256(c2[954],_mm256_xor_si256(c2[2753],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[964],_mm256_xor_si256(c2[262],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[2164],_mm256_xor_si256(c2[1074],_mm256_xor_si256(c2[974],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[2182],_mm256_xor_si256(c2[3080],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[191],_mm256_xor_si256(c2[91],c2[2390])))))))))))))))))))))))))))))))))))))))))); + d2[195]=simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[1510],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[2424],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[934],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[1044],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[1844],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[1054],simde_mm256_xor_si256(c2[954],simde_mm256_xor_si256(c2[2753],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[964],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[2164],simde_mm256_xor_si256(c2[1074],simde_mm256_xor_si256(c2[974],simde_mm256_xor_si256(c2[271],simde_mm256_xor_si256(c2[2470],simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[2182],simde_mm256_xor_si256(c2[3080],simde_mm256_xor_si256(c2[1094],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[191],simde_mm256_xor_si256(c2[91],c2[2390])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[200]=_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[1404],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[2303],_mm256_xor_si256(c2[2301],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[1212],_mm256_xor_si256(c2[912],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[2010],_mm256_xor_si256(c2[321],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[2924],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[331],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[1033],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[1241],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[351],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[2150],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[2763],_mm256_xor_si256(c2[662],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[371],_mm256_xor_si256(c2[1474],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[871],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[2682],_mm256_xor_si256(c2[2482],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[391],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[591],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[2990],c2[2890])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[200]=simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[1404],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[2303],simde_mm256_xor_si256(c2[2301],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[311],simde_mm256_xor_si256(c2[1414],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[1212],simde_mm256_xor_si256(c2[912],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[2010],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[1424],simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[331],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[634],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[1241],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[2142],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[351],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[2150],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[2763],simde_mm256_xor_si256(c2[662],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[2764],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[371],simde_mm256_xor_si256(c2[1474],simde_mm256_xor_si256(c2[2872],simde_mm256_xor_si256(c2[871],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[2682],simde_mm256_xor_si256(c2[2482],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[391],simde_mm256_xor_si256(c2[1494],simde_mm256_xor_si256(c2[2692],simde_mm256_xor_si256(c2[591],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[2990],c2[2890])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[205]=_mm256_xor_si256(c2[2301],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[1002],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[2014],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[2321],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[2331],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2241],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[851],_mm256_xor_si256(c2[250],_mm256_xor_si256(c2[2361],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[262],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[2281],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[1393],c2[493])))))))))))))))))))))))))))))))))); + d2[205]=simde_mm256_xor_si256(c2[2301],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[1002],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[2014],simde_mm256_xor_si256(c2[2812],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[2321],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[2241],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[851],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[2281],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[1393],c2[493])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc192_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc192_byte.c index 9cb2c47727..bc90a35a86 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc192_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc192_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc192_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[15],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[1709],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[794],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[2607],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[348],c2[3113])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[1565],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[15],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[1709],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[794],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[3195],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[2607],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[1433],simde_mm256_xor_si256(c2[348],c2[3113])))))))))))))))))))))))))); //row: 1 - d2[6]=_mm256_xor_si256(c2[1685],_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[15],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[1709],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[794],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[2607],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[348],c2[3113])))))))))))))))))))))))))))))))); + d2[6]=simde_mm256_xor_si256(c2[1685],simde_mm256_xor_si256(c2[1565],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[15],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[1709],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[794],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[3195],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[2607],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[1433],simde_mm256_xor_si256(c2[348],c2[3113])))))))))))))))))))))))))))))))); //row: 2 - d2[12]=_mm256_xor_si256(c2[1685],_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[15],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[1709],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[1969],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[794],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[3329],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[2607],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[348],c2[3113])))))))))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[1685],simde_mm256_xor_si256(c2[1565],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[15],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[1709],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[1969],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[794],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[3195],simde_mm256_xor_si256(c2[3329],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[2607],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[1433],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[348],c2[3113])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[18]=_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[15],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[1709],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[1022],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[794],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[2727],_mm256_xor_si256(c2[2607],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[3456],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[3233],c2[3113])))))))))))))))))))))))))))))))))); + d2[18]=simde_mm256_xor_si256(c2[1565],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[15],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[1709],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[794],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[3195],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[2727],simde_mm256_xor_si256(c2[2607],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[3456],simde_mm256_xor_si256(c2[3336],simde_mm256_xor_si256(c2[1433],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[3233],c2[3113])))))))))))))))))))))))))))))))))); //row: 4 - d2[24]=_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[2761],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[3615],_mm256_xor_si256(c2[3495],_mm256_xor_si256(c2[1696],_mm256_xor_si256(c2[497],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[3758],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[1252],_mm256_xor_si256(c2[1612],_mm256_xor_si256(c2[2943],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[555],_mm256_xor_si256(c2[435],_mm256_xor_si256(c2[3313],_mm256_xor_si256(c2[2836],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[2248],_mm256_xor_si256(c2[2616],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[1188],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[3828],c2[2748])))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[2761],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[3615],simde_mm256_xor_si256(c2[3495],simde_mm256_xor_si256(c2[1696],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[3758],simde_mm256_xor_si256(c2[3638],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[2080],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1252],simde_mm256_xor_si256(c2[1612],simde_mm256_xor_si256(c2[2943],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[555],simde_mm256_xor_si256(c2[435],simde_mm256_xor_si256(c2[3313],simde_mm256_xor_si256(c2[2836],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[2248],simde_mm256_xor_si256(c2[2616],simde_mm256_xor_si256(c2[1780],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[1188],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[3828],c2[2748])))))))))))))))))))))))))))))))))); //row: 5 - d2[30]=_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[137],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[2544],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[2199],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2318],_mm256_xor_si256(c2[521],_mm256_xor_si256(c2[3770],_mm256_xor_si256(c2[3532],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[1384],_mm256_xor_si256(c2[2823],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[2835],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[1277],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[2006],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[3468],_mm256_xor_si256(c2[3348],_mm256_xor_si256(c2[2269],c2[1189])))))))))))))))))))))))))))))))))))); + d2[30]=simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[3480],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[2056],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[137],simde_mm256_xor_si256(c2[2777],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[2544],simde_mm256_xor_si256(c2[3624],simde_mm256_xor_si256(c2[2199],simde_mm256_xor_si256(c2[2079],simde_mm256_xor_si256(c2[2318],simde_mm256_xor_si256(c2[521],simde_mm256_xor_si256(c2[3770],simde_mm256_xor_si256(c2[3532],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[1384],simde_mm256_xor_si256(c2[2823],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[2835],simde_mm256_xor_si256(c2[2715],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[1277],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[2006],simde_mm256_xor_si256(c2[1057],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[3468],simde_mm256_xor_si256(c2[3348],simde_mm256_xor_si256(c2[2269],c2[1189])))))))))))))))))))))))))))))))))))); //row: 6 - d2[36]=_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[3014],_mm256_xor_si256(c2[2894],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[3735],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[3508],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[3157],_mm256_xor_si256(c2[3037],_mm256_xor_si256(c2[3276],_mm256_xor_si256(c2[1479],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[651],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[3673],_mm256_xor_si256(c2[2712],_mm256_xor_si256(c2[2235],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[1647],_mm256_xor_si256(c2[567],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[473],_mm256_xor_si256(c2[3233],_mm256_xor_si256(c2[2153],c2[2149])))))))))))))))))))))))))))))))))))); + d2[36]=simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[2160],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[3014],simde_mm256_xor_si256(c2[2894],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[3735],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[3508],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[3157],simde_mm256_xor_si256(c2[3037],simde_mm256_xor_si256(c2[3276],simde_mm256_xor_si256(c2[1479],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[651],simde_mm256_xor_si256(c2[1011],simde_mm256_xor_si256(c2[2342],simde_mm256_xor_si256(c2[3781],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[3793],simde_mm256_xor_si256(c2[3673],simde_mm256_xor_si256(c2[2712],simde_mm256_xor_si256(c2[2235],simde_mm256_xor_si256(c2[2249],simde_mm256_xor_si256(c2[1647],simde_mm256_xor_si256(c2[567],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[1179],simde_mm256_xor_si256(c2[2376],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[3233],simde_mm256_xor_si256(c2[2153],c2[2149])))))))))))))))))))))))))))))))))))); //row: 7 - d2[42]=_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[3363],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[1813],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[2654],_mm256_xor_si256(c2[1934],_mm256_xor_si256(c2[1466],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[2427],_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[3627],_mm256_xor_si256(c2[3507],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[1956],_mm256_xor_si256(c2[1120],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[3156],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[2572],_mm256_xor_si256(c2[3653],_mm256_xor_si256(c2[2328],_mm256_xor_si256(c2[3409],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[3769],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[1625],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[2700],_mm256_xor_si256(c2[3185],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[2592],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[1274],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[87],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[686],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[2856],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[2270],_mm256_xor_si256(c2[2150],_mm256_xor_si256(c2[3231],_mm256_xor_si256(c2[1071],_mm256_xor_si256(c2[2152],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[1192],c2[1072])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[42]=simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[3363],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[1085],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[1813],simde_mm256_xor_si256(c2[2772],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[2654],simde_mm256_xor_si256(c2[1934],simde_mm256_xor_si256(c2[1466],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[2427],simde_mm256_xor_si256(c2[2426],simde_mm256_xor_si256(c2[3627],simde_mm256_xor_si256(c2[3507],simde_mm256_xor_si256(c2[1001],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[1956],simde_mm256_xor_si256(c2[1120],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[3156],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[2572],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[2328],simde_mm256_xor_si256(c2[3409],simde_mm256_xor_si256(c2[2688],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[3769],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[1625],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[2700],simde_mm256_xor_si256(c2[3185],simde_mm256_xor_si256(c2[1637],simde_mm256_xor_si256(c2[1517],simde_mm256_xor_si256(c2[2592],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[1637],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[1274],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[87],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[3324],simde_mm256_xor_si256(c2[686],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[3698],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[2856],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[1421],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[2270],simde_mm256_xor_si256(c2[2150],simde_mm256_xor_si256(c2[3231],simde_mm256_xor_si256(c2[1071],simde_mm256_xor_si256(c2[2152],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[1192],c2[1072])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[48]=_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[2285],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[1925],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[2893],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[3734],_mm256_xor_si256(c2[734],_mm256_xor_si256(c2[3627],_mm256_xor_si256(c2[3507],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[3156],_mm256_xor_si256(c2[3036],_mm256_xor_si256(c2[3401],_mm256_xor_si256(c2[3281],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[1010],_mm256_xor_si256(c2[2461],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[2837],_mm256_xor_si256(c2[2717],_mm256_xor_si256(c2[2234],_mm256_xor_si256(c2[2368],_mm256_xor_si256(c2[2248],_mm256_xor_si256(c2[1646],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[2020],_mm256_xor_si256(c2[1178],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[3352],_mm256_xor_si256(c2[3232],c2[2152])))))))))))))))))))))))))))))))))))))))))); + d2[48]=simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[2285],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[1925],simde_mm256_xor_si256(c2[2643],simde_mm256_xor_si256(c2[3013],simde_mm256_xor_si256(c2[2893],simde_mm256_xor_si256(c2[1094],simde_mm256_xor_si256(c2[3734],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[3627],simde_mm256_xor_si256(c2[3507],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[3156],simde_mm256_xor_si256(c2[3036],simde_mm256_xor_si256(c2[3401],simde_mm256_xor_si256(c2[3281],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[2461],simde_mm256_xor_si256(c2[2341],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[3672],simde_mm256_xor_si256(c2[2837],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[2234],simde_mm256_xor_si256(c2[2368],simde_mm256_xor_si256(c2[2248],simde_mm256_xor_si256(c2[1646],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[2020],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[472],simde_mm256_xor_si256(c2[3352],simde_mm256_xor_si256(c2[3232],c2[2152])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[54]=_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[2280],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[2040],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[3014],_mm256_xor_si256(c2[2294],_mm256_xor_si256(c2[2174],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[375],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[3015],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[2908],_mm256_xor_si256(c2[2788],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[3157],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[2317],_mm256_xor_si256(c2[3396],_mm256_xor_si256(c2[2556],_mm256_xor_si256(c2[1599],_mm256_xor_si256(c2[759],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[169],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[3770],_mm256_xor_si256(c2[1131],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[2462],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[3061],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[3073],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[1992],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[927],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[459],_mm256_xor_si256(c2[2496],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[3592],_mm256_xor_si256(c2[3353],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2273],c2[1433]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[54]=simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[2280],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[2040],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[3014],simde_mm256_xor_si256(c2[2294],simde_mm256_xor_si256(c2[2174],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[375],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[3015],simde_mm256_xor_si256(c2[3372],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[2908],simde_mm256_xor_si256(c2[2788],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[3157],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[2317],simde_mm256_xor_si256(c2[3396],simde_mm256_xor_si256(c2[2556],simde_mm256_xor_si256(c2[1599],simde_mm256_xor_si256(c2[759],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[169],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[3770],simde_mm256_xor_si256(c2[1131],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[2462],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[3061],simde_mm256_xor_si256(c2[3793],simde_mm256_xor_si256(c2[3073],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[1992],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[927],simde_mm256_xor_si256(c2[2141],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[1299],simde_mm256_xor_si256(c2[459],simde_mm256_xor_si256(c2[2496],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[3712],simde_mm256_xor_si256(c2[3592],simde_mm256_xor_si256(c2[3353],simde_mm256_xor_si256(c2[2513],simde_mm256_xor_si256(c2[2273],c2[1433]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[60]=_mm256_xor_si256(c2[3241],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[2712],c2[2485]))); + d2[60]=simde_mm256_xor_si256(c2[3241],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[2712],c2[2485]))); //row: 11 - d2[66]=_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[2405],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[3133],_mm256_xor_si256(c2[1334],_mm256_xor_si256(c2[255],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[988],_mm256_xor_si256(c2[3276],_mm256_xor_si256(c2[3521],_mm256_xor_si256(c2[1718],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[1370],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[2474],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[2006],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[3446],_mm256_xor_si256(c2[2260],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[2621],_mm256_xor_si256(c2[712],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2392],c2[1793]))))))))))))))))))))))))))))))))))))); + d2[66]=simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[2405],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[3133],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[255],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[1108],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[3276],simde_mm256_xor_si256(c2[3521],simde_mm256_xor_si256(c2[1718],simde_mm256_xor_si256(c2[1128],simde_mm256_xor_si256(c2[890],simde_mm256_xor_si256(c2[1370],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[2581],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[2957],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[2474],simde_mm256_xor_si256(c2[2488],simde_mm256_xor_si256(c2[2006],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[3446],simde_mm256_xor_si256(c2[2260],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[2621],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[2392],c2[1793]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[72]=_mm256_xor_si256(c2[3005],_mm256_xor_si256(c2[2885],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[1455],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[2069],_mm256_xor_si256(c2[1949],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1717],_mm256_xor_si256(c2[3759],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[3169],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[783],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[2234],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[1153],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[3459],_mm256_xor_si256(c2[817],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[2753],_mm256_xor_si256(c2[1668],c2[588])))))))))))))))))))))))))))))))))); + d2[72]=simde_mm256_xor_si256(c2[3005],simde_mm256_xor_si256(c2[2885],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1455],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[3375],simde_mm256_xor_si256(c2[2176],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[2069],simde_mm256_xor_si256(c2[1949],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1717],simde_mm256_xor_si256(c2[3759],simde_mm256_xor_si256(c2[3518],simde_mm256_xor_si256(c2[3169],simde_mm256_xor_si256(c2[2931],simde_mm256_xor_si256(c2[3291],simde_mm256_xor_si256(c2[783],simde_mm256_xor_si256(c2[2222],simde_mm256_xor_si256(c2[2234],simde_mm256_xor_si256(c2[2114],simde_mm256_xor_si256(c2[1153],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[3459],simde_mm256_xor_si256(c2[817],simde_mm256_xor_si256(c2[2873],simde_mm256_xor_si256(c2[2753],simde_mm256_xor_si256(c2[1668],c2[588])))))))))))))))))))))))))))))))))); //row: 13 - d2[78]=_mm256_xor_si256(c2[2284],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3605],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[734],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[1575],_mm256_xor_si256(c2[3495],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[2548],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[877],_mm256_xor_si256(c2[1116],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[2568],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[2810],_mm256_xor_si256(c2[2690],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[1741],_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[552],_mm256_xor_si256(c2[195],_mm256_xor_si256(c2[75],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[3446],_mm256_xor_si256(c2[3326],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[2858],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[2152],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[113],c2[3832]))))))))))))))))))))))))))))))))))))); + d2[78]=simde_mm256_xor_si256(c2[2284],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3605],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[1695],simde_mm256_xor_si256(c2[1575],simde_mm256_xor_si256(c2[3495],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[2548],simde_mm256_xor_si256(c2[2428],simde_mm256_xor_si256(c2[877],simde_mm256_xor_si256(c2[1116],simde_mm256_xor_si256(c2[3158],simde_mm256_xor_si256(c2[2568],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[2810],simde_mm256_xor_si256(c2[2690],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[1741],simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[552],simde_mm256_xor_si256(c2[195],simde_mm256_xor_si256(c2[75],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[3446],simde_mm256_xor_si256(c2[3326],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[2858],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[2152],simde_mm256_xor_si256(c2[1073],simde_mm256_xor_si256(c2[113],c2[3832]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[84]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[3485],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[2655],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[2292],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3149],_mm256_xor_si256(c2[988],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[2917],_mm256_xor_si256(c2[756],_mm256_xor_si256(c2[1120],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[2208],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[3661],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3314],_mm256_xor_si256(c2[1153],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[1876],_mm256_xor_si256(c2[3674],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[1884],_mm256_xor_si256(c2[3568],_mm256_xor_si256(c2[1288],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[3340],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[713],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[3592],c2[3472]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[84]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[3485],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[3245],simde_mm256_xor_si256(c2[2655],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[2414],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[2292],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[3149],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[2188],simde_mm256_xor_si256(c2[2068],simde_mm256_xor_si256(c2[2798],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[2917],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[1120],simde_mm256_xor_si256(c2[2798],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[2208],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[3661],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[3314],simde_mm256_xor_si256(c2[1153],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[1876],simde_mm256_xor_si256(c2[3674],simde_mm256_xor_si256(c2[3554],simde_mm256_xor_si256(c2[2715],simde_mm256_xor_si256(c2[1884],simde_mm256_xor_si256(c2[3568],simde_mm256_xor_si256(c2[1288],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[2966],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[3340],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[2498],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[2868],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[3592],c2[3472]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[90]=_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[3721],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[3002],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[482],_mm256_xor_si256(c2[3736],_mm256_xor_si256(c2[2177],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[1937],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[2892],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[2785],_mm256_xor_si256(c2[2665],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[2200],_mm256_xor_si256(c2[279],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[2321],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[1493],_mm256_xor_si256(c2[3653],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[1505],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[2956],_mm256_xor_si256(c2[2836],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[1875],_mm256_xor_si256(c2[3077],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[1406],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[1178],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[3218],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[1309],_mm256_xor_si256(c2[3589],_mm256_xor_si256(c2[3469],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[2390],_mm256_xor_si256(c2[2989],c2[1310])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[90]=simde_mm256_xor_si256(c2[1441],simde_mm256_xor_si256(c2[3721],simde_mm256_xor_si256(c2[3601],simde_mm256_xor_si256(c2[3002],simde_mm256_xor_si256(c2[1323],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[3736],simde_mm256_xor_si256(c2[2177],simde_mm256_xor_si256(c2[2057],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[2892],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[2785],simde_mm256_xor_si256(c2[2665],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[2200],simde_mm256_xor_si256(c2[279],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[2321],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[1505],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[2956],simde_mm256_xor_si256(c2[2836],simde_mm256_xor_si256(c2[3554],simde_mm256_xor_si256(c2[1875],simde_mm256_xor_si256(c2[3077],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[3085],simde_mm256_xor_si256(c2[1406],simde_mm256_xor_si256(c2[2489],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[2857],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[3218],simde_mm256_xor_si256(c2[1539],simde_mm256_xor_si256(c2[1309],simde_mm256_xor_si256(c2[3589],simde_mm256_xor_si256(c2[3469],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[2390],simde_mm256_xor_si256(c2[2989],c2[1310])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[96]=_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[1681],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[125],_mm256_xor_si256(c2[3242],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[973],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[137],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[2893],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[1694],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[745],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[2547],_mm256_xor_si256(c2[1705],_mm256_xor_si256(c2[1116],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[1241],_mm256_xor_si256(c2[519],_mm256_xor_si256(c2[399],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[2441],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[2809],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[3304],_mm256_xor_si256(c2[1740],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[1632],_mm256_xor_si256(c2[916],_mm256_xor_si256(c2[796],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[3674],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[3325],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[3445],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[3097],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[3338],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[1549],_mm256_xor_si256(c2[1429],_mm256_xor_si256(c2[1192],_mm256_xor_si256(c2[470],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[3109],c2[2153]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[96]=simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[1681],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[125],simde_mm256_xor_si256(c2[3242],simde_mm256_xor_si256(c2[3122],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[2882],simde_mm256_xor_si256(c2[973],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[137],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[2893],simde_mm256_xor_si256(c2[2057],simde_mm256_xor_si256(c2[1694],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[1587],simde_mm256_xor_si256(c2[1467],simde_mm256_xor_si256(c2[745],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[2547],simde_mm256_xor_si256(c2[1705],simde_mm256_xor_si256(c2[1116],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[1241],simde_mm256_xor_si256(c2[519],simde_mm256_xor_si256(c2[399],simde_mm256_xor_si256(c2[3277],simde_mm256_xor_si256(c2[2441],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[1971],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[2449],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[2809],simde_mm256_xor_si256(c2[1973],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[3424],simde_mm256_xor_si256(c2[3304],simde_mm256_xor_si256(c2[1740],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[1632],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[796],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[3794],simde_mm256_xor_si256(c2[3674],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[3197],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[3325],simde_mm256_xor_si256(c2[3205],simde_mm256_xor_si256(c2[3445],simde_mm256_xor_si256(c2[2609],simde_mm256_xor_si256(c2[3819],simde_mm256_xor_si256(c2[3097],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[2141],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[3338],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[1549],simde_mm256_xor_si256(c2[1429],simde_mm256_xor_si256(c2[1192],simde_mm256_xor_si256(c2[470],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[3109],c2[2153]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[102]=_mm256_xor_si256(c2[2765],_mm256_xor_si256(c2[2645],_mm256_xor_si256(c2[2405],_mm256_xor_si256(c2[2285],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[855],_mm256_xor_si256(c2[735],_mm256_xor_si256(c2[3135],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[1576],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[1709],_mm256_xor_si256(c2[1469],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[2429],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[1238],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[878],_mm256_xor_si256(c2[1477],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[1117],_mm256_xor_si256(c2[3519],_mm256_xor_si256(c2[3159],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[2569],_mm256_xor_si256(c2[2691],_mm256_xor_si256(c2[2331],_mm256_xor_si256(c2[3051],_mm256_xor_si256(c2[2691],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[303],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[1982],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[1994],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[3687],_mm256_xor_si256(c2[3327],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[2859],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[217],_mm256_xor_si256(c2[2633],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[2153],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[1188],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[348],c2[3833]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[102]=simde_mm256_xor_si256(c2[2765],simde_mm256_xor_si256(c2[2645],simde_mm256_xor_si256(c2[2405],simde_mm256_xor_si256(c2[2285],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[855],simde_mm256_xor_si256(c2[735],simde_mm256_xor_si256(c2[3135],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[1576],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[1709],simde_mm256_xor_si256(c2[1469],simde_mm256_xor_si256(c2[1349],simde_mm256_xor_si256(c2[2789],simde_mm256_xor_si256(c2[2429],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1238],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[878],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1237],simde_mm256_xor_si256(c2[1117],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[3159],simde_mm256_xor_si256(c2[2929],simde_mm256_xor_si256(c2[2689],simde_mm256_xor_si256(c2[2569],simde_mm256_xor_si256(c2[2691],simde_mm256_xor_si256(c2[2331],simde_mm256_xor_si256(c2[3051],simde_mm256_xor_si256(c2[2691],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[303],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[1982],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[1994],simde_mm256_xor_si256(c2[1874],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[3687],simde_mm256_xor_si256(c2[3327],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[2859],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[2633],simde_mm256_xor_si256(c2[2513],simde_mm256_xor_si256(c2[2273],simde_mm256_xor_si256(c2[2153],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[1188],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[348],c2[3833]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[108]=_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[792],c2[1765])); + d2[108]=simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[792],c2[1765])); //row: 19 - d2[114]=_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[2645],_mm256_xor_si256(c2[2405],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[3373],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[375],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[1228],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3761],_mm256_xor_si256(c2[1958],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[1130],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[2714],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[2126],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[952],_mm256_xor_si256(c2[3712],c2[2632])))))))))))))))))))))))))))); + d2[114]=simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[2645],simde_mm256_xor_si256(c2[2405],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[3373],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[375],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[1228],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[3761],simde_mm256_xor_si256(c2[1958],simde_mm256_xor_si256(c2[1368],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[2821],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[3197],simde_mm256_xor_si256(c2[2714],simde_mm256_xor_si256(c2[2728],simde_mm256_xor_si256(c2[2126],simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[952],simde_mm256_xor_si256(c2[3712],c2[2632])))))))))))))))))))))))))))); //row: 20 - d2[120]=_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[2285],_mm256_xor_si256(c2[2045],_mm256_xor_si256(c2[3133],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[15],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[3627],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[3276],_mm256_xor_si256(c2[3156],_mm256_xor_si256(c2[3401],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[1130],_mm256_xor_si256(c2[3529],_mm256_xor_si256(c2[2461],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[2837],_mm256_xor_si256(c2[2354],_mm256_xor_si256(c2[2368],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[1298],_mm256_xor_si256(c2[2501],_mm256_xor_si256(c2[712],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[3352],c2[2272])))))))))))))))))))))))))))))))))); + d2[120]=simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[2285],simde_mm256_xor_si256(c2[2045],simde_mm256_xor_si256(c2[3133],simde_mm256_xor_si256(c2[3013],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[15],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[3627],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[3276],simde_mm256_xor_si256(c2[3156],simde_mm256_xor_si256(c2[3401],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[3529],simde_mm256_xor_si256(c2[2461],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[3792],simde_mm256_xor_si256(c2[2837],simde_mm256_xor_si256(c2[2354],simde_mm256_xor_si256(c2[2368],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[2501],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[3352],c2[2272])))))))))))))))))))))))))))))))))); //row: 21 - d2[126]=_mm256_xor_si256(c2[1921],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[3242],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[377],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[1212],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[2185],_mm256_xor_si256(c2[2065],_mm256_xor_si256(c2[520],_mm256_xor_si256(c2[759],_mm256_xor_si256(c2[2801],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[2453],_mm256_xor_si256(c2[2333],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[1384],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[195],_mm256_xor_si256(c2[3677],_mm256_xor_si256(c2[3557],_mm256_xor_si256(c2[3565],_mm256_xor_si256(c2[3089],_mm256_xor_si256(c2[2969],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[2501],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[1901],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[710],_mm256_xor_si256(c2[3589],c2[3469])))))))))))))))))))))))))))))))))))); + d2[126]=simde_mm256_xor_si256(c2[1921],simde_mm256_xor_si256(c2[3482],simde_mm256_xor_si256(c2[3242],simde_mm256_xor_si256(c2[3484],simde_mm256_xor_si256(c2[377],simde_mm256_xor_si256(c2[2417],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[1212],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[2185],simde_mm256_xor_si256(c2[2065],simde_mm256_xor_si256(c2[520],simde_mm256_xor_si256(c2[759],simde_mm256_xor_si256(c2[2801],simde_mm256_xor_si256(c2[2211],simde_mm256_xor_si256(c2[1973],simde_mm256_xor_si256(c2[2453],simde_mm256_xor_si256(c2[2333],simde_mm256_xor_si256(c2[3664],simde_mm256_xor_si256(c2[1384],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[1156],simde_mm256_xor_si256(c2[195],simde_mm256_xor_si256(c2[3677],simde_mm256_xor_si256(c2[3557],simde_mm256_xor_si256(c2[3565],simde_mm256_xor_si256(c2[3089],simde_mm256_xor_si256(c2[2969],simde_mm256_xor_si256(c2[3337],simde_mm256_xor_si256(c2[2501],simde_mm256_xor_si256(c2[3818],simde_mm256_xor_si256(c2[3698],simde_mm256_xor_si256(c2[1901],simde_mm256_xor_si256(c2[1789],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[3589],c2[3469])))))))))))))))))))))))))))))))))))); //row: 22 - d2[132]=_mm256_xor_si256(c2[2412],c2[2425]); + d2[132]=simde_mm256_xor_si256(c2[2412],c2[2425]); //row: 23 - d2[138]=_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[2678],c2[3782])); + d2[138]=simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[2678],c2[3782])); //row: 24 - d2[144]=_mm256_xor_si256(c2[2657],_mm256_xor_si256(c2[3028],c2[110])); + d2[144]=simde_mm256_xor_si256(c2[2657],simde_mm256_xor_si256(c2[3028],c2[110])); //row: 25 - d2[150]=_mm256_xor_si256(c2[1561],c2[2580]); + d2[150]=simde_mm256_xor_si256(c2[1561],c2[2580]); //row: 26 - d2[156]=_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[2162],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[2896],_mm256_xor_si256(c2[2776],_mm256_xor_si256(c2[2537],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[3384],_mm256_xor_si256(c2[3145],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[3039],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[3278],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[1116],_mm256_xor_si256(c2[891],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[893],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[1985],_mm256_xor_si256(c2[3663],_mm256_xor_si256(c2[3544],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[3675],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[3316],_mm256_xor_si256(c2[2714],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[1992],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2125],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[1404],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[2019],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[349],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[3229],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[2870],_mm256_xor_si256(c2[2029],_mm256_xor_si256(c2[1910],c2[1790]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[156]=simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[2162],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[2896],simde_mm256_xor_si256(c2[2776],simde_mm256_xor_si256(c2[2537],simde_mm256_xor_si256(c2[977],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[3617],simde_mm256_xor_si256(c2[3492],simde_mm256_xor_si256(c2[3372],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[3384],simde_mm256_xor_si256(c2[3145],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[3039],simde_mm256_xor_si256(c2[2919],simde_mm256_xor_si256(c2[2680],simde_mm256_xor_si256(c2[3278],simde_mm256_xor_si256(c2[3158],simde_mm256_xor_si256(c2[2919],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[1116],simde_mm256_xor_si256(c2[891],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[893],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[2224],simde_mm256_xor_si256(c2[1985],simde_mm256_xor_si256(c2[3663],simde_mm256_xor_si256(c2[3544],simde_mm256_xor_si256(c2[3424],simde_mm256_xor_si256(c2[3675],simde_mm256_xor_si256(c2[3555],simde_mm256_xor_si256(c2[3316],simde_mm256_xor_si256(c2[2714],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[1992],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[2125],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[1404],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[1061],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[2258],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[2019],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[349],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[3229],simde_mm256_xor_si256(c2[3109],simde_mm256_xor_si256(c2[2870],simde_mm256_xor_si256(c2[2029],simde_mm256_xor_si256(c2[1910],c2[1790]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[162]=_mm256_xor_si256(c2[843],c2[2233]); + d2[162]=simde_mm256_xor_si256(c2[843],c2[2233]); //row: 28 - d2[168]=_mm256_xor_si256(c2[734],_mm256_xor_si256(c2[1827],c2[1025])); + d2[168]=simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[1827],c2[1025])); //row: 29 - d2[174]=_mm256_xor_si256(c2[1683],c2[2088]); + d2[174]=simde_mm256_xor_si256(c2[1683],c2[2088]); //row: 30 - d2[180]=_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[2485],c2[2989]))); + d2[180]=simde_mm256_xor_si256(c2[2907],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[2485],c2[2989]))); //row: 31 - d2[186]=_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[2908],_mm256_xor_si256(c2[1357],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[2810],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[662],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[2101],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[675],_mm256_xor_si256(c2[555],_mm256_xor_si256(c2[569],_mm256_xor_si256(c2[87],_mm256_xor_si256(c2[3806],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[3338],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[593],c2[473]))))))))))))))))))))))))))))))))))); + d2[186]=simde_mm256_xor_si256(c2[2764],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[3254],simde_mm256_xor_si256(c2[2175],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[3028],simde_mm256_xor_si256(c2[2908],simde_mm256_xor_si256(c2[1357],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[3638],simde_mm256_xor_si256(c2[3048],simde_mm256_xor_si256(c2[2810],simde_mm256_xor_si256(c2[3290],simde_mm256_xor_si256(c2[3170],simde_mm256_xor_si256(c2[662],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[2101],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1032],simde_mm256_xor_si256(c2[675],simde_mm256_xor_si256(c2[555],simde_mm256_xor_si256(c2[569],simde_mm256_xor_si256(c2[87],simde_mm256_xor_si256(c2[3806],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[3338],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[2632],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[593],c2[473]))))))))))))))))))))))))))))))))))); //row: 32 - d2[192]=_mm256_xor_si256(c2[3725],_mm256_xor_si256(c2[3605],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[1081],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[2896],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[2318],_mm256_xor_si256(c2[2198],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[3651],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[2942],_mm256_xor_si256(c2[1020],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[2834],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[1396],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1404],_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[3593],_mm256_xor_si256(c2[3473],_mm256_xor_si256(c2[2508],_mm256_xor_si256(c2[2388],c2[1308])))))))))))))))))))))))))))))))))))))))))); + d2[192]=simde_mm256_xor_si256(c2[3725],simde_mm256_xor_si256(c2[3605],simde_mm256_xor_si256(c2[1441],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[1081],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2175],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[2896],simde_mm256_xor_si256(c2[2789],simde_mm256_xor_si256(c2[2669],simde_mm256_xor_si256(c2[3749],simde_mm256_xor_si256(c2[2318],simde_mm256_xor_si256(c2[2198],simde_mm256_xor_si256(c2[2557],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[3651],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[2942],simde_mm256_xor_si256(c2[1020],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[2834],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[1396],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1404],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[3593],simde_mm256_xor_si256(c2[3473],simde_mm256_xor_si256(c2[2508],simde_mm256_xor_si256(c2[2388],c2[1308])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[198]=_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[2644],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1227],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[3521],_mm256_xor_si256(c2[3760],_mm256_xor_si256(c2[1957],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[1489],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[3196],_mm256_xor_si256(c2[2713],_mm256_xor_si256(c2[2727],_mm256_xor_si256(c2[2125],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[2499],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[2860],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[3711],c2[2631])))))))))))))))))))))))))))); + d2[198]=simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[2644],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[3372],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[1227],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[3521],simde_mm256_xor_si256(c2[3760],simde_mm256_xor_si256(c2[1957],simde_mm256_xor_si256(c2[1373],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[3196],simde_mm256_xor_si256(c2[2713],simde_mm256_xor_si256(c2[2727],simde_mm256_xor_si256(c2[2125],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[2499],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[2860],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[3711],c2[2631])))))))))))))))))))))))))))); //row: 34 - d2[204]=_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[3005],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[2174],_mm256_xor_si256(c2[2054],_mm256_xor_si256(c2[1455],_mm256_xor_si256(c2[255],_mm256_xor_si256(c2[3495],_mm256_xor_si256(c2[2895],_mm256_xor_si256(c2[2416],_mm256_xor_si256(c2[2296],_mm256_xor_si256(c2[2788],_mm256_xor_si256(c2[2668],_mm256_xor_si256(c2[2069],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3149],_mm256_xor_si256(c2[2317],_mm256_xor_si256(c2[2197],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[2556],_mm256_xor_si256(c2[2436],_mm256_xor_si256(c2[1837],_mm256_xor_si256(c2[639],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[169],_mm256_xor_si256(c2[49],_mm256_xor_si256(c2[3289],_mm256_xor_si256(c2[3650],_mm256_xor_si256(c2[3051],_mm256_xor_si256(c2[171],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3411],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[903],_mm256_xor_si256(c2[2941],_mm256_xor_si256(c2[2462],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[2234],_mm256_xor_si256(c2[1992],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[1273],_mm256_xor_si256(c2[1395],_mm256_xor_si256(c2[916],_mm256_xor_si256(c2[796],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[1409],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[807],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[1181],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[3579],_mm256_xor_si256(c2[1536],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[937],_mm256_xor_si256(c2[3592],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2393],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[1313],_mm256_xor_si256(c2[828],c2[708])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[204]=simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[3604],simde_mm256_xor_si256(c2[3005],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[1565],simde_mm256_xor_si256(c2[2174],simde_mm256_xor_si256(c2[2054],simde_mm256_xor_si256(c2[1455],simde_mm256_xor_si256(c2[255],simde_mm256_xor_si256(c2[3495],simde_mm256_xor_si256(c2[2895],simde_mm256_xor_si256(c2[2416],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[2788],simde_mm256_xor_si256(c2[2668],simde_mm256_xor_si256(c2[2069],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[3149],simde_mm256_xor_si256(c2[2317],simde_mm256_xor_si256(c2[2197],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[2556],simde_mm256_xor_si256(c2[2436],simde_mm256_xor_si256(c2[1837],simde_mm256_xor_si256(c2[639],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[169],simde_mm256_xor_si256(c2[49],simde_mm256_xor_si256(c2[3289],simde_mm256_xor_si256(c2[3650],simde_mm256_xor_si256(c2[3051],simde_mm256_xor_si256(c2[171],simde_mm256_xor_si256(c2[3531],simde_mm256_xor_si256(c2[3411],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[903],simde_mm256_xor_si256(c2[2941],simde_mm256_xor_si256(c2[2462],simde_mm256_xor_si256(c2[2342],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[2833],simde_mm256_xor_si256(c2[2234],simde_mm256_xor_si256(c2[1992],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[1273],simde_mm256_xor_si256(c2[1395],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[796],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[1409],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[807],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[1181],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[339],simde_mm256_xor_si256(c2[3579],simde_mm256_xor_si256(c2[1536],simde_mm256_xor_si256(c2[1057],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[3592],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[2873],simde_mm256_xor_si256(c2[2513],simde_mm256_xor_si256(c2[2393],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[1313],simde_mm256_xor_si256(c2[828],c2[708])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[210]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3725],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[2295],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[3016],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[2438],_mm256_xor_si256(c2[2318],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[3771],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[2945],_mm256_xor_si256(c2[3074],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[460],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[3593],_mm256_xor_si256(c2[2508],c2[1428])))))))))))))))))))))))))))))))))); + d2[210]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3725],simde_mm256_xor_si256(c2[1441],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[2295],simde_mm256_xor_si256(c2[2175],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[3016],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[2789],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[2438],simde_mm256_xor_si256(c2[2318],simde_mm256_xor_si256(c2[2557],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[3771],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[2945],simde_mm256_xor_si256(c2[3074],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[460],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[3593],simde_mm256_xor_si256(c2[2508],c2[1428])))))))))))))))))))))))))))))))))); //row: 36 - d2[216]=_mm256_xor_si256(c2[3000],_mm256_xor_si256(c2[2788],c2[1289])); + d2[216]=simde_mm256_xor_si256(c2[3000],simde_mm256_xor_si256(c2[2788],c2[1289])); //row: 37 - d2[222]=_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[3721],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[3481],_mm256_xor_si256(c2[2761],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[3735],_mm256_xor_si256(c2[2656],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[759],_mm256_xor_si256(c2[39],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[2212],_mm256_xor_si256(c2[1492],_mm256_xor_si256(c2[2572],_mm256_xor_si256(c2[1972],_mm256_xor_si256(c2[1852],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[3183],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[903],_mm256_xor_si256(c2[783],_mm256_xor_si256(c2[1395],_mm256_xor_si256(c2[675],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[3553],_mm256_xor_si256(c2[3796],_mm256_xor_si256(c2[3196],_mm256_xor_si256(c2[3076],_mm256_xor_si256(c2[3804],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[3208],_mm256_xor_si256(c2[2608],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[3576],_mm256_xor_si256(c2[2856],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[2020],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[1308],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[3708],_mm256_xor_si256(c2[3108],c2[2988]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[222]=simde_mm256_xor_si256(c2[2160],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[3721],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[3481],simde_mm256_xor_si256(c2[2761],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[3735],simde_mm256_xor_si256(c2[2656],simde_mm256_xor_si256(c2[1936],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[857],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[2304],simde_mm256_xor_si256(c2[1704],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[759],simde_mm256_xor_si256(c2[39],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[2212],simde_mm256_xor_si256(c2[1492],simde_mm256_xor_si256(c2[2572],simde_mm256_xor_si256(c2[1972],simde_mm256_xor_si256(c2[1852],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[3183],simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[903],simde_mm256_xor_si256(c2[783],simde_mm256_xor_si256(c2[1395],simde_mm256_xor_si256(c2[675],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[3553],simde_mm256_xor_si256(c2[3796],simde_mm256_xor_si256(c2[3196],simde_mm256_xor_si256(c2[3076],simde_mm256_xor_si256(c2[3804],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[3208],simde_mm256_xor_si256(c2[2608],simde_mm256_xor_si256(c2[2488],simde_mm256_xor_si256(c2[3576],simde_mm256_xor_si256(c2[2856],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[2020],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[3337],simde_mm256_xor_si256(c2[3217],simde_mm256_xor_si256(c2[2028],simde_mm256_xor_si256(c2[1308],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[3708],simde_mm256_xor_si256(c2[3108],c2[2988]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[228]=_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[1325],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[2640],_mm256_xor_si256(c2[3734],_mm256_xor_si256(c2[3614],_mm256_xor_si256(c2[1815],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[509],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[1469],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[3757],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[2199],_mm256_xor_si256(c2[1609],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[662],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[2969],_mm256_xor_si256(c2[2367],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[1899],_mm256_xor_si256(c2[3096],_mm256_xor_si256(c2[1313],_mm256_xor_si256(c2[1193],_mm256_xor_si256(c2[108],c2[2873])))))))))))))))))))))))))))))))))); + d2[228]=simde_mm256_xor_si256(c2[1445],simde_mm256_xor_si256(c2[1325],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[2640],simde_mm256_xor_si256(c2[3734],simde_mm256_xor_si256(c2[3614],simde_mm256_xor_si256(c2[1815],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[2414],simde_mm256_xor_si256(c2[509],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[1469],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[3757],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[2199],simde_mm256_xor_si256(c2[1609],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[662],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[3432],simde_mm256_xor_si256(c2[2955],simde_mm256_xor_si256(c2[2969],simde_mm256_xor_si256(c2[2367],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[1899],simde_mm256_xor_si256(c2[3096],simde_mm256_xor_si256(c2[1313],simde_mm256_xor_si256(c2[1193],simde_mm256_xor_si256(c2[108],c2[2873])))))))))))))))))))))))))))))))))); //row: 39 - d2[234]=_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[3136],_mm256_xor_si256(c2[3016],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[3744],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[3279],_mm256_xor_si256(c2[3159],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[3398],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[1131],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[1133],_mm256_xor_si256(c2[2584],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[3795],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[2834],_mm256_xor_si256(c2[2357],_mm256_xor_si256(c2[2485],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[2137],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[3469],_mm256_xor_si256(c2[3349],c2[2269])))))))))))))))))))))))))))))))))))))))))); + d2[234]=simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[3482],simde_mm256_xor_si256(c2[3136],simde_mm256_xor_si256(c2[3016],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[3744],simde_mm256_xor_si256(c2[3624],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[3279],simde_mm256_xor_si256(c2[3159],simde_mm256_xor_si256(c2[3518],simde_mm256_xor_si256(c2[3398],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[1131],simde_mm256_xor_si256(c2[1011],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[2584],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[3795],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[2834],simde_mm256_xor_si256(c2[2357],simde_mm256_xor_si256(c2[2485],simde_mm256_xor_si256(c2[2365],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[2137],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[2498],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[589],simde_mm256_xor_si256(c2[3469],simde_mm256_xor_si256(c2[3349],c2[2269])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[240]=_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[3485],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[2173],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[988],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[867],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[1720],_mm256_xor_si256(c2[756],_mm256_xor_si256(c2[3756],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[3172],_mm256_xor_si256(c2[2208],_mm256_xor_si256(c2[2928],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[3288],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[780],_mm256_xor_si256(c2[3661],_mm256_xor_si256(c2[2225],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[1153],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[3674],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[3568],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[459],_mm256_xor_si256(c2[3340],_mm256_xor_si256(c2[3456],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[2750],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[1671],_mm256_xor_si256(c2[713],_mm256_xor_si256(c2[591],_mm256_xor_si256(c2[3592],c2[3472])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[240]=simde_mm256_xor_si256(c2[2882],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[3485],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[3245],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[3372],simde_mm256_xor_si256(c2[2414],simde_mm256_xor_si256(c2[2173],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[1946],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[3026],simde_mm256_xor_si256(c2[2188],simde_mm256_xor_si256(c2[2068],simde_mm256_xor_si256(c2[867],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[1720],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[3756],simde_mm256_xor_si256(c2[2798],simde_mm256_xor_si256(c2[3172],simde_mm256_xor_si256(c2[2208],simde_mm256_xor_si256(c2[2928],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[3288],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[3661],simde_mm256_xor_si256(c2[2225],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[1153],simde_mm256_xor_si256(c2[1156],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[3674],simde_mm256_xor_si256(c2[3554],simde_mm256_xor_si256(c2[687],simde_mm256_xor_si256(c2[3568],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[2966],simde_mm256_xor_si256(c2[459],simde_mm256_xor_si256(c2[3340],simde_mm256_xor_si256(c2[3456],simde_mm256_xor_si256(c2[2498],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[2750],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[1671],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[591],simde_mm256_xor_si256(c2[3592],c2[3472])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[246]=_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[1081],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[3496],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[1577],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[2296],_mm256_xor_si256(c2[265],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[1225],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[3519],_mm256_xor_si256(c2[3758],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[1133],_mm256_xor_si256(c2[1493],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[424],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2717],_mm256_xor_si256(c2[2725],_mm256_xor_si256(c2[2129],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[1661],_mm256_xor_si256(c2[2858],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[3709],c2[2629])))))))))))))))))))))))))))))))))); + d2[246]=simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1081],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[3496],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[1577],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[2296],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[1225],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[3758],simde_mm256_xor_si256(c2[1961],simde_mm256_xor_si256(c2[1371],simde_mm256_xor_si256(c2[1133],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[424],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[2725],simde_mm256_xor_si256(c2[2129],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[1661],simde_mm256_xor_si256(c2[2858],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[3709],c2[2629])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc224_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc224_byte.c index cd665548f8..8969c624de 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc224_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc224_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc224_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[2941],_mm256_xor_si256(c2[3364],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[3519],_mm256_xor_si256(c2[3248],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[2987],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[2003],_mm256_xor_si256(c2[2719],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[3994],_mm256_xor_si256(c2[3993],_mm256_xor_si256(c2[4426],_mm256_xor_si256(c2[2747],_mm256_xor_si256(c2[4007],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[2061],_mm256_xor_si256(c2[4172],_mm256_xor_si256(c2[3894],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[4466],c2[830])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[2941],simde_mm256_xor_si256(c2[3364],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[438],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[3248],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[2987],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[2003],simde_mm256_xor_si256(c2[2719],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[3994],simde_mm256_xor_si256(c2[3993],simde_mm256_xor_si256(c2[4426],simde_mm256_xor_si256(c2[2747],simde_mm256_xor_si256(c2[4007],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[2061],simde_mm256_xor_si256(c2[4172],simde_mm256_xor_si256(c2[3894],simde_mm256_xor_si256(c2[4036],simde_mm256_xor_si256(c2[1246],simde_mm256_xor_si256(c2[4466],c2[830])))))))))))))))))))))))))); //row: 1 - d2[7]=_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[1262],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[578],_mm256_xor_si256(c2[3659],_mm256_xor_si256(c2[3248],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[2987],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[4106],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[2859],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[4134],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[4426],_mm256_xor_si256(c2[87],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[4147],_mm256_xor_si256(c2[1364],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[127],c2[970])))))))))))))))))))))))))))))))); + d2[7]=simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[1262],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[3659],simde_mm256_xor_si256(c2[3248],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[2987],simde_mm256_xor_si256(c2[3127],simde_mm256_xor_si256(c2[4106],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[2859],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[4134],simde_mm256_xor_si256(c2[4133],simde_mm256_xor_si256(c2[4426],simde_mm256_xor_si256(c2[87],simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[4147],simde_mm256_xor_si256(c2[1364],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[4034],simde_mm256_xor_si256(c2[4176],simde_mm256_xor_si256(c2[1246],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[127],c2[970])))))))))))))))))))))))))))))))); //row: 2 - d2[14]=_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[1262],_mm256_xor_si256(c2[2941],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[578],_mm256_xor_si256(c2[3659],_mm256_xor_si256(c2[3248],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[2987],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[4106],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[2719],_mm256_xor_si256(c2[2859],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[3994],_mm256_xor_si256(c2[4134],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[4426],_mm256_xor_si256(c2[87],_mm256_xor_si256(c2[2747],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[4147],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[1364],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[4172],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[4466],_mm256_xor_si256(c2[127],c2[970])))))))))))))))))))))))))))))))))))))))); + d2[14]=simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[1262],simde_mm256_xor_si256(c2[2941],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[1977],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[3659],simde_mm256_xor_si256(c2[3248],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[2987],simde_mm256_xor_si256(c2[3127],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[4106],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[2719],simde_mm256_xor_si256(c2[2859],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[3994],simde_mm256_xor_si256(c2[4134],simde_mm256_xor_si256(c2[4133],simde_mm256_xor_si256(c2[4426],simde_mm256_xor_si256(c2[87],simde_mm256_xor_si256(c2[2747],simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[4147],simde_mm256_xor_si256(c2[1224],simde_mm256_xor_si256(c2[1364],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[4172],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[4034],simde_mm256_xor_si256(c2[4176],simde_mm256_xor_si256(c2[1246],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[4466],simde_mm256_xor_si256(c2[127],c2[970])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[21]=_mm256_xor_si256(c2[1262],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[578],_mm256_xor_si256(c2[3519],_mm256_xor_si256(c2[3659],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[4106],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[2859],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[4134],_mm256_xor_si256(c2[3993],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[87],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[4007],_mm256_xor_si256(c2[4147],_mm256_xor_si256(c2[1364],_mm256_xor_si256(c2[2061],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[830],c2[970])))))))))))))))))))))))))))))))))); + d2[21]=simde_mm256_xor_si256(c2[1262],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[3519],simde_mm256_xor_si256(c2[3659],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[3127],simde_mm256_xor_si256(c2[4106],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[2859],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[4134],simde_mm256_xor_si256(c2[3993],simde_mm256_xor_si256(c2[4133],simde_mm256_xor_si256(c2[87],simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[4007],simde_mm256_xor_si256(c2[4147],simde_mm256_xor_si256(c2[1364],simde_mm256_xor_si256(c2[2061],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[4034],simde_mm256_xor_si256(c2[4036],simde_mm256_xor_si256(c2[4176],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[830],c2[970])))))))))))))))))))))))))))))))))); //row: 4 - d2[28]=_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[1965],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[1126],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[1274],_mm256_xor_si256(c2[4355],_mm256_xor_si256(c2[2254],_mm256_xor_si256(c2[3951],_mm256_xor_si256(c2[4091],_mm256_xor_si256(c2[1711],_mm256_xor_si256(c2[3683],_mm256_xor_si256(c2[3823],_mm256_xor_si256(c2[323],_mm256_xor_si256(c2[2846],_mm256_xor_si256(c2[3562],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[1460],_mm256_xor_si256(c2[351],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[2060],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[393],_mm256_xor_si256(c2[1949],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[830],c2[1666])))))))))))))))))))))))))))))))))); + d2[28]=simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[1965],simde_mm256_xor_si256(c2[3784],simde_mm256_xor_si256(c2[4200],simde_mm256_xor_si256(c2[1126],simde_mm256_xor_si256(c2[2680],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[1274],simde_mm256_xor_si256(c2[4355],simde_mm256_xor_si256(c2[2254],simde_mm256_xor_si256(c2[3951],simde_mm256_xor_si256(c2[4091],simde_mm256_xor_si256(c2[1711],simde_mm256_xor_si256(c2[3683],simde_mm256_xor_si256(c2[3823],simde_mm256_xor_si256(c2[323],simde_mm256_xor_si256(c2[2846],simde_mm256_xor_si256(c2[3562],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[1460],simde_mm256_xor_si256(c2[351],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[2060],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[393],simde_mm256_xor_si256(c2[1949],simde_mm256_xor_si256(c2[2089],simde_mm256_xor_si256(c2[830],c2[1666])))))))))))))))))))))))))))))))))); //row: 5 - d2[35]=_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[1401],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[3643],_mm256_xor_si256(c2[3505],_mm256_xor_si256(c2[2116],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[717],_mm256_xor_si256(c2[3798],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[3394],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[3126],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[2998],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[4273],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[2340],_mm256_xor_si256(c2[3884],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[4173],_mm256_xor_si256(c2[4315],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[1532],_mm256_xor_si256(c2[266],c2[1109])))))))))))))))))))))))))))))))))))); + d2[35]=simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[1401],simde_mm256_xor_si256(c2[3220],simde_mm256_xor_si256(c2[3643],simde_mm256_xor_si256(c2[3505],simde_mm256_xor_si256(c2[2116],simde_mm256_xor_si256(c2[2256],simde_mm256_xor_si256(c2[717],simde_mm256_xor_si256(c2[3798],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[3394],simde_mm256_xor_si256(c2[3534],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[3126],simde_mm256_xor_si256(c2[3266],simde_mm256_xor_si256(c2[4245],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[2998],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[4273],simde_mm256_xor_si256(c2[4272],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[3026],simde_mm256_xor_si256(c2[4286],simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[2340],simde_mm256_xor_si256(c2[3884],simde_mm256_xor_si256(c2[4458],simde_mm256_xor_si256(c2[4173],simde_mm256_xor_si256(c2[4315],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[1532],simde_mm256_xor_si256(c2[266],c2[1109])))))))))))))))))))))))))))))))))))); //row: 6 - d2[42]=_mm256_xor_si256(c2[3501],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[1404],_mm256_xor_si256(c2[3783],_mm256_xor_si256(c2[4356],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[1559],_mm256_xor_si256(c2[1148],_mm256_xor_si256(c2[1288],_mm256_xor_si256(c2[3394],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[2006],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[759],_mm256_xor_si256(c2[2441],_mm256_xor_si256(c2[3136],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[2466],_mm256_xor_si256(c2[787],_mm256_xor_si256(c2[2047],_mm256_xor_si256(c2[3743],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[2212],_mm256_xor_si256(c2[1934],_mm256_xor_si256(c2[2076],_mm256_xor_si256(c2[3632],_mm256_xor_si256(c2[3772],_mm256_xor_si256(c2[2506],_mm256_xor_si256(c2[3349],c2[4332])))))))))))))))))))))))))))))))))))); + d2[42]=simde_mm256_xor_si256(c2[3501],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[1404],simde_mm256_xor_si256(c2[3783],simde_mm256_xor_si256(c2[4356],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[2957],simde_mm256_xor_si256(c2[1559],simde_mm256_xor_si256(c2[1148],simde_mm256_xor_si256(c2[1288],simde_mm256_xor_si256(c2[3394],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[1027],simde_mm256_xor_si256(c2[2006],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[759],simde_mm256_xor_si256(c2[2441],simde_mm256_xor_si256(c2[3136],simde_mm256_xor_si256(c2[2034],simde_mm256_xor_si256(c2[2033],simde_mm256_xor_si256(c2[3291],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[2466],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[2047],simde_mm256_xor_si256(c2[3743],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[4438],simde_mm256_xor_si256(c2[2212],simde_mm256_xor_si256(c2[1934],simde_mm256_xor_si256(c2[2076],simde_mm256_xor_si256(c2[3632],simde_mm256_xor_si256(c2[3772],simde_mm256_xor_si256(c2[2506],simde_mm256_xor_si256(c2[3349],c2[4332])))))))))))))))))))))))))))))))))))); //row: 7 - d2[49]=_mm256_xor_si256(c2[4206],_mm256_xor_si256(c2[4346],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[1540],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[1963],_mm256_xor_si256(c2[575],_mm256_xor_si256(c2[715],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1978],_mm256_xor_si256(c2[2118],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1854],_mm256_xor_si256(c2[4092],_mm256_xor_si256(c2[3813],_mm256_xor_si256(c2[3953],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1725],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[2565],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[3139],_mm256_xor_si256(c2[3000],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[3562],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[2732],_mm256_xor_si256(c2[2593],_mm256_xor_si256(c2[2731],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[2592],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[1485],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[2745],_mm256_xor_si256(c2[2466],_mm256_xor_si256(c2[2606],_mm256_xor_si256(c2[4441],_mm256_xor_si256(c2[4302],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[520],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[2917],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[2493],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[2495],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[4330],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[4331],_mm256_xor_si256(c2[3211],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[4047],_mm256_xor_si256(c2[3768],c2[3908])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[49]=simde_mm256_xor_si256(c2[4206],simde_mm256_xor_si256(c2[4346],simde_mm256_xor_si256(c2[4200],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1540],simde_mm256_xor_si256(c2[2102],simde_mm256_xor_si256(c2[1963],simde_mm256_xor_si256(c2[575],simde_mm256_xor_si256(c2[715],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[3655],simde_mm256_xor_si256(c2[3516],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1978],simde_mm256_xor_si256(c2[2118],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[1993],simde_mm256_xor_si256(c2[1854],simde_mm256_xor_si256(c2[4092],simde_mm256_xor_si256(c2[3813],simde_mm256_xor_si256(c2[3953],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1725],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[2565],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[1318],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[3000],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[3562],simde_mm256_xor_si256(c2[3702],simde_mm256_xor_si256(c2[2732],simde_mm256_xor_si256(c2[2593],simde_mm256_xor_si256(c2[2731],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[2592],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[1485],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[2745],simde_mm256_xor_si256(c2[2466],simde_mm256_xor_si256(c2[2606],simde_mm256_xor_si256(c2[4441],simde_mm256_xor_si256(c2[4302],simde_mm256_xor_si256(c2[799],simde_mm256_xor_si256(c2[520],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[2917],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[2632],simde_mm256_xor_si256(c2[2493],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[2495],simde_mm256_xor_si256(c2[2635],simde_mm256_xor_si256(c2[4330],simde_mm256_xor_si256(c2[4470],simde_mm256_xor_si256(c2[4331],simde_mm256_xor_si256(c2[3211],simde_mm256_xor_si256(c2[3072],simde_mm256_xor_si256(c2[4047],simde_mm256_xor_si256(c2[3768],c2[3908])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[56]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1966],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[855],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[3935],_mm256_xor_si256(c2[2537],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[2133],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[4372],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[2984],_mm256_xor_si256(c2[1028],_mm256_xor_si256(c2[1597],_mm256_xor_si256(c2[1737],_mm256_xor_si256(c2[3419],_mm256_xor_si256(c2[4121],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[3012],_mm256_xor_si256(c2[3011],_mm256_xor_si256(c2[3304],_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[1625],_mm256_xor_si256(c2[1765],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[1079],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[3054],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3491],c2[4327])))))))))))))))))))))))))))))))))))))))))); + d2[56]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1966],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[855],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[3935],simde_mm256_xor_si256(c2[2537],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[2133],simde_mm256_xor_si256(c2[2273],simde_mm256_xor_si256(c2[4372],simde_mm256_xor_si256(c2[1865],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[2984],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[1597],simde_mm256_xor_si256(c2[1737],simde_mm256_xor_si256(c2[3419],simde_mm256_xor_si256(c2[4121],simde_mm256_xor_si256(c2[2872],simde_mm256_xor_si256(c2[3012],simde_mm256_xor_si256(c2[3011],simde_mm256_xor_si256(c2[3304],simde_mm256_xor_si256(c2[3444],simde_mm256_xor_si256(c2[1625],simde_mm256_xor_si256(c2[1765],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[1079],simde_mm256_xor_si256(c2[3057],simde_mm256_xor_si256(c2[3197],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[3054],simde_mm256_xor_si256(c2[131],simde_mm256_xor_si256(c2[271],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[3491],c2[4327])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[63]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[3796],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[2398],_mm256_xor_si256(c2[1835],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[2134],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[4233],_mm256_xor_si256(c2[3670],_mm256_xor_si256(c2[1866],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[2845],_mm256_xor_si256(c2[2282],_mm256_xor_si256(c2[882],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[1042],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[2717],_mm256_xor_si256(c2[3982],_mm256_xor_si256(c2[3419],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[2316],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[2749],_mm256_xor_si256(c2[1626],_mm256_xor_si256(c2[1070],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[4019],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[3058],_mm256_xor_si256(c2[2495],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[3908],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[3352],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[4188],c2[3632]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[63]=simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[3784],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[3796],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[2398],simde_mm256_xor_si256(c2[1835],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[2134],simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[1571],simde_mm256_xor_si256(c2[4233],simde_mm256_xor_si256(c2[3670],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[1163],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[2845],simde_mm256_xor_si256(c2[2282],simde_mm256_xor_si256(c2[882],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[3280],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[3982],simde_mm256_xor_si256(c2[3419],simde_mm256_xor_si256(c2[2873],simde_mm256_xor_si256(c2[2310],simde_mm256_xor_si256(c2[2872],simde_mm256_xor_si256(c2[2316],simde_mm256_xor_si256(c2[3305],simde_mm256_xor_si256(c2[2609],simde_mm256_xor_si256(c2[2749],simde_mm256_xor_si256(c2[1626],simde_mm256_xor_si256(c2[1070],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[4019],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[3058],simde_mm256_xor_si256(c2[2495],simde_mm256_xor_si256(c2[2773],simde_mm256_xor_si256(c2[2217],simde_mm256_xor_si256(c2[2915],simde_mm256_xor_si256(c2[2352],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[3908],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[3352],simde_mm256_xor_si256(c2[2789],simde_mm256_xor_si256(c2[4188],c2[3632]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[70]=_mm256_xor_si256(c2[1965],_mm256_xor_si256(c2[3098],_mm256_xor_si256(c2[1204],c2[3459]))); + d2[70]=simde_mm256_xor_si256(c2[1965],simde_mm256_xor_si256(c2[3098],simde_mm256_xor_si256(c2[1204],c2[3459]))); //row: 11 - d2[77]=_mm256_xor_si256(c2[1685],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[2540],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[3935],_mm256_xor_si256(c2[4075],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[1291],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[2566],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[478],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[71],_mm256_xor_si256(c2[4416],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[3310],_mm256_xor_si256(c2[4430],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[2484],_mm256_xor_si256(c2[2624],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[4457],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[1386],c2[2089]))))))))))))))))))))))))))))))))))))); + d2[77]=simde_mm256_xor_si256(c2[1685],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[2540],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[3935],simde_mm256_xor_si256(c2[4075],simde_mm256_xor_si256(c2[3811],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[3543],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[2566],simde_mm256_xor_si256(c2[3282],simde_mm256_xor_si256(c2[478],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[71],simde_mm256_xor_si256(c2[4416],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[3310],simde_mm256_xor_si256(c2[4430],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[1780],simde_mm256_xor_si256(c2[2484],simde_mm256_xor_si256(c2[2624],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[4457],simde_mm256_xor_si256(c2[4452],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[550],simde_mm256_xor_si256(c2[1246],simde_mm256_xor_si256(c2[1386],c2[2089]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[84]=_mm256_xor_si256(c2[2945],_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[2394],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[3548],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[1878],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[1471],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[3180],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[3069],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[1950],c2[2786])))))))))))))))))))))))))))))))))); + d2[84]=simde_mm256_xor_si256(c2[2945],simde_mm256_xor_si256(c2[3085],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[2394],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[1975],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[3548],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[3180],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[1378],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[3069],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[1950],c2[2786])))))))))))))))))))))))))))))))))); //row: 13 - d2[91]=_mm256_xor_si256(c2[2946],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[702],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[2255],_mm256_xor_si256(c2[717],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[2397],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[2552],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[3827],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[1739],_mm256_xor_si256(c2[2301],_mm256_xor_si256(c2[2441],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[1345],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[3738],_mm256_xor_si256(c2[3878],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[1374],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[3070],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[2507],c2[2647]))))))))))))))))))))))))))))))))))))); + d2[91]=simde_mm256_xor_si256(c2[2946],simde_mm256_xor_si256(c2[286],simde_mm256_xor_si256(c2[702],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[3794],simde_mm256_xor_si256(c2[2255],simde_mm256_xor_si256(c2[717],simde_mm256_xor_si256(c2[857],simde_mm256_xor_si256(c2[2397],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[2552],simde_mm256_xor_si256(c2[2692],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[3827],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[1739],simde_mm256_xor_si256(c2[2301],simde_mm256_xor_si256(c2[2441],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[1331],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[1345],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[3738],simde_mm256_xor_si256(c2[3878],simde_mm256_xor_si256(c2[1517],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[1374],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[3070],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[2507],c2[2647]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[98]=_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[4065],_mm256_xor_si256(c2[4202],_mm256_xor_si256(c2[1405],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[3098],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[1699],_mm256_xor_si256(c2[3374],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1976],_mm256_xor_si256(c2[575],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[2129],_mm256_xor_si256(c2[3671],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[4108],_mm256_xor_si256(c2[4248],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[2423],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[3980],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[2858],_mm256_xor_si256(c2[1878],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[3560],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[2890],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[1204],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[2324],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[4426],_mm256_xor_si256(c2[2478],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[3322],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[518],_mm256_xor_si256(c2[954],_mm256_xor_si256(c2[2636],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[2358],_mm256_xor_si256(c2[818],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[2493],_mm256_xor_si256(c2[2367],_mm256_xor_si256(c2[2507],_mm256_xor_si256(c2[4189],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[2930],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[3626],c2[3766]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[98]=simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[2383],simde_mm256_xor_si256(c2[4065],simde_mm256_xor_si256(c2[4202],simde_mm256_xor_si256(c2[1405],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[3098],simde_mm256_xor_si256(c2[3238],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[1699],simde_mm256_xor_si256(c2[3374],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1976],simde_mm256_xor_si256(c2[575],simde_mm256_xor_si256(c2[4369],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[2129],simde_mm256_xor_si256(c2[3671],simde_mm256_xor_si256(c2[3811],simde_mm256_xor_si256(c2[4108],simde_mm256_xor_si256(c2[4248],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[2423],simde_mm256_xor_si256(c2[3264],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[3980],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[2858],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[3420],simde_mm256_xor_si256(c2[3560],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[2310],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[2890],simde_mm256_xor_si256(c2[4008],simde_mm256_xor_si256(c2[1204],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[2324],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[4426],simde_mm256_xor_si256(c2[2478],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[3322],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[518],simde_mm256_xor_si256(c2[954],simde_mm256_xor_si256(c2[2636],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[2358],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[2353],simde_mm256_xor_si256(c2[2493],simde_mm256_xor_si256(c2[2367],simde_mm256_xor_si256(c2[2507],simde_mm256_xor_si256(c2[4189],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[2930],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[3626],c2[3766]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[105]=_mm256_xor_si256(c2[2241],_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[4060],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[2803],_mm256_xor_si256(c2[3096],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[1557],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[159],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[1994],_mm256_xor_si256(c2[2971],_mm256_xor_si256(c2[4106],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[1583],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[4106],_mm256_xor_si256(c2[3838],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[2018],_mm256_xor_si256(c2[1736],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[1610],_mm256_xor_si256(c2[1066],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[3866],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[647],_mm256_xor_si256(c2[1624],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[3180],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[1796],_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[1653],_mm256_xor_si256(c2[2372],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[2090],_mm256_xor_si256(c2[1949],c2[2926])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[105]=simde_mm256_xor_si256(c2[2241],simde_mm256_xor_si256(c2[3085],simde_mm256_xor_si256(c2[3225],simde_mm256_xor_si256(c2[4060],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[2803],simde_mm256_xor_si256(c2[3096],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[4080],simde_mm256_xor_si256(c2[1557],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[159],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[4374],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[1994],simde_mm256_xor_si256(c2[2971],simde_mm256_xor_si256(c2[4106],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[1583],simde_mm256_xor_si256(c2[3122],simde_mm256_xor_si256(c2[4106],simde_mm256_xor_si256(c2[3838],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[1041],simde_mm256_xor_si256(c2[2018],simde_mm256_xor_si256(c2[1736],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[634],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[1610],simde_mm256_xor_si256(c2[1066],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[3866],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[647],simde_mm256_xor_si256(c2[1624],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[3180],simde_mm256_xor_si256(c2[4164],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[1796],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[1653],simde_mm256_xor_si256(c2[2372],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[2090],simde_mm256_xor_si256(c2[1949],c2[2926])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[112]=_mm256_xor_si256(c2[1966],_mm256_xor_si256(c2[2106],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[1405],_mm256_xor_si256(c2[3925],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[3224],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[2260],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[3795],_mm256_xor_si256(c2[1556],_mm256_xor_si256(c2[4092],_mm256_xor_si256(c2[4232],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[1852],_mm256_xor_si256(c2[1151],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[3263],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[4242],_mm256_xor_si256(c2[2987],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[2862],_mm256_xor_si256(c2[3002],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[4270],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[4276],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[2890],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[1360],_mm256_xor_si256(c2[1500],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[4315],_mm256_xor_si256(c2[4455],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[2090],_mm256_xor_si256(c2[2230],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[130],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[1807],_mm256_xor_si256(c2[1106],c2[4330]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[112]=simde_mm256_xor_si256(c2[1966],simde_mm256_xor_si256(c2[2106],simde_mm256_xor_si256(c2[1265],simde_mm256_xor_si256(c2[1405],simde_mm256_xor_si256(c2[3925],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[3224],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[2120],simde_mm256_xor_si256(c2[2260],simde_mm256_xor_si256(c2[1415],simde_mm256_xor_si256(c2[714],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[3795],simde_mm256_xor_si256(c2[1556],simde_mm256_xor_si256(c2[4092],simde_mm256_xor_si256(c2[4232],simde_mm256_xor_si256(c2[3391],simde_mm256_xor_si256(c2[3531],simde_mm256_xor_si256(c2[1852],simde_mm256_xor_si256(c2[1151],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[3964],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[3263],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[4242],simde_mm256_xor_si256(c2[2987],simde_mm256_xor_si256(c2[2286],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[2862],simde_mm256_xor_si256(c2[3002],simde_mm256_xor_si256(c2[899],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[4130],simde_mm256_xor_si256(c2[4270],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[4276],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[2890],simde_mm256_xor_si256(c2[3030],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[4290],simde_mm256_xor_si256(c2[2201],simde_mm256_xor_si256(c2[1360],simde_mm256_xor_si256(c2[1500],simde_mm256_xor_si256(c2[3038],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[4315],simde_mm256_xor_si256(c2[4455],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[4177],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[4312],simde_mm256_xor_si256(c2[2090],simde_mm256_xor_si256(c2[2230],simde_mm256_xor_si256(c2[1389],simde_mm256_xor_si256(c2[1529],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[1807],simde_mm256_xor_si256(c2[1106],c2[4330]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[119]=_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[1542],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[4076],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[2397],_mm256_xor_si256(c2[2537],_mm256_xor_si256(c2[858],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[2255],_mm256_xor_si256(c2[728],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[3668],_mm256_xor_si256(c2[2974],_mm256_xor_si256(c2[1288],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[607],_mm256_xor_si256(c2[3267],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[4246],_mm256_xor_si256(c2[4386],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[2423],_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[3139],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[2716],_mm256_xor_si256(c2[1037],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[4274],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[4413],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[367],_mm256_xor_si256(c2[367],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3167],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[4427],_mm256_xor_si256(c2[3323],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[4456],_mm256_xor_si256(c2[3212],_mm256_xor_si256(c2[3352],_mm256_xor_si256(c2[1526],_mm256_xor_si256(c2[1666],_mm256_xor_si256(c2[2086],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[407],_mm256_xor_si256(c2[2929],c2[1250]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[119]=simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[1402],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[3361],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[3784],simde_mm256_xor_si256(c2[3936],simde_mm256_xor_si256(c2[4076],simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[2397],simde_mm256_xor_si256(c2[2537],simde_mm256_xor_si256(c2[858],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[2255],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[3528],simde_mm256_xor_si256(c2[3668],simde_mm256_xor_si256(c2[2974],simde_mm256_xor_si256(c2[1288],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[607],simde_mm256_xor_si256(c2[3267],simde_mm256_xor_si256(c2[3407],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[4246],simde_mm256_xor_si256(c2[4386],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[2423],simde_mm256_xor_si256(c2[339],simde_mm256_xor_si256(c2[2999],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[2716],simde_mm256_xor_si256(c2[1037],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[4274],simde_mm256_xor_si256(c2[4414],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[4413],simde_mm256_xor_si256(c2[634],simde_mm256_xor_si256(c2[1906],simde_mm256_xor_si256(c2[2046],simde_mm256_xor_si256(c2[227],simde_mm256_xor_si256(c2[367],simde_mm256_xor_si256(c2[367],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[3167],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[4427],simde_mm256_xor_si256(c2[3323],simde_mm256_xor_si256(c2[1504],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[2481],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[4452],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[4314],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[4456],simde_mm256_xor_si256(c2[3212],simde_mm256_xor_si256(c2[3352],simde_mm256_xor_si256(c2[1526],simde_mm256_xor_si256(c2[1666],simde_mm256_xor_si256(c2[2086],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[407],simde_mm256_xor_si256(c2[2929],c2[1250]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[126]=_mm256_xor_si256(c2[562],_mm256_xor_si256(c2[2324],c2[4022])); + d2[126]=simde_mm256_xor_si256(c2[562],simde_mm256_xor_si256(c2[2324],c2[4022])); //row: 19 - d2[133]=_mm256_xor_si256(c2[4204],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[1583],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[2997],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[2590],_mm256_xor_si256(c2[2596],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[1350],_mm256_xor_si256(c2[2610],_mm256_xor_si256(c2[4299],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[4328],_mm256_xor_si256(c2[3069],c2[3912])))))))))))))))))))))))))))); + d2[133]=simde_mm256_xor_si256(c2[4204],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1960],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[2115],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[3950],simde_mm256_xor_si256(c2[1583],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[2997],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[2590],simde_mm256_xor_si256(c2[2596],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[1350],simde_mm256_xor_si256(c2[2610],simde_mm256_xor_si256(c2[4299],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[2632],simde_mm256_xor_si256(c2[4328],simde_mm256_xor_si256(c2[3069],c2[3912])))))))))))))))))))))))))))); //row: 20 - d2[140]=_mm256_xor_si256(c2[2946],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[3934],_mm256_xor_si256(c2[2395],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3967],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[2856],_mm256_xor_si256(c2[1472],_mm256_xor_si256(c2[1471],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[1485],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[4018],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[1372],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[3070],_mm256_xor_si256(c2[3210],_mm256_xor_si256(c2[1951],c2[2787])))))))))))))))))))))))))))))))))); + d2[140]=simde_mm256_xor_si256(c2[2946],simde_mm256_xor_si256(c2[3086],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[3794],simde_mm256_xor_si256(c2[3934],simde_mm256_xor_si256(c2[2395],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[3967],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[2581],simde_mm256_xor_si256(c2[2856],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[1485],simde_mm256_xor_si256(c2[3181],simde_mm256_xor_si256(c2[4018],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[1372],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[3070],simde_mm256_xor_si256(c2[3210],simde_mm256_xor_si256(c2[1951],c2[2787])))))))))))))))))))))))))))))))))); //row: 21 - d2[147]=_mm256_xor_si256(c2[3644],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[1291],_mm256_xor_si256(c2[3250],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[1023],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[3139],_mm256_xor_si256(c2[2030],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[2036],_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[3739],_mm256_xor_si256(c2[4443],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[1937],_mm256_xor_si256(c2[1932],_mm256_xor_si256(c2[2072],_mm256_xor_si256(c2[1653],_mm256_xor_si256(c2[3768],_mm256_xor_si256(c2[2509],_mm256_xor_si256(c2[3212],c2[3352])))))))))))))))))))))))))))))))))))); + d2[147]=simde_mm256_xor_si256(c2[3644],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[2242],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[1415],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[3250],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[1023],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[2999],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[2030],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[2036],simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[3739],simde_mm256_xor_si256(c2[4443],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[1932],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[1653],simde_mm256_xor_si256(c2[3768],simde_mm256_xor_si256(c2[2509],simde_mm256_xor_si256(c2[3212],c2[3352])))))))))))))))))))))))))))))))))))); //row: 22 - d2[154]=_mm256_xor_si256(c2[2395],c2[168]); + d2[154]=simde_mm256_xor_si256(c2[2395],c2[168]); //row: 23 - d2[161]=_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[3123],c2[914])); + d2[161]=simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[3123],c2[914])); //row: 24 - d2[168]=_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[3390],c2[4467])); + d2[168]=simde_mm256_xor_si256(c2[3518],simde_mm256_xor_si256(c2[3390],c2[4467])); //row: 25 - d2[175]=_mm256_xor_si256(c2[2666],c2[4272]); + d2[175]=simde_mm256_xor_si256(c2[2666],c2[4272]); //row: 26 - d2[182]=_mm256_xor_si256(c2[702],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[2661],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[1557],_mm256_xor_si256(c2[1697],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[3239],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[2828],_mm256_xor_si256(c2[2968],_mm256_xor_si256(c2[4228],_mm256_xor_si256(c2[588],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[3670],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[2707],_mm256_xor_si256(c2[3967],_mm256_xor_si256(c2[3546],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[1723],_mm256_xor_si256(c2[2983],_mm256_xor_si256(c2[2299],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[4121],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[1597],_mm256_xor_si256(c2[3574],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[495],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[494],_mm256_xor_si256(c2[4006],_mm256_xor_si256(c2[4146],_mm256_xor_si256(c2[927],_mm256_xor_si256(c2[2327],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[3727],_mm256_xor_si256(c2[3727],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[2204],_mm256_xor_si256(c2[1781],_mm256_xor_si256(c2[2901],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[938],_mm256_xor_si256(c2[3752],_mm256_xor_si256(c2[3892],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[3614],_mm256_xor_si256(c2[395],_mm256_xor_si256(c2[3756],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[537],_mm256_xor_si256(c2[826],_mm256_xor_si256(c2[966],_mm256_xor_si256(c2[2226],_mm256_xor_si256(c2[4046],_mm256_xor_si256(c2[4186],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[1670],c2[1810]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[182]=simde_mm256_xor_si256(c2[702],simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[2102],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[2661],simde_mm256_xor_si256(c2[3921],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[4344],simde_mm256_xor_si256(c2[1557],simde_mm256_xor_si256(c2[1697],simde_mm256_xor_si256(c2[2957],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[3239],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2828],simde_mm256_xor_si256(c2[2968],simde_mm256_xor_si256(c2[4228],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[1848],simde_mm256_xor_si256(c2[3670],simde_mm256_xor_si256(c2[2567],simde_mm256_xor_si256(c2[2707],simde_mm256_xor_si256(c2[3967],simde_mm256_xor_si256(c2[3546],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[1723],simde_mm256_xor_si256(c2[2983],simde_mm256_xor_si256(c2[2299],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[4121],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[1597],simde_mm256_xor_si256(c2[3574],simde_mm256_xor_si256(c2[3714],simde_mm256_xor_si256(c2[495],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[494],simde_mm256_xor_si256(c2[4006],simde_mm256_xor_si256(c2[4146],simde_mm256_xor_si256(c2[927],simde_mm256_xor_si256(c2[2327],simde_mm256_xor_si256(c2[2467],simde_mm256_xor_si256(c2[3727],simde_mm256_xor_si256(c2[3727],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[2204],simde_mm256_xor_si256(c2[1781],simde_mm256_xor_si256(c2[2901],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[938],simde_mm256_xor_si256(c2[3752],simde_mm256_xor_si256(c2[3892],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[3614],simde_mm256_xor_si256(c2[395],simde_mm256_xor_si256(c2[3756],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[537],simde_mm256_xor_si256(c2[826],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[2226],simde_mm256_xor_si256(c2[4046],simde_mm256_xor_si256(c2[4186],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[550],simde_mm256_xor_si256(c2[1670],c2[1810]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[189]=_mm256_xor_si256(c2[3780],c2[3167]); + d2[189]=simde_mm256_xor_si256(c2[3780],c2[3167]); //row: 28 - d2[196]=_mm256_xor_si256(c2[3380],_mm256_xor_si256(c2[2834],c2[216])); + d2[196]=simde_mm256_xor_si256(c2[3380],simde_mm256_xor_si256(c2[2834],c2[216])); //row: 29 - d2[203]=_mm256_xor_si256(c2[1683],c2[4117]); + d2[203]=simde_mm256_xor_si256(c2[1683],c2[4117]); //row: 30 - d2[210]=_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[1751],_mm256_xor_si256(c2[3603],c2[2371]))); + d2[210]=simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[1751],simde_mm256_xor_si256(c2[3603],c2[2371]))); //row: 31 - d2[217]=_mm256_xor_si256(c2[4340],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[2103],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[2118],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[1994],_mm256_xor_si256(c2[3953],_mm256_xor_si256(c2[4093],_mm256_xor_si256(c2[1726],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[1458],_mm256_xor_si256(c2[3140],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[2733],_mm256_xor_si256(c2[2592],_mm256_xor_si256(c2[2732],_mm256_xor_si256(c2[3165],_mm256_xor_si256(c2[1486],_mm256_xor_si256(c2[2606],_mm256_xor_si256(c2[2746],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[2918],_mm256_xor_si256(c2[2633],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[4471],_mm256_xor_si256(c2[3212],_mm256_xor_si256(c2[3908],c2[4048]))))))))))))))))))))))))))))))))))); + d2[217]=simde_mm256_xor_si256(c2[4340],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[2103],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[3656],simde_mm256_xor_si256(c2[2118],simde_mm256_xor_si256(c2[2258],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[1994],simde_mm256_xor_si256(c2[3953],simde_mm256_xor_si256(c2[4093],simde_mm256_xor_si256(c2[1726],simde_mm256_xor_si256(c2[2705],simde_mm256_xor_si256(c2[742],simde_mm256_xor_si256(c2[1458],simde_mm256_xor_si256(c2[3140],simde_mm256_xor_si256(c2[3702],simde_mm256_xor_si256(c2[3842],simde_mm256_xor_si256(c2[2733],simde_mm256_xor_si256(c2[2592],simde_mm256_xor_si256(c2[2732],simde_mm256_xor_si256(c2[3165],simde_mm256_xor_si256(c2[1486],simde_mm256_xor_si256(c2[2606],simde_mm256_xor_si256(c2[2746],simde_mm256_xor_si256(c2[4442],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[2918],simde_mm256_xor_si256(c2[2633],simde_mm256_xor_si256(c2[2635],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[4471],simde_mm256_xor_si256(c2[3212],simde_mm256_xor_si256(c2[3908],c2[4048]))))))))))))))))))))))))))))))))))); //row: 32 - d2[224]=_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[2971],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[1583],_mm256_xor_si256(c2[4106],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[2018],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[1471],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1610],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[1624],_mm256_xor_si256(c2[3180],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[1796],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[1653],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[1950],_mm256_xor_si256(c2[2090],c2[2926])))))))))))))))))))))))))))))))))))))))))); + d2[224]=simde_mm256_xor_si256(c2[3085],simde_mm256_xor_si256(c2[3225],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[1683],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[4080],simde_mm256_xor_si256(c2[2534],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[2971],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[1583],simde_mm256_xor_si256(c2[4106],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[2018],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1610],simde_mm256_xor_si256(c2[3010],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[1624],simde_mm256_xor_si256(c2[3180],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[4164],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[1796],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[1653],simde_mm256_xor_si256(c2[3209],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[1950],simde_mm256_xor_si256(c2[2090],c2[2926])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[231]=_mm256_xor_si256(c2[2945],_mm256_xor_si256(c2[285],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[2254],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[2691],_mm256_xor_si256(c2[1010],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[3826],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[2440],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3884],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1238],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[3069],_mm256_xor_si256(c2[1810],c2[2646])))))))))))))))))))))))))))); + d2[231]=simde_mm256_xor_si256(c2[2945],simde_mm256_xor_si256(c2[285],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[2254],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[2691],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[3826],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[2440],simde_mm256_xor_si256(c2[1331],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[3884],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[1238],simde_mm256_xor_si256(c2[1373],simde_mm256_xor_si256(c2[3069],simde_mm256_xor_si256(c2[1810],c2[2646])))))))))))))))))))))))))))); //row: 34 - d2[238]=_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[4340],_mm256_xor_si256(c2[3783],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[4206],_mm256_xor_si256(c2[4060],_mm256_xor_si256(c2[3236],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[2819],_mm256_xor_si256(c2[1837],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[4354],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[4090],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[1710],_mm256_xor_si256(c2[4246],_mm256_xor_si256(c2[4386],_mm256_xor_si256(c2[3822],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[2845],_mm256_xor_si256(c2[3978],_mm256_xor_si256(c2[4118],_mm256_xor_si256(c2[3561],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[1319],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[4006],_mm256_xor_si256(c2[4146],_mm256_xor_si256(c2[3589],_mm256_xor_si256(c2[927],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[2059],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[2763],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[952],_mm256_xor_si256(c2[1092],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[814],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[956],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2652],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[2229],_mm256_xor_si256(c2[1532],c2[1672])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[238]=simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[4200],simde_mm256_xor_si256(c2[4340],simde_mm256_xor_si256(c2[3783],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[4206],simde_mm256_xor_si256(c2[4060],simde_mm256_xor_si256(c2[3236],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[2819],simde_mm256_xor_si256(c2[1837],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[439],simde_mm256_xor_si256(c2[4214],simde_mm256_xor_si256(c2[4354],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[4090],simde_mm256_xor_si256(c2[2274],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[1710],simde_mm256_xor_si256(c2[4246],simde_mm256_xor_si256(c2[4386],simde_mm256_xor_si256(c2[3822],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[886],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[3402],simde_mm256_xor_si256(c2[2845],simde_mm256_xor_si256(c2[3978],simde_mm256_xor_si256(c2[4118],simde_mm256_xor_si256(c2[3561],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[2016],simde_mm256_xor_si256(c2[1319],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[1206],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[4006],simde_mm256_xor_si256(c2[4146],simde_mm256_xor_si256(c2[3589],simde_mm256_xor_si256(c2[927],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[2059],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[2763],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[952],simde_mm256_xor_si256(c2[1092],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[814],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[956],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[2652],simde_mm256_xor_si256(c2[2088],simde_mm256_xor_si256(c2[1246],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[2229],simde_mm256_xor_si256(c2[1532],c2[1672])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[245]=_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[2246],_mm256_xor_si256(c2[719],_mm256_xor_si256(c2[859],_mm256_xor_si256(c2[3799],_mm256_xor_si256(c2[2394],_mm256_xor_si256(c2[3796],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[4229],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[3276],_mm256_xor_si256(c2[3978],_mm256_xor_si256(c2[2876],_mm256_xor_si256(c2[2875],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3308],_mm256_xor_si256(c2[1629],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[99],_mm256_xor_si256(c2[943],_mm256_xor_si256(c2[3054],_mm256_xor_si256(c2[2776],_mm256_xor_si256(c2[2918],_mm256_xor_si256(c2[4467],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[3348],c2[4191])))))))))))))))))))))))))))))))))); + d2[245]=simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[1823],simde_mm256_xor_si256(c2[2246],simde_mm256_xor_si256(c2[719],simde_mm256_xor_si256(c2[859],simde_mm256_xor_si256(c2[3799],simde_mm256_xor_si256(c2[2394],simde_mm256_xor_si256(c2[3796],simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[4229],simde_mm256_xor_si256(c2[1722],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[3276],simde_mm256_xor_si256(c2[3978],simde_mm256_xor_si256(c2[2876],simde_mm256_xor_si256(c2[2875],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[3168],simde_mm256_xor_si256(c2[3308],simde_mm256_xor_si256(c2[1629],simde_mm256_xor_si256(c2[2889],simde_mm256_xor_si256(c2[99],simde_mm256_xor_si256(c2[943],simde_mm256_xor_si256(c2[3054],simde_mm256_xor_si256(c2[2776],simde_mm256_xor_si256(c2[2918],simde_mm256_xor_si256(c2[4467],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[3348],c2[4191])))))))))))))))))))))))))))))))))); //row: 36 - d2[252]=_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[2133],c2[2760])); + d2[252]=simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[2133],c2[2760])); //row: 37 - d2[259]=_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[2942],_mm256_xor_si256(c2[4062],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[3098],_mm256_xor_si256(c2[3797],_mm256_xor_si256(c2[1559],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[1989],_mm256_xor_si256(c2[2548],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[4108],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1307],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[3823],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[1036],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[2297],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[635],_mm256_xor_si256(c2[1194],_mm256_xor_si256(c2[1334],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[3868],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[649],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[3182],_mm256_xor_si256(c2[3741],_mm256_xor_si256(c2[3881],_mm256_xor_si256(c2[814],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[678],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[2367],_mm256_xor_si256(c2[3066],_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[1807],_mm256_xor_si256(c2[1951],_mm256_xor_si256(c2[2510],c2[2650]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[259]=simde_mm256_xor_si256(c2[2243],simde_mm256_xor_si256(c2[2942],simde_mm256_xor_si256(c2[4062],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[3098],simde_mm256_xor_si256(c2[3797],simde_mm256_xor_si256(c2[1559],simde_mm256_xor_si256(c2[2258],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[4369],simde_mm256_xor_si256(c2[589],simde_mm256_xor_si256(c2[1989],simde_mm256_xor_si256(c2[2548],simde_mm256_xor_si256(c2[2688],simde_mm256_xor_si256(c2[4108],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1307],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[3823],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[1036],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[2297],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[635],simde_mm256_xor_si256(c2[1194],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1767],simde_mm256_xor_si256(c2[3868],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[649],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[3182],simde_mm256_xor_si256(c2[3741],simde_mm256_xor_si256(c2[3881],simde_mm256_xor_si256(c2[814],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[678],simde_mm256_xor_si256(c2[1237],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[2367],simde_mm256_xor_si256(c2[3066],simde_mm256_xor_si256(c2[1108],simde_mm256_xor_si256(c2[1807],simde_mm256_xor_si256(c2[1951],simde_mm256_xor_si256(c2[2510],c2[2650]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[266]=_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[986],_mm256_xor_si256(c2[3938],_mm256_xor_si256(c2[4078],_mm256_xor_si256(c2[2539],_mm256_xor_si256(c2[1134],_mm256_xor_si256(c2[715],_mm256_xor_si256(c2[730],_mm256_xor_si256(c2[870],_mm256_xor_si256(c2[2969],_mm256_xor_si256(c2[462],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[2718],_mm256_xor_si256(c2[1616],_mm256_xor_si256(c2[1615],_mm256_xor_si256(c2[213],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[1629],_mm256_xor_si256(c2[3318],_mm256_xor_si256(c2[4162],_mm256_xor_si256(c2[1794],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[3347],_mm256_xor_si256(c2[2088],c2[2931])))))))))))))))))))))))))))))))))); + d2[266]=simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[3938],simde_mm256_xor_si256(c2[4078],simde_mm256_xor_si256(c2[2539],simde_mm256_xor_si256(c2[1134],simde_mm256_xor_si256(c2[715],simde_mm256_xor_si256(c2[730],simde_mm256_xor_si256(c2[870],simde_mm256_xor_si256(c2[2969],simde_mm256_xor_si256(c2[462],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[1588],simde_mm256_xor_si256(c2[4104],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[2016],simde_mm256_xor_si256(c2[2718],simde_mm256_xor_si256(c2[1616],simde_mm256_xor_si256(c2[1615],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[1908],simde_mm256_xor_si256(c2[2048],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[1629],simde_mm256_xor_si256(c2[3318],simde_mm256_xor_si256(c2[4162],simde_mm256_xor_si256(c2[1794],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[3207],simde_mm256_xor_si256(c2[3347],simde_mm256_xor_si256(c2[2088],c2[2931])))))))))))))))))))))))))))))))))); //row: 39 - d2[273]=_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[2106],_mm256_xor_si256(c2[2246],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[1135],_mm256_xor_si256(c2[1275],_mm256_xor_si256(c2[4215],_mm256_xor_si256(c2[2817],_mm256_xor_si256(c2[2413],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[2145],_mm256_xor_si256(c2[2285],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[1308],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[3292],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[3584],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[2045],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[1359],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[3477],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[3334],_mm256_xor_si256(c2[411],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[3631],_mm256_xor_si256(c2[3771],c2[128])))))))))))))))))))))))))))))))))))))))))); + d2[273]=simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[2106],simde_mm256_xor_si256(c2[2246],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[1403],simde_mm256_xor_si256(c2[1135],simde_mm256_xor_si256(c2[1275],simde_mm256_xor_si256(c2[4215],simde_mm256_xor_si256(c2[2817],simde_mm256_xor_si256(c2[2413],simde_mm256_xor_si256(c2[2553],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[2145],simde_mm256_xor_si256(c2[2285],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[3264],simde_mm256_xor_si256(c2[1308],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[3292],simde_mm256_xor_si256(c2[3291],simde_mm256_xor_si256(c2[3584],simde_mm256_xor_si256(c2[3724],simde_mm256_xor_si256(c2[1905],simde_mm256_xor_si256(c2[2045],simde_mm256_xor_si256(c2[3305],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[1359],simde_mm256_xor_si256(c2[3043],simde_mm256_xor_si256(c2[3337],simde_mm256_xor_si256(c2[3477],simde_mm256_xor_si256(c2[3192],simde_mm256_xor_si256(c2[3334],simde_mm256_xor_si256(c2[411],simde_mm256_xor_si256(c2[551],simde_mm256_xor_si256(c2[3631],simde_mm256_xor_si256(c2[3771],c2[128])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[280]=_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[3642],_mm256_xor_si256(c2[3785],_mm256_xor_si256(c2[4065],_mm256_xor_si256(c2[2398],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[859],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[4220],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[3949],_mm256_xor_si256(c2[1289],_mm256_xor_si256(c2[1429],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[3688],_mm256_xor_si256(c2[4387],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[2424],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[3140],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[1038],_mm256_xor_si256(c2[1178],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[4415],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[75],_mm256_xor_si256(c2[215],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3448],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[1918],_mm256_xor_si256(c2[2482],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[394],_mm256_xor_si256(c2[4315],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[4457],_mm256_xor_si256(c2[118],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[1947],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[1251],_mm256_xor_si256(c2[1391],c2[1531])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[280]=simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[1823],simde_mm256_xor_si256(c2[3362],simde_mm256_xor_si256(c2[3642],simde_mm256_xor_si256(c2[3785],simde_mm256_xor_si256(c2[4065],simde_mm256_xor_si256(c2[2398],simde_mm256_xor_si256(c2[2678],simde_mm256_xor_si256(c2[859],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[4080],simde_mm256_xor_si256(c2[4220],simde_mm256_xor_si256(c2[3669],simde_mm256_xor_si256(c2[3949],simde_mm256_xor_si256(c2[1289],simde_mm256_xor_si256(c2[1429],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[311],simde_mm256_xor_si256(c2[3408],simde_mm256_xor_si256(c2[3688],simde_mm256_xor_si256(c2[4387],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[2424],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[3140],simde_mm256_xor_si256(c2[3420],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[1038],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[1318],simde_mm256_xor_si256(c2[4415],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[4414],simde_mm256_xor_si256(c2[75],simde_mm256_xor_si256(c2[215],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[3168],simde_mm256_xor_si256(c2[3448],simde_mm256_xor_si256(c2[4428],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1918],simde_mm256_xor_si256(c2[2482],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[394],simde_mm256_xor_si256(c2[4315],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[4457],simde_mm256_xor_si256(c2[118],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[1667],simde_mm256_xor_si256(c2[1947],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[1251],simde_mm256_xor_si256(c2[1391],c2[1531])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[287]=_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[3644],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[3377],_mm256_xor_si256(c2[1151],_mm256_xor_si256(c2[1291],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[883],_mm256_xor_si256(c2[1023],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[3139],_mm256_xor_si256(c2[2030],_mm256_xor_si256(c2[2036],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[2329],_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[3739],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[1937],_mm256_xor_si256(c2[2072],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[3768],_mm256_xor_si256(c2[2509],c2[3352])))))))))))))))))))))))))))))))))); + d2[287]=simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[3644],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[3377],simde_mm256_xor_si256(c2[1151],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[883],simde_mm256_xor_si256(c2[1023],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[3139],simde_mm256_xor_si256(c2[2030],simde_mm256_xor_si256(c2[2036],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[2329],simde_mm256_xor_si256(c2[2469],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[2050],simde_mm256_xor_si256(c2[3739],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[2072],simde_mm256_xor_si256(c2[3628],simde_mm256_xor_si256(c2[3768],simde_mm256_xor_si256(c2[2509],c2[3352])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc256_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc256_byte.c index 429a91ea16..cd86a0ca22 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc256_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc256_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc256_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[2739],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1798],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[4551],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4563],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[263],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[4436],_mm256_xor_si256(c2[3473],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[4471],c2[5107])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1798],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[4551],simde_mm256_xor_si256(c2[3105],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[4563],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[263],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[4436],simde_mm256_xor_si256(c2[3473],simde_mm256_xor_si256(c2[5094],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[2070],simde_mm256_xor_si256(c2[4471],c2[5107])))))))))))))))))))))))))); //row: 1 - d2[8]=_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[3379],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[2739],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1958],_mm256_xor_si256(c2[1798],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[4208],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[4551],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4563],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[4741],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[263],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[4436],_mm256_xor_si256(c2[3473],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[2230],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[4471],c2[5107])))))))))))))))))))))))))))))))); + d2[8]=simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[3379],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1958],simde_mm256_xor_si256(c2[1798],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[4208],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[4551],simde_mm256_xor_si256(c2[3105],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[4563],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[4741],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[263],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[4436],simde_mm256_xor_si256(c2[3473],simde_mm256_xor_si256(c2[5094],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[2230],simde_mm256_xor_si256(c2[2070],simde_mm256_xor_si256(c2[4471],c2[5107])))))))))))))))))))))))))))))))); //row: 2 - d2[16]=_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[3379],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[2739],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1958],_mm256_xor_si256(c2[1798],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[4208],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[4711],_mm256_xor_si256(c2[4551],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[4563],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[4741],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[263],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[4596],_mm256_xor_si256(c2[4436],_mm256_xor_si256(c2[3473],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[2230],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[4631],_mm256_xor_si256(c2[4471],c2[5107])))))))))))))))))))))))))))))))))))))))); + d2[16]=simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[3379],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1958],simde_mm256_xor_si256(c2[1798],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[4208],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[4711],simde_mm256_xor_si256(c2[4551],simde_mm256_xor_si256(c2[3105],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[4563],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[4741],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[263],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[4596],simde_mm256_xor_si256(c2[4436],simde_mm256_xor_si256(c2[3473],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[5094],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[2230],simde_mm256_xor_si256(c2[2070],simde_mm256_xor_si256(c2[4631],simde_mm256_xor_si256(c2[4471],c2[5107])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[24]=_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[2739],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1798],_mm256_xor_si256(c2[4193],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[4551],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4563],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[263],_mm256_xor_si256(c2[2822],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[4436],_mm256_xor_si256(c2[3633],_mm256_xor_si256(c2[3473],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[3008],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[4471],_mm256_xor_si256(c2[148],c2[5107])))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1798],simde_mm256_xor_si256(c2[4193],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[1809],simde_mm256_xor_si256(c2[4551],simde_mm256_xor_si256(c2[3105],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[4563],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[263],simde_mm256_xor_si256(c2[2822],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[4436],simde_mm256_xor_si256(c2[3633],simde_mm256_xor_si256(c2[3473],simde_mm256_xor_si256(c2[5094],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[3008],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[2070],simde_mm256_xor_si256(c2[4471],simde_mm256_xor_si256(c2[148],c2[5107])))))))))))))))))))))))))))))))))); //row: 4 - d2[32]=_mm256_xor_si256(c2[2562],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2087],_mm256_xor_si256(c2[3684],_mm256_xor_si256(c2[3045],_mm256_xor_si256(c2[4501],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[3861],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[2912],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[51],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[4227],_mm256_xor_si256(c2[711],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[2325],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[3776],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[4595],_mm256_xor_si256(c2[1089],_mm256_xor_si256(c2[3649],_mm256_xor_si256(c2[3970],_mm256_xor_si256(c2[3344],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[466],c2[1110])))))))))))))))))))))))))))))))))); + d2[32]=simde_mm256_xor_si256(c2[2562],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2087],simde_mm256_xor_si256(c2[3684],simde_mm256_xor_si256(c2[3045],simde_mm256_xor_si256(c2[4501],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[3861],simde_mm256_xor_si256(c2[2258],simde_mm256_xor_si256(c2[3542],simde_mm256_xor_si256(c2[3072],simde_mm256_xor_si256(c2[2912],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[51],simde_mm256_xor_si256(c2[1975],simde_mm256_xor_si256(c2[2931],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[4227],simde_mm256_xor_si256(c2[711],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[2325],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[3776],simde_mm256_xor_si256(c2[439],simde_mm256_xor_si256(c2[4595],simde_mm256_xor_si256(c2[1089],simde_mm256_xor_si256(c2[3649],simde_mm256_xor_si256(c2[3970],simde_mm256_xor_si256(c2[3344],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[466],c2[1110])))))))))))))))))))))))))))))))))); //row: 5 - d2[40]=_mm256_xor_si256(c2[2563],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[3685],_mm256_xor_si256(c2[1127],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[3862],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[3073],_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[4228],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[567],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[406],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[3777],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[4596],_mm256_xor_si256(c2[5076],_mm256_xor_si256(c2[1090],_mm256_xor_si256(c2[3650],_mm256_xor_si256(c2[3971],_mm256_xor_si256(c2[3345],_mm256_xor_si256(c2[3185],_mm256_xor_si256(c2[467],c2[1111])))))))))))))))))))))))))))))))))))); + d2[40]=simde_mm256_xor_si256(c2[2563],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[2080],simde_mm256_xor_si256(c2[3685],simde_mm256_xor_si256(c2[1127],simde_mm256_xor_si256(c2[4502],simde_mm256_xor_si256(c2[4342],simde_mm256_xor_si256(c2[3862],simde_mm256_xor_si256(c2[2259],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[3073],simde_mm256_xor_si256(c2[2913],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[1968],simde_mm256_xor_si256(c2[2932],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[4228],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[567],simde_mm256_xor_si256(c2[2326],simde_mm256_xor_si256(c2[406],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[1378],simde_mm256_xor_si256(c2[3777],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[4596],simde_mm256_xor_si256(c2[5076],simde_mm256_xor_si256(c2[1090],simde_mm256_xor_si256(c2[3650],simde_mm256_xor_si256(c2[3971],simde_mm256_xor_si256(c2[3345],simde_mm256_xor_si256(c2[3185],simde_mm256_xor_si256(c2[467],c2[1111])))))))))))))))))))))))))))))))))))); //row: 6 - d2[48]=_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4324],_mm256_xor_si256(c2[3056],_mm256_xor_si256(c2[2896],_mm256_xor_si256(c2[2416],_mm256_xor_si256(c2[821],_mm256_xor_si256(c2[1635],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[3718],_mm256_xor_si256(c2[3893],_mm256_xor_si256(c2[3733],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[4228],_mm256_xor_si256(c2[2790],_mm256_xor_si256(c2[4385],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[4418],_mm256_xor_si256(c2[4258],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[2339],_mm256_xor_si256(c2[4113],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[4771],_mm256_xor_si256(c2[2212],_mm256_xor_si256(c2[2533],_mm256_xor_si256(c2[1907],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[4148],_mm256_xor_si256(c2[4784],c2[4624])))))))))))))))))))))))))))))))))))); + d2[48]=simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[2247],simde_mm256_xor_si256(c2[4324],simde_mm256_xor_si256(c2[3056],simde_mm256_xor_si256(c2[2896],simde_mm256_xor_si256(c2[2416],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[1635],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[3718],simde_mm256_xor_si256(c2[3893],simde_mm256_xor_si256(c2[3733],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[1494],simde_mm256_xor_si256(c2[4228],simde_mm256_xor_si256(c2[2790],simde_mm256_xor_si256(c2[4385],simde_mm256_xor_si256(c2[4240],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[727],simde_mm256_xor_si256(c2[4418],simde_mm256_xor_si256(c2[4258],simde_mm256_xor_si256(c2[5059],simde_mm256_xor_si256(c2[2339],simde_mm256_xor_si256(c2[4113],simde_mm256_xor_si256(c2[3158],simde_mm256_xor_si256(c2[2193],simde_mm256_xor_si256(c2[4771],simde_mm256_xor_si256(c2[2212],simde_mm256_xor_si256(c2[2533],simde_mm256_xor_si256(c2[1907],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[4148],simde_mm256_xor_si256(c2[4784],c2[4624])))))))))))))))))))))))))))))))))))); //row: 7 - d2[56]=_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[4483],_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[646],_mm256_xor_si256(c2[3859],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[823],_mm256_xor_si256(c2[4499],_mm256_xor_si256(c2[1616],_mm256_xor_si256(c2[4339],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[2438],_mm256_xor_si256(c2[2278],_mm256_xor_si256(c2[4993],_mm256_xor_si256(c2[2277],_mm256_xor_si256(c2[4513],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[4528],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[5012],_mm256_xor_si256(c2[5031],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[3585],_mm256_xor_si256(c2[1189],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[4566],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[5061],_mm256_xor_si256(c2[2657],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[898],_mm256_xor_si256(c2[3142],_mm256_xor_si256(c2[738],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[1717],_mm256_xor_si256(c2[3953],_mm256_xor_si256(c2[1557],_mm256_xor_si256(c2[2036],_mm256_xor_si256(c2[455],_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[3015],_mm256_xor_si256(c2[611],_mm256_xor_si256(c2[1092],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[932],_mm256_xor_si256(c2[2710],_mm256_xor_si256(c2[2550],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[2547],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[468],c2[3191])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[56]=simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[4483],simde_mm256_xor_si256(c2[1445],simde_mm256_xor_si256(c2[4160],simde_mm256_xor_si256(c2[3042],simde_mm256_xor_si256(c2[646],simde_mm256_xor_si256(c2[3859],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[823],simde_mm256_xor_si256(c2[4499],simde_mm256_xor_si256(c2[1616],simde_mm256_xor_si256(c2[4339],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[2438],simde_mm256_xor_si256(c2[2278],simde_mm256_xor_si256(c2[4993],simde_mm256_xor_si256(c2[2277],simde_mm256_xor_si256(c2[4513],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[4528],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[4048],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[5012],simde_mm256_xor_si256(c2[5031],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[3585],simde_mm256_xor_si256(c2[1189],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[2647],simde_mm256_xor_si256(c2[4566],simde_mm256_xor_si256(c2[1683],simde_mm256_xor_si256(c2[4406],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[2657],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[898],simde_mm256_xor_si256(c2[3142],simde_mm256_xor_si256(c2[738],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[2512],simde_mm256_xor_si256(c2[1717],simde_mm256_xor_si256(c2[3953],simde_mm256_xor_si256(c2[1557],simde_mm256_xor_si256(c2[2036],simde_mm256_xor_si256(c2[455],simde_mm256_xor_si256(c2[3170],simde_mm256_xor_si256(c2[3015],simde_mm256_xor_si256(c2[611],simde_mm256_xor_si256(c2[1092],simde_mm256_xor_si256(c2[3328],simde_mm256_xor_si256(c2[932],simde_mm256_xor_si256(c2[2710],simde_mm256_xor_si256(c2[2550],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[4951],simde_mm256_xor_si256(c2[2547],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[468],c2[3191])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[64]=_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[3521],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[2103],_mm256_xor_si256(c2[4818],_mm256_xor_si256(c2[2917],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[4992],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[1972],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[2768],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[391],_mm256_xor_si256(c2[4064],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[2162],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[1382],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[4432],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[934],_mm256_xor_si256(c2[3494],_mm256_xor_si256(c2[3815],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[311],c2[947])))))))))))))))))))))))))))))))))))))))))); + d2[64]=simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[2247],simde_mm256_xor_si256(c2[2084],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[3521],simde_mm256_xor_si256(c2[2244],simde_mm256_xor_si256(c2[4338],simde_mm256_xor_si256(c2[4178],simde_mm256_xor_si256(c2[3698],simde_mm256_xor_si256(c2[2103],simde_mm256_xor_si256(c2[4818],simde_mm256_xor_si256(c2[2917],simde_mm256_xor_si256(c2[2757],simde_mm256_xor_si256(c2[4992],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[5015],simde_mm256_xor_si256(c2[1972],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[2768],simde_mm256_xor_si256(c2[551],simde_mm256_xor_si256(c2[391],simde_mm256_xor_si256(c2[4064],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[2162],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[1222],simde_mm256_xor_si256(c2[3621],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[4432],simde_mm256_xor_si256(c2[1094],simde_mm256_xor_si256(c2[934],simde_mm256_xor_si256(c2[3494],simde_mm256_xor_si256(c2[3815],simde_mm256_xor_si256(c2[3189],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[471],simde_mm256_xor_si256(c2[311],c2[947])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[72]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[4967],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[4644],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[1939],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[1779],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[658],_mm256_xor_si256(c2[4823],_mm256_xor_si256(c2[1782],_mm256_xor_si256(c2[518],_mm256_xor_si256(c2[1312],_mm256_xor_si256(c2[358],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[2593],_mm256_xor_si256(c2[2768],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[2608],_mm256_xor_si256(c2[375],_mm256_xor_si256(c2[4532],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[4065],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[1665],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[4085],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[4882],_mm256_xor_si256(c2[3301],_mm256_xor_si256(c2[4103],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[3958],_mm256_xor_si256(c2[2996],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[2370],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[2214],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[4629],c2[3667]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[72]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[802],simde_mm256_xor_si256(c2[4967],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[4644],simde_mm256_xor_si256(c2[2084],simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[1939],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[1779],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[1299],simde_mm256_xor_si256(c2[658],simde_mm256_xor_si256(c2[4823],simde_mm256_xor_si256(c2[1782],simde_mm256_xor_si256(c2[518],simde_mm256_xor_si256(c2[1312],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[3555],simde_mm256_xor_si256(c2[2593],simde_mm256_xor_si256(c2[2768],simde_mm256_xor_si256(c2[3570],simde_mm256_xor_si256(c2[2608],simde_mm256_xor_si256(c2[375],simde_mm256_xor_si256(c2[4532],simde_mm256_xor_si256(c2[1331],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[4065],simde_mm256_xor_si256(c2[3111],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[1665],simde_mm256_xor_si256(c2[4230],simde_mm256_xor_si256(c2[3268],simde_mm256_xor_si256(c2[4085],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[4882],simde_mm256_xor_si256(c2[3301],simde_mm256_xor_si256(c2[4103],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[4896],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[2176],simde_mm256_xor_si256(c2[1222],simde_mm256_xor_si256(c2[3958],simde_mm256_xor_si256(c2[2996],simde_mm256_xor_si256(c2[2995],simde_mm256_xor_si256(c2[2033],simde_mm256_xor_si256(c2[4608],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[2049],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[2370],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[2214],simde_mm256_xor_si256(c2[790],simde_mm256_xor_si256(c2[1584],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[3031],simde_mm256_xor_si256(c2[4629],c2[3667]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[80]=_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[4021],_mm256_xor_si256(c2[96],c2[3475]))); + d2[80]=simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[4021],simde_mm256_xor_si256(c2[96],c2[3475]))); //row: 11 - d2[88]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[4806],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[1941],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[4977],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[2770],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[531],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[1827],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[3430],_mm256_xor_si256(c2[3285],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[3303],_mm256_xor_si256(c2[4096],_mm256_xor_si256(c2[1536],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[2039],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[3185],_mm256_xor_si256(c2[3989],_mm256_xor_si256(c2[3829],c2[3030]))))))))))))))))))))))))))))))))))))); + d2[88]=simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[4806],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1941],simde_mm256_xor_si256(c2[1461],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[4977],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[2915],simde_mm256_xor_si256(c2[2755],simde_mm256_xor_si256(c2[2770],simde_mm256_xor_si256(c2[4694],simde_mm256_xor_si256(c2[531],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[1827],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[3430],simde_mm256_xor_si256(c2[3285],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[5044],simde_mm256_xor_si256(c2[3303],simde_mm256_xor_si256(c2[4096],simde_mm256_xor_si256(c2[1536],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[3158],simde_mm256_xor_si256(c2[2355],simde_mm256_xor_si256(c2[2195],simde_mm256_xor_si256(c2[2039],simde_mm256_xor_si256(c2[3808],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[3185],simde_mm256_xor_si256(c2[3989],simde_mm256_xor_si256(c2[3829],c2[3030]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[96]=_mm256_xor_si256(c2[3680],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[4979],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[4977],_mm256_xor_si256(c2[4198],_mm256_xor_si256(c2[4038],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[1329],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[3093],_mm256_xor_si256(c2[4049],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[1684],_mm256_xor_si256(c2[3443],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[1702],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[1557],_mm256_xor_si256(c2[594],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[4775],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[4310],_mm256_xor_si256(c2[1584],c2[2228])))))))))))))))))))))))))))))))))); + d2[96]=simde_mm256_xor_si256(c2[3680],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[3205],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[4979],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[4977],simde_mm256_xor_si256(c2[4198],simde_mm256_xor_si256(c2[4038],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[1329],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[3093],simde_mm256_xor_si256(c2[4049],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[1684],simde_mm256_xor_si256(c2[3443],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[1702],simde_mm256_xor_si256(c2[2503],simde_mm256_xor_si256(c2[4902],simde_mm256_xor_si256(c2[1557],simde_mm256_xor_si256(c2[594],simde_mm256_xor_si256(c2[2215],simde_mm256_xor_si256(c2[4775],simde_mm256_xor_si256(c2[5088],simde_mm256_xor_si256(c2[4470],simde_mm256_xor_si256(c2[4310],simde_mm256_xor_si256(c2[1584],c2[2228])))))))))))))))))))))))))))))))))); //row: 13 - d2[104]=_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[2241],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[983],_mm256_xor_si256(c2[823],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[1477],_mm256_xor_si256(c2[3872],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[3735],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4547],_mm256_xor_si256(c2[4387],_mm256_xor_si256(c2[4242],_mm256_xor_si256(c2[1042],_mm256_xor_si256(c2[882],_mm256_xor_si256(c2[4260],_mm256_xor_si256(c2[5061],_mm256_xor_si256(c2[2501],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[4115],_mm256_xor_si256(c2[3312],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[4773],_mm256_xor_si256(c2[2214],_mm256_xor_si256(c2[2695],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[1089],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[4150],_mm256_xor_si256(c2[4946],c2[4786]))))))))))))))))))))))))))))))))))))); + d2[104]=simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[2241],simde_mm256_xor_si256(c2[3042],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[2418],simde_mm256_xor_si256(c2[983],simde_mm256_xor_si256(c2[823],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[3872],simde_mm256_xor_si256(c2[3712],simde_mm256_xor_si256(c2[3735],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[1488],simde_mm256_xor_si256(c2[4230],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[4547],simde_mm256_xor_si256(c2[4387],simde_mm256_xor_si256(c2[4242],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[882],simde_mm256_xor_si256(c2[4260],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[2501],simde_mm256_xor_si256(c2[2341],simde_mm256_xor_si256(c2[4115],simde_mm256_xor_si256(c2[3312],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[4773],simde_mm256_xor_si256(c2[2214],simde_mm256_xor_si256(c2[2695],simde_mm256_xor_si256(c2[2535],simde_mm256_xor_si256(c2[1089],simde_mm256_xor_si256(c2[1749],simde_mm256_xor_si256(c2[4150],simde_mm256_xor_si256(c2[4946],c2[4786]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[112]=_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[3859],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[4018],_mm256_xor_si256(c2[2583],_mm256_xor_si256(c2[1616],_mm256_xor_si256(c2[2423],_mm256_xor_si256(c2[3059],_mm256_xor_si256(c2[2438],_mm256_xor_si256(c2[2278],_mm256_xor_si256(c2[3077],_mm256_xor_si256(c2[353],_mm256_xor_si256(c2[4513],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[4528],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[5031],_mm256_xor_si256(c2[711],_mm256_xor_si256(c2[3585],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[1028],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[2482],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[5061],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[1542],_mm256_xor_si256(c2[4101],_mm256_xor_si256(c2[3142],_mm256_xor_si256(c2[3941],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[4912],_mm256_xor_si256(c2[3953],_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[455],_mm256_xor_si256(c2[1254],_mm256_xor_si256(c2[3015],_mm256_xor_si256(c2[3814],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[4135],_mm256_xor_si256(c2[2710],_mm256_xor_si256(c2[2550],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[468],c2[1267]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[112]=simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[2567],simde_mm256_xor_si256(c2[1445],simde_mm256_xor_si256(c2[2244],simde_mm256_xor_si256(c2[3042],simde_mm256_xor_si256(c2[3841],simde_mm256_xor_si256(c2[3859],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[4018],simde_mm256_xor_si256(c2[2583],simde_mm256_xor_si256(c2[1616],simde_mm256_xor_si256(c2[2423],simde_mm256_xor_si256(c2[3059],simde_mm256_xor_si256(c2[2438],simde_mm256_xor_si256(c2[2278],simde_mm256_xor_si256(c2[3077],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[4513],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[4528],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[2289],simde_mm256_xor_si256(c2[3088],simde_mm256_xor_si256(c2[5031],simde_mm256_xor_si256(c2[711],simde_mm256_xor_si256(c2[3585],simde_mm256_xor_si256(c2[4384],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[723],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[1683],simde_mm256_xor_si256(c2[2482],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[4101],simde_mm256_xor_si256(c2[3142],simde_mm256_xor_si256(c2[3941],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[4912],simde_mm256_xor_si256(c2[3953],simde_mm256_xor_si256(c2[4752],simde_mm256_xor_si256(c2[455],simde_mm256_xor_si256(c2[1254],simde_mm256_xor_si256(c2[3015],simde_mm256_xor_si256(c2[3814],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[3328],simde_mm256_xor_si256(c2[4135],simde_mm256_xor_si256(c2[2710],simde_mm256_xor_si256(c2[2550],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[4951],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[1427],simde_mm256_xor_si256(c2[468],c2[1267]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[120]=_mm256_xor_si256(c2[4806],_mm256_xor_si256(c2[3685],_mm256_xor_si256(c2[4646],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[4323],_mm256_xor_si256(c2[4967],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[1618],_mm256_xor_si256(c2[497],_mm256_xor_si256(c2[1458],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[3541],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[4195],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[1319],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[2455],_mm256_xor_si256(c2[1334],_mm256_xor_si256(c2[2295],_mm256_xor_si256(c2[3250],_mm256_xor_si256(c2[4211],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[2790],_mm256_xor_si256(c2[391],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[1986],_mm256_xor_si256(c2[2947],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[2802],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[1859],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[2660],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[759],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[2372],_mm256_xor_si256(c2[3333],_mm256_xor_si256(c2[4932],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[4467],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[2710],_mm256_xor_si256(c2[2385],c2[3346])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[120]=simde_mm256_xor_si256(c2[4806],simde_mm256_xor_si256(c2[3685],simde_mm256_xor_si256(c2[4646],simde_mm256_xor_si256(c2[3362],simde_mm256_xor_si256(c2[4323],simde_mm256_xor_si256(c2[4967],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[1618],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[1458],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[3541],simde_mm256_xor_si256(c2[4502],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[4195],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1319],simde_mm256_xor_si256(c2[2272],simde_mm256_xor_si256(c2[2455],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[2295],simde_mm256_xor_si256(c2[3250],simde_mm256_xor_si256(c2[4211],simde_mm256_xor_si256(c2[4214],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[2790],simde_mm256_xor_si256(c2[391],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[1986],simde_mm256_xor_si256(c2[2947],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[2802],simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[1859],simde_mm256_xor_si256(c2[2820],simde_mm256_xor_si256(c2[2660],simde_mm256_xor_si256(c2[3621],simde_mm256_xor_si256(c2[5059],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[2675],simde_mm256_xor_si256(c2[759],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[2372],simde_mm256_xor_si256(c2[3333],simde_mm256_xor_si256(c2[4932],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[1095],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[4467],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[1749],simde_mm256_xor_si256(c2[2710],simde_mm256_xor_si256(c2[2385],c2[3346])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[128]=_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[4167],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[3844],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[4659],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[4499],_mm256_xor_si256(c2[979],_mm256_xor_si256(c2[4019],_mm256_xor_si256(c2[499],_mm256_xor_si256(c2[2416],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[1782],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[4837],_mm256_xor_si256(c2[3078],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[1793],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[1808],_mm256_xor_si256(c2[3892],_mm256_xor_si256(c2[2133],_mm256_xor_si256(c2[3732],_mm256_xor_si256(c2[3089],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[4385],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[2468],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[4082],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[2501],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[3142],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[2196],_mm256_xor_si256(c2[4753],_mm256_xor_si256(c2[1233],_mm256_xor_si256(c2[3014],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[2854],_mm256_xor_si256(c2[3815],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[4128],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[3510],_mm256_xor_si256(c2[5109],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[4949],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[624],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[2867],c2[2388]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[128]=simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[4327],simde_mm256_xor_si256(c2[2560],simde_mm256_xor_si256(c2[4167],simde_mm256_xor_si256(c2[4004],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[3844],simde_mm256_xor_si256(c2[3842],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[4659],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[4499],simde_mm256_xor_si256(c2[979],simde_mm256_xor_si256(c2[4019],simde_mm256_xor_si256(c2[499],simde_mm256_xor_si256(c2[2416],simde_mm256_xor_si256(c2[4023],simde_mm256_xor_si256(c2[1782],simde_mm256_xor_si256(c2[3238],simde_mm256_xor_si256(c2[4837],simde_mm256_xor_si256(c2[3078],simde_mm256_xor_si256(c2[4677],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[1793],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[1968],simde_mm256_xor_si256(c2[209],simde_mm256_xor_si256(c2[1808],simde_mm256_xor_si256(c2[3892],simde_mm256_xor_si256(c2[2133],simde_mm256_xor_si256(c2[3732],simde_mm256_xor_si256(c2[3089],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[4385],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[2468],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[2323],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[4082],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[2501],simde_mm256_xor_si256(c2[742],simde_mm256_xor_si256(c2[2341],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[3142],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[422],simde_mm256_xor_si256(c2[2356],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[2196],simde_mm256_xor_si256(c2[4753],simde_mm256_xor_si256(c2[1233],simde_mm256_xor_si256(c2[3014],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[2854],simde_mm256_xor_si256(c2[3815],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[4128],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[3510],simde_mm256_xor_si256(c2[5109],simde_mm256_xor_si256(c2[3350],simde_mm256_xor_si256(c2[4949],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[1268],simde_mm256_xor_si256(c2[2867],c2[2388]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[136]=_mm256_xor_si256(c2[4323],_mm256_xor_si256(c2[1442],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1127],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[3381],_mm256_xor_si256(c2[983],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[503],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[4019],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[4823],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[4673],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[1797],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[1972],_mm256_xor_si256(c2[4210],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[4050],_mm256_xor_si256(c2[1015],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[855],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[1811],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[2307],_mm256_xor_si256(c2[4545],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[3107],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[4710],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[2327],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[4086],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[4563],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[4743],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[4583],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[3138],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[418],_mm256_xor_si256(c2[2656],_mm256_xor_si256(c2[4598],_mm256_xor_si256(c2[2192],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[3475],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[2529],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[4945],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[2227],_mm256_xor_si256(c2[4465],_mm256_xor_si256(c2[2871],c2[5109]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[136]=simde_mm256_xor_si256(c2[4323],simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[4163],simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1127],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[3381],simde_mm256_xor_si256(c2[983],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[503],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[4019],simde_mm256_xor_si256(c2[1138],simde_mm256_xor_si256(c2[4823],simde_mm256_xor_si256(c2[4833],simde_mm256_xor_si256(c2[1952],simde_mm256_xor_si256(c2[4673],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[1797],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[1972],simde_mm256_xor_si256(c2[4210],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[4050],simde_mm256_xor_si256(c2[1015],simde_mm256_xor_si256(c2[3728],simde_mm256_xor_si256(c2[855],simde_mm256_xor_si256(c2[4692],simde_mm256_xor_si256(c2[1811],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[2307],simde_mm256_xor_si256(c2[4545],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[3107],simde_mm256_xor_si256(c2[2464],simde_mm256_xor_si256(c2[4710],simde_mm256_xor_si256(c2[4725],simde_mm256_xor_si256(c2[2327],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[4086],simde_mm256_xor_si256(c2[1205],simde_mm256_xor_si256(c2[4563],simde_mm256_xor_si256(c2[2497],simde_mm256_xor_si256(c2[4743],simde_mm256_xor_si256(c2[2337],simde_mm256_xor_si256(c2[4583],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[3138],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[418],simde_mm256_xor_si256(c2[2656],simde_mm256_xor_si256(c2[4598],simde_mm256_xor_si256(c2[2192],simde_mm256_xor_si256(c2[4438],simde_mm256_xor_si256(c2[1237],simde_mm256_xor_si256(c2[3475],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[2850],simde_mm256_xor_si256(c2[5088],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[2529],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[2850],simde_mm256_xor_si256(c2[5105],simde_mm256_xor_si256(c2[2224],simde_mm256_xor_si256(c2[4945],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[4625],simde_mm256_xor_si256(c2[2227],simde_mm256_xor_si256(c2[4465],simde_mm256_xor_si256(c2[2871],c2[5109]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[144]=_mm256_xor_si256(c2[4486],_mm256_xor_si256(c2[422],c2[2993])); + d2[144]=simde_mm256_xor_si256(c2[4486],simde_mm256_xor_si256(c2[422],c2[2993])); //row: 19 - d2[152]=_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[4962],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[3682],_mm256_xor_si256(c2[2097],_mm256_xor_si256(c2[1617],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[3216],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[2934],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[695],_mm256_xor_si256(c2[3429],_mm256_xor_si256(c2[1991],_mm256_xor_si256(c2[3586],_mm256_xor_si256(c2[3441],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[3459],_mm256_xor_si256(c2[4260],_mm256_xor_si256(c2[1540],_mm256_xor_si256(c2[3314],_mm256_xor_si256(c2[2359],_mm256_xor_si256(c2[3972],_mm256_xor_si256(c2[1413],_mm256_xor_si256(c2[1734],_mm256_xor_si256(c2[948],_mm256_xor_si256(c2[3349],c2[3985])))))))))))))))))))))))))))); + d2[152]=simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[4962],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[3682],simde_mm256_xor_si256(c2[2097],simde_mm256_xor_si256(c2[1617],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[3216],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[2919],simde_mm256_xor_si256(c2[2934],simde_mm256_xor_si256(c2[4850],simde_mm256_xor_si256(c2[695],simde_mm256_xor_si256(c2[3429],simde_mm256_xor_si256(c2[1991],simde_mm256_xor_si256(c2[3586],simde_mm256_xor_si256(c2[3441],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[3459],simde_mm256_xor_si256(c2[4260],simde_mm256_xor_si256(c2[1540],simde_mm256_xor_si256(c2[3314],simde_mm256_xor_si256(c2[2359],simde_mm256_xor_si256(c2[3972],simde_mm256_xor_si256(c2[1413],simde_mm256_xor_si256(c2[1734],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[3349],c2[3985])))))))))))))))))))))))))))); //row: 20 - d2[160]=_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[486],_mm256_xor_si256(c2[2083],_mm256_xor_si256(c2[2900],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[2260],_mm256_xor_si256(c2[657],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[1479],_mm256_xor_si256(c2[1319],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[3729],_mm256_xor_si256(c2[3569],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[4064],_mm256_xor_si256(c2[2626],_mm256_xor_si256(c2[4229],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[4084],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[4262],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[2183],_mm256_xor_si256(c2[3957],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[4615],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[1751],_mm256_xor_si256(c2[1591],_mm256_xor_si256(c2[3984],c2[4628])))))))))))))))))))))))))))))))))); + d2[160]=simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[486],simde_mm256_xor_si256(c2[2083],simde_mm256_xor_si256(c2[2900],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[2260],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[4176],simde_mm256_xor_si256(c2[1479],simde_mm256_xor_si256(c2[1319],simde_mm256_xor_si256(c2[3554],simde_mm256_xor_si256(c2[3729],simde_mm256_xor_si256(c2[3569],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[1330],simde_mm256_xor_si256(c2[4064],simde_mm256_xor_si256(c2[2626],simde_mm256_xor_si256(c2[4229],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[4084],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[4262],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[4903],simde_mm256_xor_si256(c2[2183],simde_mm256_xor_si256(c2[3957],simde_mm256_xor_si256(c2[2994],simde_mm256_xor_si256(c2[4615],simde_mm256_xor_si256(c2[2048],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[1751],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[3984],c2[4628])))))))))))))))))))))))))))))))))); //row: 21 - d2[168]=_mm256_xor_si256(c2[4166],_mm256_xor_si256(c2[3843],_mm256_xor_si256(c2[321],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[498],_mm256_xor_si256(c2[4182],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[4676],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[1815],_mm256_xor_si256(c2[3731],_mm256_xor_si256(c2[4695],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[2340],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[2853],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[615],_mm256_xor_si256(c2[1729],_mm256_xor_si256(c2[4948],_mm256_xor_si256(c2[2230],_mm256_xor_si256(c2[3026],c2[2866])))))))))))))))))))))))))))))))))))); + d2[168]=simde_mm256_xor_si256(c2[4166],simde_mm256_xor_si256(c2[3843],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[498],simde_mm256_xor_si256(c2[4182],simde_mm256_xor_si256(c2[4022],simde_mm256_xor_si256(c2[4676],simde_mm256_xor_si256(c2[1952],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[1815],simde_mm256_xor_si256(c2[3731],simde_mm256_xor_si256(c2[4695],simde_mm256_xor_si256(c2[2310],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[2467],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[4241],simde_mm256_xor_si256(c2[4081],simde_mm256_xor_si256(c2[2340],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[2195],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[2853],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[615],simde_mm256_xor_si256(c2[1729],simde_mm256_xor_si256(c2[4948],simde_mm256_xor_si256(c2[2230],simde_mm256_xor_si256(c2[3026],c2[2866])))))))))))))))))))))))))))))))))))); //row: 22 - d2[176]=_mm256_xor_si256(c2[4822],c2[4993]); + d2[176]=simde_mm256_xor_si256(c2[4822],c2[4993]); //row: 23 - d2[184]=_mm256_xor_si256(c2[3680],_mm256_xor_si256(c2[1815],c2[2327])); + d2[184]=simde_mm256_xor_si256(c2[3680],simde_mm256_xor_si256(c2[1815],c2[2327])); //row: 24 - d2[192]=_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1796],c2[1424])); + d2[192]=simde_mm256_xor_si256(c2[2257],simde_mm256_xor_si256(c2[1796],c2[1424])); //row: 25 - d2[200]=_mm256_xor_si256(c2[647],c2[4564]); + d2[200]=simde_mm256_xor_si256(c2[647],c2[4564]); //row: 26 - d2[208]=_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[1606],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[3216],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[1955],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[834],_mm256_xor_si256(c2[3237],_mm256_xor_si256(c2[4038],_mm256_xor_si256(c2[3077],_mm256_xor_si256(c2[4672],_mm256_xor_si256(c2[4213],_mm256_xor_si256(c2[4053],_mm256_xor_si256(c2[3092],_mm256_xor_si256(c2[1010],_mm256_xor_si256(c2[850],_mm256_xor_si256(c2[5008],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[3587],_mm256_xor_si256(c2[3110],_mm256_xor_si256(c2[2149],_mm256_xor_si256(c2[3904],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[3744],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[4560],_mm256_xor_si256(c2[3607],_mm256_xor_si256(c2[407],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[247],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[4418],_mm256_xor_si256(c2[1858],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[4593],_mm256_xor_si256(c2[4433],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[2677],_mm256_xor_si256(c2[3478],_mm256_xor_si256(c2[2517],_mm256_xor_si256(c2[2516],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[5091],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[2853],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[2227],_mm256_xor_si256(c2[2067],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[3507],_mm256_xor_si256(c2[4311],_mm256_xor_si256(c2[5104],c2[4151]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[208]=simde_mm256_xor_si256(c2[1445],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[2567],simde_mm256_xor_si256(c2[1606],simde_mm256_xor_si256(c2[3376],simde_mm256_xor_si256(c2[3216],simde_mm256_xor_si256(c2[2263],simde_mm256_xor_si256(c2[2736],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[1141],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[1955],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[834],simde_mm256_xor_si256(c2[3237],simde_mm256_xor_si256(c2[4038],simde_mm256_xor_si256(c2[3077],simde_mm256_xor_si256(c2[4672],simde_mm256_xor_si256(c2[4213],simde_mm256_xor_si256(c2[4053],simde_mm256_xor_si256(c2[3092],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[850],simde_mm256_xor_si256(c2[5008],simde_mm256_xor_si256(c2[1814],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[4708],simde_mm256_xor_si256(c2[4548],simde_mm256_xor_si256(c2[3587],simde_mm256_xor_si256(c2[3110],simde_mm256_xor_si256(c2[2149],simde_mm256_xor_si256(c2[3904],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[3744],simde_mm256_xor_si256(c2[4720],simde_mm256_xor_si256(c2[4560],simde_mm256_xor_si256(c2[3607],simde_mm256_xor_si256(c2[407],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[247],simde_mm256_xor_si256(c2[4738],simde_mm256_xor_si256(c2[4578],simde_mm256_xor_si256(c2[3617],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[4418],simde_mm256_xor_si256(c2[1858],simde_mm256_xor_si256(c2[2659],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[4593],simde_mm256_xor_si256(c2[4433],simde_mm256_xor_si256(c2[3472],simde_mm256_xor_si256(c2[2677],simde_mm256_xor_si256(c2[3478],simde_mm256_xor_si256(c2[2517],simde_mm256_xor_si256(c2[2516],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[5091],simde_mm256_xor_si256(c2[4130],simde_mm256_xor_si256(c2[2532],simde_mm256_xor_si256(c2[1571],simde_mm256_xor_si256(c2[2052],simde_mm256_xor_si256(c2[2853],simde_mm256_xor_si256(c2[1892],simde_mm256_xor_si256(c2[2227],simde_mm256_xor_si256(c2[2067],simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[4628],simde_mm256_xor_si256(c2[4468],simde_mm256_xor_si256(c2[3507],simde_mm256_xor_si256(c2[4311],simde_mm256_xor_si256(c2[5104],c2[4151]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[216]=_mm256_xor_si256(c2[1280],c2[3780]); + d2[216]=simde_mm256_xor_si256(c2[1280],c2[3780]); //row: 28 - d2[224]=_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[835],c2[1204])); + d2[224]=simde_mm256_xor_si256(c2[339],simde_mm256_xor_si256(c2[835],c2[1204])); //row: 29 - d2[232]=_mm256_xor_si256(c2[2880],c2[4544]); + d2[232]=simde_mm256_xor_si256(c2[2880],c2[4544]); //row: 30 - d2[240]=_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[1552],c2[3346]))); + d2[240]=simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[2647],simde_mm256_xor_si256(c2[1552],c2[3346]))); //row: 31 - d2[248]=_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[3379],_mm256_xor_si256(c2[2899],_mm256_xor_si256(c2[1456],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[1958],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[4193],_mm256_xor_si256(c2[4208],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[1969],_mm256_xor_si256(c2[4711],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[4741],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[2982],_mm256_xor_si256(c2[2822],_mm256_xor_si256(c2[4596],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[3633],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[2695],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3008],_mm256_xor_si256(c2[2230],_mm256_xor_si256(c2[4631],_mm256_xor_si256(c2[308],c2[148]))))))))))))))))))))))))))))))))))); + d2[248]=simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[2722],simde_mm256_xor_si256(c2[3379],simde_mm256_xor_si256(c2[2899],simde_mm256_xor_si256(c2[1456],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[1619],simde_mm256_xor_si256(c2[1958],simde_mm256_xor_si256(c2[4353],simde_mm256_xor_si256(c2[4193],simde_mm256_xor_si256(c2[4208],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[1969],simde_mm256_xor_si256(c2[4711],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[5028],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[1523],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[4741],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[2982],simde_mm256_xor_si256(c2[2822],simde_mm256_xor_si256(c2[4596],simde_mm256_xor_si256(c2[3793],simde_mm256_xor_si256(c2[3633],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[2695],simde_mm256_xor_si256(c2[3168],simde_mm256_xor_si256(c2[3008],simde_mm256_xor_si256(c2[2230],simde_mm256_xor_si256(c2[4631],simde_mm256_xor_si256(c2[308],c2[148]))))))))))))))))))))))))))))))))))); //row: 32 - d2[256]=_mm256_xor_si256(c2[2405],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2082],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[3527],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[4336],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[2101],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[4998],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[5013],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[4070],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[1380],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[3619],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[1092],_mm256_xor_si256(c2[932],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[3813],_mm256_xor_si256(c2[3187],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[309],c2[945])))))))))))))))))))))))))))))))))))))))))); + d2[256]=simde_mm256_xor_si256(c2[2405],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[2082],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[3527],simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[4336],simde_mm256_xor_si256(c2[4176],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[2101],simde_mm256_xor_si256(c2[2915],simde_mm256_xor_si256(c2[2755],simde_mm256_xor_si256(c2[4998],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[5013],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[1810],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[4070],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[561],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[2160],simde_mm256_xor_si256(c2[2001],simde_mm256_xor_si256(c2[579],simde_mm256_xor_si256(c2[419],simde_mm256_xor_si256(c2[1380],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[3619],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[4438],simde_mm256_xor_si256(c2[1092],simde_mm256_xor_si256(c2[932],simde_mm256_xor_si256(c2[3492],simde_mm256_xor_si256(c2[3813],simde_mm256_xor_si256(c2[3187],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[309],c2[945])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[264]=_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[2724],_mm256_xor_si256(c2[4321],_mm256_xor_si256(c2[4978],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[3557],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[2612],_mm256_xor_si256(c2[3568],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[4864],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[2962],_mm256_xor_si256(c2[1221],_mm256_xor_si256(c2[2022],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[1734],_mm256_xor_si256(c2[4294],_mm256_xor_si256(c2[4615],_mm256_xor_si256(c2[3829],_mm256_xor_si256(c2[1111],c2[1747])))))))))))))))))))))))))))); + d2[264]=simde_mm256_xor_si256(c2[3047],simde_mm256_xor_si256(c2[2724],simde_mm256_xor_si256(c2[4321],simde_mm256_xor_si256(c2[4978],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[3557],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[2612],simde_mm256_xor_si256(c2[3568],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[4864],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[1203],simde_mm256_xor_si256(c2[2962],simde_mm256_xor_si256(c2[1221],simde_mm256_xor_si256(c2[2022],simde_mm256_xor_si256(c2[4421],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[1734],simde_mm256_xor_si256(c2[4294],simde_mm256_xor_si256(c2[4615],simde_mm256_xor_si256(c2[3829],simde_mm256_xor_si256(c2[1111],c2[1747])))))))))))))))))))))))))))); //row: 34 - d2[272]=_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[4642],_mm256_xor_si256(c2[1921],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[1606],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[3203],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[1462],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[982],_mm256_xor_si256(c2[3380],_mm256_xor_si256(c2[1937],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[1777],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[4834],_mm256_xor_si256(c2[2276],_mm256_xor_si256(c2[4674],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[4375],_mm256_xor_si256(c2[4215],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[2946],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[2951],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[2806],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[1844],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[2816],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[3777],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[3463],_mm256_xor_si256(c2[897],_mm256_xor_si256(c2[3303],_mm256_xor_si256(c2[2839],_mm256_xor_si256(c2[2679],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[4274],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[3329],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3649],_mm256_xor_si256(c2[1091],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[305],_mm256_xor_si256(c2[2711],_mm256_xor_si256(c2[2866],_mm256_xor_si256(c2[2706],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[3350],c2[629])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[272]=simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[4642],simde_mm256_xor_si256(c2[1921],simde_mm256_xor_si256(c2[4487],simde_mm256_xor_si256(c2[4327],simde_mm256_xor_si256(c2[1606],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[3203],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1462],simde_mm256_xor_si256(c2[3860],simde_mm256_xor_si256(c2[982],simde_mm256_xor_si256(c2[3380],simde_mm256_xor_si256(c2[1937],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[1777],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[2439],simde_mm256_xor_si256(c2[4834],simde_mm256_xor_si256(c2[2276],simde_mm256_xor_si256(c2[4674],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[2291],simde_mm256_xor_si256(c2[4689],simde_mm256_xor_si256(c2[4375],simde_mm256_xor_si256(c2[4215],simde_mm256_xor_si256(c2[1494],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[2450],simde_mm256_xor_si256(c2[2946],simde_mm256_xor_si256(c2[2786],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[3746],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[2951],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[2966],simde_mm256_xor_si256(c2[2806],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[1844],simde_mm256_xor_si256(c2[2976],simde_mm256_xor_si256(c2[2816],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[3777],simde_mm256_xor_si256(c2[3617],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[3463],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[3303],simde_mm256_xor_si256(c2[2839],simde_mm256_xor_si256(c2[2679],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[4274],simde_mm256_xor_si256(c2[1716],simde_mm256_xor_si256(c2[4114],simde_mm256_xor_si256(c2[3489],simde_mm256_xor_si256(c2[3329],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[3168],simde_mm256_xor_si256(c2[3649],simde_mm256_xor_si256(c2[1091],simde_mm256_xor_si256(c2[3489],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[2711],simde_mm256_xor_si256(c2[2866],simde_mm256_xor_si256(c2[2706],simde_mm256_xor_si256(c2[5104],simde_mm256_xor_si256(c2[789],simde_mm256_xor_si256(c2[3350],c2[629])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[280]=_mm256_xor_si256(c2[1282],_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[807],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[3061],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[4017],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[1632],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[4050],_mm256_xor_si256(c2[3890],_mm256_xor_si256(c2[695],_mm256_xor_si256(c2[1651],_mm256_xor_si256(c2[4385],_mm256_xor_si256(c2[2947],_mm256_xor_si256(c2[4550],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[1045],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[4583],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[2496],_mm256_xor_si256(c2[4278],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[4928],_mm256_xor_si256(c2[2369],_mm256_xor_si256(c2[2690],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[4305],c2[4949])))))))))))))))))))))))))))))))))); + d2[280]=simde_mm256_xor_si256(c2[1282],simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[807],simde_mm256_xor_si256(c2[2404],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[3061],simde_mm256_xor_si256(c2[2581],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[4017],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[1632],simde_mm256_xor_si256(c2[3875],simde_mm256_xor_si256(c2[4050],simde_mm256_xor_si256(c2[3890],simde_mm256_xor_si256(c2[695],simde_mm256_xor_si256(c2[1651],simde_mm256_xor_si256(c2[4385],simde_mm256_xor_si256(c2[2947],simde_mm256_xor_si256(c2[4550],simde_mm256_xor_si256(c2[4405],simde_mm256_xor_si256(c2[1045],simde_mm256_xor_si256(c2[1361],simde_mm256_xor_si256(c2[4583],simde_mm256_xor_si256(c2[4423],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[2496],simde_mm256_xor_si256(c2[4278],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[4928],simde_mm256_xor_si256(c2[2369],simde_mm256_xor_si256(c2[2690],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[4305],c2[4949])))))))))))))))))))))))))))))))))); //row: 36 - d2[288]=_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[993],c2[4276])); + d2[288]=simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[993],c2[4276])); //row: 37 - d2[296]=_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[4964],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[4641],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[1127],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[1776],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[343],_mm256_xor_si256(c2[4820],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[2758],_mm256_xor_si256(c2[3232],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[3255],_mm256_xor_si256(c2[2613],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[3108],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[1670],_mm256_xor_si256(c2[3425],_mm256_xor_si256(c2[3907],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[3762],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[5047],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[3138],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[1379],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1219],_mm256_xor_si256(c2[3635],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[2198],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[2038],_mm256_xor_si256(c2[4293],_mm256_xor_si256(c2[3651],_mm256_xor_si256(c2[1734],_mm256_xor_si256(c2[1092],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[1413],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[3670],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[4306],c2[3664]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[296]=simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[4964],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[4641],simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[1127],simde_mm256_xor_si256(c2[2418],simde_mm256_xor_si256(c2[1776],simde_mm256_xor_si256(c2[1938],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[4980],simde_mm256_xor_si256(c2[343],simde_mm256_xor_si256(c2[4820],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[2758],simde_mm256_xor_si256(c2[3232],simde_mm256_xor_si256(c2[2598],simde_mm256_xor_si256(c2[3255],simde_mm256_xor_si256(c2[2613],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[4529],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[3750],simde_mm256_xor_si256(c2[3108],simde_mm256_xor_si256(c2[2304],simde_mm256_xor_si256(c2[1670],simde_mm256_xor_si256(c2[3425],simde_mm256_xor_si256(c2[3907],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[3762],simde_mm256_xor_si256(c2[3120],simde_mm256_xor_si256(c2[5047],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[3138],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[1379],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[3635],simde_mm256_xor_si256(c2[2993],simde_mm256_xor_si256(c2[2198],simde_mm256_xor_si256(c2[2672],simde_mm256_xor_si256(c2[2038],simde_mm256_xor_si256(c2[4293],simde_mm256_xor_si256(c2[3651],simde_mm256_xor_si256(c2[1734],simde_mm256_xor_si256(c2[1092],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[2055],simde_mm256_xor_si256(c2[1413],simde_mm256_xor_si256(c2[1269],simde_mm256_xor_si256(c2[627],simde_mm256_xor_si256(c2[3670],simde_mm256_xor_si256(c2[3028],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[4306],c2[3664]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[304]=_mm256_xor_si256(c2[2401],_mm256_xor_si256(c2[2241],_mm256_xor_si256(c2[1926],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[4340],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[2097],_mm256_xor_si256(c2[4976],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[2759],_mm256_xor_si256(c2[4994],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[5009],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[2770],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[2164],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[3623],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[4434],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[3488],_mm256_xor_si256(c2[3809],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[305],c2[949])))))))))))))))))))))))))))))))))); + d2[304]=simde_mm256_xor_si256(c2[2401],simde_mm256_xor_si256(c2[2241],simde_mm256_xor_si256(c2[1926],simde_mm256_xor_si256(c2[3523],simde_mm256_xor_si256(c2[4340],simde_mm256_xor_si256(c2[4180],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[2097],simde_mm256_xor_si256(c2[4976],simde_mm256_xor_si256(c2[2919],simde_mm256_xor_si256(c2[2759],simde_mm256_xor_si256(c2[4994],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[5009],simde_mm256_xor_si256(c2[1814],simde_mm256_xor_si256(c2[2770],simde_mm256_xor_si256(c2[385],simde_mm256_xor_si256(c2[4066],simde_mm256_xor_si256(c2[550],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[2164],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[1216],simde_mm256_xor_si256(c2[3623],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[4434],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[3488],simde_mm256_xor_si256(c2[3809],simde_mm256_xor_si256(c2[3191],simde_mm256_xor_si256(c2[3031],simde_mm256_xor_si256(c2[305],c2[949])))))))))))))))))))))))))))))))))); //row: 39 - d2[312]=_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[1446],_mm256_xor_si256(c2[1286],_mm256_xor_si256(c2[2883],_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[3060],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2119],_mm256_xor_si256(c2[4354],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[1334],_mm256_xor_si256(c2[1174],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5024],_mm256_xor_si256(c2[4864],_mm256_xor_si256(c2[3426],_mm256_xor_si256(c2[5029],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[2983],_mm256_xor_si256(c2[4917],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[3169],_mm256_xor_si256(c2[2551],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[4944],_mm256_xor_si256(c2[4784],c2[309])))))))))))))))))))))))))))))))))))))))))); + d2[312]=simde_mm256_xor_si256(c2[1761],simde_mm256_xor_si256(c2[1601],simde_mm256_xor_si256(c2[1446],simde_mm256_xor_si256(c2[1286],simde_mm256_xor_si256(c2[2883],simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[3060],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[2279],simde_mm256_xor_si256(c2[2119],simde_mm256_xor_si256(c2[4354],simde_mm256_xor_si256(c2[4529],simde_mm256_xor_si256(c2[4369],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[1174],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[5024],simde_mm256_xor_si256(c2[4864],simde_mm256_xor_si256(c2[3426],simde_mm256_xor_si256(c2[5029],simde_mm256_xor_si256(c2[5044],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[5062],simde_mm256_xor_si256(c2[4902],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[2983],simde_mm256_xor_si256(c2[4917],simde_mm256_xor_si256(c2[4757],simde_mm256_xor_si256(c2[3794],simde_mm256_xor_si256(c2[2037],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[2848],simde_mm256_xor_si256(c2[3169],simde_mm256_xor_si256(c2[2551],simde_mm256_xor_si256(c2[2391],simde_mm256_xor_si256(c2[4944],simde_mm256_xor_si256(c2[4784],c2[309])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[320]=_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[2727],_mm256_xor_si256(c2[4800],_mm256_xor_si256(c2[4324],_mm256_xor_si256(c2[1286],_mm256_xor_si256(c2[4981],_mm256_xor_si256(c2[1943],_mm256_xor_si256(c2[4501],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[4979],_mm256_xor_si256(c2[3552],_mm256_xor_si256(c2[514],_mm256_xor_si256(c2[2917],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[2615],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[3571],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[1186],_mm256_xor_si256(c2[3267],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[3584],_mm256_xor_si256(c2[1351],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[3287],_mm256_xor_si256(c2[87],_mm256_xor_si256(c2[2965],_mm256_xor_si256(c2[5046],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[3297],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[4098],_mm256_xor_si256(c2[1538],_mm256_xor_si256(c2[4416],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[1079],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[2357],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[2197],_mm256_xor_si256(c2[1729],_mm256_xor_si256(c2[3810],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[1251],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[4610],_mm256_xor_si256(c2[1572],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[786],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[3187],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[1750],c2[3831])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[320]=simde_mm256_xor_si256(c2[3042],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[2727],simde_mm256_xor_si256(c2[4800],simde_mm256_xor_si256(c2[4324],simde_mm256_xor_si256(c2[1286],simde_mm256_xor_si256(c2[4981],simde_mm256_xor_si256(c2[1943],simde_mm256_xor_si256(c2[4501],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2898],simde_mm256_xor_si256(c2[4979],simde_mm256_xor_si256(c2[3552],simde_mm256_xor_si256(c2[514],simde_mm256_xor_si256(c2[2917],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[2757],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[2772],simde_mm256_xor_si256(c2[2615],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[3571],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[1186],simde_mm256_xor_si256(c2[3267],simde_mm256_xor_si256(c2[4867],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[3584],simde_mm256_xor_si256(c2[1351],simde_mm256_xor_si256(c2[3424],simde_mm256_xor_si256(c2[1206],simde_mm256_xor_si256(c2[3287],simde_mm256_xor_si256(c2[87],simde_mm256_xor_si256(c2[2965],simde_mm256_xor_si256(c2[5046],simde_mm256_xor_si256(c2[1216],simde_mm256_xor_si256(c2[3297],simde_mm256_xor_si256(c2[2017],simde_mm256_xor_si256(c2[4098],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[4416],simde_mm256_xor_si256(c2[1378],simde_mm256_xor_si256(c2[1079],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[2357],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[2197],simde_mm256_xor_si256(c2[1729],simde_mm256_xor_si256(c2[3810],simde_mm256_xor_si256(c2[4289],simde_mm256_xor_si256(c2[1251],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[4610],simde_mm256_xor_si256(c2[1572],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[786],simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[3187],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[1750],c2[3831])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[328]=_mm256_xor_si256(c2[4963],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[4480],_mm256_xor_si256(c2[966],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[4659],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[2612],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[4368],_mm256_xor_si256(c2[213],_mm256_xor_si256(c2[2947],_mm256_xor_si256(c2[1509],_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[4726],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[3137],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[3778],_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[3490],_mm256_xor_si256(c2[931],_mm256_xor_si256(c2[1252],_mm256_xor_si256(c2[626],_mm256_xor_si256(c2[466],_mm256_xor_si256(c2[2867],c2[3511])))))))))))))))))))))))))))))))))); + d2[328]=simde_mm256_xor_si256(c2[4963],simde_mm256_xor_si256(c2[4803],simde_mm256_xor_si256(c2[4480],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[1143],simde_mm256_xor_si256(c2[4659],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[2437],simde_mm256_xor_si256(c2[2612],simde_mm256_xor_si256(c2[2452],simde_mm256_xor_si256(c2[4368],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[2947],simde_mm256_xor_si256(c2[1509],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[2967],simde_mm256_xor_si256(c2[4726],simde_mm256_xor_si256(c2[887],simde_mm256_xor_si256(c2[3137],simde_mm256_xor_si256(c2[2977],simde_mm256_xor_si256(c2[3778],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[2832],simde_mm256_xor_si256(c2[1877],simde_mm256_xor_si256(c2[3490],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[1252],simde_mm256_xor_si256(c2[626],simde_mm256_xor_si256(c2[466],simde_mm256_xor_si256(c2[2867],c2[3511])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc288_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc288_byte.c index 99b257f4b0..9e349d5424 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc288_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc288_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc288_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3223],c2[2684])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[5402],simde_mm256_xor_si256(c2[4518],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[3637],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[415],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[2415],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[3530],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[3007],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[5727],simde_mm256_xor_si256(c2[5565],simde_mm256_xor_si256(c2[3223],c2[2684])))))))))))))))))))))))))); //row: 1 - d2[9]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4698],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3223],c2[2684])))))))))))))))))))))))))))))))); + d2[9]=simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[5402],simde_mm256_xor_si256(c2[4698],simde_mm256_xor_si256(c2[4518],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[3817],simde_mm256_xor_si256(c2[3637],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[415],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[2415],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[3531],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[3530],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[3007],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[5727],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[5565],simde_mm256_xor_si256(c2[3223],c2[2684])))))))))))))))))))))))))))))))); //row: 2 - d2[18]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4698],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[1046],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3403],_mm256_xor_si256(c2[3223],c2[2684])))))))))))))))))))))))))))))))))))))))); + d2[18]=simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[3420],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[5402],simde_mm256_xor_si256(c2[4698],simde_mm256_xor_si256(c2[4518],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[3817],simde_mm256_xor_si256(c2[3637],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[415],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[2415],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[3531],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[3710],simde_mm256_xor_si256(c2[3530],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[3007],simde_mm256_xor_si256(c2[1046],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[5727],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[5565],simde_mm256_xor_si256(c2[3403],simde_mm256_xor_si256(c2[3223],c2[2684])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[27]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[4032],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3187],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[2864],c2[2684])))))))))))))))))))))))))))))))))); + d2[27]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[5402],simde_mm256_xor_si256(c2[4518],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[3637],simde_mm256_xor_si256(c2[4539],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[415],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[4916],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[2415],simde_mm256_xor_si256(c2[4032],simde_mm256_xor_si256(c2[3852],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[3530],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[3187],simde_mm256_xor_si256(c2[3007],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[5727],simde_mm256_xor_si256(c2[5565],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[2864],c2[2684])))))))))))))))))))))))))))))))))); //row: 4 - d2[36]=_mm256_xor_si256(c2[3961],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[2180],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[1479],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[4016],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[2938],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[4756],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[3693],_mm256_xor_si256(c2[4051],_mm256_xor_si256(c2[1193],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[1192],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[3730],_mm256_xor_si256(c2[669],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[3389],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[3227],_mm256_xor_si256(c2[885],c2[346])))))))))))))))))))))))))))))))))); + d2[36]=simde_mm256_xor_si256(c2[3961],simde_mm256_xor_si256(c2[3781],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[2180],simde_mm256_xor_si256(c2[5062],simde_mm256_xor_si256(c2[1823],simde_mm256_xor_si256(c2[4338],simde_mm256_xor_si256(c2[1479],simde_mm256_xor_si256(c2[1299],simde_mm256_xor_si256(c2[2021],simde_mm256_xor_si256(c2[4016],simde_mm256_xor_si256(c2[3836],simde_mm256_xor_si256(c2[2938],simde_mm256_xor_si256(c2[2578],simde_mm256_xor_si256(c2[4756],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[3693],simde_mm256_xor_si256(c2[4051],simde_mm256_xor_si256(c2[1193],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[1192],simde_mm256_xor_si256(c2[4971],simde_mm256_xor_si256(c2[3730],simde_mm256_xor_si256(c2[669],simde_mm256_xor_si256(c2[4287],simde_mm256_xor_si256(c2[329],simde_mm256_xor_si256(c2[3389],simde_mm256_xor_si256(c2[3407],simde_mm256_xor_si256(c2[3227],simde_mm256_xor_si256(c2[885],c2[346])))))))))))))))))))))))))))))))))); //row: 5 - d2[45]=_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[2182],_mm256_xor_si256(c2[5079],_mm256_xor_si256(c2[4899],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1857],_mm256_xor_si256(c2[1677],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[3677],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[3692],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[4269],_mm256_xor_si256(c2[1750],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[3929],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[4485],c2[3946])))))))))))))))))))))))))))))))))))); + d2[45]=simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[4502],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[1441],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[5423],simde_mm256_xor_si256(c2[2182],simde_mm256_xor_si256(c2[5079],simde_mm256_xor_si256(c2[4899],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[1857],simde_mm256_xor_si256(c2[1677],simde_mm256_xor_si256(c2[779],simde_mm256_xor_si256(c2[419],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[3677],simde_mm256_xor_si256(c2[5114],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[1892],simde_mm256_xor_si256(c2[3692],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[4613],simde_mm256_xor_si256(c2[4792],simde_mm256_xor_si256(c2[2812],simde_mm256_xor_si256(c2[1571],simde_mm256_xor_si256(c2[4269],simde_mm256_xor_si256(c2[1750],simde_mm256_xor_si256(c2[2128],simde_mm256_xor_si256(c2[3929],simde_mm256_xor_si256(c2[1230],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[4485],c2[3946])))))))))))))))))))))))))))))))))))); //row: 6 - d2[54]=_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[5224],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[923],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[584],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[2399],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[4232],_mm256_xor_si256(c2[5515],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[5514],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[4991],_mm256_xor_si256(c2[2109],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[4651],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[5207],_mm256_xor_si256(c2[4668],c2[1066])))))))))))))))))))))))))))))))))))); + d2[54]=simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[5224],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[923],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[3625],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[584],simde_mm256_xor_si256(c2[2579],simde_mm256_xor_si256(c2[2399],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[1141],simde_mm256_xor_si256(c2[3319],simde_mm256_xor_si256(c2[4399],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[2256],simde_mm256_xor_si256(c2[2614],simde_mm256_xor_si256(c2[4232],simde_mm256_xor_si256(c2[5515],simde_mm256_xor_si256(c2[5335],simde_mm256_xor_si256(c2[5514],simde_mm256_xor_si256(c2[3534],simde_mm256_xor_si256(c2[2293],simde_mm256_xor_si256(c2[4991],simde_mm256_xor_si256(c2[2109],simde_mm256_xor_si256(c2[2850],simde_mm256_xor_si256(c2[4651],simde_mm256_xor_si256(c2[1952],simde_mm256_xor_si256(c2[1970],simde_mm256_xor_si256(c2[1790],simde_mm256_xor_si256(c2[5207],simde_mm256_xor_si256(c2[4668],c2[1066])))))))))))))))))))))))))))))))))))); //row: 7 - d2[63]=_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[5584],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[922],_mm256_xor_si256(c2[4700],_mm256_xor_si256(c2[3804],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[4523],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[763],_mm256_xor_si256(c2[4721],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[2758],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[3498],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[454],_mm256_xor_si256(c2[2793],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[5694],_mm256_xor_si256(c2[5514],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[5693],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[2472],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[5170],_mm256_xor_si256(c2[3369],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[1048],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[2849],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[2149],_mm256_xor_si256(c2[1969],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[3405],_mm256_xor_si256(c2[4847],_mm256_xor_si256(c2[3046],c2[2866])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[63]=simde_mm256_xor_si256(c2[2703],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[5403],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[1806],simde_mm256_xor_si256(c2[5584],simde_mm256_xor_si256(c2[1102],simde_mm256_xor_si256(c2[922],simde_mm256_xor_si256(c2[4700],simde_mm256_xor_si256(c2[3804],simde_mm256_xor_si256(c2[1823],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[4523],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[3819],simde_mm256_xor_si256(c2[763],simde_mm256_xor_si256(c2[4721],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[2758],simde_mm256_xor_si256(c2[2578],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[5458],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[5098],simde_mm256_xor_si256(c2[3498],simde_mm256_xor_si256(c2[1517],simde_mm256_xor_si256(c2[4578],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[4214],simde_mm256_xor_si256(c2[4034],simde_mm256_xor_si256(c2[2435],simde_mm256_xor_si256(c2[454],simde_mm256_xor_si256(c2[2793],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[1354],simde_mm256_xor_si256(c2[5694],simde_mm256_xor_si256(c2[5514],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[5693],simde_mm256_xor_si256(c2[3712],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[1912],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[2472],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[5170],simde_mm256_xor_si256(c2[3369],simde_mm256_xor_si256(c2[3189],simde_mm256_xor_si256(c2[667],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[1048],simde_mm256_xor_si256(c2[4830],simde_mm256_xor_si256(c2[2849],simde_mm256_xor_si256(c2[2131],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[2149],simde_mm256_xor_si256(c2[1969],simde_mm256_xor_si256(c2[5747],simde_mm256_xor_si256(c2[5386],simde_mm256_xor_si256(c2[3405],simde_mm256_xor_si256(c2[4847],simde_mm256_xor_si256(c2[3046],c2[2866])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[72]=_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[2724],_mm256_xor_si256(c2[920],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[2200],_mm256_xor_si256(c2[2922],_mm256_xor_si256(c2[4917],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[4019],_mm256_xor_si256(c2[3839],_mm256_xor_si256(c2[3479],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[5657],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[4952],_mm256_xor_si256(c2[2094],_mm256_xor_si256(c2[1914],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[2093],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[4811],_mm256_xor_si256(c2[4631],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[5368],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[4308],_mm256_xor_si256(c2[4128],_mm256_xor_si256(c2[1966],_mm256_xor_si256(c2[1786],c2[1247])))))))))))))))))))))))))))))))))))))))))); + d2[72]=simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[3261],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[2724],simde_mm256_xor_si256(c2[920],simde_mm256_xor_si256(c2[2380],simde_mm256_xor_si256(c2[2200],simde_mm256_xor_si256(c2[2922],simde_mm256_xor_si256(c2[4917],simde_mm256_xor_si256(c2[4737],simde_mm256_xor_si256(c2[4019],simde_mm256_xor_si256(c2[3839],simde_mm256_xor_si256(c2[3479],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[5657],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[2415],simde_mm256_xor_si256(c2[4774],simde_mm256_xor_si256(c2[4594],simde_mm256_xor_si256(c2[4952],simde_mm256_xor_si256(c2[2094],simde_mm256_xor_si256(c2[1914],simde_mm256_xor_si256(c2[2273],simde_mm256_xor_si256(c2[2093],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[4811],simde_mm256_xor_si256(c2[4631],simde_mm256_xor_si256(c2[1570],simde_mm256_xor_si256(c2[5368],simde_mm256_xor_si256(c2[5188],simde_mm256_xor_si256(c2[1230],simde_mm256_xor_si256(c2[4290],simde_mm256_xor_si256(c2[4308],simde_mm256_xor_si256(c2[4128],simde_mm256_xor_si256(c2[1966],simde_mm256_xor_si256(c2[1786],c2[1247])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[81]=_mm256_xor_si256(c2[4680],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[3421],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[3079],_mm256_xor_si256(c2[2000],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[2198],_mm256_xor_si256(c2[1119],_mm256_xor_si256(c2[939],_mm256_xor_si256(c2[2920],_mm256_xor_si256(c2[1661],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[3837],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[3477],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[5655],_mm256_xor_si256(c2[4396],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[5476],_mm256_xor_si256(c2[2413],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[3333],_mm256_xor_si256(c2[4950],_mm256_xor_si256(c2[3691],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[653],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[111],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[5186],_mm256_xor_si256(c2[3927],_mm256_xor_si256(c2[1228],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[1784],_mm256_xor_si256(c2[525],_mm256_xor_si256(c2[1245],c2[5745]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[81]=simde_mm256_xor_si256(c2[4680],simde_mm256_xor_si256(c2[3601],simde_mm256_xor_si256(c2[3421],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[3963],simde_mm256_xor_si256(c2[2704],simde_mm256_xor_si256(c2[3079],simde_mm256_xor_si256(c2[2000],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[4702],simde_mm256_xor_si256(c2[2722],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[2198],simde_mm256_xor_si256(c2[1119],simde_mm256_xor_si256(c2[939],simde_mm256_xor_si256(c2[2920],simde_mm256_xor_si256(c2[1661],simde_mm256_xor_si256(c2[4735],simde_mm256_xor_si256(c2[3656],simde_mm256_xor_si256(c2[3476],simde_mm256_xor_si256(c2[3837],simde_mm256_xor_si256(c2[2578],simde_mm256_xor_si256(c2[3477],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[5655],simde_mm256_xor_si256(c2[4396],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[5476],simde_mm256_xor_si256(c2[2413],simde_mm256_xor_si256(c2[1154],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[3333],simde_mm256_xor_si256(c2[4950],simde_mm256_xor_si256(c2[3691],simde_mm256_xor_si256(c2[1912],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[653],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[111],simde_mm256_xor_si256(c2[4611],simde_mm256_xor_si256(c2[4629],simde_mm256_xor_si256(c2[3370],simde_mm256_xor_si256(c2[1568],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[5186],simde_mm256_xor_si256(c2[3927],simde_mm256_xor_si256(c2[1228],simde_mm256_xor_si256(c2[5728],simde_mm256_xor_si256(c2[4288],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[4126],simde_mm256_xor_si256(c2[3047],simde_mm256_xor_si256(c2[2867],simde_mm256_xor_si256(c2[1784],simde_mm256_xor_si256(c2[525],simde_mm256_xor_si256(c2[1245],c2[5745]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[90]=_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[1639],_mm256_xor_si256(c2[1011],c2[129]))); + d2[90]=simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[1639],simde_mm256_xor_si256(c2[1011],c2[129]))); //row: 11 - d2[99]=_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[3242],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[4520],_mm256_xor_si256(c2[1643],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[5278],_mm256_xor_si256(c2[4918],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[3854],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[3353],_mm256_xor_si256(c2[3532],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[1552],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[3009],_mm256_xor_si256(c2[5526],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[5567],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[2866],_mm256_xor_si256(c2[2686],c2[3765]))))))))))))))))))))))))))))))))))))); + d2[99]=simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[3242],simde_mm256_xor_si256(c2[5404],simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[4520],simde_mm256_xor_si256(c2[1643],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[4163],simde_mm256_xor_si256(c2[3639],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[5278],simde_mm256_xor_si256(c2[4918],simde_mm256_xor_si256(c2[1337],simde_mm256_xor_si256(c2[2417],simde_mm256_xor_si256(c2[4034],simde_mm256_xor_si256(c2[3854],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[3353],simde_mm256_xor_si256(c2[3532],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[1552],simde_mm256_xor_si256(c2[311],simde_mm256_xor_si256(c2[3189],simde_mm256_xor_si256(c2[3009],simde_mm256_xor_si256(c2[5526],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[2669],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[5729],simde_mm256_xor_si256(c2[5567],simde_mm256_xor_si256(c2[3225],simde_mm256_xor_si256(c2[2866],simde_mm256_xor_si256(c2[2686],c2[3765]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[108]=_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[187],_mm256_xor_si256(c2[5242],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[2185],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[2959],_mm256_xor_si256(c2[4396],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[1174],_mm256_xor_si256(c2[4075],_mm256_xor_si256(c2[3895],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[2094],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[3551],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[3211],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[3767],c2[3228])))))))))))))))))))))))))))))))))); + d2[108]=simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[3784],simde_mm256_xor_si256(c2[187],simde_mm256_xor_si256(c2[5242],simde_mm256_xor_si256(c2[5062],simde_mm256_xor_si256(c2[2185],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[4181],simde_mm256_xor_si256(c2[4903],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[959],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[5460],simde_mm256_xor_si256(c2[4737],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[2959],simde_mm256_xor_si256(c2[4396],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[1174],simde_mm256_xor_si256(c2[4075],simde_mm256_xor_si256(c2[3895],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[2094],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[3551],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[3211],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[3767],c2[3228])))))))))))))))))))))))))))))))))); //row: 13 - d2[117]=_mm256_xor_si256(c2[3061],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[2162],_mm256_xor_si256(c2[1460],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[1103],_mm256_xor_si256(c2[919],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[3116],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[1858],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[974],_mm256_xor_si256(c2[794],_mm256_xor_si256(c2[2973],_mm256_xor_si256(c2[3511],_mm256_xor_si256(c2[3331],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[4431],_mm256_xor_si256(c2[4251],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[5708],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[5368],_mm256_xor_si256(c2[2849],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[5545],_mm256_xor_si256(c2[2507],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[5565],c2[5385]))))))))))))))))))))))))))))))))))))); + d2[117]=simde_mm256_xor_si256(c2[3061],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[2162],simde_mm256_xor_si256(c2[1460],simde_mm256_xor_si256(c2[4342],simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[1103],simde_mm256_xor_si256(c2[919],simde_mm256_xor_si256(c2[579],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[1301],simde_mm256_xor_si256(c2[3116],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[1858],simde_mm256_xor_si256(c2[4036],simde_mm256_xor_si256(c2[5116],simde_mm256_xor_si256(c2[974],simde_mm256_xor_si256(c2[794],simde_mm256_xor_si256(c2[2973],simde_mm256_xor_si256(c2[3511],simde_mm256_xor_si256(c2[3331],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[472],simde_mm256_xor_si256(c2[4431],simde_mm256_xor_si256(c2[4251],simde_mm256_xor_si256(c2[3010],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[5708],simde_mm256_xor_si256(c2[3567],simde_mm256_xor_si256(c2[5368],simde_mm256_xor_si256(c2[2849],simde_mm256_xor_si256(c2[2669],simde_mm256_xor_si256(c2[5545],simde_mm256_xor_si256(c2[2507],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[5565],c2[5385]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[126]=_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[5585],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[4882],_mm256_xor_si256(c2[4701],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[4525],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[5099],_mm256_xor_si256(c2[1699],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[2779],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4215],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[455],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[993],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[3895],_mm256_xor_si256(c2[3715],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[3894],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[1914],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[3529],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[3371],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[331],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[3587],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[3047],c2[2867]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[126]=simde_mm256_xor_si256(c2[904],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[3604],simde_mm256_xor_si256(c2[3423],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[5585],simde_mm256_xor_si256(c2[5062],simde_mm256_xor_si256(c2[4882],simde_mm256_xor_si256(c2[4701],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[4525],simde_mm256_xor_si256(c2[4524],simde_mm256_xor_si256(c2[4344],simde_mm256_xor_si256(c2[2722],simde_mm256_xor_si256(c2[4181],simde_mm256_xor_si256(c2[4001],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[4723],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[4542],simde_mm256_xor_si256(c2[959],simde_mm256_xor_si256(c2[779],simde_mm256_xor_si256(c2[598],simde_mm256_xor_si256(c2[5640],simde_mm256_xor_si256(c2[5459],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[5099],simde_mm256_xor_si256(c2[1699],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[2779],simde_mm256_xor_si256(c2[2598],simde_mm256_xor_si256(c2[4216],simde_mm256_xor_si256(c2[4215],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[455],simde_mm256_xor_si256(c2[994],simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[3895],simde_mm256_xor_si256(c2[3715],simde_mm256_xor_si256(c2[3534],simde_mm256_xor_si256(c2[3894],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[1914],simde_mm256_xor_si256(c2[1913],simde_mm256_xor_si256(c2[1733],simde_mm256_xor_si256(c2[3529],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[3371],simde_mm256_xor_si256(c2[3370],simde_mm256_xor_si256(c2[3190],simde_mm256_xor_si256(c2[1230],simde_mm256_xor_si256(c2[1049],simde_mm256_xor_si256(c2[3031],simde_mm256_xor_si256(c2[2850],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[331],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[5748],simde_mm256_xor_si256(c2[3587],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[3048],simde_mm256_xor_si256(c2[3047],c2[2867]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[135]=_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[3243],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[5405],_mm256_xor_si256(c2[5406],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[1645],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[4362],_mm256_xor_si256(c2[4363],_mm256_xor_si256(c2[418],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[5279],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[4919],_mm256_xor_si256(c2[4920],_mm256_xor_si256(c2[1338],_mm256_xor_si256(c2[1339],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[2419],_mm256_xor_si256(c2[3855],_mm256_xor_si256(c2[3856],_mm256_xor_si256(c2[275],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[3354],_mm256_xor_si256(c2[3535],_mm256_xor_si256(c2[3355],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[1554],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[3011],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[870],_mm256_xor_si256(c2[2670],_mm256_xor_si256(c2[2671],_mm256_xor_si256(c2[5730],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[5568],_mm256_xor_si256(c2[5749],_mm256_xor_si256(c2[5569],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[3227],_mm256_xor_si256(c2[2687],c2[2688])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[135]=simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[3243],simde_mm256_xor_si256(c2[3244],simde_mm256_xor_si256(c2[5405],simde_mm256_xor_si256(c2[5406],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[4521],simde_mm256_xor_si256(c2[4702],simde_mm256_xor_si256(c2[4522],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[1645],simde_mm256_xor_si256(c2[4164],simde_mm256_xor_si256(c2[4165],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[3821],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[4362],simde_mm256_xor_si256(c2[4363],simde_mm256_xor_si256(c2[418],simde_mm256_xor_si256(c2[599],simde_mm256_xor_si256(c2[419],simde_mm256_xor_si256(c2[5279],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[4919],simde_mm256_xor_si256(c2[4920],simde_mm256_xor_si256(c2[1338],simde_mm256_xor_si256(c2[1339],simde_mm256_xor_si256(c2[2418],simde_mm256_xor_si256(c2[2419],simde_mm256_xor_si256(c2[3855],simde_mm256_xor_si256(c2[3856],simde_mm256_xor_si256(c2[275],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[634],simde_mm256_xor_si256(c2[3354],simde_mm256_xor_si256(c2[3535],simde_mm256_xor_si256(c2[3355],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[3534],simde_mm256_xor_si256(c2[1553],simde_mm256_xor_si256(c2[1554],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[3010],simde_mm256_xor_si256(c2[3011],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[870],simde_mm256_xor_si256(c2[2670],simde_mm256_xor_si256(c2[2671],simde_mm256_xor_si256(c2[5730],simde_mm256_xor_si256(c2[5731],simde_mm256_xor_si256(c2[5568],simde_mm256_xor_si256(c2[5749],simde_mm256_xor_si256(c2[5569],simde_mm256_xor_si256(c2[3226],simde_mm256_xor_si256(c2[3227],simde_mm256_xor_si256(c2[2687],c2[2688])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[144]=_mm256_xor_si256(c2[5580],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[4860],_mm256_xor_si256(c2[4680],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[3979],_mm256_xor_si256(c2[3799],_mm256_xor_si256(c2[379],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[922],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[2899],_mm256_xor_si256(c2[3098],_mm256_xor_si256(c2[2918],_mm256_xor_si256(c2[5257],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[5455],_mm256_xor_si256(c2[2035],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[4557],_mm256_xor_si256(c2[1137],_mm256_xor_si256(c2[957],_mm256_xor_si256(c2[4197],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[1696],_mm256_xor_si256(c2[3855],_mm256_xor_si256(c2[3133],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[5312],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[5670],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[4791],_mm256_xor_si256(c2[2811],_mm256_xor_si256(c2[5150],_mm256_xor_si256(c2[4970],_mm256_xor_si256(c2[831],_mm256_xor_si256(c2[2990],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[1929],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2486],_mm256_xor_si256(c2[2306],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[5008],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[4846],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[4843],_mm256_xor_si256(c2[4663],_mm256_xor_si256(c2[1965],_mm256_xor_si256(c2[4124],c2[1782]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[144]=simde_mm256_xor_si256(c2[5580],simde_mm256_xor_si256(c2[5400],simde_mm256_xor_si256(c2[1980],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[4860],simde_mm256_xor_si256(c2[4680],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[3979],simde_mm256_xor_si256(c2[3799],simde_mm256_xor_si256(c2[379],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[922],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[3442],simde_mm256_xor_si256(c2[5601],simde_mm256_xor_si256(c2[2899],simde_mm256_xor_si256(c2[3098],simde_mm256_xor_si256(c2[2918],simde_mm256_xor_si256(c2[5257],simde_mm256_xor_si256(c2[5077],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[5455],simde_mm256_xor_si256(c2[2035],simde_mm256_xor_si256(c2[1855],simde_mm256_xor_si256(c2[4557],simde_mm256_xor_si256(c2[1137],simde_mm256_xor_si256(c2[957],simde_mm256_xor_si256(c2[4197],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[2955],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[1696],simde_mm256_xor_si256(c2[3855],simde_mm256_xor_si256(c2[3133],simde_mm256_xor_si256(c2[5292],simde_mm256_xor_si256(c2[5312],simde_mm256_xor_si256(c2[1892],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[5670],simde_mm256_xor_si256(c2[2070],simde_mm256_xor_si256(c2[2812],simde_mm256_xor_si256(c2[2632],simde_mm256_xor_si256(c2[4971],simde_mm256_xor_si256(c2[4791],simde_mm256_xor_si256(c2[2811],simde_mm256_xor_si256(c2[5150],simde_mm256_xor_si256(c2[4970],simde_mm256_xor_si256(c2[831],simde_mm256_xor_si256(c2[2990],simde_mm256_xor_si256(c2[5349],simde_mm256_xor_si256(c2[1929],simde_mm256_xor_si256(c2[1749],simde_mm256_xor_si256(c2[2288],simde_mm256_xor_si256(c2[4447],simde_mm256_xor_si256(c2[147],simde_mm256_xor_si256(c2[2486],simde_mm256_xor_si256(c2[2306],simde_mm256_xor_si256(c2[1948],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[5008],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[5026],simde_mm256_xor_si256(c2[4846],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[1246],simde_mm256_xor_si256(c2[2504],simde_mm256_xor_si256(c2[4843],simde_mm256_xor_si256(c2[4663],simde_mm256_xor_si256(c2[1965],simde_mm256_xor_si256(c2[4124],c2[1782]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[153]=_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[5221],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[5584],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[4700],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[3999],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[5438],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[2396],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[958],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[3316],_mm256_xor_si256(c2[3136],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[5653],_mm256_xor_si256(c2[454],_mm256_xor_si256(c2[2253],_mm256_xor_si256(c2[2073],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[2431],_mm256_xor_si256(c2[2071],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[5332],_mm256_xor_si256(c2[5152],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[5331],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[4808],_mm256_xor_si256(c2[1048],_mm256_xor_si256(c2[2847],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[2849],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[1607],_mm256_xor_si256(c2[3405],_mm256_xor_si256(c2[5204],_mm256_xor_si256(c2[5024],_mm256_xor_si256(c2[2866],c2[4485]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[153]=simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[2341],simde_mm256_xor_si256(c2[2161],simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[5221],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[5584],simde_mm256_xor_si256(c2[1444],simde_mm256_xor_si256(c2[4880],simde_mm256_xor_si256(c2[4700],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[1823],simde_mm256_xor_si256(c2[3442],simde_mm256_xor_si256(c2[4343],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[3999],simde_mm256_xor_si256(c2[3819],simde_mm256_xor_si256(c2[5618],simde_mm256_xor_si256(c2[5438],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[2396],simde_mm256_xor_si256(c2[2216],simde_mm256_xor_si256(c2[5458],simde_mm256_xor_si256(c2[1498],simde_mm256_xor_si256(c2[1318],simde_mm256_xor_si256(c2[5098],simde_mm256_xor_si256(c2[958],simde_mm256_xor_si256(c2[1517],simde_mm256_xor_si256(c2[3316],simde_mm256_xor_si256(c2[3136],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[4216],simde_mm256_xor_si256(c2[4034],simde_mm256_xor_si256(c2[5653],simde_mm256_xor_si256(c2[454],simde_mm256_xor_si256(c2[2253],simde_mm256_xor_si256(c2[2073],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[2431],simde_mm256_xor_si256(c2[2071],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[5332],simde_mm256_xor_si256(c2[5152],simde_mm256_xor_si256(c2[3712],simde_mm256_xor_si256(c2[5511],simde_mm256_xor_si256(c2[5331],simde_mm256_xor_si256(c2[1732],simde_mm256_xor_si256(c2[3351],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[2290],simde_mm256_xor_si256(c2[2110],simde_mm256_xor_si256(c2[3189],simde_mm256_xor_si256(c2[4808],simde_mm256_xor_si256(c2[1048],simde_mm256_xor_si256(c2[2847],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[2849],simde_mm256_xor_si256(c2[4468],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[5747],simde_mm256_xor_si256(c2[1787],simde_mm256_xor_si256(c2[1607],simde_mm256_xor_si256(c2[3405],simde_mm256_xor_si256(c2[5204],simde_mm256_xor_si256(c2[5024],simde_mm256_xor_si256(c2[2866],c2[4485]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[162]=_mm256_xor_si256(c2[3060],_mm256_xor_si256(c2[1911],c2[2650])); + d2[162]=simde_mm256_xor_si256(c2[3060],simde_mm256_xor_si256(c2[1911],c2[2650])); //row: 19 - d2[171]=_mm256_xor_si256(c2[1981],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[23],_mm256_xor_si256(c2[5058],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[2036],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[778],_mm256_xor_si256(c2[2956],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[5473],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[5151],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[1930],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[4844],c2[4305])))))))))))))))))))))))))))); + d2[171]=simde_mm256_xor_si256(c2[1981],simde_mm256_xor_si256(c2[4861],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[2702],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[3262],simde_mm256_xor_si256(c2[23],simde_mm256_xor_si256(c2[5058],simde_mm256_xor_si256(c2[5258],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[2036],simde_mm256_xor_si256(c2[1138],simde_mm256_xor_si256(c2[778],simde_mm256_xor_si256(c2[2956],simde_mm256_xor_si256(c2[4036],simde_mm256_xor_si256(c2[5473],simde_mm256_xor_si256(c2[1893],simde_mm256_xor_si256(c2[2251],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[5151],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[1930],simde_mm256_xor_si256(c2[4628],simde_mm256_xor_si256(c2[2487],simde_mm256_xor_si256(c2[4288],simde_mm256_xor_si256(c2[1589],simde_mm256_xor_si256(c2[1427],simde_mm256_xor_si256(c2[4844],c2[4305])))))))))))))))))))))))))))); //row: 20 - d2[180]=_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[1281],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[3117],_mm256_xor_si256(c2[2937],_mm256_xor_si256(c2[2039],_mm256_xor_si256(c2[1679],_mm256_xor_si256(c2[3857],_mm256_xor_si256(c2[4937],_mm256_xor_si256(c2[615],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2794],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[4072],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[5189],_mm256_xor_si256(c2[2490],_mm256_xor_si256(c2[2508],_mm256_xor_si256(c2[2328],_mm256_xor_si256(c2[5745],c2[5206])))))))))))))))))))))))))))))))))); + d2[180]=simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[2882],simde_mm256_xor_si256(c2[3],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[1461],simde_mm256_xor_si256(c2[1281],simde_mm256_xor_si256(c2[4163],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[1122],simde_mm256_xor_si256(c2[3117],simde_mm256_xor_si256(c2[2937],simde_mm256_xor_si256(c2[2039],simde_mm256_xor_si256(c2[1679],simde_mm256_xor_si256(c2[3857],simde_mm256_xor_si256(c2[4937],simde_mm256_xor_si256(c2[615],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[2794],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[4072],simde_mm256_xor_si256(c2[2831],simde_mm256_xor_si256(c2[5529],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[5189],simde_mm256_xor_si256(c2[2490],simde_mm256_xor_si256(c2[2508],simde_mm256_xor_si256(c2[2328],simde_mm256_xor_si256(c2[5745],c2[5206])))))))))))))))))))))))))))))))))); //row: 21 - d2[189]=_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[4703],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[3477],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[2219],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[1155],_mm256_xor_si256(c2[3334],_mm256_xor_si256(c2[3872],_mm256_xor_si256(c2[3692],_mm256_xor_si256(c2[654],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[4612],_mm256_xor_si256(c2[3371],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[3928],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[3210],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[2126],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[526],_mm256_xor_si256(c2[167],c2[5746])))))))))))))))))))))))))))))))))))); + d2[189]=simde_mm256_xor_si256(c2[3422],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[2705],simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[4703],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[1842],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[3477],simde_mm256_xor_si256(c2[2579],simde_mm256_xor_si256(c2[2219],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[5477],simde_mm256_xor_si256(c2[1335],simde_mm256_xor_si256(c2[1155],simde_mm256_xor_si256(c2[3334],simde_mm256_xor_si256(c2[3872],simde_mm256_xor_si256(c2[3692],simde_mm256_xor_si256(c2[654],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[4792],simde_mm256_xor_si256(c2[4612],simde_mm256_xor_si256(c2[3371],simde_mm256_xor_si256(c2[490],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[3928],simde_mm256_xor_si256(c2[5729],simde_mm256_xor_si256(c2[3210],simde_mm256_xor_si256(c2[3030],simde_mm256_xor_si256(c2[2126],simde_mm256_xor_si256(c2[2868],simde_mm256_xor_si256(c2[526],simde_mm256_xor_si256(c2[167],c2[5746])))))))))))))))))))))))))))))))))))); //row: 22 - d2[198]=_mm256_xor_si256(c2[3979],c2[760]); + d2[198]=simde_mm256_xor_si256(c2[3979],c2[760]); //row: 23 - d2[207]=_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[3477],c2[4411])); + d2[207]=simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[3477],c2[4411])); //row: 24 - d2[216]=_mm256_xor_si256(c2[5418],_mm256_xor_si256(c2[1837],c2[1065])); + d2[216]=simde_mm256_xor_si256(c2[5418],simde_mm256_xor_si256(c2[1837],c2[1065])); //row: 25 - d2[225]=_mm256_xor_si256(c2[4],c2[5671]); + d2[225]=simde_mm256_xor_si256(c2[4],c2[5671]); //row: 26 - d2[234]=_mm256_xor_si256(c2[1263],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[5421],_mm256_xor_si256(c2[5241],_mm256_xor_si256(c2[5422],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[2545],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[5245],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[4540],_mm256_xor_si256(c2[4360],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[5082],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5263],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[1319],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[5639],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2238],_mm256_xor_si256(c2[2058],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[3138],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[4575],_mm256_xor_si256(c2[4936],_mm256_xor_si256(c2[4756],_mm256_xor_si256(c2[1175],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1353],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[4254],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[4255],_mm256_xor_si256(c2[4433],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4434],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[2634],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[1212],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[3730],_mm256_xor_si256(c2[4091],_mm256_xor_si256(c2[3911],_mm256_xor_si256(c2[5166],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[3571],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[1052],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[710],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[3768],c2[3588]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[234]=simde_mm256_xor_si256(c2[1263],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[4143],simde_mm256_xor_si256(c2[3963],simde_mm256_xor_si256(c2[4144],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[547],simde_mm256_xor_si256(c2[5421],simde_mm256_xor_si256(c2[5241],simde_mm256_xor_si256(c2[5422],simde_mm256_xor_si256(c2[2364],simde_mm256_xor_si256(c2[2545],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[5245],simde_mm256_xor_si256(c2[5065],simde_mm256_xor_si256(c2[4540],simde_mm256_xor_si256(c2[4360],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[5082],simde_mm256_xor_si256(c2[5443],simde_mm256_xor_si256(c2[5263],simde_mm256_xor_si256(c2[2560],simde_mm256_xor_si256(c2[1318],simde_mm256_xor_si256(c2[1138],simde_mm256_xor_si256(c2[1319],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[5639],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[2238],simde_mm256_xor_si256(c2[2058],simde_mm256_xor_si256(c2[2239],simde_mm256_xor_si256(c2[3138],simde_mm256_xor_si256(c2[3319],simde_mm256_xor_si256(c2[4575],simde_mm256_xor_si256(c2[4936],simde_mm256_xor_si256(c2[4756],simde_mm256_xor_si256(c2[1175],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[1353],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[4254],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[4255],simde_mm256_xor_si256(c2[4433],simde_mm256_xor_si256(c2[4253],simde_mm256_xor_si256(c2[4434],simde_mm256_xor_si256(c2[2273],simde_mm256_xor_si256(c2[2634],simde_mm256_xor_si256(c2[2454],simde_mm256_xor_si256(c2[1212],simde_mm256_xor_si256(c2[1032],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[3730],simde_mm256_xor_si256(c2[4091],simde_mm256_xor_si256(c2[3911],simde_mm256_xor_si256(c2[5166],simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[1589],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[3571],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[1052],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[4126],simde_mm256_xor_si256(c2[3946],simde_mm256_xor_si256(c2[4127],simde_mm256_xor_si256(c2[3407],simde_mm256_xor_si256(c2[3768],c2[3588]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[243]=_mm256_xor_si256(c2[2340],c2[1908]); + d2[243]=simde_mm256_xor_si256(c2[2340],c2[1908]); //row: 28 - d2[252]=_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[2378],c2[2071])); + d2[252]=simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[2378],c2[2071])); //row: 29 - d2[261]=_mm256_xor_si256(c2[904],c2[4572]); + d2[261]=simde_mm256_xor_si256(c2[904],c2[4572]); //row: 30 - d2[270]=_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[4411],_mm256_xor_si256(c2[1569],c2[1244]))); + d2[270]=simde_mm256_xor_si256(c2[4178],simde_mm256_xor_si256(c2[4411],simde_mm256_xor_si256(c2[1569],c2[1244]))); //row: 31 - d2[279]=_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[5224],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[2900],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[584],_mm256_xor_si256(c2[2399],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[2794],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[5514],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[4991],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[4651],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[5207],_mm256_xor_si256(c2[4848],c2[4668]))))))))))))))))))))))))))))))))))); + d2[279]=simde_mm256_xor_si256(c2[2344],simde_mm256_xor_si256(c2[5224],simde_mm256_xor_si256(c2[1627],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[3625],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[2900],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[584],simde_mm256_xor_si256(c2[2399],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[1141],simde_mm256_xor_si256(c2[3319],simde_mm256_xor_si256(c2[4399],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[2256],simde_mm256_xor_si256(c2[2794],simde_mm256_xor_si256(c2[2614],simde_mm256_xor_si256(c2[5335],simde_mm256_xor_si256(c2[5514],simde_mm256_xor_si256(c2[3714],simde_mm256_xor_si256(c2[3534],simde_mm256_xor_si256(c2[2293],simde_mm256_xor_si256(c2[5171],simde_mm256_xor_si256(c2[4991],simde_mm256_xor_si256(c2[2850],simde_mm256_xor_si256(c2[4651],simde_mm256_xor_si256(c2[2132],simde_mm256_xor_si256(c2[1952],simde_mm256_xor_si256(c2[1790],simde_mm256_xor_si256(c2[5207],simde_mm256_xor_si256(c2[4848],c2[4668]))))))))))))))))))))))))))))))))))); //row: 32 - d2[288]=_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[5079],_mm256_xor_si256(c2[4899],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1857],_mm256_xor_si256(c2[1677],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[3677],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[1751],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[4269],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[3929],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[4485],c2[3946])))))))))))))))))))))))))))))))))))))))))); + d2[288]=simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[4502],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[5423],simde_mm256_xor_si256(c2[5079],simde_mm256_xor_si256(c2[4899],simde_mm256_xor_si256(c2[5621],simde_mm256_xor_si256(c2[1857],simde_mm256_xor_si256(c2[1677],simde_mm256_xor_si256(c2[959],simde_mm256_xor_si256(c2[779],simde_mm256_xor_si256(c2[419],simde_mm256_xor_si256(c2[2777],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[3677],simde_mm256_xor_si256(c2[5114],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[1534],simde_mm256_xor_si256(c2[1892],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[4613],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[4792],simde_mm256_xor_si256(c2[2812],simde_mm256_xor_si256(c2[1751],simde_mm256_xor_si256(c2[1571],simde_mm256_xor_si256(c2[4269],simde_mm256_xor_si256(c2[2308],simde_mm256_xor_si256(c2[2128],simde_mm256_xor_si256(c2[3929],simde_mm256_xor_si256(c2[1230],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[4665],simde_mm256_xor_si256(c2[4485],c2[3946])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[297]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[3997],_mm256_xor_si256(c2[4719],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[5636],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[4212],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[990],_mm256_xor_si256(c2[3711],_mm256_xor_si256(c2[3890],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[669],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[3583],c2[3044])))))))))))))))))))))))))))); + d2[297]=simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[3],simde_mm256_xor_si256(c2[4878],simde_mm256_xor_si256(c2[2001],simde_mm256_xor_si256(c2[4521],simde_mm256_xor_si256(c2[3997],simde_mm256_xor_si256(c2[4719],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[5636],simde_mm256_xor_si256(c2[5276],simde_mm256_xor_si256(c2[1695],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[4212],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[990],simde_mm256_xor_si256(c2[3711],simde_mm256_xor_si256(c2[3890],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[669],simde_mm256_xor_si256(c2[3367],simde_mm256_xor_si256(c2[1206],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[3027],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[3583],c2[3044])))))))))))))))))))))))))))); //row: 34 - d2[306]=_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[4860],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[1981],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[3439],_mm256_xor_si256(c2[3259],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[2902],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[1645],_mm256_xor_si256(c2[2558],_mm256_xor_si256(c2[2378],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[5095],_mm256_xor_si256(c2[4915],_mm256_xor_si256(c2[3658],_mm256_xor_si256(c2[4197],_mm256_xor_si256(c2[4017],_mm256_xor_si256(c2[2760],_mm256_xor_si256(c2[3657],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[5658],_mm256_xor_si256(c2[2593],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1336],_mm256_xor_si256(c2[4952],_mm256_xor_si256(c2[4772],_mm256_xor_si256(c2[3515],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[4053],_mm256_xor_si256(c2[3873],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[835],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[4809],_mm256_xor_si256(c2[3552],_mm256_xor_si256(c2[1748],_mm256_xor_si256(c2[671],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[4109],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[3211],_mm256_xor_si256(c2[4486],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[3049],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[707],_mm256_xor_si256(c2[1425],_mm256_xor_si256(c2[348],c2[168])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[306]=simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[4860],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[2161],simde_mm256_xor_si256(c2[1981],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[4143],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[3439],simde_mm256_xor_si256(c2[3259],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[2902],simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[1645],simde_mm256_xor_si256(c2[2558],simde_mm256_xor_si256(c2[2378],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[2023],simde_mm256_xor_si256(c2[1843],simde_mm256_xor_si256(c2[5095],simde_mm256_xor_si256(c2[4915],simde_mm256_xor_si256(c2[3658],simde_mm256_xor_si256(c2[4197],simde_mm256_xor_si256(c2[4017],simde_mm256_xor_si256(c2[2760],simde_mm256_xor_si256(c2[3657],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[4578],simde_mm256_xor_si256(c2[1156],simde_mm256_xor_si256(c2[5658],simde_mm256_xor_si256(c2[2593],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[1336],simde_mm256_xor_si256(c2[4952],simde_mm256_xor_si256(c2[4772],simde_mm256_xor_si256(c2[3515],simde_mm256_xor_si256(c2[5130],simde_mm256_xor_si256(c2[4053],simde_mm256_xor_si256(c2[3873],simde_mm256_xor_si256(c2[2272],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[835],simde_mm256_xor_si256(c2[2451],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[4793],simde_mm256_xor_si256(c2[4989],simde_mm256_xor_si256(c2[4809],simde_mm256_xor_si256(c2[3552],simde_mm256_xor_si256(c2[1748],simde_mm256_xor_si256(c2[671],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[5546],simde_mm256_xor_si256(c2[5366],simde_mm256_xor_si256(c2[4109],simde_mm256_xor_si256(c2[1408],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[4468],simde_mm256_xor_si256(c2[3391],simde_mm256_xor_si256(c2[3211],simde_mm256_xor_si256(c2[4486],simde_mm256_xor_si256(c2[4306],simde_mm256_xor_si256(c2[3049],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[707],simde_mm256_xor_si256(c2[1425],simde_mm256_xor_si256(c2[348],c2[168])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[315]=_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[5582],_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[4865],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3981],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3822],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[5637],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[4379],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[1878],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[5494],_mm256_xor_si256(c2[93],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[5531],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[5208],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[2686],c2[2147])))))))))))))))))))))))))))))))))); + d2[315]=simde_mm256_xor_si256(c2[3],simde_mm256_xor_si256(c2[5582],simde_mm256_xor_si256(c2[2703],simde_mm256_xor_si256(c2[4865],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[3981],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[3624],simde_mm256_xor_si256(c2[5059],simde_mm256_xor_si256(c2[3280],simde_mm256_xor_si256(c2[3100],simde_mm256_xor_si256(c2[3822],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[5637],simde_mm256_xor_si256(c2[4739],simde_mm256_xor_si256(c2[4379],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[3315],simde_mm256_xor_si256(c2[5494],simde_mm256_xor_si256(c2[93],simde_mm256_xor_si256(c2[1714],simde_mm256_xor_si256(c2[2994],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[2993],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[5531],simde_mm256_xor_si256(c2[2470],simde_mm256_xor_si256(c2[329],simde_mm256_xor_si256(c2[2130],simde_mm256_xor_si256(c2[5190],simde_mm256_xor_si256(c2[5208],simde_mm256_xor_si256(c2[5028],simde_mm256_xor_si256(c2[2686],c2[2147])))))))))))))))))))))))))))))))))); //row: 36 - d2[324]=_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[220],c2[4806])); + d2[324]=simde_mm256_xor_si256(c2[4503],simde_mm256_xor_si256(c2[220],c2[4806])); //row: 37 - d2[333]=_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[5585],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[4701],_mm256_xor_si256(c2[3080],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[2723],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[2199],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[2921],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[4736],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[3838],_mm256_xor_si256(c2[5099],_mm256_xor_si256(c2[3478],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[5656],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[455],_mm256_xor_si256(c2[4593],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[5131],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[4630],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[4469],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[1785],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[1426],c2[1246]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[333]=simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[4681],simde_mm256_xor_si256(c2[3423],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[5585],simde_mm256_xor_si256(c2[3964],simde_mm256_xor_si256(c2[4701],simde_mm256_xor_si256(c2[3080],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[4344],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[2723],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[2199],simde_mm256_xor_si256(c2[4542],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[2921],simde_mm256_xor_si256(c2[598],simde_mm256_xor_si256(c2[4736],simde_mm256_xor_si256(c2[5459],simde_mm256_xor_si256(c2[3838],simde_mm256_xor_si256(c2[5099],simde_mm256_xor_si256(c2[3478],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[5656],simde_mm256_xor_si256(c2[2598],simde_mm256_xor_si256(c2[977],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[2594],simde_mm256_xor_si256(c2[2414],simde_mm256_xor_si256(c2[455],simde_mm256_xor_si256(c2[4593],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[5131],simde_mm256_xor_si256(c2[4951],simde_mm256_xor_si256(c2[3534],simde_mm256_xor_si256(c2[1913],simde_mm256_xor_si256(c2[3713],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[1733],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[4630],simde_mm256_xor_si256(c2[3190],simde_mm256_xor_si256(c2[1749],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[1049],simde_mm256_xor_si256(c2[5187],simde_mm256_xor_si256(c2[2850],simde_mm256_xor_si256(c2[1229],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[4469],simde_mm256_xor_si256(c2[4289],simde_mm256_xor_si256(c2[5748],simde_mm256_xor_si256(c2[4127],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[1785],simde_mm256_xor_si256(c2[2867],simde_mm256_xor_si256(c2[1426],c2[1246]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[342]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[5582],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[4698],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[3997],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[5096],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[4032],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[3711],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[3187],_mm256_xor_si256(c2[1046],_mm256_xor_si256(c2[2847],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[3403],c2[2864])))))))))))))))))))))))))))))))))); + d2[342]=simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[3420],simde_mm256_xor_si256(c2[5582],simde_mm256_xor_si256(c2[4878],simde_mm256_xor_si256(c2[4698],simde_mm256_xor_si256(c2[1821],simde_mm256_xor_si256(c2[4341],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[3997],simde_mm256_xor_si256(c2[3817],simde_mm256_xor_si256(c2[4539],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[5096],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[2595],simde_mm256_xor_si256(c2[4032],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[3711],simde_mm256_xor_si256(c2[3531],simde_mm256_xor_si256(c2[3710],simde_mm256_xor_si256(c2[1730],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[3187],simde_mm256_xor_si256(c2[1046],simde_mm256_xor_si256(c2[2847],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[3403],c2[2864])))))))))))))))))))))))))))))))))); //row: 39 - d2[351]=_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[2167],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[582],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[3119],_mm256_xor_si256(c2[2939],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[1681],_mm256_xor_si256(c2[4039],_mm256_xor_si256(c2[3859],_mm256_xor_si256(c2[4939],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[475],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[5531],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[5191],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[2510],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[5747],c2[5208])))))))))))))))))))))))))))))))))))))))))); + d2[351]=simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[2167],simde_mm256_xor_si256(c2[4143],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[4165],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[582],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[3119],simde_mm256_xor_si256(c2[2939],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[1681],simde_mm256_xor_si256(c2[4039],simde_mm256_xor_si256(c2[3859],simde_mm256_xor_si256(c2[4939],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[2976],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[3154],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[4074],simde_mm256_xor_si256(c2[3013],simde_mm256_xor_si256(c2[2833],simde_mm256_xor_si256(c2[5531],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[3570],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[5191],simde_mm256_xor_si256(c2[2492],simde_mm256_xor_si256(c2[2510],simde_mm256_xor_si256(c2[2330],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[5747],c2[5208])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[360]=_mm256_xor_si256(c2[1982],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[4323],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[3263],_mm256_xor_si256(c2[2724],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[5244],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[5622],_mm256_xor_si256(c2[5442],_mm256_xor_si256(c2[1116],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[3498],_mm256_xor_si256(c2[5474],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[4935],_mm256_xor_si256(c2[1894],_mm256_xor_si256(c2[1355],_mm256_xor_si256(c2[2252],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[4434],_mm256_xor_si256(c2[5152],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[3172],_mm256_xor_si256(c2[2813],_mm256_xor_si256(c2[2633],_mm256_xor_si256(c2[1931],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[4270],_mm256_xor_si256(c2[4090],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[1949],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[3947],c2[3767])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[360]=simde_mm256_xor_si256(c2[1982],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[4862],simde_mm256_xor_si256(c2[4323],simde_mm256_xor_si256(c2[1265],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[5601],simde_mm256_xor_si256(c2[3263],simde_mm256_xor_si256(c2[2724],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[5424],simde_mm256_xor_si256(c2[5244],simde_mm256_xor_si256(c2[5259],simde_mm256_xor_si256(c2[4720],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[5622],simde_mm256_xor_si256(c2[5442],simde_mm256_xor_si256(c2[1116],simde_mm256_xor_si256(c2[2037],simde_mm256_xor_si256(c2[1498],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[779],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[2957],simde_mm256_xor_si256(c2[2418],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[3498],simde_mm256_xor_si256(c2[5474],simde_mm256_xor_si256(c2[5115],simde_mm256_xor_si256(c2[4935],simde_mm256_xor_si256(c2[1894],simde_mm256_xor_si256(c2[1355],simde_mm256_xor_si256(c2[2252],simde_mm256_xor_si256(c2[1893],simde_mm256_xor_si256(c2[1713],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[4434],simde_mm256_xor_si256(c2[5152],simde_mm256_xor_si256(c2[4613],simde_mm256_xor_si256(c2[3172],simde_mm256_xor_si256(c2[2813],simde_mm256_xor_si256(c2[2633],simde_mm256_xor_si256(c2[1931],simde_mm256_xor_si256(c2[1392],simde_mm256_xor_si256(c2[4629],simde_mm256_xor_si256(c2[4270],simde_mm256_xor_si256(c2[4090],simde_mm256_xor_si256(c2[2488],simde_mm256_xor_si256(c2[1949],simde_mm256_xor_si256(c2[4289],simde_mm256_xor_si256(c2[3750],simde_mm256_xor_si256(c2[1590],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[1051],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[4845],simde_mm256_xor_si256(c2[4306],simde_mm256_xor_si256(c2[4306],simde_mm256_xor_si256(c2[3947],c2[3767])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[369]=_mm256_xor_si256(c2[3960],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[2359],_mm256_xor_si256(c2[2179],_mm256_xor_si256(c2[5061],_mm256_xor_si256(c2[1822],_mm256_xor_si256(c2[2899],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1298],_mm256_xor_si256(c2[2020],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[3835],_mm256_xor_si256(c2[2937],_mm256_xor_si256(c2[2577],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[3692],_mm256_xor_si256(c2[4050],_mm256_xor_si256(c2[2791],_mm256_xor_si256(c2[1192],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[4970],_mm256_xor_si256(c2[3729],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[884],c2[345])))))))))))))))))))))))))))))))))); + d2[369]=simde_mm256_xor_si256(c2[3960],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[2359],simde_mm256_xor_si256(c2[2179],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[1822],simde_mm256_xor_si256(c2[2899],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[2020],simde_mm256_xor_si256(c2[4015],simde_mm256_xor_si256(c2[3835],simde_mm256_xor_si256(c2[2937],simde_mm256_xor_si256(c2[2577],simde_mm256_xor_si256(c2[4755],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[3692],simde_mm256_xor_si256(c2[4050],simde_mm256_xor_si256(c2[2791],simde_mm256_xor_si256(c2[1192],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[1191],simde_mm256_xor_si256(c2[4970],simde_mm256_xor_si256(c2[3729],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[4286],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[3226],simde_mm256_xor_si256(c2[884],c2[345])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc320_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc320_byte.c index d063f5a3bc..2fcdf136fc 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc320_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc320_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc320_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[6269],_mm256_xor_si256(c2[5463],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[6349],_mm256_xor_si256(c2[4941],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[4581],c2[2781])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[6209],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[6269],simde_mm256_xor_si256(c2[5463],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[6309],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[6349],simde_mm256_xor_si256(c2[4941],simde_mm256_xor_si256(c2[6369],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[4581],c2[2781])))))))))))))))))))))))))); //row: 1 - d2[10]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[6269],_mm256_xor_si256(c2[5463],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[6349],_mm256_xor_si256(c2[4941],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[4581],c2[2781])))))))))))))))))))))))))))))))); + d2[10]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[6209],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[6269],simde_mm256_xor_si256(c2[5463],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[6309],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[6349],simde_mm256_xor_si256(c2[4941],simde_mm256_xor_si256(c2[6369],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[4581],c2[2781])))))))))))))))))))))))))))))))); //row: 2 - d2[20]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[6269],_mm256_xor_si256(c2[5663],_mm256_xor_si256(c2[5463],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[4922],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[6349],_mm256_xor_si256(c2[4941],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[4781],_mm256_xor_si256(c2[4581],c2[2781])))))))))))))))))))))))))))))))))))))))); + d2[20]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[6209],simde_mm256_xor_si256(c2[1804],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[6269],simde_mm256_xor_si256(c2[5663],simde_mm256_xor_si256(c2[5463],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[6309],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[4922],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[6349],simde_mm256_xor_si256(c2[4941],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[6369],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[4781],simde_mm256_xor_si256(c2[4581],c2[2781])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[30]=_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[1221],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[6269],_mm256_xor_si256(c2[5463],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[3704],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[6349],_mm256_xor_si256(c2[5141],_mm256_xor_si256(c2[4941],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[2981],c2[2781])))))))))))))))))))))))))))))))))); + d2[30]=simde_mm256_xor_si256(c2[6209],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[1221],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[6269],simde_mm256_xor_si256(c2[5463],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[1283],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[6309],simde_mm256_xor_si256(c2[3704],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[6349],simde_mm256_xor_si256(c2[5141],simde_mm256_xor_si256(c2[4941],simde_mm256_xor_si256(c2[6369],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[2981],c2[2781])))))))))))))))))))))))))))))))))); //row: 4 - d2[40]=_mm256_xor_si256(c2[5804],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[5624],_mm256_xor_si256(c2[5227],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[1624],_mm256_xor_si256(c2[5844],_mm256_xor_si256(c2[5644],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[5864],_mm256_xor_si256(c2[5664],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[6267],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[488],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[5924],_mm256_xor_si256(c2[5724],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[1725],_mm256_xor_si256(c2[5744],_mm256_xor_si256(c2[4346],_mm256_xor_si256(c2[5764],_mm256_xor_si256(c2[1768],_mm256_xor_si256(c2[3566],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[5784],_mm256_xor_si256(c2[3986],c2[2186])))))))))))))))))))))))))))))))))); + d2[40]=simde_mm256_xor_si256(c2[5804],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[3205],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[5824],simde_mm256_xor_si256(c2[5624],simde_mm256_xor_si256(c2[5227],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[1624],simde_mm256_xor_si256(c2[5844],simde_mm256_xor_si256(c2[5644],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[5864],simde_mm256_xor_si256(c2[5664],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[6267],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[1085],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[5704],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[5924],simde_mm256_xor_si256(c2[5724],simde_mm256_xor_si256(c2[4127],simde_mm256_xor_si256(c2[1725],simde_mm256_xor_si256(c2[5744],simde_mm256_xor_si256(c2[4346],simde_mm256_xor_si256(c2[5764],simde_mm256_xor_si256(c2[1768],simde_mm256_xor_si256(c2[3566],simde_mm256_xor_si256(c2[5984],simde_mm256_xor_si256(c2[5784],simde_mm256_xor_si256(c2[3986],c2[2186])))))))))))))))))))))))))))))))))); //row: 5 - d2[50]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[6201],_mm256_xor_si256(c2[1606],_mm256_xor_si256(c2[3802],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[6221],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[1023],_mm256_xor_si256(c2[624],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[6241],_mm256_xor_si256(c2[2842],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[6261],_mm256_xor_si256(c2[5465],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[6281],_mm256_xor_si256(c2[1682],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[6321],_mm256_xor_si256(c2[4724],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[6341],_mm256_xor_si256(c2[4943],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[6361],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[6381],_mm256_xor_si256(c2[4583],c2[2783])))))))))))))))))))))))))))))))))))); + d2[50]=simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[6201],simde_mm256_xor_si256(c2[1606],simde_mm256_xor_si256(c2[3802],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[6221],simde_mm256_xor_si256(c2[5824],simde_mm256_xor_si256(c2[1023],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[6241],simde_mm256_xor_si256(c2[2842],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[6261],simde_mm256_xor_si256(c2[5465],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[6281],simde_mm256_xor_si256(c2[1682],simde_mm256_xor_si256(c2[1085],simde_mm256_xor_si256(c2[6301],simde_mm256_xor_si256(c2[3506],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[6321],simde_mm256_xor_si256(c2[4724],simde_mm256_xor_si256(c2[2322],simde_mm256_xor_si256(c2[6341],simde_mm256_xor_si256(c2[4943],simde_mm256_xor_si256(c2[2744],simde_mm256_xor_si256(c2[6361],simde_mm256_xor_si256(c2[2365],simde_mm256_xor_si256(c2[4163],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[6381],simde_mm256_xor_si256(c2[4583],c2[2783])))))))))))))))))))))))))))))))))))); //row: 6 - d2[60]=_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[3804],_mm256_xor_si256(c2[5608],_mm256_xor_si256(c2[1405],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[3427],_mm256_xor_si256(c2[5025],_mm256_xor_si256(c2[4044],_mm256_xor_si256(c2[3844],_mm256_xor_si256(c2[445],_mm256_xor_si256(c2[4064],_mm256_xor_si256(c2[3864],_mm256_xor_si256(c2[3068],_mm256_xor_si256(c2[4467],_mm256_xor_si256(c2[3884],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[5087],_mm256_xor_si256(c2[3904],_mm256_xor_si256(c2[1109],_mm256_xor_si256(c2[5703],_mm256_xor_si256(c2[4124],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[2327],_mm256_xor_si256(c2[6324],_mm256_xor_si256(c2[3944],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[6367],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[4184],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[2186],_mm256_xor_si256(c2[386],c2[2781])))))))))))))))))))))))))))))))))))); + d2[60]=simde_mm256_xor_si256(c2[4004],simde_mm256_xor_si256(c2[3804],simde_mm256_xor_si256(c2[5608],simde_mm256_xor_si256(c2[1405],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[3824],simde_mm256_xor_si256(c2[3427],simde_mm256_xor_si256(c2[5025],simde_mm256_xor_si256(c2[4044],simde_mm256_xor_si256(c2[3844],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[4064],simde_mm256_xor_si256(c2[3864],simde_mm256_xor_si256(c2[3068],simde_mm256_xor_si256(c2[4467],simde_mm256_xor_si256(c2[3884],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[5087],simde_mm256_xor_si256(c2[3904],simde_mm256_xor_si256(c2[1109],simde_mm256_xor_si256(c2[5703],simde_mm256_xor_si256(c2[4124],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[2327],simde_mm256_xor_si256(c2[6324],simde_mm256_xor_si256(c2[3944],simde_mm256_xor_si256(c2[2546],simde_mm256_xor_si256(c2[743],simde_mm256_xor_si256(c2[3964],simde_mm256_xor_si256(c2[6367],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[4184],simde_mm256_xor_si256(c2[3984],simde_mm256_xor_si256(c2[2186],simde_mm256_xor_si256(c2[386],c2[2781])))))))))))))))))))))))))))))))))))); //row: 7 - d2[70]=_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[2602],_mm256_xor_si256(c2[1607],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[3803],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[23],_mm256_xor_si256(c2[6222],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[5825],_mm256_xor_si256(c2[2225],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[3823],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[6242],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[5842],_mm256_xor_si256(c2[5642],_mm256_xor_si256(c2[63],_mm256_xor_si256(c2[6262],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[5466],_mm256_xor_si256(c2[1866],_mm256_xor_si256(c2[466],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[6282],_mm256_xor_si256(c2[2682],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[4482],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[4085],_mm256_xor_si256(c2[3885],_mm256_xor_si256(c2[6302],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[3507],_mm256_xor_si256(c2[107],_mm256_xor_si256(c2[6306],_mm256_xor_si256(c2[2701],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[6322],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[5322],_mm256_xor_si256(c2[5122],_mm256_xor_si256(c2[6342],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[4944],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[6362],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[5165],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[6382],_mm256_xor_si256(c2[2782],_mm256_xor_si256(c2[4584],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[5783],c2[5583])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[70]=simde_mm256_xor_si256(c2[3],simde_mm256_xor_si256(c2[6202],simde_mm256_xor_si256(c2[2602],simde_mm256_xor_si256(c2[1607],simde_mm256_xor_si256(c2[4406],simde_mm256_xor_si256(c2[3803],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[23],simde_mm256_xor_si256(c2[6222],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[5825],simde_mm256_xor_si256(c2[2225],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[4023],simde_mm256_xor_si256(c2[3823],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[6242],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[2843],simde_mm256_xor_si256(c2[5842],simde_mm256_xor_si256(c2[5642],simde_mm256_xor_si256(c2[63],simde_mm256_xor_si256(c2[6262],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[5466],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[466],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[6282],simde_mm256_xor_si256(c2[2682],simde_mm256_xor_si256(c2[1683],simde_mm256_xor_si256(c2[4482],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[4085],simde_mm256_xor_si256(c2[3885],simde_mm256_xor_si256(c2[6302],simde_mm256_xor_si256(c2[2702],simde_mm256_xor_si256(c2[3507],simde_mm256_xor_si256(c2[107],simde_mm256_xor_si256(c2[6306],simde_mm256_xor_si256(c2[2701],simde_mm256_xor_si256(c2[123],simde_mm256_xor_si256(c2[6322],simde_mm256_xor_si256(c2[2722],simde_mm256_xor_si256(c2[4725],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[2323],simde_mm256_xor_si256(c2[5322],simde_mm256_xor_si256(c2[5122],simde_mm256_xor_si256(c2[6342],simde_mm256_xor_si256(c2[2742],simde_mm256_xor_si256(c2[4944],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[4144],simde_mm256_xor_si256(c2[6362],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[2366],simde_mm256_xor_si256(c2[5165],simde_mm256_xor_si256(c2[4164],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[6382],simde_mm256_xor_si256(c2[2782],simde_mm256_xor_si256(c2[4584],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[2784],simde_mm256_xor_si256(c2[5783],c2[5583])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[80]=_mm256_xor_si256(c2[4602],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[2003],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4622],_mm256_xor_si256(c2[4422],_mm256_xor_si256(c2[4025],_mm256_xor_si256(c2[5623],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[4642],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[4662],_mm256_xor_si256(c2[4462],_mm256_xor_si256(c2[3866],_mm256_xor_si256(c2[3666],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[4482],_mm256_xor_si256(c2[6282],_mm256_xor_si256(c2[5685],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[1707],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[2925],_mm256_xor_si256(c2[523],_mm256_xor_si256(c2[4742],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[4782],_mm256_xor_si256(c2[4582],_mm256_xor_si256(c2[2984],_mm256_xor_si256(c2[2784],c2[984])))))))))))))))))))))))))))))))))))))))))); + d2[80]=simde_mm256_xor_si256(c2[4602],simde_mm256_xor_si256(c2[4402],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[6206],simde_mm256_xor_si256(c2[2003],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[4622],simde_mm256_xor_si256(c2[4422],simde_mm256_xor_si256(c2[4025],simde_mm256_xor_si256(c2[5623],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[4642],simde_mm256_xor_si256(c2[4442],simde_mm256_xor_si256(c2[1043],simde_mm256_xor_si256(c2[4662],simde_mm256_xor_si256(c2[4462],simde_mm256_xor_si256(c2[3866],simde_mm256_xor_si256(c2[3666],simde_mm256_xor_si256(c2[5065],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[4482],simde_mm256_xor_si256(c2[6282],simde_mm256_xor_si256(c2[5685],simde_mm256_xor_si256(c2[4702],simde_mm256_xor_si256(c2[4502],simde_mm256_xor_si256(c2[1707],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[4522],simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[2925],simde_mm256_xor_si256(c2[523],simde_mm256_xor_si256(c2[4742],simde_mm256_xor_si256(c2[4542],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[4762],simde_mm256_xor_si256(c2[4562],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[2364],simde_mm256_xor_si256(c2[4782],simde_mm256_xor_si256(c2[4582],simde_mm256_xor_si256(c2[2984],simde_mm256_xor_si256(c2[2784],c2[984])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[90]=_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[4202],_mm256_xor_si256(c2[4002],_mm256_xor_si256(c2[5405],_mm256_xor_si256(c2[5806],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[4222],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[3224],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[4822],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[4242],_mm256_xor_si256(c2[4042],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[3661],_mm256_xor_si256(c2[4262],_mm256_xor_si256(c2[4062],_mm256_xor_si256(c2[2865],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[4264],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[4082],_mm256_xor_si256(c2[5481],_mm256_xor_si256(c2[5882],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[1307],_mm256_xor_si256(c2[3721],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4122],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[2525],_mm256_xor_si256(c2[6121],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[3741],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[3761],_mm256_xor_si256(c2[4162],_mm256_xor_si256(c2[6164],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[4382],_mm256_xor_si256(c2[4182],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[2384],_mm256_xor_si256(c2[183],c2[584]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[90]=simde_mm256_xor_si256(c2[3601],simde_mm256_xor_si256(c2[4202],simde_mm256_xor_si256(c2[4002],simde_mm256_xor_si256(c2[5405],simde_mm256_xor_si256(c2[5806],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[3621],simde_mm256_xor_si256(c2[4222],simde_mm256_xor_si256(c2[4022],simde_mm256_xor_si256(c2[3224],simde_mm256_xor_si256(c2[3625],simde_mm256_xor_si256(c2[4822],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[4242],simde_mm256_xor_si256(c2[4042],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[3661],simde_mm256_xor_si256(c2[4262],simde_mm256_xor_si256(c2[4062],simde_mm256_xor_si256(c2[2865],simde_mm256_xor_si256(c2[3266],simde_mm256_xor_si256(c2[4264],simde_mm256_xor_si256(c2[4665],simde_mm256_xor_si256(c2[3681],simde_mm256_xor_si256(c2[4082],simde_mm256_xor_si256(c2[5481],simde_mm256_xor_si256(c2[5882],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[4102],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[1307],simde_mm256_xor_si256(c2[3721],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4122],simde_mm256_xor_si256(c2[2124],simde_mm256_xor_si256(c2[2525],simde_mm256_xor_si256(c2[6121],simde_mm256_xor_si256(c2[123],simde_mm256_xor_si256(c2[3741],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[2343],simde_mm256_xor_si256(c2[2744],simde_mm256_xor_si256(c2[3761],simde_mm256_xor_si256(c2[4162],simde_mm256_xor_si256(c2[6164],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[3781],simde_mm256_xor_si256(c2[4382],simde_mm256_xor_si256(c2[4182],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[2384],simde_mm256_xor_si256(c2[183],c2[584]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[100]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[5724],c2[4140]))); + d2[100]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3420],simde_mm256_xor_si256(c2[5724],c2[4140]))); //row: 11 - d2[110]=_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[6222],_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[3440],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[5863],_mm256_xor_si256(c2[863],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[1483],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[3904],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[5122],_mm256_xor_si256(c2[2920],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[5541],_mm256_xor_si256(c2[5341],_mm256_xor_si256(c2[1540],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[2763],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[4981],_mm256_xor_si256(c2[3381],_mm256_xor_si256(c2[3181],c2[980]))))))))))))))))))))))))))))))))))))); + d2[110]=simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[4200],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[6222],simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[1421],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[3440],simde_mm256_xor_si256(c2[3240],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[5863],simde_mm256_xor_si256(c2[863],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[2080],simde_mm256_xor_si256(c2[1683],simde_mm256_xor_si256(c2[1483],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[4104],simde_mm256_xor_si256(c2[3904],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[5122],simde_mm256_xor_si256(c2[2920],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[5541],simde_mm256_xor_si256(c2[5341],simde_mm256_xor_si256(c2[1540],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[2763],simde_mm256_xor_si256(c2[4761],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[4981],simde_mm256_xor_si256(c2[3381],simde_mm256_xor_si256(c2[3181],c2[980]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[120]=_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[3021],_mm256_xor_si256(c2[2624],_mm256_xor_si256(c2[4222],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3241],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[3061],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[3463],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[4284],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[3321],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[5521],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[1743],_mm256_xor_si256(c2[3161],_mm256_xor_si256(c2[5564],_mm256_xor_si256(c2[963],_mm256_xor_si256(c2[3381],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[1383],c2[5982])))))))))))))))))))))))))))))))))); + d2[120]=simde_mm256_xor_si256(c2[3201],simde_mm256_xor_si256(c2[3001],simde_mm256_xor_si256(c2[4805],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[3021],simde_mm256_xor_si256(c2[2624],simde_mm256_xor_si256(c2[4222],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3241],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[6041],simde_mm256_xor_si256(c2[3261],simde_mm256_xor_si256(c2[3061],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[3664],simde_mm256_xor_si256(c2[3463],simde_mm256_xor_si256(c2[3081],simde_mm256_xor_si256(c2[4881],simde_mm256_xor_si256(c2[4284],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[3321],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[5521],simde_mm256_xor_si256(c2[3141],simde_mm256_xor_si256(c2[1743],simde_mm256_xor_si256(c2[3161],simde_mm256_xor_si256(c2[5564],simde_mm256_xor_si256(c2[963],simde_mm256_xor_si256(c2[3381],simde_mm256_xor_si256(c2[3181],simde_mm256_xor_si256(c2[1383],c2[5982])))))))))))))))))))))))))))))))))); //row: 13 - d2[130]=_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[2601],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[5020],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[6221],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[5060],_mm256_xor_si256(c2[4264],_mm256_xor_si256(c2[5663],_mm256_xor_si256(c2[5080],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[6283],_mm256_xor_si256(c2[5100],_mm256_xor_si256(c2[2505],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[5120],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[3742],_mm256_xor_si256(c2[5160],_mm256_xor_si256(c2[1164],_mm256_xor_si256(c2[3162],_mm256_xor_si256(c2[2962],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[5180],_mm256_xor_si256(c2[3382],_mm256_xor_si256(c2[1782],c2[1582]))))))))))))))))))))))))))))))))))))); + d2[130]=simde_mm256_xor_si256(c2[5000],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[2601],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[5020],simde_mm256_xor_si256(c2[4623],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[6221],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[5040],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[1641],simde_mm256_xor_si256(c2[5060],simde_mm256_xor_si256(c2[4264],simde_mm256_xor_si256(c2[5663],simde_mm256_xor_si256(c2[5080],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[6283],simde_mm256_xor_si256(c2[5100],simde_mm256_xor_si256(c2[2505],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[5120],simde_mm256_xor_si256(c2[3523],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[1121],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[3742],simde_mm256_xor_si256(c2[5160],simde_mm256_xor_si256(c2[1164],simde_mm256_xor_si256(c2[3162],simde_mm256_xor_si256(c2[2962],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[5180],simde_mm256_xor_si256(c2[3382],simde_mm256_xor_si256(c2[1782],c2[1582]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[140]=_mm256_xor_si256(c2[5001],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2801],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[4821],_mm256_xor_si256(c2[5220],_mm256_xor_si256(c2[4424],_mm256_xor_si256(c2[4823],_mm256_xor_si256(c2[6022],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[4841],_mm256_xor_si256(c2[5240],_mm256_xor_si256(c2[1442],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[5061],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[5260],_mm256_xor_si256(c2[4065],_mm256_xor_si256(c2[4464],_mm256_xor_si256(c2[5464],_mm256_xor_si256(c2[5863],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[681],_mm256_xor_si256(c2[6084],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[4901],_mm256_xor_si256(c2[5300],_mm256_xor_si256(c2[2106],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[2505],_mm256_xor_si256(c2[5121],_mm256_xor_si256(c2[4921],_mm256_xor_si256(c2[5320],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[3723],_mm256_xor_si256(c2[922],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[4941],_mm256_xor_si256(c2[5340],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[1364],_mm256_xor_si256(c2[2763],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[3162],_mm256_xor_si256(c2[5181],_mm256_xor_si256(c2[4981],_mm256_xor_si256(c2[5380],_mm256_xor_si256(c2[3183],_mm256_xor_si256(c2[3582],_mm256_xor_si256(c2[1383],_mm256_xor_si256(c2[1982],c2[1782]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[140]=simde_mm256_xor_si256(c2[5001],simde_mm256_xor_si256(c2[4801],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[2801],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[4821],simde_mm256_xor_si256(c2[5220],simde_mm256_xor_si256(c2[4424],simde_mm256_xor_si256(c2[4823],simde_mm256_xor_si256(c2[6022],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[4841],simde_mm256_xor_si256(c2[5240],simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[2041],simde_mm256_xor_si256(c2[1841],simde_mm256_xor_si256(c2[5061],simde_mm256_xor_si256(c2[4861],simde_mm256_xor_si256(c2[5260],simde_mm256_xor_si256(c2[4065],simde_mm256_xor_si256(c2[4464],simde_mm256_xor_si256(c2[5464],simde_mm256_xor_si256(c2[5863],simde_mm256_xor_si256(c2[4881],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[681],simde_mm256_xor_si256(c2[6084],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[4901],simde_mm256_xor_si256(c2[5300],simde_mm256_xor_si256(c2[2106],simde_mm256_xor_si256(c2[2705],simde_mm256_xor_si256(c2[2505],simde_mm256_xor_si256(c2[5121],simde_mm256_xor_si256(c2[4921],simde_mm256_xor_si256(c2[5320],simde_mm256_xor_si256(c2[3324],simde_mm256_xor_si256(c2[3723],simde_mm256_xor_si256(c2[922],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[2124],simde_mm256_xor_si256(c2[4941],simde_mm256_xor_si256(c2[5340],simde_mm256_xor_si256(c2[3543],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[4961],simde_mm256_xor_si256(c2[5360],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[1364],simde_mm256_xor_si256(c2[2763],simde_mm256_xor_si256(c2[3362],simde_mm256_xor_si256(c2[3162],simde_mm256_xor_si256(c2[5181],simde_mm256_xor_si256(c2[4981],simde_mm256_xor_si256(c2[5380],simde_mm256_xor_si256(c2[3183],simde_mm256_xor_si256(c2[3582],simde_mm256_xor_si256(c2[1383],simde_mm256_xor_si256(c2[1982],c2[1782]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[150]=_mm256_xor_si256(c2[1602],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[5602],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[623],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[1225],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[2823],_mm256_xor_si256(c2[1624],_mm256_xor_si256(c2[1642],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[443],_mm256_xor_si256(c2[4642],_mm256_xor_si256(c2[3443],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[663],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[6066],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[1066],_mm256_xor_si256(c2[1682],_mm256_xor_si256(c2[483],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[2885],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[1702],_mm256_xor_si256(c2[503],_mm256_xor_si256(c2[5306],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[523],_mm256_xor_si256(c2[125],_mm256_xor_si256(c2[5325],_mm256_xor_si256(c2[4122],_mm256_xor_si256(c2[2923],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[5544],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[5963],_mm256_xor_si256(c2[4764],_mm256_xor_si256(c2[1782],_mm256_xor_si256(c2[783],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[6383],_mm256_xor_si256(c2[5184],_mm256_xor_si256(c2[4583],c2[3384])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[150]=simde_mm256_xor_si256(c2[1602],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[3406],simde_mm256_xor_si256(c2[2207],simde_mm256_xor_si256(c2[5602],simde_mm256_xor_si256(c2[4403],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[623],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[1225],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[2823],simde_mm256_xor_si256(c2[1624],simde_mm256_xor_si256(c2[1642],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[443],simde_mm256_xor_si256(c2[4642],simde_mm256_xor_si256(c2[3443],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[663],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[6066],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[1066],simde_mm256_xor_si256(c2[1682],simde_mm256_xor_si256(c2[483],simde_mm256_xor_si256(c2[3482],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[2885],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1702],simde_mm256_xor_si256(c2[503],simde_mm256_xor_si256(c2[5306],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[1722],simde_mm256_xor_si256(c2[723],simde_mm256_xor_si256(c2[523],simde_mm256_xor_si256(c2[125],simde_mm256_xor_si256(c2[5325],simde_mm256_xor_si256(c2[4122],simde_mm256_xor_si256(c2[2923],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[543],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[5544],simde_mm256_xor_si256(c2[1762],simde_mm256_xor_si256(c2[563],simde_mm256_xor_si256(c2[4165],simde_mm256_xor_si256(c2[2966],simde_mm256_xor_si256(c2[5963],simde_mm256_xor_si256(c2[4764],simde_mm256_xor_si256(c2[1782],simde_mm256_xor_si256(c2[783],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[6383],simde_mm256_xor_si256(c2[5184],simde_mm256_xor_si256(c2[4583],c2[3384])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[160]=_mm256_xor_si256(c2[3003],_mm256_xor_si256(c2[2803],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[4607],_mm256_xor_si256(c2[4808],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[404],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[3023],_mm256_xor_si256(c2[2823],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[2427],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[4025],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[5843],_mm256_xor_si256(c2[5844],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[2863],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[2067],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[3466],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[2883],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[4684],_mm256_xor_si256(c2[4086],_mm256_xor_si256(c2[4087],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2923],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[2924],_mm256_xor_si256(c2[1326],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[1327],_mm256_xor_si256(c2[5323],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[2943],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[1545],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[2964],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[765],_mm256_xor_si256(c2[766],_mm256_xor_si256(c2[3183],_mm256_xor_si256(c2[2983],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[2984],_mm256_xor_si256(c2[1185],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[1186],_mm256_xor_si256(c2[5784],_mm256_xor_si256(c2[5785],c2[3182]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[160]=simde_mm256_xor_si256(c2[3003],simde_mm256_xor_si256(c2[2803],simde_mm256_xor_si256(c2[3004],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[4607],simde_mm256_xor_si256(c2[4808],simde_mm256_xor_si256(c2[4608],simde_mm256_xor_si256(c2[404],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[3023],simde_mm256_xor_si256(c2[2823],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[2426],simde_mm256_xor_si256(c2[2427],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[4025],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3043],simde_mm256_xor_si256(c2[2843],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[5843],simde_mm256_xor_si256(c2[5844],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[2863],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[2067],simde_mm256_xor_si256(c2[2268],simde_mm256_xor_si256(c2[2068],simde_mm256_xor_si256(c2[3466],simde_mm256_xor_si256(c2[3467],simde_mm256_xor_si256(c2[2883],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[4684],simde_mm256_xor_si256(c2[4086],simde_mm256_xor_si256(c2[4087],simde_mm256_xor_si256(c2[2903],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[2923],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[1326],simde_mm256_xor_si256(c2[1527],simde_mm256_xor_si256(c2[1327],simde_mm256_xor_si256(c2[5323],simde_mm256_xor_si256(c2[5324],simde_mm256_xor_si256(c2[2943],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[1545],simde_mm256_xor_si256(c2[1546],simde_mm256_xor_si256(c2[2963],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[2964],simde_mm256_xor_si256(c2[5366],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[765],simde_mm256_xor_si256(c2[766],simde_mm256_xor_si256(c2[3183],simde_mm256_xor_si256(c2[2983],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[2984],simde_mm256_xor_si256(c2[1185],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[1186],simde_mm256_xor_si256(c2[5784],simde_mm256_xor_si256(c2[5785],c2[3182]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[170]=_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[5204],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[2423],_mm256_xor_si256(c2[3620],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[2026],_mm256_xor_si256(c2[3023],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[4621],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[2443],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[3440],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[2463],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[3066],_mm256_xor_si256(c2[4063],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[3680],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[4283],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[3500],_mm256_xor_si256(c2[6107],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[4900],_mm256_xor_si256(c2[2723],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[3720],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[2123],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[4923],_mm256_xor_si256(c2[5920],_mm256_xor_si256(c2[2543],_mm256_xor_si256(c2[3740],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[1145],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[2563],_mm256_xor_si256(c2[3760],_mm256_xor_si256(c2[3560],_mm256_xor_si256(c2[4966],_mm256_xor_si256(c2[5963],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[1362],_mm256_xor_si256(c2[2783],_mm256_xor_si256(c2[2583],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[3580],_mm256_xor_si256(c2[785],_mm256_xor_si256(c2[1982],_mm256_xor_si256(c2[1782],_mm256_xor_si256(c2[5384],c2[6381]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[170]=simde_mm256_xor_si256(c2[2603],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[3400],simde_mm256_xor_si256(c2[4207],simde_mm256_xor_si256(c2[5404],simde_mm256_xor_si256(c2[5204],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[1001],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[2423],simde_mm256_xor_si256(c2[3620],simde_mm256_xor_si256(c2[3420],simde_mm256_xor_si256(c2[2026],simde_mm256_xor_si256(c2[3023],simde_mm256_xor_si256(c2[3624],simde_mm256_xor_si256(c2[4621],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[2643],simde_mm256_xor_si256(c2[2443],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[3440],simde_mm256_xor_si256(c2[5443],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[2663],simde_mm256_xor_si256(c2[2463],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[3460],simde_mm256_xor_si256(c2[1667],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[2664],simde_mm256_xor_si256(c2[3066],simde_mm256_xor_si256(c2[4063],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[3680],simde_mm256_xor_si256(c2[3480],simde_mm256_xor_si256(c2[4283],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[3686],simde_mm256_xor_si256(c2[4683],simde_mm256_xor_si256(c2[2503],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[3500],simde_mm256_xor_si256(c2[6107],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[4900],simde_mm256_xor_si256(c2[2723],simde_mm256_xor_si256(c2[2523],simde_mm256_xor_si256(c2[3720],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[2123],simde_mm256_xor_si256(c2[1923],simde_mm256_xor_si256(c2[4923],simde_mm256_xor_si256(c2[5920],simde_mm256_xor_si256(c2[2543],simde_mm256_xor_si256(c2[3740],simde_mm256_xor_si256(c2[3540],simde_mm256_xor_si256(c2[1145],simde_mm256_xor_si256(c2[2142],simde_mm256_xor_si256(c2[2563],simde_mm256_xor_si256(c2[3760],simde_mm256_xor_si256(c2[3560],simde_mm256_xor_si256(c2[4966],simde_mm256_xor_si256(c2[5963],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[2783],simde_mm256_xor_si256(c2[2583],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[3580],simde_mm256_xor_si256(c2[785],simde_mm256_xor_si256(c2[1982],simde_mm256_xor_si256(c2[1782],simde_mm256_xor_si256(c2[5384],c2[6381]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[180]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3720],c2[4542])); + d2[180]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3720],c2[4542])); //row: 19 - d2[190]=_mm256_xor_si256(c2[5004],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[2605],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[5024],_mm256_xor_si256(c2[4627],_mm256_xor_si256(c2[6225],_mm256_xor_si256(c2[6024],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[1645],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[4268],_mm256_xor_si256(c2[5667],_mm256_xor_si256(c2[5084],_mm256_xor_si256(c2[485],_mm256_xor_si256(c2[6287],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[2309],_mm256_xor_si256(c2[5124],_mm256_xor_si256(c2[3527],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[5144],_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[5164],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[5184],_mm256_xor_si256(c2[3386],c2[1586])))))))))))))))))))))))))))); + d2[190]=simde_mm256_xor_si256(c2[5004],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[2605],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[5024],simde_mm256_xor_si256(c2[4627],simde_mm256_xor_si256(c2[6225],simde_mm256_xor_si256(c2[6024],simde_mm256_xor_si256(c2[5044],simde_mm256_xor_si256(c2[1645],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[4268],simde_mm256_xor_si256(c2[5667],simde_mm256_xor_si256(c2[5084],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[6287],simde_mm256_xor_si256(c2[5104],simde_mm256_xor_si256(c2[2309],simde_mm256_xor_si256(c2[5124],simde_mm256_xor_si256(c2[3527],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[5144],simde_mm256_xor_si256(c2[3746],simde_mm256_xor_si256(c2[5164],simde_mm256_xor_si256(c2[1168],simde_mm256_xor_si256(c2[2966],simde_mm256_xor_si256(c2[5184],simde_mm256_xor_si256(c2[3386],c2[1586])))))))))))))))))))))))))))); //row: 20 - d2[200]=_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[1423],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[2624],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1643],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[4443],_mm256_xor_si256(c2[1663],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[2066],_mm256_xor_si256(c2[1483],_mm256_xor_si256(c2[3283],_mm256_xor_si256(c2[2686],_mm256_xor_si256(c2[4084],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[1723],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[6325],_mm256_xor_si256(c2[3923],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[5764],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[1583],_mm256_xor_si256(c2[6184],c2[4384])))))))))))))))))))))))))))))))))); + d2[200]=simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[1403],simde_mm256_xor_si256(c2[3207],simde_mm256_xor_si256(c2[5403],simde_mm256_xor_si256(c2[1623],simde_mm256_xor_si256(c2[1423],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[2624],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1643],simde_mm256_xor_si256(c2[1443],simde_mm256_xor_si256(c2[4443],simde_mm256_xor_si256(c2[1663],simde_mm256_xor_si256(c2[1463],simde_mm256_xor_si256(c2[667],simde_mm256_xor_si256(c2[2066],simde_mm256_xor_si256(c2[1483],simde_mm256_xor_si256(c2[3283],simde_mm256_xor_si256(c2[2686],simde_mm256_xor_si256(c2[4084],simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[5107],simde_mm256_xor_si256(c2[1723],simde_mm256_xor_si256(c2[1523],simde_mm256_xor_si256(c2[6325],simde_mm256_xor_si256(c2[3923],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[5764],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1583],simde_mm256_xor_si256(c2[6184],c2[4384])))))))))))))))))))))))))))))))))); //row: 21 - d2[210]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[6023],_mm256_xor_si256(c2[1422],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[3241],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[5664],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[1881],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[3905],_mm256_xor_si256(c2[3705],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[4923],_mm256_xor_si256(c2[2721],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[141],_mm256_xor_si256(c2[5342],_mm256_xor_si256(c2[5142],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[4362],_mm256_xor_si256(c2[3560],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[4782],_mm256_xor_si256(c2[3182],c2[2982])))))))))))))))))))))))))))))))))))); + d2[210]=simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[1805],simde_mm256_xor_si256(c2[4001],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[6023],simde_mm256_xor_si256(c2[1422],simde_mm256_xor_si256(c2[1222],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[3241],simde_mm256_xor_si256(c2[3041],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[5664],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[1881],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[3905],simde_mm256_xor_si256(c2[3705],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[4923],simde_mm256_xor_si256(c2[2721],simde_mm256_xor_si256(c2[2521],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[5342],simde_mm256_xor_si256(c2[5142],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[2564],simde_mm256_xor_si256(c2[4562],simde_mm256_xor_si256(c2[4362],simde_mm256_xor_si256(c2[3560],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[4782],simde_mm256_xor_si256(c2[3182],c2[2982])))))))))))))))))))))))))))))))))))); //row: 22 - d2[220]=_mm256_xor_si256(c2[20],c2[840]); + d2[220]=simde_mm256_xor_si256(c2[20],c2[840]); //row: 23 - d2[230]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2262],c2[6104])); + d2[230]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2262],c2[6104])); //row: 24 - d2[240]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1042],c2[4782])); + d2[240]=simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1042],c2[4782])); //row: 25 - d2[250]=_mm256_xor_si256(c2[0],c2[302]); + d2[250]=simde_mm256_xor_si256(c2[0],c2[302]); //row: 26 - d2[260]=_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[4404],_mm256_xor_si256(c2[4204],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[2620],_mm256_xor_si256(c2[2420],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[823],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[2621],_mm256_xor_si256(c2[2421],_mm256_xor_si256(c2[2640],_mm256_xor_si256(c2[2440],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[5440],_mm256_xor_si256(c2[4440],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[2660],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[1863],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[2480],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[4280],_mm256_xor_si256(c2[3080],_mm256_xor_si256(c2[3683],_mm256_xor_si256(c2[2683],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[2700],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[6104],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[4904],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[923],_mm256_xor_si256(c2[6122],_mm256_xor_si256(c2[4920],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[3720],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[2540],_mm256_xor_si256(c2[1340],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[142],_mm256_xor_si256(c2[6341],_mm256_xor_si256(c2[943],_mm256_xor_si256(c2[2760],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[1360],_mm256_xor_si256(c2[4963],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[5561],_mm256_xor_si256(c2[2780],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[1380],_mm256_xor_si256(c2[982],_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[5381],_mm256_xor_si256(c2[4381],c2[4181]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[260]=simde_mm256_xor_si256(c2[2600],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[4404],simde_mm256_xor_si256(c2[4204],simde_mm256_xor_si256(c2[3004],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[5200],simde_mm256_xor_si256(c2[2620],simde_mm256_xor_si256(c2[2420],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[2023],simde_mm256_xor_si256(c2[823],simde_mm256_xor_si256(c2[3621],simde_mm256_xor_si256(c2[2621],simde_mm256_xor_si256(c2[2421],simde_mm256_xor_si256(c2[2640],simde_mm256_xor_si256(c2[2440],simde_mm256_xor_si256(c2[1240],simde_mm256_xor_si256(c2[5440],simde_mm256_xor_si256(c2[4440],simde_mm256_xor_si256(c2[4240],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[2660],simde_mm256_xor_si256(c2[2460],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[1863],simde_mm256_xor_si256(c2[2680],simde_mm256_xor_si256(c2[2480],simde_mm256_xor_si256(c2[1280],simde_mm256_xor_si256(c2[4280],simde_mm256_xor_si256(c2[3080],simde_mm256_xor_si256(c2[3683],simde_mm256_xor_si256(c2[2683],simde_mm256_xor_si256(c2[2483],simde_mm256_xor_si256(c2[2700],simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[6104],simde_mm256_xor_si256(c2[5104],simde_mm256_xor_si256(c2[4904],simde_mm256_xor_si256(c2[2720],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[923],simde_mm256_xor_si256(c2[6122],simde_mm256_xor_si256(c2[4920],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[3720],simde_mm256_xor_si256(c2[2740],simde_mm256_xor_si256(c2[2540],simde_mm256_xor_si256(c2[1340],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[6341],simde_mm256_xor_si256(c2[943],simde_mm256_xor_si256(c2[2760],simde_mm256_xor_si256(c2[2560],simde_mm256_xor_si256(c2[1360],simde_mm256_xor_si256(c2[4963],simde_mm256_xor_si256(c2[3763],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[5761],simde_mm256_xor_si256(c2[5561],simde_mm256_xor_si256(c2[2780],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[1380],simde_mm256_xor_si256(c2[982],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[5981],simde_mm256_xor_si256(c2[5381],simde_mm256_xor_si256(c2[4381],c2[4181]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[270]=_mm256_xor_si256(c2[0],c2[121]); + d2[270]=simde_mm256_xor_si256(c2[0],c2[121]); //row: 28 - d2[280]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[6043],c2[2903])); + d2[280]=simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[6043],c2[2903])); //row: 29 - d2[290]=_mm256_xor_si256(c2[0],c2[5284]); + d2[290]=simde_mm256_xor_si256(c2[0],c2[5284]); //row: 30 - d2[300]=_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[3941],c2[1384]))); + d2[300]=simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[3941],c2[1384]))); //row: 31 - d2[310]=_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[1401],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[5221],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[4463],_mm256_xor_si256(c2[3880],_mm256_xor_si256(c2[5680],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[5083],_mm256_xor_si256(c2[3900],_mm256_xor_si256(c2[1305],_mm256_xor_si256(c2[1105],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[6320],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[2542],_mm256_xor_si256(c2[3960],_mm256_xor_si256(c2[6363],_mm256_xor_si256(c2[1962],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[3980],_mm256_xor_si256(c2[2182],_mm256_xor_si256(c2[582],c2[382]))))))))))))))))))))))))))))))))))); + d2[310]=simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[1401],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[3423],simde_mm256_xor_si256(c2[5221],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[441],simde_mm256_xor_si256(c2[3860],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[4463],simde_mm256_xor_si256(c2[3880],simde_mm256_xor_si256(c2[5680],simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[5083],simde_mm256_xor_si256(c2[3900],simde_mm256_xor_si256(c2[1305],simde_mm256_xor_si256(c2[1105],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[2323],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[6320],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[2742],simde_mm256_xor_si256(c2[2542],simde_mm256_xor_si256(c2[3960],simde_mm256_xor_si256(c2[6363],simde_mm256_xor_si256(c2[1962],simde_mm256_xor_si256(c2[1762],simde_mm256_xor_si256(c2[3980],simde_mm256_xor_si256(c2[2182],simde_mm256_xor_si256(c2[582],c2[382]))))))))))))))))))))))))))))))))))); //row: 32 - d2[320]=_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[5003],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[2604],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[5023],_mm256_xor_si256(c2[4626],_mm256_xor_si256(c2[6224],_mm256_xor_si256(c2[5243],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[5263],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[4467],_mm256_xor_si256(c2[4267],_mm256_xor_si256(c2[5666],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[5083],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[6286],_mm256_xor_si256(c2[5303],_mm256_xor_si256(c2[5103],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[5323],_mm256_xor_si256(c2[5123],_mm256_xor_si256(c2[3726],_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[5343],_mm256_xor_si256(c2[5143],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[5363],_mm256_xor_si256(c2[5163],_mm256_xor_si256(c2[1167],_mm256_xor_si256(c2[2965],_mm256_xor_si256(c2[5383],_mm256_xor_si256(c2[5183],_mm256_xor_si256(c2[3585],_mm256_xor_si256(c2[3385],c2[1585])))))))))))))))))))))))))))))))))))))))))); + d2[320]=simde_mm256_xor_si256(c2[5203],simde_mm256_xor_si256(c2[5003],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[2604],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[5223],simde_mm256_xor_si256(c2[5023],simde_mm256_xor_si256(c2[4626],simde_mm256_xor_si256(c2[6224],simde_mm256_xor_si256(c2[5243],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[5263],simde_mm256_xor_si256(c2[5063],simde_mm256_xor_si256(c2[4467],simde_mm256_xor_si256(c2[4267],simde_mm256_xor_si256(c2[5666],simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[5083],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[6286],simde_mm256_xor_si256(c2[5303],simde_mm256_xor_si256(c2[5103],simde_mm256_xor_si256(c2[2308],simde_mm256_xor_si256(c2[4100],simde_mm256_xor_si256(c2[5323],simde_mm256_xor_si256(c2[5123],simde_mm256_xor_si256(c2[3726],simde_mm256_xor_si256(c2[3526],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[5343],simde_mm256_xor_si256(c2[5143],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[5363],simde_mm256_xor_si256(c2[5163],simde_mm256_xor_si256(c2[1167],simde_mm256_xor_si256(c2[2965],simde_mm256_xor_si256(c2[5383],simde_mm256_xor_si256(c2[5183],simde_mm256_xor_si256(c2[3585],simde_mm256_xor_si256(c2[3385],c2[1585])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[330]=_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[4204],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[2420],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[2440],_mm256_xor_si256(c2[5440],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[2480],_mm256_xor_si256(c2[4280],_mm256_xor_si256(c2[3683],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[6104],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[923],_mm256_xor_si256(c2[4920],_mm256_xor_si256(c2[2540],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[4963],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[782],c2[5381])))))))))))))))))))))))))))); + d2[330]=simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[4204],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[2420],simde_mm256_xor_si256(c2[2023],simde_mm256_xor_si256(c2[3621],simde_mm256_xor_si256(c2[2440],simde_mm256_xor_si256(c2[5440],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[2460],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[2480],simde_mm256_xor_si256(c2[4280],simde_mm256_xor_si256(c2[3683],simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[6104],simde_mm256_xor_si256(c2[2520],simde_mm256_xor_si256(c2[923],simde_mm256_xor_si256(c2[4920],simde_mm256_xor_si256(c2[2540],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[4942],simde_mm256_xor_si256(c2[2560],simde_mm256_xor_si256(c2[4963],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[782],c2[5381])))))))))))))))))))))))))))); //row: 34 - d2[340]=_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[2602],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[3620],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[2225],_mm256_xor_si256(c2[4821],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[3823],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[5842],_mm256_xor_si256(c2[5642],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[1866],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[3880],_mm256_xor_si256(c2[3680],_mm256_xor_si256(c2[2682],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[4482],_mm256_xor_si256(c2[4883],_mm256_xor_si256(c2[4085],_mm256_xor_si256(c2[3885],_mm256_xor_si256(c2[3900],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[107],_mm256_xor_si256(c2[6306],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[3720],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[2123],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[6120],_mm256_xor_si256(c2[5322],_mm256_xor_si256(c2[5122],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[3740],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[3960],_mm256_xor_si256(c2[3760],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[5165],_mm256_xor_si256(c2[1562],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[3980],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[2782],_mm256_xor_si256(c2[2182],_mm256_xor_si256(c2[1982],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[5783],c2[5583])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[340]=simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[2602],simde_mm256_xor_si256(c2[5604],simde_mm256_xor_si256(c2[5404],simde_mm256_xor_si256(c2[4406],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[3620],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[2225],simde_mm256_xor_si256(c2[4821],simde_mm256_xor_si256(c2[4023],simde_mm256_xor_si256(c2[3823],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[5842],simde_mm256_xor_si256(c2[5642],simde_mm256_xor_si256(c2[3860],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[2662],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[4263],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[3880],simde_mm256_xor_si256(c2[3680],simde_mm256_xor_si256(c2[2682],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[4482],simde_mm256_xor_si256(c2[4883],simde_mm256_xor_si256(c2[4085],simde_mm256_xor_si256(c2[3885],simde_mm256_xor_si256(c2[3900],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[2702],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[107],simde_mm256_xor_si256(c2[6306],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[3720],simde_mm256_xor_si256(c2[2722],simde_mm256_xor_si256(c2[2323],simde_mm256_xor_si256(c2[2123],simde_mm256_xor_si256(c2[1125],simde_mm256_xor_si256(c2[6120],simde_mm256_xor_si256(c2[5322],simde_mm256_xor_si256(c2[5122],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[3740],simde_mm256_xor_si256(c2[2742],simde_mm256_xor_si256(c2[2342],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[3960],simde_mm256_xor_si256(c2[3760],simde_mm256_xor_si256(c2[2762],simde_mm256_xor_si256(c2[6163],simde_mm256_xor_si256(c2[5165],simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[3980],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[2782],simde_mm256_xor_si256(c2[2182],simde_mm256_xor_si256(c2[1982],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[5783],c2[5583])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[350]=_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[1020],_mm256_xor_si256(c2[623],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[4040],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[1060],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[1663],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[1100],_mm256_xor_si256(c2[4704],_mm256_xor_si256(c2[5904],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[1120],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[1140],_mm256_xor_si256(c2[6141],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[5361],_mm256_xor_si256(c2[1380],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[5781],c2[3981])))))))))))))))))))))))))))))))))); + d2[350]=simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[5000],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[1020],simde_mm256_xor_si256(c2[623],simde_mm256_xor_si256(c2[2221],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1240],simde_mm256_xor_si256(c2[1040],simde_mm256_xor_si256(c2[4040],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[1060],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[1663],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[2880],simde_mm256_xor_si256(c2[2283],simde_mm256_xor_si256(c2[1100],simde_mm256_xor_si256(c2[4704],simde_mm256_xor_si256(c2[5904],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1120],simde_mm256_xor_si256(c2[5922],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[1140],simde_mm256_xor_si256(c2[6141],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[3563],simde_mm256_xor_si256(c2[5361],simde_mm256_xor_si256(c2[1380],simde_mm256_xor_si256(c2[1180],simde_mm256_xor_si256(c2[5781],c2[3981])))))))))))))))))))))))))))))))))); //row: 36 - d2[360]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[6241],c2[3742])); + d2[360]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[6241],c2[3742])); //row: 37 - d2[370]=_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[4808],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[6044],_mm256_xor_si256(c2[6269],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[5463],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[3667],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[509],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[5724],_mm256_xor_si256(c2[5524],_mm256_xor_si256(c2[6349],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[4941],_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[5567],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[966],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[2781],_mm256_xor_si256(c2[6185],c2[5985]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[370]=simde_mm256_xor_si256(c2[6209],simde_mm256_xor_si256(c2[3004],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[4808],simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[3024],simde_mm256_xor_si256(c2[5822],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[4425],simde_mm256_xor_si256(c2[4225],simde_mm256_xor_si256(c2[6249],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[6244],simde_mm256_xor_si256(c2[6044],simde_mm256_xor_si256(c2[6269],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[5463],simde_mm256_xor_si256(c2[2268],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[3667],simde_mm256_xor_si256(c2[6289],simde_mm256_xor_si256(c2[3084],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[4487],simde_mm256_xor_si256(c2[4287],simde_mm256_xor_si256(c2[6309],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[3504],simde_mm256_xor_si256(c2[509],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[6329],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[4722],simde_mm256_xor_si256(c2[1527],simde_mm256_xor_si256(c2[2320],simde_mm256_xor_si256(c2[5724],simde_mm256_xor_si256(c2[5524],simde_mm256_xor_si256(c2[6349],simde_mm256_xor_si256(c2[3144],simde_mm256_xor_si256(c2[4941],simde_mm256_xor_si256(c2[1946],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[6369],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[5567],simde_mm256_xor_si256(c2[4161],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[3184],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[2781],simde_mm256_xor_si256(c2[6185],c2[5985]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[380]=_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[3620],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[4821],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[3680],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[4883],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[5902],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[3720],_mm256_xor_si256(c2[2123],_mm256_xor_si256(c2[6120],_mm256_xor_si256(c2[3740],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[3760],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[1562],_mm256_xor_si256(c2[3980],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[1982],c2[182])))))))))))))))))))))))))))))))))); + d2[380]=simde_mm256_xor_si256(c2[3800],simde_mm256_xor_si256(c2[3600],simde_mm256_xor_si256(c2[5404],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[3820],simde_mm256_xor_si256(c2[3620],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[4821],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[3840],simde_mm256_xor_si256(c2[3640],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[3860],simde_mm256_xor_si256(c2[3660],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[4263],simde_mm256_xor_si256(c2[3680],simde_mm256_xor_si256(c2[5480],simde_mm256_xor_si256(c2[4883],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[5902],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[3720],simde_mm256_xor_si256(c2[2123],simde_mm256_xor_si256(c2[6120],simde_mm256_xor_si256(c2[3740],simde_mm256_xor_si256(c2[2342],simde_mm256_xor_si256(c2[3760],simde_mm256_xor_si256(c2[6163],simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[3980],simde_mm256_xor_si256(c2[3780],simde_mm256_xor_si256(c2[1982],c2[182])))))))))))))))))))))))))))))))))); //row: 39 - d2[390]=_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[3608],_mm256_xor_si256(c2[5804],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[2044],_mm256_xor_si256(c2[1844],_mm256_xor_si256(c2[4844],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[1884],_mm256_xor_si256(c2[3684],_mm256_xor_si256(c2[3087],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[527],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[4324],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[4940],_mm256_xor_si256(c2[2164],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[4367],_mm256_xor_si256(c2[6165],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[186],c2[4785])))))))))))))))))))))))))))))))))))))))))); + d2[390]=simde_mm256_xor_si256(c2[2004],simde_mm256_xor_si256(c2[1804],simde_mm256_xor_si256(c2[3808],simde_mm256_xor_si256(c2[3608],simde_mm256_xor_si256(c2[5804],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[1427],simde_mm256_xor_si256(c2[3025],simde_mm256_xor_si256(c2[2044],simde_mm256_xor_si256(c2[1844],simde_mm256_xor_si256(c2[4844],simde_mm256_xor_si256(c2[2064],simde_mm256_xor_si256(c2[1864],simde_mm256_xor_si256(c2[1268],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[2467],simde_mm256_xor_si256(c2[2084],simde_mm256_xor_si256(c2[1884],simde_mm256_xor_si256(c2[3684],simde_mm256_xor_si256(c2[3087],simde_mm256_xor_si256(c2[2104],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[5508],simde_mm256_xor_si256(c2[2124],simde_mm256_xor_si256(c2[1924],simde_mm256_xor_si256(c2[527],simde_mm256_xor_si256(c2[327],simde_mm256_xor_si256(c2[4324],simde_mm256_xor_si256(c2[2144],simde_mm256_xor_si256(c2[1944],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[4940],simde_mm256_xor_si256(c2[2164],simde_mm256_xor_si256(c2[1964],simde_mm256_xor_si256(c2[4367],simde_mm256_xor_si256(c2[6165],simde_mm256_xor_si256(c2[2184],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[186],c2[4785])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[400]=_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[2405],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[4601],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[621],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[2427],_mm256_xor_si256(c2[1822],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[4025],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[6044],_mm256_xor_si256(c2[5844],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[6264],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[681],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[4684],_mm256_xor_si256(c2[1884],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[4087],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[4305],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[2924],_mm256_xor_si256(c2[5523],_mm256_xor_si256(c2[1327],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[5524],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[5742],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[2964],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[4962],_mm256_xor_si256(c2[966],_mm256_xor_si256(c2[766],_mm256_xor_si256(c2[781],_mm256_xor_si256(c2[2984],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[1186],_mm256_xor_si256(c2[3582],_mm256_xor_si256(c2[5985],c2[5785])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[400]=simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[2804],simde_mm256_xor_si256(c2[2405],simde_mm256_xor_si256(c2[4608],simde_mm256_xor_si256(c2[4601],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[621],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[2427],simde_mm256_xor_si256(c2[1822],simde_mm256_xor_si256(c2[4225],simde_mm256_xor_si256(c2[4025],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[3641],simde_mm256_xor_si256(c2[6044],simde_mm256_xor_si256(c2[5844],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[2864],simde_mm256_xor_si256(c2[6264],simde_mm256_xor_si256(c2[2068],simde_mm256_xor_si256(c2[1264],simde_mm256_xor_si256(c2[3467],simde_mm256_xor_si256(c2[681],simde_mm256_xor_si256(c2[2884],simde_mm256_xor_si256(c2[2481],simde_mm256_xor_si256(c2[4684],simde_mm256_xor_si256(c2[1884],simde_mm256_xor_si256(c2[4287],simde_mm256_xor_si256(c2[4087],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[4305],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[5523],simde_mm256_xor_si256(c2[1327],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[5524],simde_mm256_xor_si256(c2[5324],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[2944],simde_mm256_xor_si256(c2[5742],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[1546],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[2964],simde_mm256_xor_si256(c2[3164],simde_mm256_xor_si256(c2[5367],simde_mm256_xor_si256(c2[4962],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[766],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[2984],simde_mm256_xor_si256(c2[5382],simde_mm256_xor_si256(c2[1186],simde_mm256_xor_si256(c2[3582],simde_mm256_xor_si256(c2[5985],c2[5785])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[410]=_mm256_xor_si256(c2[4601],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[6205],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[4621],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[5622],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[4641],_mm256_xor_si256(c2[4441],_mm256_xor_si256(c2[1042],_mm256_xor_si256(c2[4661],_mm256_xor_si256(c2[4461],_mm256_xor_si256(c2[3665],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[4481],_mm256_xor_si256(c2[6281],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[4501],_mm256_xor_si256(c2[1706],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[4721],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[2924],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[3143],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[4781],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[2783],c2[983])))))))))))))))))))))))))))))))))); + d2[410]=simde_mm256_xor_si256(c2[4601],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[6205],simde_mm256_xor_si256(c2[2002],simde_mm256_xor_si256(c2[4621],simde_mm256_xor_si256(c2[4421],simde_mm256_xor_si256(c2[4024],simde_mm256_xor_si256(c2[5622],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[4641],simde_mm256_xor_si256(c2[4441],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[4661],simde_mm256_xor_si256(c2[4461],simde_mm256_xor_si256(c2[3665],simde_mm256_xor_si256(c2[5064],simde_mm256_xor_si256(c2[4481],simde_mm256_xor_si256(c2[6281],simde_mm256_xor_si256(c2[5684],simde_mm256_xor_si256(c2[4501],simde_mm256_xor_si256(c2[1706],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[4721],simde_mm256_xor_si256(c2[4521],simde_mm256_xor_si256(c2[2924],simde_mm256_xor_si256(c2[522],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[3143],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[4781],simde_mm256_xor_si256(c2[4581],simde_mm256_xor_si256(c2[2783],c2[983])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc32_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc32_byte.c index d28f5501d4..6356cfb391 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc32_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc32_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc32_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[342],c2[390])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[342],c2[390])))))))))))))))))))))))))); //row: 1 - d2[1]=_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[342],c2[390])))))))))))))))))))))))))))))))); + d2[1]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[342],c2[390])))))))))))))))))))))))))))))))); //row: 2 - d2[2]=_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[358],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[342],c2[390])))))))))))))))))))))))))))))))))))))))); + d2[2]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],c2[390])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[3]=_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[106],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[18],c2[390])))))))))))))))))))))))))))))))))); + d2[3]=simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[18],c2[390])))))))))))))))))))))))))))))))))); //row: 4 - d2[4]=_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[42],c2[90])))))))))))))))))))))))))))))))))); + d2[4]=simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[42],c2[90])))))))))))))))))))))))))))))))))); //row: 5 - d2[5]=_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[42],c2[90])))))))))))))))))))))))))))))))))))); + d2[5]=simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[42],c2[90])))))))))))))))))))))))))))))))))))); //row: 6 - d2[6]=_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[366],c2[354])))))))))))))))))))))))))))))))))))); + d2[6]=simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[366],c2[354])))))))))))))))))))))))))))))))))))); //row: 7 - d2[7]=_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[130],_mm256_xor_si256(c2[334],_mm256_xor_si256(c2[238],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[42],c2[246])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[7]=simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[334],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[42],c2[246])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[8]=_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[30],c2[78])))))))))))))))))))))))))))))))))))))))))); + d2[8]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[30],c2[78])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[9]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[238],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[354],c2[282]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[9]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[354],c2[282]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[10]=_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[12],c2[266]))); + d2[10]=simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[12],c2[266]))); //row: 11 - d2[11]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[250],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[294],c2[234]))))))))))))))))))))))))))))))))))))); + d2[11]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[294],c2[234]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[12]=_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[130],_mm256_xor_si256(c2[262],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[126],c2[174])))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[126],c2[174])))))))))))))))))))))))))))))))))); //row: 13 - d2[13]=_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[82],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[378],c2[366]))))))))))))))))))))))))))))))))))))); + d2[13]=simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[82],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[378],c2[366]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[14]=_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[130],_mm256_xor_si256(c2[190],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[42],c2[102]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[14]=simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[42],c2[102]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[15]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[142],_mm256_xor_si256(c2[214],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[186],c2[258])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[15]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[214],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[186],c2[258])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[16]=_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[190],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[190],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[222],c2[186]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[16]=simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[222],c2[186]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[17]=_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[358],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[222],c2[390]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[17]=simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[222],c2[390]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[18]=_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[36],c2[230])); + d2[18]=simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[36],c2[230])); //row: 19 - d2[19]=_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[262],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[258],c2[306])))))))))))))))))))))))))))); + d2[19]=simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[258],c2[306])))))))))))))))))))))))))))); //row: 20 - d2[20]=_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[306],c2[354])))))))))))))))))))))))))))))))))); + d2[20]=simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[306],c2[354])))))))))))))))))))))))))))))))))); //row: 21 - d2[21]=_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[234],c2[222])))))))))))))))))))))))))))))))))))); + d2[21]=simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[234],c2[222])))))))))))))))))))))))))))))))))))); //row: 22 - d2[22]=_mm256_xor_si256(c2[362],c2[376]); + d2[22]=simde_mm256_xor_si256(c2[362],c2[376]); //row: 23 - d2[23]=_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[138],c2[178])); + d2[23]=simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[138],c2[178])); //row: 24 - d2[24]=_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[136],c2[114])); + d2[24]=simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[136],c2[114])); //row: 25 - d2[25]=_mm256_xor_si256(c2[48],c2[346]); + d2[25]=simde_mm256_xor_si256(c2[48],c2[346]); //row: 26 - d2[26]=_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[358],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[390],c2[318]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[26]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[390],c2[318]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[27]=_mm256_xor_si256(c2[96],c2[288]); + d2[27]=simde_mm256_xor_si256(c2[96],c2[288]); //row: 28 - d2[28]=_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[64],c2[94])); + d2[28]=simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[64],c2[94])); //row: 29 - d2[29]=_mm256_xor_si256(c2[216],c2[344]); + d2[29]=simde_mm256_xor_si256(c2[216],c2[344]); //row: 30 - d2[30]=_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[122],c2[258]))); + d2[30]=simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[122],c2[258]))); //row: 31 - d2[31]=_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[358],_mm256_xor_si256(c2[118],_mm256_xor_si256(c2[106],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[30],c2[18]))))))))))))))))))))))))))))))))))); + d2[31]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[118],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[30],c2[18]))))))))))))))))))))))))))))))))))); //row: 32 - d2[32]=_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[30],c2[78])))))))))))))))))))))))))))))))))))))))))); + d2[32]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[30],c2[78])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[33]=_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[90],c2[138])))))))))))))))))))))))))))); + d2[33]=simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[90],c2[138])))))))))))))))))))))))))))); //row: 34 - d2[34]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[214],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[346],_mm256_xor_si256(c2[142],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[258],c2[54])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[34]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[214],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[258],c2[54])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[35]=_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[334],_mm256_xor_si256(c2[82],_mm256_xor_si256(c2[106],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[330],c2[378])))))))))))))))))))))))))))))))))); + d2[35]=simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[334],simde_mm256_xor_si256(c2[82],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[330],c2[378])))))))))))))))))))))))))))))))))); //row: 36 - d2[36]=_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[76],c2[326])); + d2[36]=simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[76],c2[326])); //row: 37 - d2[37]=_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[238],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[330],c2[282]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[37]=simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[286],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[330],c2[282]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[38]=_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[30],c2[78])))))))))))))))))))))))))))))))))); + d2[38]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[30],c2[78])))))))))))))))))))))))))))))))))); //row: 39 - d2[39]=_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[118],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[366],c2[30])))))))))))))))))))))))))))))))))))))))))); + d2[39]=simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[118],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[366],c2[30])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[40]=_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[250],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[306],_mm256_xor_si256(c2[138],c2[294])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[40]=simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[138],c2[294])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[41]=_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[134],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[358],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[222],c2[270])))))))))))))))))))))))))))))))))); + d2[41]=simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[222],c2[270])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc352_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc352_byte.c index df6d7e428a..7141d91aa9 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc352_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc352_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc352_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[223],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[6689],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[6713],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[3652],_mm256_xor_si256(c2[1035],_mm256_xor_si256(c2[5436],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5921],_mm256_xor_si256(c2[1082],c2[1961])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[223],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[4423],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[2269],simde_mm256_xor_si256(c2[6689],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[6713],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[3652],simde_mm256_xor_si256(c2[1035],simde_mm256_xor_si256(c2[5436],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[5921],simde_mm256_xor_si256(c2[1082],c2[1961])))))))))))))))))))))))))); //row: 1 - d2[11]=_mm256_xor_si256(c2[6164],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[223],_mm256_xor_si256(c2[3326],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[6689],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[6713],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[3652],_mm256_xor_si256(c2[1035],_mm256_xor_si256(c2[5436],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[6141],_mm256_xor_si256(c2[5921],_mm256_xor_si256(c2[1082],c2[1961])))))))))))))))))))))))))))))))); + d2[11]=simde_mm256_xor_si256(c2[6164],simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[223],simde_mm256_xor_si256(c2[3326],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[4423],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[2269],simde_mm256_xor_si256(c2[6689],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[6713],simde_mm256_xor_si256(c2[1893],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[3652],simde_mm256_xor_si256(c2[1035],simde_mm256_xor_si256(c2[5436],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[6141],simde_mm256_xor_si256(c2[5921],simde_mm256_xor_si256(c2[1082],c2[1961])))))))))))))))))))))))))))))))); //row: 2 - d2[22]=_mm256_xor_si256(c2[6164],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[3740],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[223],_mm256_xor_si256(c2[3326],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[6909],_mm256_xor_si256(c2[6689],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[6713],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[5193],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[3652],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[1035],_mm256_xor_si256(c2[5436],_mm256_xor_si256(c2[2601],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[6141],_mm256_xor_si256(c2[5921],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1082],c2[1961])))))))))))))))))))))))))))))))))))))))); + d2[22]=simde_mm256_xor_si256(c2[6164],simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[3740],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[223],simde_mm256_xor_si256(c2[3326],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[4423],simde_mm256_xor_si256(c2[3124],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[2269],simde_mm256_xor_si256(c2[6909],simde_mm256_xor_si256(c2[6689],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[6713],simde_mm256_xor_si256(c2[1893],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[5193],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[3652],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[1035],simde_mm256_xor_si256(c2[5436],simde_mm256_xor_si256(c2[2601],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[6141],simde_mm256_xor_si256(c2[5921],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1082],c2[1961])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[33]=_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[223],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[6689],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[6933],_mm256_xor_si256(c2[6713],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[3872],_mm256_xor_si256(c2[3652],_mm256_xor_si256(c2[1035],_mm256_xor_si256(c2[5656],_mm256_xor_si256(c2[5436],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3916],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5921],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[2181],c2[1961])))))))))))))))))))))))))))))))))); + d2[33]=simde_mm256_xor_si256(c2[5944],simde_mm256_xor_si256(c2[3520],simde_mm256_xor_si256(c2[223],simde_mm256_xor_si256(c2[3106],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[4643],simde_mm256_xor_si256(c2[4423],simde_mm256_xor_si256(c2[2904],simde_mm256_xor_si256(c2[3129],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[2269],simde_mm256_xor_si256(c2[6689],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[3173],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[6933],simde_mm256_xor_si256(c2[6713],simde_mm256_xor_si256(c2[1673],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[3872],simde_mm256_xor_si256(c2[3652],simde_mm256_xor_si256(c2[1035],simde_mm256_xor_si256(c2[5656],simde_mm256_xor_si256(c2[5436],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[3040],simde_mm256_xor_si256(c2[3916],simde_mm256_xor_si256(c2[3696],simde_mm256_xor_si256(c2[5921],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[2181],c2[1961])))))))))))))))))))))))))))))))))); //row: 4 - d2[44]=_mm256_xor_si256(c2[3307],_mm256_xor_si256(c2[3087],_mm256_xor_si256(c2[663],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[4842],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[5749],_mm256_xor_si256(c2[1566],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[47],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[4908],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[4250],_mm256_xor_si256(c2[6451],_mm256_xor_si256(c2[3832],_mm256_xor_si256(c2[973],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[4292],_mm256_xor_si256(c2[3856],_mm256_xor_si256(c2[6075],_mm256_xor_si256(c2[5855],_mm256_xor_si256(c2[2116],_mm256_xor_si256(c2[795],_mm256_xor_si256(c2[5217],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[6563],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[839],_mm256_xor_si256(c2[3284],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[5264],c2[6143])))))))))))))))))))))))))))))))))); + d2[44]=simde_mm256_xor_si256(c2[3307],simde_mm256_xor_si256(c2[3087],simde_mm256_xor_si256(c2[663],simde_mm256_xor_si256(c2[4405],simde_mm256_xor_si256(c2[4842],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[5749],simde_mm256_xor_si256(c2[1566],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[47],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[4908],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[4250],simde_mm256_xor_si256(c2[6451],simde_mm256_xor_si256(c2[3832],simde_mm256_xor_si256(c2[973],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[4292],simde_mm256_xor_si256(c2[3856],simde_mm256_xor_si256(c2[6075],simde_mm256_xor_si256(c2[5855],simde_mm256_xor_si256(c2[2116],simde_mm256_xor_si256(c2[795],simde_mm256_xor_si256(c2[5217],simde_mm256_xor_si256(c2[2579],simde_mm256_xor_si256(c2[6563],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[839],simde_mm256_xor_si256(c2[3284],simde_mm256_xor_si256(c2[3064],simde_mm256_xor_si256(c2[5264],c2[6143])))))))))))))))))))))))))))))))))); //row: 5 - d2[55]=_mm256_xor_si256(c2[5286],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[6384],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[2228],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[3545],_mm256_xor_si256(c2[4424],_mm256_xor_si256(c2[2246],_mm256_xor_si256(c2[2026],_mm256_xor_si256(c2[2031],_mm256_xor_si256(c2[6887],_mm256_xor_si256(c2[6667],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[5811],_mm256_xor_si256(c2[2952],_mm256_xor_si256(c2[2075],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[5835],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[1015],_mm256_xor_si256(c2[795],_mm256_xor_si256(c2[4095],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[4558],_mm256_xor_si256(c2[1697],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[2162],_mm256_xor_si256(c2[2818],_mm256_xor_si256(c2[5263],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[204],c2[1083])))))))))))))))))))))))))))))))))))); + d2[55]=simde_mm256_xor_si256(c2[5286],simde_mm256_xor_si256(c2[5066],simde_mm256_xor_si256(c2[2642],simde_mm256_xor_si256(c2[6384],simde_mm256_xor_si256(c2[3302],simde_mm256_xor_si256(c2[2448],simde_mm256_xor_si256(c2[2228],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[3545],simde_mm256_xor_si256(c2[4424],simde_mm256_xor_si256(c2[2246],simde_mm256_xor_si256(c2[2026],simde_mm256_xor_si256(c2[2031],simde_mm256_xor_si256(c2[6887],simde_mm256_xor_si256(c2[6667],simde_mm256_xor_si256(c2[6229],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[5811],simde_mm256_xor_si256(c2[2952],simde_mm256_xor_si256(c2[2075],simde_mm256_xor_si256(c2[6271],simde_mm256_xor_si256(c2[5835],simde_mm256_xor_si256(c2[771],simde_mm256_xor_si256(c2[1015],simde_mm256_xor_si256(c2[795],simde_mm256_xor_si256(c2[4095],simde_mm256_xor_si256(c2[2774],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[4558],simde_mm256_xor_si256(c2[1697],simde_mm256_xor_si256(c2[1503],simde_mm256_xor_si256(c2[2162],simde_mm256_xor_si256(c2[2818],simde_mm256_xor_si256(c2[5263],simde_mm256_xor_si256(c2[5043],simde_mm256_xor_si256(c2[204],c2[1083])))))))))))))))))))))))))))))))))))); //row: 6 - d2[66]=_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[3301],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[2447],_mm256_xor_si256(c2[908],_mm256_xor_si256(c2[3764],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[67],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[1610],_mm256_xor_si256(c2[6030],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[2294],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[6054],_mm256_xor_si256(c2[5834],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[2354],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[3037],_mm256_xor_si256(c2[5482],_mm256_xor_si256(c2[5262],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[1302],c2[6142])))))))))))))))))))))))))))))))))))); + d2[66]=simde_mm256_xor_si256(c2[5505],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[6603],simde_mm256_xor_si256(c2[3301],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[2447],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[3764],simde_mm256_xor_si256(c2[2465],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[67],simde_mm256_xor_si256(c2[6886],simde_mm256_xor_si256(c2[6448],simde_mm256_xor_si256(c2[1610],simde_mm256_xor_si256(c2[6030],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[2294],simde_mm256_xor_si256(c2[6490],simde_mm256_xor_si256(c2[6054],simde_mm256_xor_si256(c2[5834],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[4314],simde_mm256_xor_si256(c2[2993],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[4777],simde_mm256_xor_si256(c2[2354],simde_mm256_xor_si256(c2[1722],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[3037],simde_mm256_xor_si256(c2[5482],simde_mm256_xor_si256(c2[5262],simde_mm256_xor_si256(c2[423],simde_mm256_xor_si256(c2[1302],c2[6142])))))))))))))))))))))))))))))))))))); //row: 7 - d2[77]=_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[2206],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[6821],_mm256_xor_si256(c2[1542],_mm256_xor_si256(c2[3524],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[6407],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[2665],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[6425],_mm256_xor_si256(c2[6205],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[6210],_mm256_xor_si256(c2[1151],_mm256_xor_si256(c2[931],_mm256_xor_si256(c2[4027],_mm256_xor_si256(c2[3807],_mm256_xor_si256(c2[5567],_mm256_xor_si256(c2[3369],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[2951],_mm256_xor_si256(c2[4711],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[1852],_mm256_xor_si256(c2[6254],_mm256_xor_si256(c2[1195],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[3411],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[2975],_mm256_xor_si256(c2[4955],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[6493],_mm256_xor_si256(c2[5194],_mm256_xor_si256(c2[4974],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[6953],_mm256_xor_si256(c2[1894],_mm256_xor_si256(c2[1674],_mm256_xor_si256(c2[4336],_mm256_xor_si256(c2[6096],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[3678],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[5434],_mm256_xor_si256(c2[5682],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[6341],_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[6997],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[1718],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[2183],_mm256_xor_si256(c2[3943],_mm256_xor_si256(c2[4383],_mm256_xor_si256(c2[6143],_mm256_xor_si256(c2[5262],_mm256_xor_si256(c2[203],c2[7022])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[77]=simde_mm256_xor_si256(c2[2426],simde_mm256_xor_si256(c2[2206],simde_mm256_xor_si256(c2[3966],simde_mm256_xor_si256(c2[6821],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[3524],simde_mm256_xor_si256(c2[5284],simde_mm256_xor_si256(c2[6627],simde_mm256_xor_si256(c2[6407],simde_mm256_xor_si256(c2[1128],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[685],simde_mm256_xor_si256(c2[2665],simde_mm256_xor_si256(c2[2445],simde_mm256_xor_si256(c2[3543],simde_mm256_xor_si256(c2[6425],simde_mm256_xor_si256(c2[6205],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[6210],simde_mm256_xor_si256(c2[1151],simde_mm256_xor_si256(c2[931],simde_mm256_xor_si256(c2[4027],simde_mm256_xor_si256(c2[3807],simde_mm256_xor_si256(c2[5567],simde_mm256_xor_si256(c2[3369],simde_mm256_xor_si256(c2[5129],simde_mm256_xor_si256(c2[5570],simde_mm256_xor_si256(c2[291],simde_mm256_xor_si256(c2[2951],simde_mm256_xor_si256(c2[4711],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[1852],simde_mm256_xor_si256(c2[6254],simde_mm256_xor_si256(c2[1195],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[3411],simde_mm256_xor_si256(c2[5171],simde_mm256_xor_si256(c2[2975],simde_mm256_xor_si256(c2[4955],simde_mm256_xor_si256(c2[4735],simde_mm256_xor_si256(c2[6493],simde_mm256_xor_si256(c2[5194],simde_mm256_xor_si256(c2[4974],simde_mm256_xor_si256(c2[6734],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[2995],simde_mm256_xor_si256(c2[6953],simde_mm256_xor_si256(c2[1894],simde_mm256_xor_si256(c2[1674],simde_mm256_xor_si256(c2[4336],simde_mm256_xor_si256(c2[6096],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[3678],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[5434],simde_mm256_xor_si256(c2[5682],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[6341],simde_mm256_xor_si256(c2[1062],simde_mm256_xor_si256(c2[6997],simde_mm256_xor_si256(c2[1938],simde_mm256_xor_si256(c2[1718],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[2183],simde_mm256_xor_si256(c2[3943],simde_mm256_xor_si256(c2[4383],simde_mm256_xor_si256(c2[6143],simde_mm256_xor_si256(c2[5262],simde_mm256_xor_si256(c2[203],c2[7022])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[88]=_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[6169],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[4621],_mm256_xor_si256(c2[3551],_mm256_xor_si256(c2[3331],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[4648],_mm256_xor_si256(c2[6842],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[3134],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[731],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4055],_mm256_xor_si256(c2[3178],_mm256_xor_si256(c2[555],_mm256_xor_si256(c2[335],_mm256_xor_si256(c2[6938],_mm256_xor_si256(c2[2118],_mm256_xor_si256(c2[1898],_mm256_xor_si256(c2[5418],_mm256_xor_si256(c2[5198],_mm256_xor_si256(c2[3877],_mm256_xor_si256(c2[1480],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[5661],_mm256_xor_si256(c2[2826],_mm256_xor_si256(c2[2606],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[6366],_mm256_xor_si256(c2[6146],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[1307],c2[2186])))))))))))))))))))))))))))))))))))))))))); + d2[88]=simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[6169],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[4621],simde_mm256_xor_si256(c2[3551],simde_mm256_xor_si256(c2[3331],simde_mm256_xor_si256(c2[1792],simde_mm256_xor_si256(c2[4648],simde_mm256_xor_si256(c2[6842],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[3129],simde_mm256_xor_si256(c2[3134],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[731],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[2494],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[6914],simde_mm256_xor_si256(c2[4055],simde_mm256_xor_si256(c2[3178],simde_mm256_xor_si256(c2[555],simde_mm256_xor_si256(c2[335],simde_mm256_xor_si256(c2[6938],simde_mm256_xor_si256(c2[2118],simde_mm256_xor_si256(c2[1898],simde_mm256_xor_si256(c2[5418],simde_mm256_xor_si256(c2[5198],simde_mm256_xor_si256(c2[3877],simde_mm256_xor_si256(c2[1480],simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[5661],simde_mm256_xor_si256(c2[2826],simde_mm256_xor_si256(c2[2606],simde_mm256_xor_si256(c2[3265],simde_mm256_xor_si256(c2[3921],simde_mm256_xor_si256(c2[6366],simde_mm256_xor_si256(c2[6146],simde_mm256_xor_si256(c2[1527],simde_mm256_xor_si256(c2[1307],c2[2186])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[99]=_mm256_xor_si256(c2[6607],_mm256_xor_si256(c2[6166],_mm256_xor_si256(c2[5946],_mm256_xor_si256(c2[4183],_mm256_xor_si256(c2[3522],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[3769],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[3108],_mm256_xor_si256(c2[2230],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[1785],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[3126],_mm256_xor_si256(c2[2906],_mm256_xor_si256(c2[3572],_mm256_xor_si256(c2[2911],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[728],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[731],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[6691],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[3832],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[6715],_mm256_xor_si256(c2[2336],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[1675],_mm256_xor_si256(c2[5636],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[4315],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[1037],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[5438],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[3703],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[3260],_mm256_xor_si256(c2[6584],_mm256_xor_si256(c2[6143],_mm256_xor_si256(c2[5923],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[2624],c2[1963]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[99]=simde_mm256_xor_si256(c2[6607],simde_mm256_xor_si256(c2[6166],simde_mm256_xor_si256(c2[5946],simde_mm256_xor_si256(c2[4183],simde_mm256_xor_si256(c2[3522],simde_mm256_xor_si256(c2[886],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[3769],simde_mm256_xor_si256(c2[3328],simde_mm256_xor_si256(c2[3108],simde_mm256_xor_si256(c2[2230],simde_mm256_xor_si256(c2[1569],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[4425],simde_mm256_xor_si256(c2[1785],simde_mm256_xor_si256(c2[3567],simde_mm256_xor_si256(c2[3126],simde_mm256_xor_si256(c2[2906],simde_mm256_xor_si256(c2[3572],simde_mm256_xor_si256(c2[2911],simde_mm256_xor_si256(c2[1169],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[731],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[2932],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[6691],simde_mm256_xor_si256(c2[4493],simde_mm256_xor_si256(c2[3832],simde_mm256_xor_si256(c2[3616],simde_mm256_xor_si256(c2[2955],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[6715],simde_mm256_xor_si256(c2[2336],simde_mm256_xor_si256(c2[1895],simde_mm256_xor_si256(c2[1675],simde_mm256_xor_si256(c2[5636],simde_mm256_xor_si256(c2[4975],simde_mm256_xor_si256(c2[4315],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[1037],simde_mm256_xor_si256(c2[6099],simde_mm256_xor_si256(c2[5438],simde_mm256_xor_si256(c2[3044],simde_mm256_xor_si256(c2[2383],simde_mm256_xor_si256(c2[3703],simde_mm256_xor_si256(c2[3042],simde_mm256_xor_si256(c2[4359],simde_mm256_xor_si256(c2[3698],simde_mm256_xor_si256(c2[3260],simde_mm256_xor_si256(c2[6584],simde_mm256_xor_si256(c2[6143],simde_mm256_xor_si256(c2[5923],simde_mm256_xor_si256(c2[1745],simde_mm256_xor_si256(c2[1084],simde_mm256_xor_si256(c2[2624],c2[1963]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[110]=_mm256_xor_si256(c2[3303],_mm256_xor_si256(c2[5522],_mm256_xor_si256(c2[3217],c2[5214]))); + d2[110]=simde_mm256_xor_si256(c2[3303],simde_mm256_xor_si256(c2[5522],simde_mm256_xor_si256(c2[3217],c2[5214]))); //row: 11 - d2[121]=_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[6384],_mm256_xor_si256(c2[3087],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[5970],_mm256_xor_si256(c2[4431],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[5993],_mm256_xor_si256(c2[5773],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[5133],_mm256_xor_si256(c2[2514],_mm256_xor_si256(c2[6694],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[5817],_mm256_xor_si256(c2[2974],_mm256_xor_si256(c2[2758],_mm256_xor_si256(c2[2538],_mm256_xor_si256(c2[4537],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[6736],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[3899],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[3459],_mm256_xor_si256(c2[5245],_mm256_xor_si256(c2[5904],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[6560],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[5045],_mm256_xor_si256(c2[4825],c2[5478]))))))))))))))))))))))))))))))))))))); + d2[121]=simde_mm256_xor_si256(c2[1769],simde_mm256_xor_si256(c2[6384],simde_mm256_xor_si256(c2[3087],simde_mm256_xor_si256(c2[5942],simde_mm256_xor_si256(c2[5970],simde_mm256_xor_si256(c2[4431],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[5768],simde_mm256_xor_si256(c2[5993],simde_mm256_xor_si256(c2[5773],simde_mm256_xor_si256(c2[3370],simde_mm256_xor_si256(c2[2932],simde_mm256_xor_si256(c2[5133],simde_mm256_xor_si256(c2[2514],simde_mm256_xor_si256(c2[6694],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[5817],simde_mm256_xor_si256(c2[2974],simde_mm256_xor_si256(c2[2758],simde_mm256_xor_si256(c2[2538],simde_mm256_xor_si256(c2[4537],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[6736],simde_mm256_xor_si256(c2[6516],simde_mm256_xor_si256(c2[3899],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[3459],simde_mm256_xor_si256(c2[5245],simde_mm256_xor_si256(c2[5904],simde_mm256_xor_si256(c2[6780],simde_mm256_xor_si256(c2[6560],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[3946],simde_mm256_xor_si256(c2[5045],simde_mm256_xor_si256(c2[4825],c2[5478]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[132]=_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[6824],_mm256_xor_si256(c2[4400],_mm256_xor_si256(c2[1103],_mm256_xor_si256(c2[4206],_mm256_xor_si256(c2[3986],_mm256_xor_si256(c2[2447],_mm256_xor_si256(c2[5303],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[1606],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[948],_mm256_xor_si256(c2[3149],_mm256_xor_si256(c2[2486],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[4710],_mm256_xor_si256(c2[3833],_mm256_xor_si256(c2[990],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[5853],_mm256_xor_si256(c2[4532],_mm256_xor_si256(c2[1915],_mm256_xor_si256(c2[6316],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[4576],_mm256_xor_si256(c2[7021],_mm256_xor_si256(c2[6801],_mm256_xor_si256(c2[1962],c2[2841])))))))))))))))))))))))))))))))))); + d2[132]=simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[6824],simde_mm256_xor_si256(c2[4400],simde_mm256_xor_si256(c2[1103],simde_mm256_xor_si256(c2[4206],simde_mm256_xor_si256(c2[3986],simde_mm256_xor_si256(c2[2447],simde_mm256_xor_si256(c2[5303],simde_mm256_xor_si256(c2[5745],simde_mm256_xor_si256(c2[4004],simde_mm256_xor_si256(c2[3784],simde_mm256_xor_si256(c2[3789],simde_mm256_xor_si256(c2[1606],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[3149],simde_mm256_xor_si256(c2[2486],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[4710],simde_mm256_xor_si256(c2[3833],simde_mm256_xor_si256(c2[990],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[2773],simde_mm256_xor_si256(c2[2553],simde_mm256_xor_si256(c2[5853],simde_mm256_xor_si256(c2[4532],simde_mm256_xor_si256(c2[1915],simde_mm256_xor_si256(c2[6316],simde_mm256_xor_si256(c2[3261],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[4576],simde_mm256_xor_si256(c2[7021],simde_mm256_xor_si256(c2[6801],simde_mm256_xor_si256(c2[1962],c2[2841])))))))))))))))))))))))))))))))))); //row: 13 - d2[143]=_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[3304],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[6380],_mm256_xor_si256(c2[2890],_mm256_xor_si256(c2[1351],_mm256_xor_si256(c2[4427],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[5964],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[6891],_mm256_xor_si256(c2[2053],_mm256_xor_si256(c2[6473],_mm256_xor_si256(c2[3614],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[6933],_mm256_xor_si256(c2[6717],_mm256_xor_si256(c2[6497],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[3436],_mm256_xor_si256(c2[819],_mm256_xor_si256(c2[5440],_mm256_xor_si256(c2[5220],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[6116],_mm256_xor_si256(c2[5705],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[1965],c2[1745]))))))))))))))))))))))))))))))))))))); + d2[143]=simde_mm256_xor_si256(c2[5728],simde_mm256_xor_si256(c2[3304],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[6380],simde_mm256_xor_si256(c2[2890],simde_mm256_xor_si256(c2[1351],simde_mm256_xor_si256(c2[4427],simde_mm256_xor_si256(c2[4207],simde_mm256_xor_si256(c2[5964],simde_mm256_xor_si256(c2[2688],simde_mm256_xor_si256(c2[2913],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[6891],simde_mm256_xor_si256(c2[2053],simde_mm256_xor_si256(c2[6473],simde_mm256_xor_si256(c2[3614],simde_mm256_xor_si256(c2[2957],simde_mm256_xor_si256(c2[2737],simde_mm256_xor_si256(c2[6933],simde_mm256_xor_si256(c2[6717],simde_mm256_xor_si256(c2[6497],simde_mm256_xor_si256(c2[1457],simde_mm256_xor_si256(c2[4757],simde_mm256_xor_si256(c2[3656],simde_mm256_xor_si256(c2[3436],simde_mm256_xor_si256(c2[819],simde_mm256_xor_si256(c2[5440],simde_mm256_xor_si256(c2[5220],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[2824],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[3480],simde_mm256_xor_si256(c2[6116],simde_mm256_xor_si256(c2[5705],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[1965],c2[1745]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[154]=_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[1548],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[4866],_mm256_xor_si256(c2[4431],_mm256_xor_si256(c2[3327],_mm256_xor_si256(c2[2892],_mm256_xor_si256(c2[6183],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[2442],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[4229],_mm256_xor_si256(c2[4669],_mm256_xor_si256(c2[4454],_mm256_xor_si256(c2[4234],_mm256_xor_si256(c2[2486],_mm256_xor_si256(c2[2266],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[4029],_mm256_xor_si256(c2[3594],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4278],_mm256_xor_si256(c2[1870],_mm256_xor_si256(c2[1435],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[1219],_mm256_xor_si256(c2[999],_mm256_xor_si256(c2[3653],_mm256_xor_si256(c2[3433],_mm256_xor_si256(c2[2998],_mm256_xor_si256(c2[6733],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[5197],_mm256_xor_si256(c2[4977],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[6981],_mm256_xor_si256(c2[6761],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[3706],_mm256_xor_si256(c2[4800],_mm256_xor_si256(c2[4365],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[5241],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[862],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[207],_mm256_xor_si256(c2[2842],_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[3721],_mm256_xor_si256(c2[3506],c2[3286]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[154]=simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[4845],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[1548],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[4866],simde_mm256_xor_si256(c2[4431],simde_mm256_xor_si256(c2[3327],simde_mm256_xor_si256(c2[2892],simde_mm256_xor_si256(c2[6183],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[5748],simde_mm256_xor_si256(c2[2442],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[4229],simde_mm256_xor_si256(c2[4669],simde_mm256_xor_si256(c2[4454],simde_mm256_xor_si256(c2[4234],simde_mm256_xor_si256(c2[2486],simde_mm256_xor_si256(c2[2266],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[4029],simde_mm256_xor_si256(c2[3594],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[5590],simde_mm256_xor_si256(c2[5155],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[4278],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1435],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[999],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[3433],simde_mm256_xor_si256(c2[2998],simde_mm256_xor_si256(c2[6733],simde_mm256_xor_si256(c2[6298],simde_mm256_xor_si256(c2[5412],simde_mm256_xor_si256(c2[5197],simde_mm256_xor_si256(c2[4977],simde_mm256_xor_si256(c2[3876],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[6981],simde_mm256_xor_si256(c2[6761],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[3706],simde_mm256_xor_si256(c2[4800],simde_mm256_xor_si256(c2[4365],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[5241],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[862],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[207],simde_mm256_xor_si256(c2[2842],simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[3721],simde_mm256_xor_si256(c2[3506],c2[3286]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[165]=_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[5281],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[5087],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[3110],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[5966],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4885],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[4670],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[2267],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[4030],_mm256_xor_si256(c2[1193],_mm256_xor_si256(c2[1411],_mm256_xor_si256(c2[5373],_mm256_xor_si256(c2[5591],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[4714],_mm256_xor_si256(c2[1653],_mm256_xor_si256(c2[1871],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[1435],_mm256_xor_si256(c2[3216],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[5195],_mm256_xor_si256(c2[5413],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[6979],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[4583],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[5239],_mm256_xor_si256(c2[5457],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[863],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[3504],c2[3722])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[165]=simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[886],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[5063],simde_mm256_xor_si256(c2[5281],simde_mm256_xor_si256(c2[1766],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[4649],simde_mm256_xor_si256(c2[5087],simde_mm256_xor_si256(c2[4867],simde_mm256_xor_si256(c2[3110],simde_mm256_xor_si256(c2[3328],simde_mm256_xor_si256(c2[5966],simde_mm256_xor_si256(c2[6184],simde_mm256_xor_si256(c2[4447],simde_mm256_xor_si256(c2[4885],simde_mm256_xor_si256(c2[4665],simde_mm256_xor_si256(c2[4452],simde_mm256_xor_si256(c2[4670],simde_mm256_xor_si256(c2[2049],simde_mm256_xor_si256(c2[2487],simde_mm256_xor_si256(c2[2267],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[3812],simde_mm256_xor_si256(c2[4030],simde_mm256_xor_si256(c2[1193],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[5373],simde_mm256_xor_si256(c2[5591],simde_mm256_xor_si256(c2[4496],simde_mm256_xor_si256(c2[4714],simde_mm256_xor_si256(c2[1653],simde_mm256_xor_si256(c2[1871],simde_mm256_xor_si256(c2[1217],simde_mm256_xor_si256(c2[1435],simde_mm256_xor_si256(c2[3216],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[6516],simde_mm256_xor_si256(c2[6734],simde_mm256_xor_si256(c2[5195],simde_mm256_xor_si256(c2[5413],simde_mm256_xor_si256(c2[2578],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[6979],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[3924],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[4583],simde_mm256_xor_si256(c2[4801],simde_mm256_xor_si256(c2[5239],simde_mm256_xor_si256(c2[5457],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[863],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[2625],simde_mm256_xor_si256(c2[2843],simde_mm256_xor_si256(c2[3504],c2[3722])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[176]=_mm256_xor_si256(c2[2865],_mm256_xor_si256(c2[2645],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[6846],_mm256_xor_si256(c2[4431],_mm256_xor_si256(c2[4211],_mm256_xor_si256(c2[5307],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[5528],_mm256_xor_si256(c2[3104],_mm256_xor_si256(c2[6864],_mm256_xor_si256(c2[6644],_mm256_xor_si256(c2[4229],_mm256_xor_si256(c2[4009],_mm256_xor_si256(c2[6649],_mm256_xor_si256(c2[4014],_mm256_xor_si256(c2[4466],_mm256_xor_si256(c2[4246],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[1173],_mm256_xor_si256(c2[6009],_mm256_xor_si256(c2[3374],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[755],_mm256_xor_si256(c2[531],_mm256_xor_si256(c2[4935],_mm256_xor_si256(c2[6693],_mm256_xor_si256(c2[4058],_mm256_xor_si256(c2[3850],_mm256_xor_si256(c2[1435],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[3414],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[5633],_mm256_xor_si256(c2[5413],_mm256_xor_si256(c2[2998],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[1674],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[6078],_mm256_xor_si256(c2[353],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[4775],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[2137],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[6121],_mm256_xor_si256(c2[3706],_mm256_xor_si256(c2[3486],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[4145],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[2842],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[207],_mm256_xor_si256(c2[7026],_mm256_xor_si256(c2[4822],_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[3066],c2[6802]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[176]=simde_mm256_xor_si256(c2[2865],simde_mm256_xor_si256(c2[2645],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[4845],simde_mm256_xor_si256(c2[4625],simde_mm256_xor_si256(c2[3963],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[6846],simde_mm256_xor_si256(c2[4431],simde_mm256_xor_si256(c2[4211],simde_mm256_xor_si256(c2[5307],simde_mm256_xor_si256(c2[2672],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[5528],simde_mm256_xor_si256(c2[3104],simde_mm256_xor_si256(c2[6864],simde_mm256_xor_si256(c2[6644],simde_mm256_xor_si256(c2[4229],simde_mm256_xor_si256(c2[4009],simde_mm256_xor_si256(c2[6649],simde_mm256_xor_si256(c2[4014],simde_mm256_xor_si256(c2[4466],simde_mm256_xor_si256(c2[4246],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[1611],simde_mm256_xor_si256(c2[3808],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[1173],simde_mm256_xor_si256(c2[6009],simde_mm256_xor_si256(c2[3374],simde_mm256_xor_si256(c2[3390],simde_mm256_xor_si256(c2[975],simde_mm256_xor_si256(c2[755],simde_mm256_xor_si256(c2[531],simde_mm256_xor_si256(c2[4935],simde_mm256_xor_si256(c2[6693],simde_mm256_xor_si256(c2[4058],simde_mm256_xor_si256(c2[3850],simde_mm256_xor_si256(c2[1435],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[3414],simde_mm256_xor_si256(c2[779],simde_mm256_xor_si256(c2[5633],simde_mm256_xor_si256(c2[5413],simde_mm256_xor_si256(c2[2998],simde_mm256_xor_si256(c2[2778],simde_mm256_xor_si256(c2[1674],simde_mm256_xor_si256(c2[6298],simde_mm256_xor_si256(c2[6078],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[4757],simde_mm256_xor_si256(c2[4775],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[2140],simde_mm256_xor_si256(c2[2137],simde_mm256_xor_si256(c2[6541],simde_mm256_xor_si256(c2[6121],simde_mm256_xor_si256(c2[3706],simde_mm256_xor_si256(c2[3486],simde_mm256_xor_si256(c2[6780],simde_mm256_xor_si256(c2[4145],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[4801],simde_mm256_xor_si256(c2[2842],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[207],simde_mm256_xor_si256(c2[7026],simde_mm256_xor_si256(c2[4822],simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[2187],simde_mm256_xor_si256(c2[5701],simde_mm256_xor_si256(c2[3066],c2[6802]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[187]=_mm256_xor_si256(c2[5726],_mm256_xor_si256(c2[5506],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[6609],_mm256_xor_si256(c2[3082],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[4185],_mm256_xor_si256(c2[6824],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[2888],_mm256_xor_si256(c2[2668],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[3771],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[2232],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[2686],_mm256_xor_si256(c2[2466],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[3569],_mm256_xor_si256(c2[2471],_mm256_xor_si256(c2[3574],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[1171],_mm256_xor_si256(c2[6669],_mm256_xor_si256(c2[953],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[2934],_mm256_xor_si256(c2[6251],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[4495],_mm256_xor_si256(c2[2515],_mm256_xor_si256(c2[3618],_mm256_xor_si256(c2[6711],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[6275],_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[5170],_mm256_xor_si256(c2[1455],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[2558],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[4535],_mm256_xor_si256(c2[5858],_mm256_xor_si256(c2[5638],_mm256_xor_si256(c2[3214],_mm256_xor_si256(c2[4317],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[4998],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[1943],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[3046],_mm256_xor_si256(c2[2602],_mm256_xor_si256(c2[3705],_mm256_xor_si256(c2[3258],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[5703],_mm256_xor_si256(c2[5483],_mm256_xor_si256(c2[6806],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[1967],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[1523],c2[2626]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[187]=simde_mm256_xor_si256(c2[5726],simde_mm256_xor_si256(c2[5506],simde_mm256_xor_si256(c2[6829],simde_mm256_xor_si256(c2[6609],simde_mm256_xor_si256(c2[3082],simde_mm256_xor_si256(c2[4405],simde_mm256_xor_si256(c2[4185],simde_mm256_xor_si256(c2[6824],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[2888],simde_mm256_xor_si256(c2[2668],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[3771],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[2232],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[5088],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[2686],simde_mm256_xor_si256(c2[2466],simde_mm256_xor_si256(c2[3789],simde_mm256_xor_si256(c2[3569],simde_mm256_xor_si256(c2[2471],simde_mm256_xor_si256(c2[3574],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[1391],simde_mm256_xor_si256(c2[1171],simde_mm256_xor_si256(c2[6669],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[2934],simde_mm256_xor_si256(c2[6251],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[315],simde_mm256_xor_si256(c2[3392],simde_mm256_xor_si256(c2[4495],simde_mm256_xor_si256(c2[2515],simde_mm256_xor_si256(c2[3618],simde_mm256_xor_si256(c2[6711],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[6275],simde_mm256_xor_si256(c2[339],simde_mm256_xor_si256(c2[5170],simde_mm256_xor_si256(c2[1455],simde_mm256_xor_si256(c2[1235],simde_mm256_xor_si256(c2[2558],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[4535],simde_mm256_xor_si256(c2[5858],simde_mm256_xor_si256(c2[5638],simde_mm256_xor_si256(c2[3214],simde_mm256_xor_si256(c2[4317],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[1920],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[4998],simde_mm256_xor_si256(c2[6101],simde_mm256_xor_si256(c2[1943],simde_mm256_xor_si256(c2[3266],simde_mm256_xor_si256(c2[3046],simde_mm256_xor_si256(c2[2602],simde_mm256_xor_si256(c2[3705],simde_mm256_xor_si256(c2[3258],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[5703],simde_mm256_xor_si256(c2[5483],simde_mm256_xor_si256(c2[6806],simde_mm256_xor_si256(c2[6586],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[1967],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[1523],c2[2626]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[198]=_mm256_xor_si256(c2[2865],_mm256_xor_si256(c2[6952],c2[4994])); + d2[198]=simde_mm256_xor_si256(c2[2865],simde_mm256_xor_si256(c2[6952],c2[4994])); //row: 19 - d2[209]=_mm256_xor_si256(c2[2649],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[3967],_mm256_xor_si256(c2[2860],_mm256_xor_si256(c2[6850],_mm256_xor_si256(c2[5311],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[1566],_mm256_xor_si256(c2[6648],_mm256_xor_si256(c2[6653],_mm256_xor_si256(c2[4250],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[6013],_mm256_xor_si256(c2[3394],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[3854],_mm256_xor_si256(c2[3418],_mm256_xor_si256(c2[5417],_mm256_xor_si256(c2[1678],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[4779],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[6125],_mm256_xor_si256(c2[6784],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[2626],_mm256_xor_si256(c2[4826],c2[5705])))))))))))))))))))))))))))); + d2[209]=simde_mm256_xor_si256(c2[2649],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[3967],simde_mm256_xor_si256(c2[2860],simde_mm256_xor_si256(c2[6850],simde_mm256_xor_si256(c2[5311],simde_mm256_xor_si256(c2[1128],simde_mm256_xor_si256(c2[1566],simde_mm256_xor_si256(c2[6648],simde_mm256_xor_si256(c2[6653],simde_mm256_xor_si256(c2[4250],simde_mm256_xor_si256(c2[3812],simde_mm256_xor_si256(c2[6013],simde_mm256_xor_si256(c2[3394],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[6697],simde_mm256_xor_si256(c2[3854],simde_mm256_xor_si256(c2[3418],simde_mm256_xor_si256(c2[5417],simde_mm256_xor_si256(c2[1678],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[4779],simde_mm256_xor_si256(c2[2141],simde_mm256_xor_si256(c2[6125],simde_mm256_xor_si256(c2[6784],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[2626],simde_mm256_xor_si256(c2[4826],c2[5705])))))))))))))))))))))))))))); //row: 20 - d2[220]=_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[6191],_mm256_xor_si256(c2[5971],_mm256_xor_si256(c2[4432],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[5769],_mm256_xor_si256(c2[5774],_mm256_xor_si256(c2[3591],_mm256_xor_si256(c2[3371],_mm256_xor_si256(c2[2933],_mm256_xor_si256(c2[5134],_mm256_xor_si256(c2[2515],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[5818],_mm256_xor_si256(c2[4489],_mm256_xor_si256(c2[2975],_mm256_xor_si256(c2[2539],_mm256_xor_si256(c2[4758],_mm256_xor_si256(c2[4538],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[6517],_mm256_xor_si256(c2[3900],_mm256_xor_si256(c2[1262],_mm256_xor_si256(c2[5246],_mm256_xor_si256(c2[5905],_mm256_xor_si256(c2[6561],_mm256_xor_si256(c2[1967],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[3947],c2[4826])))))))))))))))))))))))))))))))))); + d2[220]=simde_mm256_xor_si256(c2[1990],simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[6385],simde_mm256_xor_si256(c2[3088],simde_mm256_xor_si256(c2[6191],simde_mm256_xor_si256(c2[5971],simde_mm256_xor_si256(c2[4432],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[5989],simde_mm256_xor_si256(c2[5769],simde_mm256_xor_si256(c2[5774],simde_mm256_xor_si256(c2[3591],simde_mm256_xor_si256(c2[3371],simde_mm256_xor_si256(c2[2933],simde_mm256_xor_si256(c2[5134],simde_mm256_xor_si256(c2[2515],simde_mm256_xor_si256(c2[6695],simde_mm256_xor_si256(c2[5818],simde_mm256_xor_si256(c2[4489],simde_mm256_xor_si256(c2[2975],simde_mm256_xor_si256(c2[2539],simde_mm256_xor_si256(c2[4758],simde_mm256_xor_si256(c2[4538],simde_mm256_xor_si256(c2[799],simde_mm256_xor_si256(c2[6517],simde_mm256_xor_si256(c2[3900],simde_mm256_xor_si256(c2[1262],simde_mm256_xor_si256(c2[5246],simde_mm256_xor_si256(c2[5905],simde_mm256_xor_si256(c2[6561],simde_mm256_xor_si256(c2[1967],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[3947],c2[4826])))))))))))))))))))))))))))))))))); //row: 21 - d2[231]=_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[5281],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[6164],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[6404],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[4890],_mm256_xor_si256(c2[4670],_mm256_xor_si256(c2[2267],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[4030],_mm256_xor_si256(c2[1411],_mm256_xor_si256(c2[5591],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[4714],_mm256_xor_si256(c2[1871],_mm256_xor_si256(c2[1655],_mm256_xor_si256(c2[1435],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[5633],_mm256_xor_si256(c2[5413],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[5677],_mm256_xor_si256(c2[5457],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[3942],c2[3722])))))))))))))))))))))))))))))))))))); + d2[231]=simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[5281],simde_mm256_xor_si256(c2[1984],simde_mm256_xor_si256(c2[6164],simde_mm256_xor_si256(c2[4867],simde_mm256_xor_si256(c2[3328],simde_mm256_xor_si256(c2[6404],simde_mm256_xor_si256(c2[6184],simde_mm256_xor_si256(c2[4665],simde_mm256_xor_si256(c2[4890],simde_mm256_xor_si256(c2[4670],simde_mm256_xor_si256(c2[2267],simde_mm256_xor_si256(c2[1829],simde_mm256_xor_si256(c2[4030],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[5591],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[4714],simde_mm256_xor_si256(c2[1871],simde_mm256_xor_si256(c2[1655],simde_mm256_xor_si256(c2[1435],simde_mm256_xor_si256(c2[3434],simde_mm256_xor_si256(c2[6734],simde_mm256_xor_si256(c2[5633],simde_mm256_xor_si256(c2[5413],simde_mm256_xor_si256(c2[2796],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[4142],simde_mm256_xor_si256(c2[4801],simde_mm256_xor_si256(c2[5677],simde_mm256_xor_si256(c2[5457],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[2843],simde_mm256_xor_si256(c2[3942],c2[3722])))))))))))))))))))))))))))))))))))); //row: 22 - d2[242]=_mm256_xor_si256(c2[3982],c2[709]); + d2[242]=simde_mm256_xor_si256(c2[3982],c2[709]); //row: 23 - d2[253]=_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[950],c2[4954])); + d2[253]=simde_mm256_xor_si256(c2[3083],simde_mm256_xor_si256(c2[950],c2[4954])); //row: 24 - d2[264]=_mm256_xor_si256(c2[3765],_mm256_xor_si256(c2[2687],c2[6579])); + d2[264]=simde_mm256_xor_si256(c2[3765],simde_mm256_xor_si256(c2[2687],c2[6579])); //row: 25 - d2[275]=_mm256_xor_si256(c2[1762],c2[1874]); + d2[275]=simde_mm256_xor_si256(c2[1762],c2[1874]); //row: 26 - d2[286]=_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[2649],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[4844],_mm256_xor_si256(c2[3967],_mm256_xor_si256(c2[908],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[6850],_mm256_xor_si256(c2[6188],_mm256_xor_si256(c2[5311],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[486],_mm256_xor_si256(c2[6648],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[6873],_mm256_xor_si256(c2[6653],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[5347],_mm256_xor_si256(c2[5127],_mm256_xor_si256(c2[4250],_mm256_xor_si256(c2[4909],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[6890],_mm256_xor_si256(c2[6013],_mm256_xor_si256(c2[4491],_mm256_xor_si256(c2[4271],_mm256_xor_si256(c2[3394],_mm256_xor_si256(c2[1412],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[6917],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[4731],_mm256_xor_si256(c2[3854],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[3418],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[6294],_mm256_xor_si256(c2[5417],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[1678],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[5656],_mm256_xor_si256(c2[4779],_mm256_xor_si256(c2[3018],_mm256_xor_si256(c2[2361],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[7002],_mm256_xor_si256(c2[6125],_mm256_xor_si256(c2[622],_mm256_xor_si256(c2[6784],_mm256_xor_si256(c2[1278],_mm256_xor_si256(c2[621],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[3723],_mm256_xor_si256(c2[3503],_mm256_xor_si256(c2[2626],_mm256_xor_si256(c2[5923],_mm256_xor_si256(c2[5703],_mm256_xor_si256(c2[4826],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[5925],c2[5705]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[286]=simde_mm256_xor_si256(c2[3746],simde_mm256_xor_si256(c2[3526],simde_mm256_xor_si256(c2[2649],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1102],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[4844],simde_mm256_xor_si256(c2[3967],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[6850],simde_mm256_xor_si256(c2[6188],simde_mm256_xor_si256(c2[5311],simde_mm256_xor_si256(c2[2005],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[1128],simde_mm256_xor_si256(c2[706],simde_mm256_xor_si256(c2[486],simde_mm256_xor_si256(c2[6648],simde_mm256_xor_si256(c2[491],simde_mm256_xor_si256(c2[6873],simde_mm256_xor_si256(c2[6653],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[5347],simde_mm256_xor_si256(c2[5127],simde_mm256_xor_si256(c2[4250],simde_mm256_xor_si256(c2[4909],simde_mm256_xor_si256(c2[4689],simde_mm256_xor_si256(c2[3812],simde_mm256_xor_si256(c2[6890],simde_mm256_xor_si256(c2[6013],simde_mm256_xor_si256(c2[4491],simde_mm256_xor_si256(c2[4271],simde_mm256_xor_si256(c2[3394],simde_mm256_xor_si256(c2[1412],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[6917],simde_mm256_xor_si256(c2[6697],simde_mm256_xor_si256(c2[4951],simde_mm256_xor_si256(c2[4731],simde_mm256_xor_si256(c2[3854],simde_mm256_xor_si256(c2[4295],simde_mm256_xor_si256(c2[3638],simde_mm256_xor_si256(c2[3418],simde_mm256_xor_si256(c2[6514],simde_mm256_xor_si256(c2[6294],simde_mm256_xor_si256(c2[5417],simde_mm256_xor_si256(c2[2775],simde_mm256_xor_si256(c2[2555],simde_mm256_xor_si256(c2[1678],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[5876],simde_mm256_xor_si256(c2[5656],simde_mm256_xor_si256(c2[4779],simde_mm256_xor_si256(c2[3018],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[2141],simde_mm256_xor_si256(c2[1475],simde_mm256_xor_si256(c2[183],simde_mm256_xor_si256(c2[7002],simde_mm256_xor_si256(c2[6125],simde_mm256_xor_si256(c2[622],simde_mm256_xor_si256(c2[6784],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[621],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[3723],simde_mm256_xor_si256(c2[3503],simde_mm256_xor_si256(c2[2626],simde_mm256_xor_si256(c2[5923],simde_mm256_xor_si256(c2[5703],simde_mm256_xor_si256(c2[4826],simde_mm256_xor_si256(c2[6582],simde_mm256_xor_si256(c2[5925],c2[5705]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[297]=_mm256_xor_si256(c2[2201],c2[1895]); + d2[297]=simde_mm256_xor_si256(c2[2201],c2[1895]); //row: 28 - d2[308]=_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[5324],c2[4734])); + d2[308]=simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[5324],c2[4734])); //row: 29 - d2[319]=_mm256_xor_si256(c2[2424],c2[313]); + d2[319]=simde_mm256_xor_si256(c2[2424],c2[313]); //row: 30 - d2[330]=_mm256_xor_si256(c2[4446],_mm256_xor_si256(c2[2975],_mm256_xor_si256(c2[6536],c2[6578]))); + d2[330]=simde_mm256_xor_si256(c2[4446],simde_mm256_xor_si256(c2[2975],simde_mm256_xor_si256(c2[6536],c2[6578]))); //row: 31 - d2[341]=_mm256_xor_si256(c2[3309],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[4627],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[5971],_mm256_xor_si256(c2[2008],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[4645],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[494],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[4910],_mm256_xor_si256(c2[4472],_mm256_xor_si256(c2[6673],_mm256_xor_si256(c2[4054],_mm256_xor_si256(c2[1195],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[4514],_mm256_xor_si256(c2[4298],_mm256_xor_si256(c2[4078],_mm256_xor_si256(c2[6077],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[5439],_mm256_xor_si256(c2[3021],_mm256_xor_si256(c2[2801],_mm256_xor_si256(c2[6785],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[1281],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[3286],_mm256_xor_si256(c2[5486],_mm256_xor_si256(c2[6585],c2[6365]))))))))))))))))))))))))))))))))))); + d2[341]=simde_mm256_xor_si256(c2[3309],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[4627],simde_mm256_xor_si256(c2[471],simde_mm256_xor_si256(c2[5971],simde_mm256_xor_si256(c2[2008],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[4645],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[494],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[4910],simde_mm256_xor_si256(c2[4472],simde_mm256_xor_si256(c2[6673],simde_mm256_xor_si256(c2[4054],simde_mm256_xor_si256(c2[1195],simde_mm256_xor_si256(c2[538],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[4514],simde_mm256_xor_si256(c2[4298],simde_mm256_xor_si256(c2[4078],simde_mm256_xor_si256(c2[6077],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[1237],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[5439],simde_mm256_xor_si256(c2[3021],simde_mm256_xor_si256(c2[2801],simde_mm256_xor_si256(c2[6785],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[1281],simde_mm256_xor_si256(c2[1061],simde_mm256_xor_si256(c2[3286],simde_mm256_xor_si256(c2[5486],simde_mm256_xor_si256(c2[6585],c2[6365]))))))))))))))))))))))))))))))))))); //row: 32 - d2[352]=_mm256_xor_si256(c2[2209],_mm256_xor_si256(c2[1989],_mm256_xor_si256(c2[6824],_mm256_xor_si256(c2[6604],_mm256_xor_si256(c2[3307],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[6190],_mm256_xor_si256(c2[4651],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[6208],_mm256_xor_si256(c2[5988],_mm256_xor_si256(c2[5993],_mm256_xor_si256(c2[3810],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[2734],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[3414],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2758],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[4977],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[1238],_mm256_xor_si256(c2[1018],_mm256_xor_si256(c2[6736],_mm256_xor_si256(c2[4339],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[5685],_mm256_xor_si256(c2[5465],_mm256_xor_si256(c2[6124],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[2186],_mm256_xor_si256(c2[1966],_mm256_xor_si256(c2[4386],_mm256_xor_si256(c2[4166],c2[5045])))))))))))))))))))))))))))))))))))))))))); + d2[352]=simde_mm256_xor_si256(c2[2209],simde_mm256_xor_si256(c2[1989],simde_mm256_xor_si256(c2[6824],simde_mm256_xor_si256(c2[6604],simde_mm256_xor_si256(c2[3307],simde_mm256_xor_si256(c2[4403],simde_mm256_xor_si256(c2[6410],simde_mm256_xor_si256(c2[6190],simde_mm256_xor_si256(c2[4651],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[6208],simde_mm256_xor_si256(c2[5988],simde_mm256_xor_si256(c2[5993],simde_mm256_xor_si256(c2[3810],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[3372],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[5353],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[2734],simde_mm256_xor_si256(c2[6914],simde_mm256_xor_si256(c2[6037],simde_mm256_xor_si256(c2[3414],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2758],simde_mm256_xor_si256(c2[2092],simde_mm256_xor_si256(c2[4977],simde_mm256_xor_si256(c2[4757],simde_mm256_xor_si256(c2[1238],simde_mm256_xor_si256(c2[1018],simde_mm256_xor_si256(c2[6736],simde_mm256_xor_si256(c2[4339],simde_mm256_xor_si256(c2[4119],simde_mm256_xor_si256(c2[1481],simde_mm256_xor_si256(c2[5685],simde_mm256_xor_si256(c2[5465],simde_mm256_xor_si256(c2[6124],simde_mm256_xor_si256(c2[6780],simde_mm256_xor_si256(c2[2186],simde_mm256_xor_si256(c2[1966],simde_mm256_xor_si256(c2[4386],simde_mm256_xor_si256(c2[4166],c2[5045])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[363]=_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[2447],_mm256_xor_si256(c2[908],_mm256_xor_si256(c2[3764],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2250],_mm256_xor_si256(c2[2027],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[1610],_mm256_xor_si256(c2[6030],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[2294],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[6054],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[2138],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[2381],_mm256_xor_si256(c2[3037],_mm256_xor_si256(c2[5262],_mm256_xor_si256(c2[423],c2[1302])))))))))))))))))))))))))))); + d2[363]=simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[6603],simde_mm256_xor_si256(c2[2447],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[3764],simde_mm256_xor_si256(c2[2245],simde_mm256_xor_si256(c2[2250],simde_mm256_xor_si256(c2[2027],simde_mm256_xor_si256(c2[6886],simde_mm256_xor_si256(c2[6448],simde_mm256_xor_si256(c2[1610],simde_mm256_xor_si256(c2[6030],simde_mm256_xor_si256(c2[3171],simde_mm256_xor_si256(c2[2294],simde_mm256_xor_si256(c2[6490],simde_mm256_xor_si256(c2[6054],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[4314],simde_mm256_xor_si256(c2[2993],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[4777],simde_mm256_xor_si256(c2[2138],simde_mm256_xor_si256(c2[1722],simde_mm256_xor_si256(c2[2381],simde_mm256_xor_si256(c2[3037],simde_mm256_xor_si256(c2[5262],simde_mm256_xor_si256(c2[423],c2[1302])))))))))))))))))))))))))))); //row: 34 - d2[374]=_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[5721],_mm256_xor_si256(c2[5501],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[2204],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[2420],_mm256_xor_si256(c2[5307],_mm256_xor_si256(c2[5087],_mm256_xor_si256(c2[3551],_mm256_xor_si256(c2[3548],_mm256_xor_si256(c2[2012],_mm256_xor_si256(c2[6404],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[4885],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[4890],_mm256_xor_si256(c2[3574],_mm256_xor_si256(c2[3354],_mm256_xor_si256(c2[2707],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[4250],_mm256_xor_si256(c2[2714],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[1631],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[5811],_mm256_xor_si256(c2[4275],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[3618],_mm256_xor_si256(c2[3398],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[555],_mm256_xor_si256(c2[1655],_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[119],_mm256_xor_si256(c2[3874],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[2118],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[6954],_mm256_xor_si256(c2[5418],_mm256_xor_si256(c2[5633],_mm256_xor_si256(c2[4317],_mm256_xor_si256(c2[4097],_mm256_xor_si256(c2[3236],_mm256_xor_si256(c2[3016],_mm256_xor_si256(c2[1480],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[5881],_mm256_xor_si256(c2[4582],_mm256_xor_si256(c2[4362],_mm256_xor_si256(c2[2826],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[3485],_mm256_xor_si256(c2[5677],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[863],_mm256_xor_si256(c2[6366],_mm256_xor_si256(c2[3283],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[2626],c2[2406])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[374]=simde_mm256_xor_si256(c2[1106],simde_mm256_xor_si256(c2[886],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[5721],simde_mm256_xor_si256(c2[5501],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[2204],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[2420],simde_mm256_xor_si256(c2[5307],simde_mm256_xor_si256(c2[5087],simde_mm256_xor_si256(c2[3551],simde_mm256_xor_si256(c2[3548],simde_mm256_xor_si256(c2[2012],simde_mm256_xor_si256(c2[6404],simde_mm256_xor_si256(c2[5088],simde_mm256_xor_si256(c2[4868],simde_mm256_xor_si256(c2[5105],simde_mm256_xor_si256(c2[4885],simde_mm256_xor_si256(c2[3349],simde_mm256_xor_si256(c2[4890],simde_mm256_xor_si256(c2[3574],simde_mm256_xor_si256(c2[3354],simde_mm256_xor_si256(c2[2707],simde_mm256_xor_si256(c2[2487],simde_mm256_xor_si256(c2[951],simde_mm256_xor_si256(c2[2269],simde_mm256_xor_si256(c2[2049],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[4250],simde_mm256_xor_si256(c2[2714],simde_mm256_xor_si256(c2[1851],simde_mm256_xor_si256(c2[1631],simde_mm256_xor_si256(c2[95],simde_mm256_xor_si256(c2[5811],simde_mm256_xor_si256(c2[4275],simde_mm256_xor_si256(c2[4934],simde_mm256_xor_si256(c2[3618],simde_mm256_xor_si256(c2[3398],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[2091],simde_mm256_xor_si256(c2[555],simde_mm256_xor_si256(c2[1655],simde_mm256_xor_si256(c2[339],simde_mm256_xor_si256(c2[119],simde_mm256_xor_si256(c2[3874],simde_mm256_xor_si256(c2[3654],simde_mm256_xor_si256(c2[2118],simde_mm256_xor_si256(c2[135],simde_mm256_xor_si256(c2[6954],simde_mm256_xor_si256(c2[5418],simde_mm256_xor_si256(c2[5633],simde_mm256_xor_si256(c2[4317],simde_mm256_xor_si256(c2[4097],simde_mm256_xor_si256(c2[3236],simde_mm256_xor_si256(c2[3016],simde_mm256_xor_si256(c2[1480],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[6101],simde_mm256_xor_si256(c2[5881],simde_mm256_xor_si256(c2[4582],simde_mm256_xor_si256(c2[4362],simde_mm256_xor_si256(c2[2826],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[3485],simde_mm256_xor_si256(c2[5677],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[863],simde_mm256_xor_si256(c2[6366],simde_mm256_xor_si256(c2[3283],simde_mm256_xor_si256(c2[3063],simde_mm256_xor_si256(c2[1527],simde_mm256_xor_si256(c2[3942],simde_mm256_xor_si256(c2[2626],c2[2406])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[385]=_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[6165],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[5971],_mm256_xor_si256(c2[5751],_mm256_xor_si256(c2[4212],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[6625],_mm256_xor_si256(c2[5769],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[3371],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[2713],_mm256_xor_si256(c2[4914],_mm256_xor_si256(c2[2295],_mm256_xor_si256(c2[6475],_mm256_xor_si256(c2[5598],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[2319],_mm256_xor_si256(c2[5394],_mm256_xor_si256(c2[4538],_mm256_xor_si256(c2[4318],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[6297],_mm256_xor_si256(c2[3680],_mm256_xor_si256(c2[1042],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[5685],_mm256_xor_si256(c2[6341],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[3727],c2[4606])))))))))))))))))))))))))))))))))); + d2[385]=simde_mm256_xor_si256(c2[1770],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[6165],simde_mm256_xor_si256(c2[2868],simde_mm256_xor_si256(c2[5971],simde_mm256_xor_si256(c2[5751],simde_mm256_xor_si256(c2[4212],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[6625],simde_mm256_xor_si256(c2[5769],simde_mm256_xor_si256(c2[5549],simde_mm256_xor_si256(c2[5554],simde_mm256_xor_si256(c2[3371],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[2713],simde_mm256_xor_si256(c2[4914],simde_mm256_xor_si256(c2[2295],simde_mm256_xor_si256(c2[6475],simde_mm256_xor_si256(c2[5598],simde_mm256_xor_si256(c2[2755],simde_mm256_xor_si256(c2[2319],simde_mm256_xor_si256(c2[5394],simde_mm256_xor_si256(c2[4538],simde_mm256_xor_si256(c2[4318],simde_mm256_xor_si256(c2[579],simde_mm256_xor_si256(c2[6297],simde_mm256_xor_si256(c2[3680],simde_mm256_xor_si256(c2[1042],simde_mm256_xor_si256(c2[5026],simde_mm256_xor_si256(c2[5685],simde_mm256_xor_si256(c2[6341],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[1527],simde_mm256_xor_si256(c2[3727],c2[4606])))))))))))))))))))))))))))))))))); //row: 36 - d2[396]=_mm256_xor_si256(c2[1982],_mm256_xor_si256(c2[5768],c2[378])); + d2[396]=simde_mm256_xor_si256(c2[1982],simde_mm256_xor_si256(c2[5768],c2[378])); //row: 37 - d2[407]=_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[4841],_mm256_xor_si256(c2[1768],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[4651],_mm256_xor_si256(c2[4427],_mm256_xor_si256(c2[3112],_mm256_xor_si256(c2[2888],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[5964],_mm256_xor_si256(c2[5744],_mm256_xor_si256(c2[4449],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[4454],_mm256_xor_si256(c2[4450],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[2051],_mm256_xor_si256(c2[1827],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[3814],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[1195],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[5375],_mm256_xor_si256(c2[5151],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4494],_mm256_xor_si256(c2[4274],_mm256_xor_si256(c2[1655],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[1219],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[3218],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[6518],_mm256_xor_si256(c2[6294],_mm256_xor_si256(c2[5197],_mm256_xor_si256(c2[5193],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[6981],_mm256_xor_si256(c2[6977],_mm256_xor_si256(c2[6757],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[4585],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[5241],_mm256_xor_si256(c2[5237],_mm256_xor_si256(c2[5017],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[3502],c2[3282]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[407]=simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[5065],simde_mm256_xor_si256(c2[4841],simde_mm256_xor_si256(c2[1768],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[4651],simde_mm256_xor_si256(c2[4427],simde_mm256_xor_si256(c2[3112],simde_mm256_xor_si256(c2[2888],simde_mm256_xor_si256(c2[5968],simde_mm256_xor_si256(c2[5964],simde_mm256_xor_si256(c2[5744],simde_mm256_xor_si256(c2[4449],simde_mm256_xor_si256(c2[4225],simde_mm256_xor_si256(c2[4454],simde_mm256_xor_si256(c2[4450],simde_mm256_xor_si256(c2[4230],simde_mm256_xor_si256(c2[2051],simde_mm256_xor_si256(c2[1827],simde_mm256_xor_si256(c2[1613],simde_mm256_xor_si256(c2[1389],simde_mm256_xor_si256(c2[3814],simde_mm256_xor_si256(c2[3590],simde_mm256_xor_si256(c2[1195],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[5375],simde_mm256_xor_si256(c2[5151],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[4494],simde_mm256_xor_si256(c2[4274],simde_mm256_xor_si256(c2[1655],simde_mm256_xor_si256(c2[1431],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[1215],simde_mm256_xor_si256(c2[995],simde_mm256_xor_si256(c2[3218],simde_mm256_xor_si256(c2[2994],simde_mm256_xor_si256(c2[6518],simde_mm256_xor_si256(c2[6294],simde_mm256_xor_si256(c2[5197],simde_mm256_xor_si256(c2[5193],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[2580],simde_mm256_xor_si256(c2[2356],simde_mm256_xor_si256(c2[6981],simde_mm256_xor_si256(c2[6977],simde_mm256_xor_si256(c2[6757],simde_mm256_xor_si256(c2[3926],simde_mm256_xor_si256(c2[3702],simde_mm256_xor_si256(c2[4585],simde_mm256_xor_si256(c2[4361],simde_mm256_xor_si256(c2[5241],simde_mm256_xor_si256(c2[5237],simde_mm256_xor_si256(c2[5017],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[203],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[3506],simde_mm256_xor_si256(c2[3502],c2[3282]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[418]=_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[247],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[1564],_mm256_xor_si256(c2[3545],_mm256_xor_si256(c2[265],_mm256_xor_si256(c2[45],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[4906],_mm256_xor_si256(c2[4686],_mm256_xor_si256(c2[4248],_mm256_xor_si256(c2[6449],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[3854],_mm256_xor_si256(c2[1650],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[5853],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[5215],_mm256_xor_si256(c2[2577],_mm256_xor_si256(c2[6561],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[837],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[5262],c2[6141])))))))))))))))))))))))))))))))))); + d2[418]=simde_mm256_xor_si256(c2[3305],simde_mm256_xor_si256(c2[3085],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[4403],simde_mm256_xor_si256(c2[467],simde_mm256_xor_si256(c2[247],simde_mm256_xor_si256(c2[5747],simde_mm256_xor_si256(c2[1564],simde_mm256_xor_si256(c2[3545],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[4906],simde_mm256_xor_si256(c2[4686],simde_mm256_xor_si256(c2[4248],simde_mm256_xor_si256(c2[6449],simde_mm256_xor_si256(c2[3830],simde_mm256_xor_si256(c2[971],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[4290],simde_mm256_xor_si256(c2[3854],simde_mm256_xor_si256(c2[1650],simde_mm256_xor_si256(c2[6073],simde_mm256_xor_si256(c2[5853],simde_mm256_xor_si256(c2[2114],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[5215],simde_mm256_xor_si256(c2[2577],simde_mm256_xor_si256(c2[6561],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[837],simde_mm256_xor_si256(c2[3282],simde_mm256_xor_si256(c2[3062],simde_mm256_xor_si256(c2[5262],c2[6141])))))))))))))))))))))))))))))))))); //row: 39 - d2[429]=_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[5723],_mm256_xor_si256(c2[5503],_mm256_xor_si256(c2[2206],_mm256_xor_si256(c2[2863],_mm256_xor_si256(c2[5309],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[3550],_mm256_xor_si256(c2[6406],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4892],_mm256_xor_si256(c2[2709],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[2051],_mm256_xor_si256(c2[4252],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[4936],_mm256_xor_si256(c2[2313],_mm256_xor_si256(c2[2093],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[137],_mm256_xor_si256(c2[6956],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[3018],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[1474],_mm256_xor_si256(c2[4584],_mm256_xor_si256(c2[4364],_mm256_xor_si256(c2[5023],_mm256_xor_si256(c2[5679],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[3285],_mm256_xor_si256(c2[3065],c2[3944])))))))))))))))))))))))))))))))))))))))))); + d2[429]=simde_mm256_xor_si256(c2[1108],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[5723],simde_mm256_xor_si256(c2[5503],simde_mm256_xor_si256(c2[2206],simde_mm256_xor_si256(c2[2863],simde_mm256_xor_si256(c2[5309],simde_mm256_xor_si256(c2[5089],simde_mm256_xor_si256(c2[3550],simde_mm256_xor_si256(c2[6406],simde_mm256_xor_si256(c2[5107],simde_mm256_xor_si256(c2[4887],simde_mm256_xor_si256(c2[4892],simde_mm256_xor_si256(c2[2709],simde_mm256_xor_si256(c2[2489],simde_mm256_xor_si256(c2[2271],simde_mm256_xor_si256(c2[2051],simde_mm256_xor_si256(c2[4252],simde_mm256_xor_si256(c2[1853],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[5813],simde_mm256_xor_si256(c2[4936],simde_mm256_xor_si256(c2[2313],simde_mm256_xor_si256(c2[2093],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[3876],simde_mm256_xor_si256(c2[3656],simde_mm256_xor_si256(c2[137],simde_mm256_xor_si256(c2[6956],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[3238],simde_mm256_xor_si256(c2[3018],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[1474],simde_mm256_xor_si256(c2[4584],simde_mm256_xor_si256(c2[4364],simde_mm256_xor_si256(c2[5023],simde_mm256_xor_si256(c2[5679],simde_mm256_xor_si256(c2[1085],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[3285],simde_mm256_xor_si256(c2[3065],c2[3944])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[440]=_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[2645],_mm256_xor_si256(c2[443],_mm256_xor_si256(c2[6387],_mm256_xor_si256(c2[4185],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[692],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[3548],_mm256_xor_si256(c2[1566],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[2029],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[52],_mm256_xor_si256(c2[6871],_mm256_xor_si256(c2[49],_mm256_xor_si256(c2[6670],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[6232],_mm256_xor_si256(c2[4030],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[5814],_mm256_xor_si256(c2[3612],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[2078],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[6274],_mm256_xor_si256(c2[4072],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[3856],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[4098],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[795],_mm256_xor_si256(c2[575],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[4997],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[2359],_mm256_xor_si256(c2[1506],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[7002],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[839],_mm256_xor_si256(c2[619],_mm256_xor_si256(c2[5046],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[207],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[6143],c2[5923])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[440]=simde_mm256_xor_si256(c2[5069],simde_mm256_xor_si256(c2[2867],simde_mm256_xor_si256(c2[2645],simde_mm256_xor_si256(c2[443],simde_mm256_xor_si256(c2[6387],simde_mm256_xor_si256(c2[4185],simde_mm256_xor_si256(c2[2231],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[692],simde_mm256_xor_si256(c2[5529],simde_mm256_xor_si256(c2[3548],simde_mm256_xor_si256(c2[1566],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[2029],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[2034],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[6871],simde_mm256_xor_si256(c2[49],simde_mm256_xor_si256(c2[6670],simde_mm256_xor_si256(c2[4468],simde_mm256_xor_si256(c2[6232],simde_mm256_xor_si256(c2[4030],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[6231],simde_mm256_xor_si256(c2[5814],simde_mm256_xor_si256(c2[3612],simde_mm256_xor_si256(c2[2955],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[2078],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[6915],simde_mm256_xor_si256(c2[6274],simde_mm256_xor_si256(c2[4072],simde_mm256_xor_si256(c2[5838],simde_mm256_xor_si256(c2[3856],simde_mm256_xor_si256(c2[3636],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[5635],simde_mm256_xor_si256(c2[4098],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[2777],simde_mm256_xor_si256(c2[795],simde_mm256_xor_si256(c2[575],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[4997],simde_mm256_xor_si256(c2[4561],simde_mm256_xor_si256(c2[2579],simde_mm256_xor_si256(c2[2359],simde_mm256_xor_si256(c2[1506],simde_mm256_xor_si256(c2[6343],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[7002],simde_mm256_xor_si256(c2[2821],simde_mm256_xor_si256(c2[839],simde_mm256_xor_si256(c2[619],simde_mm256_xor_si256(c2[5046],simde_mm256_xor_si256(c2[2844],simde_mm256_xor_si256(c2[207],simde_mm256_xor_si256(c2[5044],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[6143],c2[5923])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[451]=_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[4866],_mm256_xor_si256(c2[3327],_mm256_xor_si256(c2[6183],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[4669],_mm256_xor_si256(c2[2486],_mm256_xor_si256(c2[2266],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[4029],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[1870],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[3653],_mm256_xor_si256(c2[3433],_mm256_xor_si256(c2[6733],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[4800],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[862],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[2842],c2[3721])))))))))))))))))))))))))))))))))); + d2[451]=simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[5280],simde_mm256_xor_si256(c2[1983],simde_mm256_xor_si256(c2[5086],simde_mm256_xor_si256(c2[4866],simde_mm256_xor_si256(c2[3327],simde_mm256_xor_si256(c2[6183],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[4884],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[4669],simde_mm256_xor_si256(c2[2486],simde_mm256_xor_si256(c2[2266],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[4029],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[5590],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[1870],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[3433],simde_mm256_xor_si256(c2[6733],simde_mm256_xor_si256(c2[5412],simde_mm256_xor_si256(c2[2795],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[4141],simde_mm256_xor_si256(c2[4800],simde_mm256_xor_si256(c2[5456],simde_mm256_xor_si256(c2[862],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[2842],c2[3721])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc384_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc384_byte.c index 690278f4b3..b61f7500a8 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc384_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc384_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc384_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[6240],_mm256_xor_si256(c2[5760],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[6602],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[6387],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[5211],_mm256_xor_si256(c2[5957],_mm256_xor_si256(c2[4275],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[696],c2[6221])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[6240],simde_mm256_xor_si256(c2[5760],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[3413],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[4875],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[6602],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[6387],simde_mm256_xor_si256(c2[6413],simde_mm256_xor_si256(c2[5211],simde_mm256_xor_si256(c2[5957],simde_mm256_xor_si256(c2[4275],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[696],c2[6221])))))))))))))))))))))))))); //row: 1 - d2[12]=_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[6240],_mm256_xor_si256(c2[5760],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[1493],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[6602],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[6387],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[5211],_mm256_xor_si256(c2[5957],_mm256_xor_si256(c2[4275],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[696],c2[6221])))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[3365],simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[6240],simde_mm256_xor_si256(c2[5760],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[3413],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[4875],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[6602],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[6387],simde_mm256_xor_si256(c2[6413],simde_mm256_xor_si256(c2[5211],simde_mm256_xor_si256(c2[5957],simde_mm256_xor_si256(c2[4275],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[696],c2[6221])))))))))))))))))))))))))))))))); //row: 2 - d2[24]=_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[6480],_mm256_xor_si256(c2[6240],_mm256_xor_si256(c2[5760],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[1493],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[1033],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[3937],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[6842],_mm256_xor_si256(c2[6602],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[7584],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[6387],_mm256_xor_si256(c2[6653],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[5211],_mm256_xor_si256(c2[6197],_mm256_xor_si256(c2[5957],_mm256_xor_si256(c2[4275],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[696],c2[6221])))))))))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[3365],simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[6480],simde_mm256_xor_si256(c2[6240],simde_mm256_xor_si256(c2[5760],simde_mm256_xor_si256(c2[267],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[1493],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[3413],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[4875],simde_mm256_xor_si256(c2[3937],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[6842],simde_mm256_xor_si256(c2[6602],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[7584],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[6387],simde_mm256_xor_si256(c2[6653],simde_mm256_xor_si256(c2[6413],simde_mm256_xor_si256(c2[5211],simde_mm256_xor_si256(c2[6197],simde_mm256_xor_si256(c2[5957],simde_mm256_xor_si256(c2[4275],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[696],c2[6221])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[36]=_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[6240],_mm256_xor_si256(c2[5760],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[3653],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[3219],_mm256_xor_si256(c2[4179],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[6602],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[6387],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[5451],_mm256_xor_si256(c2[5211],_mm256_xor_si256(c2[5957],_mm256_xor_si256(c2[4275],_mm256_xor_si256(c2[6912],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[6461],c2[6221])))))))))))))))))))))))))))))))))); + d2[36]=simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[6240],simde_mm256_xor_si256(c2[5760],simde_mm256_xor_si256(c2[27],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[1948],simde_mm256_xor_si256(c2[1708],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[3413],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[4875],simde_mm256_xor_si256(c2[3697],simde_mm256_xor_si256(c2[3219],simde_mm256_xor_si256(c2[4179],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[6602],simde_mm256_xor_si256(c2[2042],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[7344],simde_mm256_xor_si256(c2[6627],simde_mm256_xor_si256(c2[6387],simde_mm256_xor_si256(c2[6413],simde_mm256_xor_si256(c2[5451],simde_mm256_xor_si256(c2[5211],simde_mm256_xor_si256(c2[5957],simde_mm256_xor_si256(c2[4275],simde_mm256_xor_si256(c2[6912],simde_mm256_xor_si256(c2[6672],simde_mm256_xor_si256(c2[2861],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[6461],c2[6221])))))))))))))))))))))))))))))))))); //row: 4 - d2[48]=_mm256_xor_si256(c2[2646],_mm256_xor_si256(c2[2406],_mm256_xor_si256(c2[5521],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[7227],_mm256_xor_si256(c2[6987],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[7514],_mm256_xor_si256(c2[7274],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[4156],_mm256_xor_si256(c2[2978],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[5883],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[1107],_mm256_xor_si256(c2[867],_mm256_xor_si256(c2[6625],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[5694],_mm256_xor_si256(c2[4492],_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[3556],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[7656],c2[5502])))))))))))))))))))))))))))))))))); + d2[48]=simde_mm256_xor_si256(c2[2646],simde_mm256_xor_si256(c2[2406],simde_mm256_xor_si256(c2[5521],simde_mm256_xor_si256(c2[5041],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[7227],simde_mm256_xor_si256(c2[6987],simde_mm256_xor_si256(c2[3388],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[2426],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[2694],simde_mm256_xor_si256(c2[7514],simde_mm256_xor_si256(c2[7274],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[4156],simde_mm256_xor_si256(c2[2978],simde_mm256_xor_si256(c2[2500],simde_mm256_xor_si256(c2[3220],simde_mm256_xor_si256(c2[5883],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[1107],simde_mm256_xor_si256(c2[867],simde_mm256_xor_si256(c2[6625],simde_mm256_xor_si256(c2[5668],simde_mm256_xor_si256(c2[5694],simde_mm256_xor_si256(c2[4492],simde_mm256_xor_si256(c2[5238],simde_mm256_xor_si256(c2[3556],simde_mm256_xor_si256(c2[5953],simde_mm256_xor_si256(c2[2382],simde_mm256_xor_si256(c2[2142],simde_mm256_xor_si256(c2[7656],c2[5502])))))))))))))))))))))))))))))))))); //row: 5 - d2[60]=_mm256_xor_si256(c2[7206],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[4108],_mm256_xor_si256(c2[3868],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[7254],_mm256_xor_si256(c2[4395],_mm256_xor_si256(c2[4155],_mm256_xor_si256(c2[4634],_mm256_xor_si256(c2[1037],_mm256_xor_si256(c2[7538],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[5643],_mm256_xor_si256(c2[6123],_mm256_xor_si256(c2[5667],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[2549],_mm256_xor_si256(c2[2575],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[4010],_mm256_xor_si256(c2[2119],_mm256_xor_si256(c2[437],_mm256_xor_si256(c2[2834],_mm256_xor_si256(c2[6942],_mm256_xor_si256(c2[6702],_mm256_xor_si256(c2[4537],c2[2383])))))))))))))))))))))))))))))))))))); + d2[60]=simde_mm256_xor_si256(c2[7206],simde_mm256_xor_si256(c2[6966],simde_mm256_xor_si256(c2[2402],simde_mm256_xor_si256(c2[1922],simde_mm256_xor_si256(c2[2400],simde_mm256_xor_si256(c2[4108],simde_mm256_xor_si256(c2[3868],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[5549],simde_mm256_xor_si256(c2[2905],simde_mm256_xor_si256(c2[5334],simde_mm256_xor_si256(c2[5094],simde_mm256_xor_si256(c2[7254],simde_mm256_xor_si256(c2[4395],simde_mm256_xor_si256(c2[4155],simde_mm256_xor_si256(c2[4634],simde_mm256_xor_si256(c2[1037],simde_mm256_xor_si256(c2[7538],simde_mm256_xor_si256(c2[7060],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[2764],simde_mm256_xor_si256(c2[5643],simde_mm256_xor_si256(c2[6123],simde_mm256_xor_si256(c2[5667],simde_mm256_xor_si256(c2[5427],simde_mm256_xor_si256(c2[3506],simde_mm256_xor_si256(c2[2549],simde_mm256_xor_si256(c2[2575],simde_mm256_xor_si256(c2[1373],simde_mm256_xor_si256(c2[4010],simde_mm256_xor_si256(c2[2119],simde_mm256_xor_si256(c2[437],simde_mm256_xor_si256(c2[2834],simde_mm256_xor_si256(c2[6942],simde_mm256_xor_si256(c2[6702],simde_mm256_xor_si256(c2[4537],c2[2383])))))))))))))))))))))))))))))))))))); //row: 6 - d2[72]=_mm256_xor_si256(c2[1451],_mm256_xor_si256(c2[1211],_mm256_xor_si256(c2[4326],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[6032],_mm256_xor_si256(c2[5792],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[7473],_mm256_xor_si256(c2[7258],_mm256_xor_si256(c2[7018],_mm256_xor_si256(c2[1499],_mm256_xor_si256(c2[6319],_mm256_xor_si256(c2[6079],_mm256_xor_si256(c2[6558],_mm256_xor_si256(c2[2961],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[1305],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[6842],_mm256_xor_si256(c2[7591],_mm256_xor_si256(c2[7351],_mm256_xor_si256(c2[5430],_mm256_xor_si256(c2[4473],_mm256_xor_si256(c2[4499],_mm256_xor_si256(c2[3297],_mm256_xor_si256(c2[1131],_mm256_xor_si256(c2[4043],_mm256_xor_si256(c2[2361],_mm256_xor_si256(c2[4758],_mm256_xor_si256(c2[1187],_mm256_xor_si256(c2[947],_mm256_xor_si256(c2[6461],_mm256_xor_si256(c2[4307],c2[4297])))))))))))))))))))))))))))))))))))); + d2[72]=simde_mm256_xor_si256(c2[1451],simde_mm256_xor_si256(c2[1211],simde_mm256_xor_si256(c2[4326],simde_mm256_xor_si256(c2[3846],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[6032],simde_mm256_xor_si256(c2[5792],simde_mm256_xor_si256(c2[2193],simde_mm256_xor_si256(c2[7473],simde_mm256_xor_si256(c2[7258],simde_mm256_xor_si256(c2[7018],simde_mm256_xor_si256(c2[1499],simde_mm256_xor_si256(c2[6319],simde_mm256_xor_si256(c2[6079],simde_mm256_xor_si256(c2[6558],simde_mm256_xor_si256(c2[2961],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1305],simde_mm256_xor_si256(c2[2025],simde_mm256_xor_si256(c2[4688],simde_mm256_xor_si256(c2[7567],simde_mm256_xor_si256(c2[6842],simde_mm256_xor_si256(c2[7591],simde_mm256_xor_si256(c2[7351],simde_mm256_xor_si256(c2[5430],simde_mm256_xor_si256(c2[4473],simde_mm256_xor_si256(c2[4499],simde_mm256_xor_si256(c2[3297],simde_mm256_xor_si256(c2[1131],simde_mm256_xor_si256(c2[4043],simde_mm256_xor_si256(c2[2361],simde_mm256_xor_si256(c2[4758],simde_mm256_xor_si256(c2[1187],simde_mm256_xor_si256(c2[947],simde_mm256_xor_si256(c2[6461],simde_mm256_xor_si256(c2[4307],c2[4297])))))))))))))))))))))))))))))))))))); //row: 7 - d2[84]=_mm256_xor_si256(c2[4808],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[6729],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[7203],_mm256_xor_si256(c2[1685],_mm256_xor_si256(c2[1710],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[3631],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[5552],_mm256_xor_si256(c2[5312],_mm256_xor_si256(c2[3866],_mm256_xor_si256(c2[2936],_mm256_xor_si256(c2[2696],_mm256_xor_si256(c2[4857],_mm256_xor_si256(c2[4856],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[7017],_mm256_xor_si256(c2[1997],_mm256_xor_si256(c2[1757],_mm256_xor_si256(c2[3918],_mm256_xor_si256(c2[2236],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[6318],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[7301],_mm256_xor_si256(c2[4662],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[7543],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[2527],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[5406],_mm256_xor_si256(c2[6365],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[2552],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[6654],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[7400],_mm256_xor_si256(c2[1882],_mm256_xor_si256(c2[5718],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[2837],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[4544],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[6465],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[4300],_mm256_xor_si256(c2[7664],_mm256_xor_si256(c2[2386],c2[2146])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[84]=simde_mm256_xor_si256(c2[4808],simde_mm256_xor_si256(c2[4568],simde_mm256_xor_si256(c2[6729],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[2165],simde_mm256_xor_si256(c2[7203],simde_mm256_xor_si256(c2[1685],simde_mm256_xor_si256(c2[1710],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[3631],simde_mm256_xor_si256(c2[5550],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[5552],simde_mm256_xor_si256(c2[5312],simde_mm256_xor_si256(c2[3866],simde_mm256_xor_si256(c2[2936],simde_mm256_xor_si256(c2[2696],simde_mm256_xor_si256(c2[4857],simde_mm256_xor_si256(c2[4856],simde_mm256_xor_si256(c2[7257],simde_mm256_xor_si256(c2[7017],simde_mm256_xor_si256(c2[1997],simde_mm256_xor_si256(c2[1757],simde_mm256_xor_si256(c2[3918],simde_mm256_xor_si256(c2[2236],simde_mm256_xor_si256(c2[4397],simde_mm256_xor_si256(c2[6318],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[7301],simde_mm256_xor_si256(c2[4662],simde_mm256_xor_si256(c2[6823],simde_mm256_xor_si256(c2[5382],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[7543],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[2527],simde_mm256_xor_si256(c2[3245],simde_mm256_xor_si256(c2[5646],simde_mm256_xor_si256(c2[5406],simde_mm256_xor_si256(c2[6365],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[3029],simde_mm256_xor_si256(c2[5190],simde_mm256_xor_si256(c2[1108],simde_mm256_xor_si256(c2[3269],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[2552],simde_mm256_xor_si256(c2[2312],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[2338],simde_mm256_xor_si256(c2[6654],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[4008],simde_mm256_xor_si256(c2[7400],simde_mm256_xor_si256(c2[1882],simde_mm256_xor_si256(c2[5718],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[2837],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[4544],simde_mm256_xor_si256(c2[4304],simde_mm256_xor_si256(c2[6465],simde_mm256_xor_si256(c2[2139],simde_mm256_xor_si256(c2[4300],simde_mm256_xor_si256(c2[7664],simde_mm256_xor_si256(c2[2386],c2[2146])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[96]=_mm256_xor_si256(c2[1450],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[4325],_mm256_xor_si256(c2[3845],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[6031],_mm256_xor_si256(c2[5791],_mm256_xor_si256(c2[2192],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[1466],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[7017],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[6318],_mm256_xor_si256(c2[6078],_mm256_xor_si256(c2[6797],_mm256_xor_si256(c2[6557],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[2022],_mm256_xor_si256(c2[1782],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[4927],_mm256_xor_si256(c2[4687],_mm256_xor_si256(c2[7566],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[7350],_mm256_xor_si256(c2[5669],_mm256_xor_si256(c2[5429],_mm256_xor_si256(c2[4472],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[3296],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[4042],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[1186],_mm256_xor_si256(c2[946],_mm256_xor_si256(c2[6700],_mm256_xor_si256(c2[6460],c2[4306])))))))))))))))))))))))))))))))))))))))))); + d2[96]=simde_mm256_xor_si256(c2[1450],simde_mm256_xor_si256(c2[1210],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[4325],simde_mm256_xor_si256(c2[3845],simde_mm256_xor_si256(c2[5283],simde_mm256_xor_si256(c2[6031],simde_mm256_xor_si256(c2[5791],simde_mm256_xor_si256(c2[2192],simde_mm256_xor_si256(c2[7472],simde_mm256_xor_si256(c2[1466],simde_mm256_xor_si256(c2[7257],simde_mm256_xor_si256(c2[7017],simde_mm256_xor_si256(c2[1498],simde_mm256_xor_si256(c2[6318],simde_mm256_xor_si256(c2[6078],simde_mm256_xor_si256(c2[6797],simde_mm256_xor_si256(c2[6557],simde_mm256_xor_si256(c2[2960],simde_mm256_xor_si256(c2[2022],simde_mm256_xor_si256(c2[1782],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[2024],simde_mm256_xor_si256(c2[4927],simde_mm256_xor_si256(c2[4687],simde_mm256_xor_si256(c2[7566],simde_mm256_xor_si256(c2[7590],simde_mm256_xor_si256(c2[7350],simde_mm256_xor_si256(c2[5669],simde_mm256_xor_si256(c2[5429],simde_mm256_xor_si256(c2[4472],simde_mm256_xor_si256(c2[4738],simde_mm256_xor_si256(c2[4498],simde_mm256_xor_si256(c2[3296],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[4042],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[4757],simde_mm256_xor_si256(c2[1186],simde_mm256_xor_si256(c2[946],simde_mm256_xor_si256(c2[6700],simde_mm256_xor_si256(c2[6460],c2[4306])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[108]=_mm256_xor_si256(c2[1451],_mm256_xor_si256(c2[11],_mm256_xor_si256(c2[7450],_mm256_xor_si256(c2[4566],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[4086],_mm256_xor_si256(c2[2406],_mm256_xor_si256(c2[6032],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[4352],_mm256_xor_si256(c2[2433],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[6033],_mm256_xor_si256(c2[6744],_mm256_xor_si256(c2[7258],_mm256_xor_si256(c2[5818],_mm256_xor_si256(c2[5578],_mm256_xor_si256(c2[1739],_mm256_xor_si256(c2[59],_mm256_xor_si256(c2[6319],_mm256_xor_si256(c2[4879],_mm256_xor_si256(c2[4639],_mm256_xor_si256(c2[6798],_mm256_xor_si256(c2[5118],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[343],_mm256_xor_si256(c2[1545],_mm256_xor_si256(c2[7544],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[4928],_mm256_xor_si256(c2[3248],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[7591],_mm256_xor_si256(c2[6151],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[5670],_mm256_xor_si256(c2[3990],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[3033],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[3059],_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[1857],_mm256_xor_si256(c2[4283],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[2601],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[4998],_mm256_xor_si256(c2[3318],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[1187],_mm256_xor_si256(c2[7426],_mm256_xor_si256(c2[7186],_mm256_xor_si256(c2[6701],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[4547],c2[2867]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[108]=simde_mm256_xor_si256(c2[1451],simde_mm256_xor_si256(c2[11],simde_mm256_xor_si256(c2[7450],simde_mm256_xor_si256(c2[4566],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[4086],simde_mm256_xor_si256(c2[2406],simde_mm256_xor_si256(c2[6032],simde_mm256_xor_si256(c2[4592],simde_mm256_xor_si256(c2[4352],simde_mm256_xor_si256(c2[2433],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[6033],simde_mm256_xor_si256(c2[6744],simde_mm256_xor_si256(c2[7258],simde_mm256_xor_si256(c2[5818],simde_mm256_xor_si256(c2[5578],simde_mm256_xor_si256(c2[1739],simde_mm256_xor_si256(c2[59],simde_mm256_xor_si256(c2[6319],simde_mm256_xor_si256(c2[4879],simde_mm256_xor_si256(c2[4639],simde_mm256_xor_si256(c2[6798],simde_mm256_xor_si256(c2[5118],simde_mm256_xor_si256(c2[3201],simde_mm256_xor_si256(c2[1521],simde_mm256_xor_si256(c2[2023],simde_mm256_xor_si256(c2[343],simde_mm256_xor_si256(c2[1545],simde_mm256_xor_si256(c2[7544],simde_mm256_xor_si256(c2[2265],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[4928],simde_mm256_xor_si256(c2[3248],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[6127],simde_mm256_xor_si256(c2[7591],simde_mm256_xor_si256(c2[6151],simde_mm256_xor_si256(c2[5911],simde_mm256_xor_si256(c2[5670],simde_mm256_xor_si256(c2[3990],simde_mm256_xor_si256(c2[4713],simde_mm256_xor_si256(c2[3033],simde_mm256_xor_si256(c2[4739],simde_mm256_xor_si256(c2[3059],simde_mm256_xor_si256(c2[3537],simde_mm256_xor_si256(c2[1857],simde_mm256_xor_si256(c2[4283],simde_mm256_xor_si256(c2[2603],simde_mm256_xor_si256(c2[2601],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[4998],simde_mm256_xor_si256(c2[3318],simde_mm256_xor_si256(c2[1156],simde_mm256_xor_si256(c2[1187],simde_mm256_xor_si256(c2[7426],simde_mm256_xor_si256(c2[7186],simde_mm256_xor_si256(c2[6701],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[4547],c2[2867]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[120]=_mm256_xor_si256(c2[6481],_mm256_xor_si256(c2[1947],_mm256_xor_si256(c2[5424],c2[4969]))); + d2[120]=simde_mm256_xor_si256(c2[6481],simde_mm256_xor_si256(c2[1947],simde_mm256_xor_si256(c2[5424],c2[4969]))); //row: 11 - d2[132]=_mm256_xor_si256(c2[1690],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[4325],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[273],_mm256_xor_si256(c2[7497],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[1978],_mm256_xor_si256(c2[6558],_mm256_xor_si256(c2[7037],_mm256_xor_si256(c2[3440],_mm256_xor_si256(c2[2262],_mm256_xor_si256(c2[1784],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[607],_mm256_xor_si256(c2[367],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[5909],_mm256_xor_si256(c2[5192],_mm256_xor_si256(c2[4952],_mm256_xor_si256(c2[4978],_mm256_xor_si256(c2[4016],_mm256_xor_si256(c2[3776],_mm256_xor_si256(c2[6890],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[2840],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[5237],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[6940],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[4786],c2[3581]))))))))))))))))))))))))))))))))))))); + d2[132]=simde_mm256_xor_si256(c2[1690],simde_mm256_xor_si256(c2[4805],simde_mm256_xor_si256(c2[4325],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[6271],simde_mm256_xor_si256(c2[2672],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[273],simde_mm256_xor_si256(c2[7497],simde_mm256_xor_si256(c2[2218],simde_mm256_xor_si256(c2[1978],simde_mm256_xor_si256(c2[6558],simde_mm256_xor_si256(c2[7037],simde_mm256_xor_si256(c2[3440],simde_mm256_xor_si256(c2[2262],simde_mm256_xor_si256(c2[1784],simde_mm256_xor_si256(c2[2744],simde_mm256_xor_si256(c2[2504],simde_mm256_xor_si256(c2[5167],simde_mm256_xor_si256(c2[607],simde_mm256_xor_si256(c2[367],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[5909],simde_mm256_xor_si256(c2[5192],simde_mm256_xor_si256(c2[4952],simde_mm256_xor_si256(c2[4978],simde_mm256_xor_si256(c2[4016],simde_mm256_xor_si256(c2[3776],simde_mm256_xor_si256(c2[6890],simde_mm256_xor_si256(c2[4522],simde_mm256_xor_si256(c2[2840],simde_mm256_xor_si256(c2[5477],simde_mm256_xor_si256(c2[5237],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[6940],simde_mm256_xor_si256(c2[5026],simde_mm256_xor_si256(c2[4786],c2[3581]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[144]=_mm256_xor_si256(c2[6005],_mm256_xor_si256(c2[5765],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[6747],_mm256_xor_si256(c2[4348],_mm256_xor_si256(c2[1705],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[3893],_mm256_xor_si256(c2[6053],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[3433],_mm256_xor_si256(c2[7515],_mm256_xor_si256(c2[7034],_mm256_xor_si256(c2[6337],_mm256_xor_si256(c2[5859],_mm256_xor_si256(c2[6579],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[4466],_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[1374],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[918],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[5501],_mm256_xor_si256(c2[3336],c2[1182])))))))))))))))))))))))))))))))))); + d2[144]=simde_mm256_xor_si256(c2[6005],simde_mm256_xor_si256(c2[5765],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[2907],simde_mm256_xor_si256(c2[2667],simde_mm256_xor_si256(c2[6747],simde_mm256_xor_si256(c2[4348],simde_mm256_xor_si256(c2[1705],simde_mm256_xor_si256(c2[4133],simde_mm256_xor_si256(c2[3893],simde_mm256_xor_si256(c2[6053],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[2954],simde_mm256_xor_si256(c2[3433],simde_mm256_xor_si256(c2[7515],simde_mm256_xor_si256(c2[7034],simde_mm256_xor_si256(c2[6337],simde_mm256_xor_si256(c2[5859],simde_mm256_xor_si256(c2[6579],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[4442],simde_mm256_xor_si256(c2[4466],simde_mm256_xor_si256(c2[4226],simde_mm256_xor_si256(c2[2305],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[1374],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[918],simde_mm256_xor_si256(c2[6915],simde_mm256_xor_si256(c2[1633],simde_mm256_xor_si256(c2[5741],simde_mm256_xor_si256(c2[5501],simde_mm256_xor_si256(c2[3336],c2[1182])))))))))))))))))))))))))))))))))); //row: 13 - d2[156]=_mm256_xor_si256(c2[4570],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[7205],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[1472],_mm256_xor_si256(c2[5552],_mm256_xor_si256(c2[3393],_mm256_xor_si256(c2[3153],_mm256_xor_si256(c2[6987],_mm256_xor_si256(c2[2698],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[4858],_mm256_xor_si256(c2[1759],_mm256_xor_si256(c2[2238],_mm256_xor_si256(c2[6320],_mm256_xor_si256(c2[5142],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[5624],_mm256_xor_si256(c2[5384],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[3487],_mm256_xor_si256(c2[3247],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[1110],_mm256_xor_si256(c2[393],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[179],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[6656],_mm256_xor_si256(c2[7402],_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[678],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[227],c2[7666]))))))))))))))))))))))))))))))))))))); + d2[156]=simde_mm256_xor_si256(c2[4570],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[7205],simde_mm256_xor_si256(c2[4081],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[5552],simde_mm256_xor_si256(c2[3393],simde_mm256_xor_si256(c2[3153],simde_mm256_xor_si256(c2[6987],simde_mm256_xor_si256(c2[2698],simde_mm256_xor_si256(c2[5098],simde_mm256_xor_si256(c2[4858],simde_mm256_xor_si256(c2[1759],simde_mm256_xor_si256(c2[2238],simde_mm256_xor_si256(c2[6320],simde_mm256_xor_si256(c2[5142],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[5624],simde_mm256_xor_si256(c2[5384],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[3487],simde_mm256_xor_si256(c2[3247],simde_mm256_xor_si256(c2[3031],simde_mm256_xor_si256(c2[1110],simde_mm256_xor_si256(c2[393],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[179],simde_mm256_xor_si256(c2[6896],simde_mm256_xor_si256(c2[6656],simde_mm256_xor_si256(c2[7402],simde_mm256_xor_si256(c2[5720],simde_mm256_xor_si256(c2[678],simde_mm256_xor_si256(c2[438],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[4306],simde_mm256_xor_si256(c2[2141],simde_mm256_xor_si256(c2[227],c2[7666]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[168]=_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[486],_mm256_xor_si256(c2[3850],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[6485],_mm256_xor_si256(c2[5307],_mm256_xor_si256(c2[5067],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[1468],_mm256_xor_si256(c2[4832],_mm256_xor_si256(c2[6748],_mm256_xor_si256(c2[2673],_mm256_xor_si256(c2[2433],_mm256_xor_si256(c2[4584],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[6293],_mm256_xor_si256(c2[1978],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[4378],_mm256_xor_si256(c2[4138],_mm256_xor_si256(c2[5594],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[1039],_mm256_xor_si256(c2[5833],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[2236],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[4422],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[3944],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[4904],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[7327],_mm256_xor_si256(c2[6842],_mm256_xor_si256(c2[2767],_mm256_xor_si256(c2[2527],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[7352],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[3774],_mm256_xor_si256(c2[7138],_mm256_xor_si256(c2[2572],_mm256_xor_si256(c2[6176],_mm256_xor_si256(c2[5936],_mm256_xor_si256(c2[3318],_mm256_xor_si256(c2[6682],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[7397],_mm256_xor_si256(c2[462],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[3586],_mm256_xor_si256(c2[5736],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[3582],_mm256_xor_si256(c2[7186],c2[6946]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[168]=simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[486],simde_mm256_xor_si256(c2[3850],simde_mm256_xor_si256(c2[3601],simde_mm256_xor_si256(c2[6965],simde_mm256_xor_si256(c2[3121],simde_mm256_xor_si256(c2[6485],simde_mm256_xor_si256(c2[5307],simde_mm256_xor_si256(c2[5067],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[1468],simde_mm256_xor_si256(c2[4832],simde_mm256_xor_si256(c2[6748],simde_mm256_xor_si256(c2[2673],simde_mm256_xor_si256(c2[2433],simde_mm256_xor_si256(c2[4584],simde_mm256_xor_si256(c2[6533],simde_mm256_xor_si256(c2[6293],simde_mm256_xor_si256(c2[1978],simde_mm256_xor_si256(c2[774],simde_mm256_xor_si256(c2[4378],simde_mm256_xor_si256(c2[4138],simde_mm256_xor_si256(c2[5594],simde_mm256_xor_si256(c2[5354],simde_mm256_xor_si256(c2[1039],simde_mm256_xor_si256(c2[5833],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[2236],simde_mm256_xor_si256(c2[5600],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[4422],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[3944],simde_mm256_xor_si256(c2[1300],simde_mm256_xor_si256(c2[4904],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[3963],simde_mm256_xor_si256(c2[7327],simde_mm256_xor_si256(c2[6842],simde_mm256_xor_si256(c2[2767],simde_mm256_xor_si256(c2[2527],simde_mm256_xor_si256(c2[6866],simde_mm256_xor_si256(c2[6626],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[4705],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[3748],simde_mm256_xor_si256(c2[7352],simde_mm256_xor_si256(c2[7112],simde_mm256_xor_si256(c2[5427],simde_mm256_xor_si256(c2[3774],simde_mm256_xor_si256(c2[7138],simde_mm256_xor_si256(c2[2572],simde_mm256_xor_si256(c2[6176],simde_mm256_xor_si256(c2[5936],simde_mm256_xor_si256(c2[3318],simde_mm256_xor_si256(c2[6682],simde_mm256_xor_si256(c2[1636],simde_mm256_xor_si256(c2[5000],simde_mm256_xor_si256(c2[4033],simde_mm256_xor_si256(c2[7637],simde_mm256_xor_si256(c2[7397],simde_mm256_xor_si256(c2[462],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[3586],simde_mm256_xor_si256(c2[5736],simde_mm256_xor_si256(c2[1421],simde_mm256_xor_si256(c2[3582],simde_mm256_xor_si256(c2[7186],c2[6946]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[180]=_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[7447],_mm256_xor_si256(c2[7207],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[5522],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[7468],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[4109],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[5790],_mm256_xor_si256(c2[1015],_mm256_xor_si256(c2[5575],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[3175],_mm256_xor_si256(c2[7495],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[4636],_mm256_xor_si256(c2[4396],_mm256_xor_si256(c2[555],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[4637],_mm256_xor_si256(c2[1278],_mm256_xor_si256(c2[3459],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[7301],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[3005],_mm256_xor_si256(c2[1564],_mm256_xor_si256(c2[5884],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[5908],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[7106],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[6149],_mm256_xor_si256(c2[2790],_mm256_xor_si256(c2[6175],_mm256_xor_si256(c2[2816],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[678],_mm256_xor_si256(c2[6434],_mm256_xor_si256(c2[3075],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[7183],_mm256_xor_si256(c2[6943],_mm256_xor_si256(c2[458],_mm256_xor_si256(c2[4778],_mm256_xor_si256(c2[5983],c2[2624])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[180]=simde_mm256_xor_si256(c2[2887],simde_mm256_xor_si256(c2[7447],simde_mm256_xor_si256(c2[7207],simde_mm256_xor_si256(c2[6002],simde_mm256_xor_si256(c2[2643],simde_mm256_xor_si256(c2[5522],simde_mm256_xor_si256(c2[2163],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[7468],simde_mm256_xor_si256(c2[4349],simde_mm256_xor_si256(c2[4109],simde_mm256_xor_si256(c2[3869],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[5790],simde_mm256_xor_si256(c2[1015],simde_mm256_xor_si256(c2[5575],simde_mm256_xor_si256(c2[5335],simde_mm256_xor_si256(c2[3175],simde_mm256_xor_si256(c2[7495],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[4636],simde_mm256_xor_si256(c2[4396],simde_mm256_xor_si256(c2[555],simde_mm256_xor_si256(c2[4875],simde_mm256_xor_si256(c2[4637],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[3459],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[7301],simde_mm256_xor_si256(c2[3701],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[6364],simde_mm256_xor_si256(c2[3005],simde_mm256_xor_si256(c2[1564],simde_mm256_xor_si256(c2[5884],simde_mm256_xor_si256(c2[1348],simde_mm256_xor_si256(c2[5908],simde_mm256_xor_si256(c2[5668],simde_mm256_xor_si256(c2[7106],simde_mm256_xor_si256(c2[3747],simde_mm256_xor_si256(c2[6149],simde_mm256_xor_si256(c2[2790],simde_mm256_xor_si256(c2[6175],simde_mm256_xor_si256(c2[2816],simde_mm256_xor_si256(c2[4973],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[5719],simde_mm256_xor_si256(c2[2360],simde_mm256_xor_si256(c2[4037],simde_mm256_xor_si256(c2[678],simde_mm256_xor_si256(c2[6434],simde_mm256_xor_si256(c2[3075],simde_mm256_xor_si256(c2[2623],simde_mm256_xor_si256(c2[7183],simde_mm256_xor_si256(c2[6943],simde_mm256_xor_si256(c2[458],simde_mm256_xor_si256(c2[4778],simde_mm256_xor_si256(c2[5983],c2[2624])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[192]=_mm256_xor_si256(c2[5049],_mm256_xor_si256(c2[4809],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[6242],_mm256_xor_si256(c2[7444],_mm256_xor_si256(c2[5762],_mm256_xor_si256(c2[1951],_mm256_xor_si256(c2[1711],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[5791],_mm256_xor_si256(c2[4109],_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[1710],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[3177],_mm256_xor_si256(c2[2937],_mm256_xor_si256(c2[1495],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[5097],_mm256_xor_si256(c2[3415],_mm256_xor_si256(c2[2238],_mm256_xor_si256(c2[1998],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[2477],_mm256_xor_si256(c2[1035],_mm256_xor_si256(c2[795],_mm256_xor_si256(c2[6559],_mm256_xor_si256(c2[4877],_mm256_xor_si256(c2[5381],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[5623],_mm256_xor_si256(c2[3941],_mm256_xor_si256(c2[607],_mm256_xor_si256(c2[6844],_mm256_xor_si256(c2[6604],_mm256_xor_si256(c2[3486],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[3510],_mm256_xor_si256(c2[3270],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[7586],_mm256_xor_si256(c2[7346],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[418],_mm256_xor_si256(c2[6655],_mm256_xor_si256(c2[6415],_mm256_xor_si256(c2[6895],_mm256_xor_si256(c2[5213],_mm256_xor_si256(c2[7641],_mm256_xor_si256(c2[6199],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[4277],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[6674],_mm256_xor_si256(c2[4785],_mm256_xor_si256(c2[4545],_mm256_xor_si256(c2[3103],_mm256_xor_si256(c2[2863],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[938],_mm256_xor_si256(c2[698],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[6223],c2[4301]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[192]=simde_mm256_xor_si256(c2[5049],simde_mm256_xor_si256(c2[4809],simde_mm256_xor_si256(c2[3367],simde_mm256_xor_si256(c2[3127],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[6482],simde_mm256_xor_si256(c2[6242],simde_mm256_xor_si256(c2[7444],simde_mm256_xor_si256(c2[5762],simde_mm256_xor_si256(c2[1951],simde_mm256_xor_si256(c2[1711],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[5791],simde_mm256_xor_si256(c2[4109],simde_mm256_xor_si256(c2[3392],simde_mm256_xor_si256(c2[1710],simde_mm256_xor_si256(c2[5546],simde_mm256_xor_si256(c2[3177],simde_mm256_xor_si256(c2[2937],simde_mm256_xor_si256(c2[1495],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[5097],simde_mm256_xor_si256(c2[3415],simde_mm256_xor_si256(c2[2238],simde_mm256_xor_si256(c2[1998],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[2477],simde_mm256_xor_si256(c2[1035],simde_mm256_xor_si256(c2[795],simde_mm256_xor_si256(c2[6559],simde_mm256_xor_si256(c2[4877],simde_mm256_xor_si256(c2[5381],simde_mm256_xor_si256(c2[3939],simde_mm256_xor_si256(c2[3699],simde_mm256_xor_si256(c2[4903],simde_mm256_xor_si256(c2[3221],simde_mm256_xor_si256(c2[5623],simde_mm256_xor_si256(c2[3941],simde_mm256_xor_si256(c2[607],simde_mm256_xor_si256(c2[6844],simde_mm256_xor_si256(c2[6604],simde_mm256_xor_si256(c2[3486],simde_mm256_xor_si256(c2[1804],simde_mm256_xor_si256(c2[3510],simde_mm256_xor_si256(c2[3270],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[1588],simde_mm256_xor_si256(c2[1349],simde_mm256_xor_si256(c2[7586],simde_mm256_xor_si256(c2[7346],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[418],simde_mm256_xor_si256(c2[6655],simde_mm256_xor_si256(c2[6415],simde_mm256_xor_si256(c2[6895],simde_mm256_xor_si256(c2[5213],simde_mm256_xor_si256(c2[7641],simde_mm256_xor_si256(c2[6199],simde_mm256_xor_si256(c2[5959],simde_mm256_xor_si256(c2[5959],simde_mm256_xor_si256(c2[4277],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[6674],simde_mm256_xor_si256(c2[4785],simde_mm256_xor_si256(c2[4545],simde_mm256_xor_si256(c2[3103],simde_mm256_xor_si256(c2[2863],simde_mm256_xor_si256(c2[2380],simde_mm256_xor_si256(c2[938],simde_mm256_xor_si256(c2[698],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[6223],c2[4301]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[204]=_mm256_xor_si256(c2[5525],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[2427],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[1707],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[6267],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[3868],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[7228],_mm256_xor_si256(c2[3653],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[2933],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[5573],_mm256_xor_si256(c2[4853],_mm256_xor_si256(c2[2714],_mm256_xor_si256(c2[2474],_mm256_xor_si256(c2[1994],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[2473],_mm256_xor_si256(c2[2233],_mm256_xor_si256(c2[7035],_mm256_xor_si256(c2[6315],_mm256_xor_si256(c2[5857],_mm256_xor_si256(c2[5377],_mm256_xor_si256(c2[5137],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[4659],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[3242],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[3986],_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[1345],_mm256_xor_si256(c2[1105],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[894],_mm256_xor_si256(c2[414],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[7371],_mm256_xor_si256(c2[6651],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[7397],_mm256_xor_si256(c2[6435],_mm256_xor_si256(c2[5715],_mm256_xor_si256(c2[1153],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[5261],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4301],_mm256_xor_si256(c2[2856],_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[2136],_mm256_xor_si256(c2[702],c2[7661]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[204]=simde_mm256_xor_si256(c2[5525],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[4805],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[7200],simde_mm256_xor_si256(c2[2427],simde_mm256_xor_si256(c2[2187],simde_mm256_xor_si256(c2[1707],simde_mm256_xor_si256(c2[1467],simde_mm256_xor_si256(c2[6267],simde_mm256_xor_si256(c2[5547],simde_mm256_xor_si256(c2[3868],simde_mm256_xor_si256(c2[3148],simde_mm256_xor_si256(c2[7228],simde_mm256_xor_si256(c2[3653],simde_mm256_xor_si256(c2[3413],simde_mm256_xor_si256(c2[2933],simde_mm256_xor_si256(c2[2693],simde_mm256_xor_si256(c2[5573],simde_mm256_xor_si256(c2[4853],simde_mm256_xor_si256(c2[2714],simde_mm256_xor_si256(c2[2474],simde_mm256_xor_si256(c2[1994],simde_mm256_xor_si256(c2[1754],simde_mm256_xor_si256(c2[2953],simde_mm256_xor_si256(c2[2473],simde_mm256_xor_si256(c2[2233],simde_mm256_xor_si256(c2[7035],simde_mm256_xor_si256(c2[6315],simde_mm256_xor_si256(c2[5857],simde_mm256_xor_si256(c2[5377],simde_mm256_xor_si256(c2[5137],simde_mm256_xor_si256(c2[5379],simde_mm256_xor_si256(c2[4659],simde_mm256_xor_si256(c2[6099],simde_mm256_xor_si256(c2[5379],simde_mm256_xor_si256(c2[1083],simde_mm256_xor_si256(c2[603],simde_mm256_xor_si256(c2[363],simde_mm256_xor_si256(c2[3962],simde_mm256_xor_si256(c2[3242],simde_mm256_xor_si256(c2[5640],simde_mm256_xor_si256(c2[3986],simde_mm256_xor_si256(c2[3746],simde_mm256_xor_si256(c2[3266],simde_mm256_xor_si256(c2[3026],simde_mm256_xor_si256(c2[1825],simde_mm256_xor_si256(c2[1345],simde_mm256_xor_si256(c2[1105],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[894],simde_mm256_xor_si256(c2[414],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[7371],simde_mm256_xor_si256(c2[6651],simde_mm256_xor_si256(c2[438],simde_mm256_xor_si256(c2[7637],simde_mm256_xor_si256(c2[7397],simde_mm256_xor_si256(c2[6435],simde_mm256_xor_si256(c2[5715],simde_mm256_xor_si256(c2[1153],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[5261],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[4541],simde_mm256_xor_si256(c2[4301],simde_mm256_xor_si256(c2[2856],simde_mm256_xor_si256(c2[2376],simde_mm256_xor_si256(c2[2136],simde_mm256_xor_si256(c2[702],c2[7661]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[216]=_mm256_xor_si256(c2[6245],_mm256_xor_si256(c2[1584],c2[3529])); + d2[216]=simde_mm256_xor_si256(c2[6245],simde_mm256_xor_si256(c2[1584],c2[3529])); //row: 19 - d2[228]=_mm256_xor_si256(c2[2170],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[6241],_mm256_xor_si256(c2[6751],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[298],_mm256_xor_si256(c2[2458],_mm256_xor_si256(c2[7038],_mm256_xor_si256(c2[7517],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[2984],_mm256_xor_si256(c2[5647],_mm256_xor_si256(c2[847],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[5432],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[4256],_mm256_xor_si256(c2[5002],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[5717],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[7420],c2[5266])))))))))))))))))))))))))))); + d2[228]=simde_mm256_xor_si256(c2[2170],simde_mm256_xor_si256(c2[5285],simde_mm256_xor_si256(c2[4805],simde_mm256_xor_si256(c2[6241],simde_mm256_xor_si256(c2[6751],simde_mm256_xor_si256(c2[3152],simde_mm256_xor_si256(c2[753],simde_mm256_xor_si256(c2[2425],simde_mm256_xor_si256(c2[298],simde_mm256_xor_si256(c2[2458],simde_mm256_xor_si256(c2[7038],simde_mm256_xor_si256(c2[7517],simde_mm256_xor_si256(c2[3920],simde_mm256_xor_si256(c2[2742],simde_mm256_xor_si256(c2[2264],simde_mm256_xor_si256(c2[2984],simde_mm256_xor_si256(c2[5647],simde_mm256_xor_si256(c2[847],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[6389],simde_mm256_xor_si256(c2[5432],simde_mm256_xor_si256(c2[5458],simde_mm256_xor_si256(c2[4256],simde_mm256_xor_si256(c2[5002],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[5717],simde_mm256_xor_si256(c2[1906],simde_mm256_xor_si256(c2[7420],c2[5266])))))))))))))))))))))))))))); //row: 20 - d2[240]=_mm256_xor_si256(c2[1690],_mm256_xor_si256(c2[1450],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[4085],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[6031],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[2906],_mm256_xor_si256(c2[7497],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6558],_mm256_xor_si256(c2[6318],_mm256_xor_si256(c2[6797],_mm256_xor_si256(c2[3200],_mm256_xor_si256(c2[2022],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[7057],_mm256_xor_si256(c2[4927],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[5669],_mm256_xor_si256(c2[4712],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[3536],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[4997],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[1186],_mm256_xor_si256(c2[6700],c2[4546])))))))))))))))))))))))))))))))))); + d2[240]=simde_mm256_xor_si256(c2[1690],simde_mm256_xor_si256(c2[1450],simde_mm256_xor_si256(c2[4565],simde_mm256_xor_si256(c2[4085],simde_mm256_xor_si256(c2[6271],simde_mm256_xor_si256(c2[6031],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[2906],simde_mm256_xor_si256(c2[7497],simde_mm256_xor_si256(c2[7257],simde_mm256_xor_si256(c2[1738],simde_mm256_xor_si256(c2[6558],simde_mm256_xor_si256(c2[6318],simde_mm256_xor_si256(c2[6797],simde_mm256_xor_si256(c2[3200],simde_mm256_xor_si256(c2[2022],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[2264],simde_mm256_xor_si256(c2[7057],simde_mm256_xor_si256(c2[4927],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[7590],simde_mm256_xor_si256(c2[5669],simde_mm256_xor_si256(c2[4712],simde_mm256_xor_si256(c2[4738],simde_mm256_xor_si256(c2[3536],simde_mm256_xor_si256(c2[4282],simde_mm256_xor_si256(c2[2600],simde_mm256_xor_si256(c2[4997],simde_mm256_xor_si256(c2[1426],simde_mm256_xor_si256(c2[1186],simde_mm256_xor_si256(c2[6700],c2[4546])))))))))))))))))))))))))))))))))); //row: 21 - d2[252]=_mm256_xor_si256(c2[3847],_mm256_xor_si256(c2[6962],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[2670],_mm256_xor_si256(c2[2430],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[4375],_mm256_xor_si256(c2[4135],_mm256_xor_si256(c2[1036],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[5597],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[3941],_mm256_xor_si256(c2[4901],_mm256_xor_si256(c2[4661],_mm256_xor_si256(c2[7324],_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[7349],_mm256_xor_si256(c2[7109],_mm256_xor_si256(c2[7135],_mm256_xor_si256(c2[6173],_mm256_xor_si256(c2[5933],_mm256_xor_si256(c2[6679],_mm256_xor_si256(c2[4997],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[3797],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[7183],c2[6943])))))))))))))))))))))))))))))))))))); + d2[252]=simde_mm256_xor_si256(c2[3847],simde_mm256_xor_si256(c2[6962],simde_mm256_xor_si256(c2[6482],simde_mm256_xor_si256(c2[6964],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[4829],simde_mm256_xor_si256(c2[2670],simde_mm256_xor_si256(c2[2430],simde_mm256_xor_si256(c2[1975],simde_mm256_xor_si256(c2[4375],simde_mm256_xor_si256(c2[4135],simde_mm256_xor_si256(c2[1036],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[5597],simde_mm256_xor_si256(c2[4419],simde_mm256_xor_si256(c2[3941],simde_mm256_xor_si256(c2[4901],simde_mm256_xor_si256(c2[4661],simde_mm256_xor_si256(c2[7324],simde_mm256_xor_si256(c2[2764],simde_mm256_xor_si256(c2[2524],simde_mm256_xor_si256(c2[2308],simde_mm256_xor_si256(c2[387],simde_mm256_xor_si256(c2[7349],simde_mm256_xor_si256(c2[7109],simde_mm256_xor_si256(c2[7135],simde_mm256_xor_si256(c2[6173],simde_mm256_xor_si256(c2[5933],simde_mm256_xor_si256(c2[6679],simde_mm256_xor_si256(c2[4997],simde_mm256_xor_si256(c2[7634],simde_mm256_xor_si256(c2[7394],simde_mm256_xor_si256(c2[3797],simde_mm256_xor_si256(c2[3583],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[7183],c2[6943])))))))))))))))))))))))))))))))))))); //row: 22 - d2[264]=_mm256_xor_si256(c2[4824],c2[4849]); + d2[264]=simde_mm256_xor_si256(c2[4824],c2[4849]); //row: 23 - d2[276]=_mm256_xor_si256(c2[2403],_mm256_xor_si256(c2[5354],c2[7562])); + d2[276]=simde_mm256_xor_si256(c2[2403],simde_mm256_xor_si256(c2[5354],c2[7562])); //row: 24 - d2[288]=_mm256_xor_si256(c2[5309],_mm256_xor_si256(c2[6052],c2[218])); + d2[288]=simde_mm256_xor_si256(c2[5309],simde_mm256_xor_si256(c2[6052],c2[218])); //row: 25 - d2[300]=_mm256_xor_si256(c2[3121],c2[5160]); + d2[300]=simde_mm256_xor_si256(c2[3121],c2[5160]); //row: 26 - d2[312]=_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[488],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4082],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[3602],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[5788],_mm256_xor_si256(c2[5548],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[1949],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[6990],_mm256_xor_si256(c2[6750],_mm256_xor_si256(c2[7014],_mm256_xor_si256(c2[6774],_mm256_xor_si256(c2[6295],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[1016],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[6075],_mm256_xor_si256(c2[5835],_mm256_xor_si256(c2[5356],_mm256_xor_si256(c2[6554],_mm256_xor_si256(c2[6314],_mm256_xor_si256(c2[5835],_mm256_xor_si256(c2[2717],_mm256_xor_si256(c2[2238],_mm256_xor_si256(c2[1779],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[1060],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[582],_mm256_xor_si256(c2[1781],_mm256_xor_si256(c2[1542],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[4684],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[7323],_mm256_xor_si256(c2[7084],_mm256_xor_si256(c2[6844],_mm256_xor_si256(c2[7347],_mm256_xor_si256(c2[7107],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[5186],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[4229],_mm256_xor_si256(c2[3990],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[4495],_mm256_xor_si256(c2[4255],_mm256_xor_si256(c2[3776],_mm256_xor_si256(c2[3053],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[2574],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[4039],_mm256_xor_si256(c2[3799],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[4514],_mm256_xor_si256(c2[4275],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[943],_mm256_xor_si256(c2[703],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[6217],_mm256_xor_si256(c2[5738],_mm256_xor_si256(c2[4063],_mm256_xor_si256(c2[3824],c2[3584]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[312]=simde_mm256_xor_si256(c2[1207],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[4322],simde_mm256_xor_si256(c2[4082],simde_mm256_xor_si256(c2[3603],simde_mm256_xor_si256(c2[3602],simde_mm256_xor_si256(c2[3123],simde_mm256_xor_si256(c2[5788],simde_mm256_xor_si256(c2[5548],simde_mm256_xor_si256(c2[5069],simde_mm256_xor_si256(c2[1949],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[7229],simde_mm256_xor_si256(c2[6990],simde_mm256_xor_si256(c2[6750],simde_mm256_xor_si256(c2[7014],simde_mm256_xor_si256(c2[6774],simde_mm256_xor_si256(c2[6295],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[1016],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[770],simde_mm256_xor_si256(c2[6075],simde_mm256_xor_si256(c2[5835],simde_mm256_xor_si256(c2[5356],simde_mm256_xor_si256(c2[6554],simde_mm256_xor_si256(c2[6314],simde_mm256_xor_si256(c2[5835],simde_mm256_xor_si256(c2[2717],simde_mm256_xor_si256(c2[2238],simde_mm256_xor_si256(c2[1779],simde_mm256_xor_si256(c2[1539],simde_mm256_xor_si256(c2[1060],simde_mm256_xor_si256(c2[1061],simde_mm256_xor_si256(c2[582],simde_mm256_xor_si256(c2[1781],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[4684],simde_mm256_xor_si256(c2[4444],simde_mm256_xor_si256(c2[3965],simde_mm256_xor_si256(c2[7323],simde_mm256_xor_si256(c2[7084],simde_mm256_xor_si256(c2[6844],simde_mm256_xor_si256(c2[7347],simde_mm256_xor_si256(c2[7107],simde_mm256_xor_si256(c2[6628],simde_mm256_xor_si256(c2[5426],simde_mm256_xor_si256(c2[5186],simde_mm256_xor_si256(c2[4707],simde_mm256_xor_si256(c2[4229],simde_mm256_xor_si256(c2[3990],simde_mm256_xor_si256(c2[3750],simde_mm256_xor_si256(c2[4495],simde_mm256_xor_si256(c2[4255],simde_mm256_xor_si256(c2[3776],simde_mm256_xor_si256(c2[3053],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[2574],simde_mm256_xor_si256(c2[2332],simde_mm256_xor_si256(c2[4039],simde_mm256_xor_si256(c2[3799],simde_mm256_xor_si256(c2[3320],simde_mm256_xor_si256(c2[2117],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[4514],simde_mm256_xor_si256(c2[4275],simde_mm256_xor_si256(c2[4035],simde_mm256_xor_si256(c2[943],simde_mm256_xor_si256(c2[703],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[6457],simde_mm256_xor_si256(c2[6217],simde_mm256_xor_si256(c2[5738],simde_mm256_xor_si256(c2[4063],simde_mm256_xor_si256(c2[3824],c2[3584]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[324]=_mm256_xor_si256(c2[1683],c2[4465]); + d2[324]=simde_mm256_xor_si256(c2[1683],c2[4465]); //row: 28 - d2[336]=_mm256_xor_si256(c2[1466],_mm256_xor_si256(c2[3651],c2[2045])); + d2[336]=simde_mm256_xor_si256(c2[1466],simde_mm256_xor_si256(c2[3651],c2[2045])); //row: 29 - d2[348]=_mm256_xor_si256(c2[3363],c2[4176]); + d2[348]=simde_mm256_xor_si256(c2[3363],c2[4176]); //row: 30 - d2[360]=_mm256_xor_si256(c2[5811],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[4969],c2[5977]))); + d2[360]=simde_mm256_xor_si256(c2[5811],simde_mm256_xor_si256(c2[6364],simde_mm256_xor_si256(c2[4969],c2[5977]))); //row: 31 - d2[372]=_mm256_xor_si256(c2[5530],_mm256_xor_si256(c2[966],_mm256_xor_si256(c2[486],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[4113],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[3658],_mm256_xor_si256(c2[6058],_mm256_xor_si256(c2[5818],_mm256_xor_si256(c2[2719],_mm256_xor_si256(c2[3198],_mm256_xor_si256(c2[7280],_mm256_xor_si256(c2[6102],_mm256_xor_si256(c2[5624],_mm256_xor_si256(c2[6584],_mm256_xor_si256(c2[6344],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[1353],_mm256_xor_si256(c2[1113],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[7616],_mm256_xor_si256(c2[683],_mm256_xor_si256(c2[6680],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[1398],_mm256_xor_si256(c2[5266],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[1187],c2[947]))))))))))))))))))))))))))))))))))); + d2[372]=simde_mm256_xor_si256(c2[5530],simde_mm256_xor_si256(c2[966],simde_mm256_xor_si256(c2[486],simde_mm256_xor_si256(c2[2432],simde_mm256_xor_si256(c2[6512],simde_mm256_xor_si256(c2[4353],simde_mm256_xor_si256(c2[4113],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[3658],simde_mm256_xor_si256(c2[6058],simde_mm256_xor_si256(c2[5818],simde_mm256_xor_si256(c2[2719],simde_mm256_xor_si256(c2[3198],simde_mm256_xor_si256(c2[7280],simde_mm256_xor_si256(c2[6102],simde_mm256_xor_si256(c2[5624],simde_mm256_xor_si256(c2[6584],simde_mm256_xor_si256(c2[6344],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[4447],simde_mm256_xor_si256(c2[4207],simde_mm256_xor_si256(c2[3991],simde_mm256_xor_si256(c2[2070],simde_mm256_xor_si256(c2[1353],simde_mm256_xor_si256(c2[1113],simde_mm256_xor_si256(c2[1139],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[7616],simde_mm256_xor_si256(c2[683],simde_mm256_xor_si256(c2[6680],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1398],simde_mm256_xor_si256(c2[5266],simde_mm256_xor_si256(c2[3101],simde_mm256_xor_si256(c2[1187],c2[947]))))))))))))))))))))))))))))))))))); //row: 32 - d2[384]=_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[7205],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[2641],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[4347],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[5788],_mm256_xor_si256(c2[5573],_mm256_xor_si256(c2[5333],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[4634],_mm256_xor_si256(c2[4394],_mm256_xor_si256(c2[5113],_mm256_xor_si256(c2[4873],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[7299],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[3243],_mm256_xor_si256(c2[3003],_mm256_xor_si256(c2[5882],_mm256_xor_si256(c2[2040],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[5666],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[2788],_mm256_xor_si256(c2[3054],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[1612],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[2358],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[3073],_mm256_xor_si256(c2[7181],_mm256_xor_si256(c2[6941],_mm256_xor_si256(c2[5016],_mm256_xor_si256(c2[4776],c2[2622])))))))))))))))))))))))))))))))))))))))))); + d2[384]=simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[7205],simde_mm256_xor_si256(c2[2881],simde_mm256_xor_si256(c2[2641],simde_mm256_xor_si256(c2[2161],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[4347],simde_mm256_xor_si256(c2[4107],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[5788],simde_mm256_xor_si256(c2[5573],simde_mm256_xor_si256(c2[5333],simde_mm256_xor_si256(c2[7493],simde_mm256_xor_si256(c2[4634],simde_mm256_xor_si256(c2[4394],simde_mm256_xor_si256(c2[5113],simde_mm256_xor_si256(c2[4873],simde_mm256_xor_si256(c2[1276],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[7299],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[3243],simde_mm256_xor_si256(c2[3003],simde_mm256_xor_si256(c2[5882],simde_mm256_xor_si256(c2[2040],simde_mm256_xor_si256(c2[5906],simde_mm256_xor_si256(c2[5666],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[3745],simde_mm256_xor_si256(c2[2788],simde_mm256_xor_si256(c2[3054],simde_mm256_xor_si256(c2[2814],simde_mm256_xor_si256(c2[1612],simde_mm256_xor_si256(c2[2598],simde_mm256_xor_si256(c2[2358],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[3073],simde_mm256_xor_si256(c2[7181],simde_mm256_xor_si256(c2[6941],simde_mm256_xor_si256(c2[5016],simde_mm256_xor_si256(c2[4776],c2[2622])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[396]=_mm256_xor_si256(c2[2169],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[4804],_mm256_xor_si256(c2[6750],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[2457],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[7037],_mm256_xor_si256(c2[7516],_mm256_xor_si256(c2[3919],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[2983],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[846],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[5431],_mm256_xor_si256(c2[5457],_mm256_xor_si256(c2[4255],_mm256_xor_si256(c2[4733],_mm256_xor_si256(c2[5001],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[5716],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[7419],c2[5265])))))))))))))))))))))))))))); + d2[396]=simde_mm256_xor_si256(c2[2169],simde_mm256_xor_si256(c2[5284],simde_mm256_xor_si256(c2[4804],simde_mm256_xor_si256(c2[6750],simde_mm256_xor_si256(c2[3151],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[2457],simde_mm256_xor_si256(c2[1253],simde_mm256_xor_si256(c2[7037],simde_mm256_xor_si256(c2[7516],simde_mm256_xor_si256(c2[3919],simde_mm256_xor_si256(c2[2741],simde_mm256_xor_si256(c2[2263],simde_mm256_xor_si256(c2[2983],simde_mm256_xor_si256(c2[5646],simde_mm256_xor_si256(c2[846],simde_mm256_xor_si256(c2[630],simde_mm256_xor_si256(c2[6388],simde_mm256_xor_si256(c2[5431],simde_mm256_xor_si256(c2[5457],simde_mm256_xor_si256(c2[4255],simde_mm256_xor_si256(c2[4733],simde_mm256_xor_si256(c2[5001],simde_mm256_xor_si256(c2[3319],simde_mm256_xor_si256(c2[5716],simde_mm256_xor_si256(c2[1905],simde_mm256_xor_si256(c2[7419],c2[5265])))))))))))))))))))))))))))); //row: 34 - d2[408]=_mm256_xor_si256(c2[7450],_mm256_xor_si256(c2[7210],_mm256_xor_si256(c2[6005],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[2646],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[2166],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[4352],_mm256_xor_si256(c2[4112],_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[6987],_mm256_xor_si256(c2[5793],_mm256_xor_si256(c2[4828],_mm256_xor_si256(c2[4588],_mm256_xor_si256(c2[5578],_mm256_xor_si256(c2[5338],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[7498],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[6293],_mm256_xor_si256(c2[4639],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[5118],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[3673],_mm256_xor_si256(c2[1281],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[343],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[6577],_mm256_xor_si256(c2[7304],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[345],_mm256_xor_si256(c2[7059],_mm256_xor_si256(c2[6819],_mm256_xor_si256(c2[3248],_mm256_xor_si256(c2[3008],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[5887],_mm256_xor_si256(c2[4922],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[4466],_mm256_xor_si256(c2[3990],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[2545],_mm256_xor_si256(c2[2793],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[3059],_mm256_xor_si256(c2[2819],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[1617],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[1158],_mm256_xor_si256(c2[681],_mm256_xor_si256(c2[7155],_mm256_xor_si256(c2[3078],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[7186],_mm256_xor_si256(c2[6946],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[4781],_mm256_xor_si256(c2[3576],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[1662],c2[1422])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[408]=simde_mm256_xor_si256(c2[7450],simde_mm256_xor_si256(c2[7210],simde_mm256_xor_si256(c2[6005],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[2646],simde_mm256_xor_si256(c2[1441],simde_mm256_xor_si256(c2[2166],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[3125],simde_mm256_xor_si256(c2[4352],simde_mm256_xor_si256(c2[4112],simde_mm256_xor_si256(c2[2907],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[6987],simde_mm256_xor_si256(c2[5793],simde_mm256_xor_si256(c2[4828],simde_mm256_xor_si256(c2[4588],simde_mm256_xor_si256(c2[5578],simde_mm256_xor_si256(c2[5338],simde_mm256_xor_si256(c2[4133],simde_mm256_xor_si256(c2[7498],simde_mm256_xor_si256(c2[6533],simde_mm256_xor_si256(c2[6293],simde_mm256_xor_si256(c2[4639],simde_mm256_xor_si256(c2[4399],simde_mm256_xor_si256(c2[3194],simde_mm256_xor_si256(c2[5118],simde_mm256_xor_si256(c2[4878],simde_mm256_xor_si256(c2[3673],simde_mm256_xor_si256(c2[1281],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[343],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[6577],simde_mm256_xor_si256(c2[7304],simde_mm256_xor_si256(c2[6099],simde_mm256_xor_si256(c2[345],simde_mm256_xor_si256(c2[7059],simde_mm256_xor_si256(c2[6819],simde_mm256_xor_si256(c2[3248],simde_mm256_xor_si256(c2[3008],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[5887],simde_mm256_xor_si256(c2[4922],simde_mm256_xor_si256(c2[4682],simde_mm256_xor_si256(c2[5911],simde_mm256_xor_si256(c2[5671],simde_mm256_xor_si256(c2[4466],simde_mm256_xor_si256(c2[3990],simde_mm256_xor_si256(c2[3750],simde_mm256_xor_si256(c2[2545],simde_mm256_xor_si256(c2[2793],simde_mm256_xor_si256(c2[1828],simde_mm256_xor_si256(c2[1588],simde_mm256_xor_si256(c2[3059],simde_mm256_xor_si256(c2[2819],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[1617],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[2603],simde_mm256_xor_si256(c2[2363],simde_mm256_xor_si256(c2[1158],simde_mm256_xor_si256(c2[681],simde_mm256_xor_si256(c2[7155],simde_mm256_xor_si256(c2[3078],simde_mm256_xor_si256(c2[2113],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[7186],simde_mm256_xor_si256(c2[6946],simde_mm256_xor_si256(c2[5741],simde_mm256_xor_si256(c2[5021],simde_mm256_xor_si256(c2[4781],simde_mm256_xor_si256(c2[3576],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[1662],c2[1422])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[420]=_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[2401],_mm256_xor_si256(c2[4587],_mm256_xor_si256(c2[4347],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[6028],_mm256_xor_si256(c2[3146],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[5573],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[4634],_mm256_xor_si256(c2[5113],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[7539],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[3243],_mm256_xor_si256(c2[6122],_mm256_xor_si256(c2[5885],_mm256_xor_si256(c2[6146],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[3054],_mm256_xor_si256(c2[1852],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[916],_mm256_xor_si256(c2[3313],_mm256_xor_si256(c2[7421],_mm256_xor_si256(c2[7181],_mm256_xor_si256(c2[5016],c2[2862])))))))))))))))))))))))))))))))))); + d2[420]=simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[7445],simde_mm256_xor_si256(c2[2881],simde_mm256_xor_si256(c2[2401],simde_mm256_xor_si256(c2[4587],simde_mm256_xor_si256(c2[4347],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[6028],simde_mm256_xor_si256(c2[3146],simde_mm256_xor_si256(c2[5813],simde_mm256_xor_si256(c2[5573],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[4874],simde_mm256_xor_si256(c2[4634],simde_mm256_xor_si256(c2[5113],simde_mm256_xor_si256(c2[1516],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[7539],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[3243],simde_mm256_xor_si256(c2[6122],simde_mm256_xor_si256(c2[5885],simde_mm256_xor_si256(c2[6146],simde_mm256_xor_si256(c2[5906],simde_mm256_xor_si256(c2[3985],simde_mm256_xor_si256(c2[3028],simde_mm256_xor_si256(c2[3054],simde_mm256_xor_si256(c2[1852],simde_mm256_xor_si256(c2[2598],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[3313],simde_mm256_xor_si256(c2[7421],simde_mm256_xor_si256(c2[7181],simde_mm256_xor_si256(c2[5016],c2[2862])))))))))))))))))))))))))))))))))); //row: 36 - d2[432]=_mm256_xor_si256(c2[6000],_mm256_xor_si256(c2[5572],c2[2573])); + d2[432]=simde_mm256_xor_si256(c2[6000],simde_mm256_xor_si256(c2[5572],c2[2573])); //row: 37 - d2[444]=_mm256_xor_si256(c2[4326],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[7441],_mm256_xor_si256(c2[6001],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[5521],_mm256_xor_si256(c2[1228],_mm256_xor_si256(c2[7467],_mm256_xor_si256(c2[5308],_mm256_xor_si256(c2[3868],_mm256_xor_si256(c2[2909],_mm256_xor_si256(c2[1709],_mm256_xor_si256(c2[1469],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[4614],_mm256_xor_si256(c2[3414],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[75],_mm256_xor_si256(c2[1994],_mm256_xor_si256(c2[554],_mm256_xor_si256(c2[6076],_mm256_xor_si256(c2[4636],_mm256_xor_si256(c2[4898],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[4420],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[3940],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[6363],_mm256_xor_si256(c2[3003],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[1563],_mm256_xor_si256(c2[2787],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[7105],_mm256_xor_si256(c2[7588],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[7614],_mm256_xor_si256(c2[6174],_mm256_xor_si256(c2[6412],_mm256_xor_si256(c2[5212],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[7158],_mm256_xor_si256(c2[5718],_mm256_xor_si256(c2[5476],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[6673],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[4062],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[7422],_mm256_xor_si256(c2[6222],c2[5982]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[444]=simde_mm256_xor_si256(c2[4326],simde_mm256_xor_si256(c2[2886],simde_mm256_xor_si256(c2[7441],simde_mm256_xor_si256(c2[6001],simde_mm256_xor_si256(c2[6961],simde_mm256_xor_si256(c2[5521],simde_mm256_xor_si256(c2[1228],simde_mm256_xor_si256(c2[7467],simde_mm256_xor_si256(c2[5308],simde_mm256_xor_si256(c2[3868],simde_mm256_xor_si256(c2[2909],simde_mm256_xor_si256(c2[1709],simde_mm256_xor_si256(c2[1469],simde_mm256_xor_si256(c2[2454],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[4614],simde_mm256_xor_si256(c2[3414],simde_mm256_xor_si256(c2[3174],simde_mm256_xor_si256(c2[1515],simde_mm256_xor_si256(c2[75],simde_mm256_xor_si256(c2[1994],simde_mm256_xor_si256(c2[554],simde_mm256_xor_si256(c2[6076],simde_mm256_xor_si256(c2[4636],simde_mm256_xor_si256(c2[4898],simde_mm256_xor_si256(c2[3458],simde_mm256_xor_si256(c2[4420],simde_mm256_xor_si256(c2[2980],simde_mm256_xor_si256(c2[5140],simde_mm256_xor_si256(c2[3940],simde_mm256_xor_si256(c2[3700],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[6363],simde_mm256_xor_si256(c2[3003],simde_mm256_xor_si256(c2[1803],simde_mm256_xor_si256(c2[1563],simde_mm256_xor_si256(c2[2787],simde_mm256_xor_si256(c2[1347],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[7105],simde_mm256_xor_si256(c2[7588],simde_mm256_xor_si256(c2[6388],simde_mm256_xor_si256(c2[6148],simde_mm256_xor_si256(c2[7614],simde_mm256_xor_si256(c2[6174],simde_mm256_xor_si256(c2[6412],simde_mm256_xor_si256(c2[5212],simde_mm256_xor_si256(c2[4972],simde_mm256_xor_si256(c2[7158],simde_mm256_xor_si256(c2[5718],simde_mm256_xor_si256(c2[5476],simde_mm256_xor_si256(c2[4036],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[6673],simde_mm256_xor_si256(c2[6433],simde_mm256_xor_si256(c2[4062],simde_mm256_xor_si256(c2[2622],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[7422],simde_mm256_xor_si256(c2[6222],c2[5982]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[456]=_mm256_xor_si256(c2[2891],_mm256_xor_si256(c2[2651],_mm256_xor_si256(c2[5766],_mm256_xor_si256(c2[5286],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[7232],_mm256_xor_si256(c2[3633],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[4826],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[2939],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[7519],_mm256_xor_si256(c2[319],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[2745],_mm256_xor_si256(c2[3465],_mm256_xor_si256(c2[6128],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[5644],_mm256_xor_si256(c2[1352],_mm256_xor_si256(c2[1112],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[5913],_mm256_xor_si256(c2[5939],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[5483],_mm256_xor_si256(c2[3801],_mm256_xor_si256(c2[6198],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[2387],_mm256_xor_si256(c2[222],c2[5747])))))))))))))))))))))))))))))))))); + d2[456]=simde_mm256_xor_si256(c2[2891],simde_mm256_xor_si256(c2[2651],simde_mm256_xor_si256(c2[5766],simde_mm256_xor_si256(c2[5286],simde_mm256_xor_si256(c2[7472],simde_mm256_xor_si256(c2[7232],simde_mm256_xor_si256(c2[3633],simde_mm256_xor_si256(c2[1234],simde_mm256_xor_si256(c2[4826],simde_mm256_xor_si256(c2[1019],simde_mm256_xor_si256(c2[779],simde_mm256_xor_si256(c2[2939],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[7519],simde_mm256_xor_si256(c2[319],simde_mm256_xor_si256(c2[4401],simde_mm256_xor_si256(c2[3223],simde_mm256_xor_si256(c2[2745],simde_mm256_xor_si256(c2[3465],simde_mm256_xor_si256(c2[6128],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[5644],simde_mm256_xor_si256(c2[1352],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[6870],simde_mm256_xor_si256(c2[5913],simde_mm256_xor_si256(c2[5939],simde_mm256_xor_si256(c2[4737],simde_mm256_xor_si256(c2[5483],simde_mm256_xor_si256(c2[3801],simde_mm256_xor_si256(c2[6198],simde_mm256_xor_si256(c2[2627],simde_mm256_xor_si256(c2[2387],simde_mm256_xor_si256(c2[222],c2[5747])))))))))))))))))))))))))))))))))); //row: 39 - d2[468]=_mm256_xor_si256(c2[1687],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[4082],_mm256_xor_si256(c2[6962],_mm256_xor_si256(c2[6268],_mm256_xor_si256(c2[6028],_mm256_xor_si256(c2[2429],_mm256_xor_si256(c2[30],_mm256_xor_si256(c2[7494],_mm256_xor_si256(c2[7254],_mm256_xor_si256(c2[1735],_mm256_xor_si256(c2[6555],_mm256_xor_si256(c2[6315],_mm256_xor_si256(c2[7034],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[2019],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[5164],_mm256_xor_si256(c2[4924],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[5666],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[1132],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[4279],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[4994],_mm256_xor_si256(c2[1423],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[6937],_mm256_xor_si256(c2[6697],c2[4543])))))))))))))))))))))))))))))))))))))))))); + d2[468]=simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[4562],simde_mm256_xor_si256(c2[4082],simde_mm256_xor_si256(c2[6962],simde_mm256_xor_si256(c2[6268],simde_mm256_xor_si256(c2[6028],simde_mm256_xor_si256(c2[2429],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[7494],simde_mm256_xor_si256(c2[7254],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[6555],simde_mm256_xor_si256(c2[6315],simde_mm256_xor_si256(c2[7034],simde_mm256_xor_si256(c2[6794],simde_mm256_xor_si256(c2[3197],simde_mm256_xor_si256(c2[2259],simde_mm256_xor_si256(c2[2019],simde_mm256_xor_si256(c2[1541],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[5164],simde_mm256_xor_si256(c2[4924],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[7587],simde_mm256_xor_si256(c2[5906],simde_mm256_xor_si256(c2[5666],simde_mm256_xor_si256(c2[4709],simde_mm256_xor_si256(c2[4975],simde_mm256_xor_si256(c2[4735],simde_mm256_xor_si256(c2[3533],simde_mm256_xor_si256(c2[1132],simde_mm256_xor_si256(c2[4519],simde_mm256_xor_si256(c2[4279],simde_mm256_xor_si256(c2[2597],simde_mm256_xor_si256(c2[4994],simde_mm256_xor_si256(c2[1423],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[6937],simde_mm256_xor_si256(c2[6697],c2[4543])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[480]=_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[3850],_mm256_xor_si256(c2[1204],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[6485],_mm256_xor_si256(c2[2670],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[6750],_mm256_xor_si256(c2[4832],_mm256_xor_si256(c2[4351],_mm256_xor_si256(c2[2673],_mm256_xor_si256(c2[2433],_mm256_xor_si256(c2[3896],_mm256_xor_si256(c2[1978],_mm256_xor_si256(c2[6056],_mm256_xor_si256(c2[4378],_mm256_xor_si256(c2[4138],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[1039],_mm256_xor_si256(c2[3436],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[7518],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[6340],_mm256_xor_si256(c2[4422],_mm256_xor_si256(c2[5862],_mm256_xor_si256(c2[3944],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[4904],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[1566],_mm256_xor_si256(c2[7327],_mm256_xor_si256(c2[4445],_mm256_xor_si256(c2[2767],_mm256_xor_si256(c2[2527],_mm256_xor_si256(c2[4229],_mm256_xor_si256(c2[2311],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[1351],_mm256_xor_si256(c2[7352],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[7138],_mm256_xor_si256(c2[175],_mm256_xor_si256(c2[6176],_mm256_xor_si256(c2[5936],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[6682],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[7397],_mm256_xor_si256(c2[5504],_mm256_xor_si256(c2[3586],_mm256_xor_si256(c2[3339],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[1185],_mm256_xor_si256(c2[7186],c2[6946])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[480]=simde_mm256_xor_si256(c2[5768],simde_mm256_xor_si256(c2[3850],simde_mm256_xor_si256(c2[1204],simde_mm256_xor_si256(c2[6965],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[6485],simde_mm256_xor_si256(c2[2670],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[6750],simde_mm256_xor_si256(c2[4832],simde_mm256_xor_si256(c2[4351],simde_mm256_xor_si256(c2[2673],simde_mm256_xor_si256(c2[2433],simde_mm256_xor_si256(c2[3896],simde_mm256_xor_si256(c2[1978],simde_mm256_xor_si256(c2[6056],simde_mm256_xor_si256(c2[4378],simde_mm256_xor_si256(c2[4138],simde_mm256_xor_si256(c2[1731],simde_mm256_xor_si256(c2[2957],simde_mm256_xor_si256(c2[1039],simde_mm256_xor_si256(c2[3436],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[7518],simde_mm256_xor_si256(c2[5600],simde_mm256_xor_si256(c2[6340],simde_mm256_xor_si256(c2[4422],simde_mm256_xor_si256(c2[5862],simde_mm256_xor_si256(c2[3944],simde_mm256_xor_si256(c2[6582],simde_mm256_xor_si256(c2[4904],simde_mm256_xor_si256(c2[4664],simde_mm256_xor_si256(c2[1566],simde_mm256_xor_si256(c2[7327],simde_mm256_xor_si256(c2[4445],simde_mm256_xor_si256(c2[2767],simde_mm256_xor_si256(c2[2527],simde_mm256_xor_si256(c2[4229],simde_mm256_xor_si256(c2[2311],simde_mm256_xor_si256(c2[2308],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[1351],simde_mm256_xor_si256(c2[7352],simde_mm256_xor_si256(c2[7112],simde_mm256_xor_si256(c2[1377],simde_mm256_xor_si256(c2[7138],simde_mm256_xor_si256(c2[175],simde_mm256_xor_si256(c2[6176],simde_mm256_xor_si256(c2[5936],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[6682],simde_mm256_xor_si256(c2[6918],simde_mm256_xor_si256(c2[5000],simde_mm256_xor_si256(c2[1636],simde_mm256_xor_si256(c2[7637],simde_mm256_xor_si256(c2[7397],simde_mm256_xor_si256(c2[5504],simde_mm256_xor_si256(c2[3586],simde_mm256_xor_si256(c2[3339],simde_mm256_xor_si256(c2[1421],simde_mm256_xor_si256(c2[1185],simde_mm256_xor_si256(c2[7186],c2[6946])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[492]=_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[2167],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[6988],_mm256_xor_si256(c2[6748],_mm256_xor_si256(c2[3149],_mm256_xor_si256(c2[750],_mm256_xor_si256(c2[4588],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[2455],_mm256_xor_si256(c2[7275],_mm256_xor_si256(c2[7035],_mm256_xor_si256(c2[7514],_mm256_xor_si256(c2[3917],_mm256_xor_si256(c2[2739],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[5644],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[6386],_mm256_xor_si256(c2[5429],_mm256_xor_si256(c2[5455],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4999],_mm256_xor_si256(c2[3317],_mm256_xor_si256(c2[5714],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[7417],c2[5263])))))))))))))))))))))))))))))))))); + d2[492]=simde_mm256_xor_si256(c2[2407],simde_mm256_xor_si256(c2[2167],simde_mm256_xor_si256(c2[5282],simde_mm256_xor_si256(c2[4802],simde_mm256_xor_si256(c2[6988],simde_mm256_xor_si256(c2[6748],simde_mm256_xor_si256(c2[3149],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[4588],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[2455],simde_mm256_xor_si256(c2[7275],simde_mm256_xor_si256(c2[7035],simde_mm256_xor_si256(c2[7514],simde_mm256_xor_si256(c2[3917],simde_mm256_xor_si256(c2[2739],simde_mm256_xor_si256(c2[2261],simde_mm256_xor_si256(c2[2981],simde_mm256_xor_si256(c2[5644],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[6386],simde_mm256_xor_si256(c2[5429],simde_mm256_xor_si256(c2[5455],simde_mm256_xor_si256(c2[4253],simde_mm256_xor_si256(c2[4999],simde_mm256_xor_si256(c2[3317],simde_mm256_xor_si256(c2[5714],simde_mm256_xor_si256(c2[2143],simde_mm256_xor_si256(c2[1903],simde_mm256_xor_si256(c2[7417],c2[5263])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc64_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc64_byte.c index 8ffc540cd4..5ab2a77edb 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc64_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc64_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc64_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[901],c2[1029])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[901],c2[1029])))))))))))))))))))))))))); //row: 1 - d2[2]=_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[953],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[901],c2[1029])))))))))))))))))))))))))))))))); + d2[2]=simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[901],c2[1029])))))))))))))))))))))))))))))))); //row: 2 - d2[4]=_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[953],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[901],c2[1029])))))))))))))))))))))))))))))))))))))))); + d2[4]=simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[901],c2[1029])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[6]=_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[277],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[36],c2[1029])))))))))))))))))))))))))))))))))); + d2[6]=simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[36],c2[1029])))))))))))))))))))))))))))))))))); //row: 4 - d2[8]=_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[584],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[45],_mm256_xor_si256(c2[13],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[849],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[93],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[100],c2[228])))))))))))))))))))))))))))))))))); + d2[8]=simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[584],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[13],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[589],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[849],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[93],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[100],c2[228])))))))))))))))))))))))))))))))))); //row: 5 - d2[10]=_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[416],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[9],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[588],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[117],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[1020],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[101],c2[229])))))))))))))))))))))))))))))))))))); + d2[10]=simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[1020],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[101],c2[229])))))))))))))))))))))))))))))))))))); //row: 6 - d2[12]=_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[781],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[149],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[473],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[445],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[964],c2[932])))))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[329],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[964],c2[932])))))))))))))))))))))))))))))))))))); //row: 7 - d2[14]=_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[897],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[261],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[488],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[908],_mm256_xor_si256(c2[428],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[461],_mm256_xor_si256(c2[1004],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[916],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[884],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[537],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[988],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[349],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[516],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[100],c2[645])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[14]=simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[261],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[1001],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[537],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[349],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[100],c2[645])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[16]=_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[416],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[964],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[1005],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[117],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[69],c2[197])))))))))))))))))))))))))))))))))))))))))); + d2[16]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[964],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1005],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[69],c2[197])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[18]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[993],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[416],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[261],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[713],_mm256_xor_si256(c2[521],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[524],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[908],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[817],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[821],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[149],_mm256_xor_si256(c2[980],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[825],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[440],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[796],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[413],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[933],c2[741]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[18]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[261],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[521],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[817],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[825],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[796],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[933],c2[741]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[20]=_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[24],c2[701]))); + d2[20]=simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[24],c2[701]))); //row: 11 - d2[22]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[657],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[445],_mm256_xor_si256(c2[413],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[773],c2[612]))))))))))))))))))))))))))))))))))))); + d2[22]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[773],c2[612]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[24]=_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[840],_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[237],_mm256_xor_si256(c2[621],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[693],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[324],c2[452])))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[237],simde_mm256_xor_si256(c2[621],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[693],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[324],c2[452])))))))))))))))))))))))))))))))))); //row: 13 - d2[26]=_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[212],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[473],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[996],c2[964]))))))))))))))))))))))))))))))))))))); + d2[26]=simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[996],c2[964]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[28]=_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[485],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[488],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[908],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[428],_mm256_xor_si256(c2[461],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[208],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[149],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[153],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[825],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[988],_mm256_xor_si256(c2[124],_mm256_xor_si256(c2[988],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[956],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[516],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[100],c2[261]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[28]=simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[825],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[956],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[100],c2[261]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[30]=_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[993],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[9],_mm256_xor_si256(c2[265],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[461],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[377],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[485],c2[676])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[30]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[377],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[485],c2[676])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[32]=_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[937],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[45],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[780],_mm256_xor_si256(c2[429],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[621],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[497],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[501],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[501],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[473],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[125],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[957],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[1029],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[485],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[581],c2[484]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[32]=simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[429],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[621],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[501],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[501],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[125],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[957],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[1029],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[581],c2[484]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[34]=_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[937],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[953],_mm256_xor_si256(c2[473],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[57],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[1024],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[1029],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[581],c2[1029]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[34]=simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[1029],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[581],c2[1029]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[36]=_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[88],c2[605])); + d2[36]=simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[88],c2[605])); //row: 19 - d2[38]=_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[588],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[141],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[693],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[697],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[677],c2[805])))))))))))))))))))))))))))); + d2[38]=simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[972],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[693],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[697],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[677],c2[805])))))))))))))))))))))))))))); //row: 20 - d2[40]=_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[265],_mm256_xor_si256(c2[712],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[717],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[528],_mm256_xor_si256(c2[849],_mm256_xor_si256(c2[305],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[416],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[804],c2[932])))))))))))))))))))))))))))))))))); + d2[40]=simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[717],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[528],simde_mm256_xor_si256(c2[849],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[441],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[804],c2[932])))))))))))))))))))))))))))))))))); //row: 21 - d2[42]=_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[749],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[497],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[821],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[445],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[353],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[612],c2[580])))))))))))))))))))))))))))))))))))); + d2[42]=simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[472],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[612],c2[580])))))))))))))))))))))))))))))))))))); //row: 22 - d2[44]=_mm256_xor_si256(c2[964],c2[1001]); + d2[44]=simde_mm256_xor_si256(c2[964],c2[1001]); //row: 23 - d2[46]=_mm256_xor_si256(c2[736],_mm256_xor_si256(c2[365],c2[469])); + d2[46]=simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[365],c2[469])); //row: 24 - d2[48]=_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[360],c2[292])); + d2[48]=simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[360],c2[292])); //row: 25 - d2[50]=_mm256_xor_si256(c2[129],c2[916]); + d2[50]=simde_mm256_xor_si256(c2[129],c2[916]); //row: 26 - d2[52]=_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[513],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[393],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[649],_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[1004],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[912],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[624],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[948],_mm256_xor_si256(c2[916],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[952],_mm256_xor_si256(c2[920],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[88],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[537],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[893],_mm256_xor_si256(c2[700],_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[700],_mm256_xor_si256(c2[509],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[1025],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[321],_mm256_xor_si256(c2[416],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[453],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[932],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[1028],c2[837]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[52]=simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[393],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[649],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[912],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[952],simde_mm256_xor_si256(c2[920],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[537],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[893],simde_mm256_xor_si256(c2[700],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[700],simde_mm256_xor_si256(c2[509],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[1025],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[932],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[1028],c2[837]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[54]=_mm256_xor_si256(c2[256],c2[760]); + d2[54]=simde_mm256_xor_si256(c2[256],c2[760]); //row: 28 - d2[56]=_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[169],c2[244])); + d2[56]=simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[169],c2[244])); //row: 29 - d2[58]=_mm256_xor_si256(c2[576],c2[912]); + d2[58]=simde_mm256_xor_si256(c2[576],c2[912]); //row: 30 - d2[60]=_mm256_xor_si256(c2[232],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[316],c2[676]))); + d2[60]=simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[316],c2[676]))); //row: 31 - d2[62]=_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[392],_mm256_xor_si256(c2[873],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[657],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[277],_mm256_xor_si256(c2[953],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[765],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[68],c2[36]))))))))))))))))))))))))))))))))))); + d2[62]=simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[873],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[765],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[68],c2[36]))))))))))))))))))))))))))))))))))); //row: 32 - d2[64]=_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[416],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[1005],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[117],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[69],c2[197])))))))))))))))))))))))))))))))))))))))))); + d2[64]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1005],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[69],c2[197])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[66]=_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[713],_mm256_xor_si256(c2[137],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[524],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[245],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[229],c2[357])))))))))))))))))))))))))))); + d2[66]=simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[137],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[229],c2[357])))))))))))))))))))))))))))); //row: 34 - d2[68]=_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[897],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[9],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[968],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[461],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[877],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[404],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[372],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[184],_mm256_xor_si256(c2[697],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[573],_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[828],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[1028],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[676],c2[133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[68]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[385],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[968],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[877],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[404],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[697],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[573],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[828],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[676],c2[133])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[70]=_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[161],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[780],_mm256_xor_si256(c2[141],_mm256_xor_si256(c2[333],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[912],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[213],_mm256_xor_si256(c2[277],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[669],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[869],c2[997])))))))))))))))))))))))))))))))))); + d2[70]=simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[333],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[912],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[669],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[869],c2[997])))))))))))))))))))))))))))))))))); //row: 36 - d2[72]=_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[201],c2[860])); + d2[72]=simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[201],c2[860])); //row: 37 - d2[74]=_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[353],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[964],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[552],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[520],_mm256_xor_si256(c2[653],_mm256_xor_si256(c2[525],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[909],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[624],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[785],_mm256_xor_si256(c2[657],_mm256_xor_si256(c2[756],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[921],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[377],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[737],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[321],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[261],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[868],c2[740]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[74]=simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[964],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[552],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[520],simde_mm256_xor_si256(c2[653],simde_mm256_xor_si256(c2[525],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[909],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[785],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[377],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[261],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[868],c2[740]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[76]=_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[836],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[1005],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[729],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[892],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[69],c2[197])))))))))))))))))))))))))))))))))); + d2[76]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1005],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[69],c2[197])))))))))))))))))))))))))))))))))); //row: 39 - d2[78]=_mm256_xor_si256(c2[353],_mm256_xor_si256(c2[321],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[481],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[425],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[909],_mm256_xor_si256(c2[877],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[428],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[980],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[1016],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[957],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[413],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[64],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[485],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[964],c2[69])))))))))))))))))))))))))))))))))))))))))); + d2[78]=simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[909],simde_mm256_xor_si256(c2[877],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[1016],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[957],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[964],c2[69])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[80]=_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[712],_mm256_xor_si256(c2[104],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[136],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[141],_mm256_xor_si256(c2[556],_mm256_xor_si256(c2[525],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[717],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[657],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[369],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[273],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[445],_mm256_xor_si256(c2[353],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[320],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[356],c2[773])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[80]=simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[525],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[717],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[977],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[273],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[356],c2[773])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[82]=_mm256_xor_si256(c2[993],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[896],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[357],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[524],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[876],_mm256_xor_si256(c2[45],_mm256_xor_si256(c2[593],_mm256_xor_si256(c2[305],_mm256_xor_si256(c2[624],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[948],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[572],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[193],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[100],_mm256_xor_si256(c2[581],c2[709])))))))))))))))))))))))))))))))))); + d2[82]=simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[581],c2[709])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc96_byte.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc96_byte.c index f5446775ba..a4d5a47ef4 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc96_byte.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_BG2_Zc96_byte.c @@ -11,129 +11,129 @@ static inline void ldpc_BG2_Zc96_byte(uint8_t *c,uint8_t *d) { d2=&dsimd[i2]; //row: 0 - d2[0]=_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[174],c2[1556])))))))))))))))))))))))))); + d2[0]=simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[174],c2[1556])))))))))))))))))))))))))); //row: 1 - d2[3]=_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[458],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[174],c2[1556])))))))))))))))))))))))))))))))); + d2[3]=simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[458],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[174],c2[1556])))))))))))))))))))))))))))))))); //row: 2 - d2[6]=_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[1620],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[259],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[458],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[174],c2[1556])))))))))))))))))))))))))))))))))))))))); + d2[6]=simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1620],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[458],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[174],c2[1556])))))))))))))))))))))))))))))))))))))))); //row: 3 - d2[9]=_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[1044],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1604],_mm256_xor_si256(c2[1362],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[716],_mm256_xor_si256(c2[174],_mm256_xor_si256(c2[1616],c2[1556])))))))))))))))))))))))))))))))))); + d2[9]=simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[1044],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[1616],c2[1556])))))))))))))))))))))))))))))))))); //row: 4 - d2[12]=_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[1261],_mm256_xor_si256(c2[482],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[847],_mm256_xor_si256(c2[248],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1039],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[1422],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[1308],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[1489],_mm256_xor_si256(c2[594],_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[1914],c2[1374])))))))))))))))))))))))))))))))))); + d2[12]=simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[1806],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[847],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1039],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[1422],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[1308],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[594],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[1914],c2[1374])))))))))))))))))))))))))))))))))); //row: 5 - d2[15]=_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[1740],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[482],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[1388],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[1272],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[1098],_mm256_xor_si256(c2[1038],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[1765],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[1530],_mm256_xor_si256(c2[1416],_mm256_xor_si256(c2[1356],_mm256_xor_si256(c2[878],_mm256_xor_si256(c2[638],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[1004],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[710],_mm256_xor_si256(c2[1734],_mm256_xor_si256(c2[1674],_mm256_xor_si256(c2[1135],c2[595])))))))))))))))))))))))))))))))))))); + d2[15]=simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[1740],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1027],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[727],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[1272],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[1098],simde_mm256_xor_si256(c2[1038],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[1765],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[1530],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[878],simde_mm256_xor_si256(c2[638],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[1734],simde_mm256_xor_si256(c2[1674],simde_mm256_xor_si256(c2[1135],c2[595])))))))))))))))))))))))))))))))))))); //row: 6 - d2[18]=_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[960],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[1866],_mm256_xor_si256(c2[1813],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[1579],_mm256_xor_si256(c2[1519],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[738],_mm256_xor_si256(c2[445],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1891],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[1837],_mm256_xor_si256(c2[1356],_mm256_xor_si256(c2[1116],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[282],_mm256_xor_si256(c2[1010],_mm256_xor_si256(c2[588],_mm256_xor_si256(c2[1188],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[1616],_mm256_xor_si256(c2[1076],c2[1075])))))))))))))))))))))))))))))))))))); + d2[18]=simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[1813],simde_mm256_xor_si256(c2[1753],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[1579],simde_mm256_xor_si256(c2[1519],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[738],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1891],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1837],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[1116],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[822],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[1188],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[1616],simde_mm256_xor_si256(c2[1076],c2[1075])))))))))))))))))))))))))))))))))))); //row: 7 - d2[21]=_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[907],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[787],_mm256_xor_si256(c2[1388],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[968],_mm256_xor_si256(c2[734],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[1212],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[440],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[559],_mm256_xor_si256(c2[1100],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[200],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1164],_mm256_xor_si256(c2[1705],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[1885],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[1350],_mm256_xor_si256(c2[1592],_mm256_xor_si256(c2[818],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[277],_mm256_xor_si256(c2[818],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[638],_mm256_xor_si256(c2[578],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[344],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[1002],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[710],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[1075],_mm256_xor_si256(c2[1916],_mm256_xor_si256(c2[595],c2[535])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[21]=simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[422],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[907],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[968],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[1212],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1100],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1164],simde_mm256_xor_si256(c2[1705],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[1885],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[1350],simde_mm256_xor_si256(c2[1592],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[638],simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[1002],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[1075],simde_mm256_xor_si256(c2[1916],simde_mm256_xor_si256(c2[595],c2[535])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 8 - d2[24]=_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[1868],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[1640],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[1171],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[590],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[235],_mm256_xor_si256(c2[1675],_mm256_xor_si256(c2[1615],c2[1075])))))))))))))))))))))))))))))))))))))))))); + d2[24]=simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[1868],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[1640],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[1171],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[1190],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[235],simde_mm256_xor_si256(c2[1675],simde_mm256_xor_si256(c2[1615],c2[1075])))))))))))))))))))))))))))))))))))))))))); //row: 9 - d2[27]=_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1140],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[1020],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[1148],_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[1506],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[1813],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[1579],_mm256_xor_si256(c2[1219],_mm256_xor_si256(c2[1159],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[1278],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[505],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[1531],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[1477],_mm256_xor_si256(c2[1416],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[756],_mm256_xor_si256(c2[1184],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[882],_mm256_xor_si256(c2[462],_mm256_xor_si256(c2[1070],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[828],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[1676],_mm256_xor_si256(c2[1256],_mm256_xor_si256(c2[1136],c2[716]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[27]=simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1140],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[1020],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[1148],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[1506],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1813],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[1579],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[1531],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[1184],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[882],simde_mm256_xor_si256(c2[462],simde_mm256_xor_si256(c2[1070],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[828],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[1855],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1676],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[1136],c2[716]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 10 - d2[30]=_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[486],_mm256_xor_si256(c2[1356],c2[1243]))); + d2[30]=simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[486],simde_mm256_xor_si256(c2[1356],c2[1243]))); //row: 11 - d2[33]=_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[446],_mm256_xor_si256(c2[686],_mm256_xor_si256(c2[626],_mm256_xor_si256(c2[1291],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[91],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1298],_mm256_xor_si256(c2[1238],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[1004],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1724],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[710],_mm256_xor_si256(c2[1370],_mm256_xor_si256(c2[1310],_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[1735],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[1195],c2[896]))))))))))))))))))))))))))))))))))))); + d2[33]=simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[446],simde_mm256_xor_si256(c2[686],simde_mm256_xor_si256(c2[626],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[91],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[1238],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[1724],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[1370],simde_mm256_xor_si256(c2[1310],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[1195],c2[896]))))))))))))))))))))))))))))))))))))); //row: 12 - d2[36]=_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[1442],_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[1087],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[974],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[859],_mm256_xor_si256(c2[1878],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[1112],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[1436],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[834],c2[294])))))))))))))))))))))))))))))))))); + d2[36]=simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1087],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[974],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[859],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[1436],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[834],c2[294])))))))))))))))))))))))))))))))))); //row: 13 - d2[39]=_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1021],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[1388],_mm256_xor_si256(c2[846],_mm256_xor_si256(c2[786],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[1273],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[1580],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[1406],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[92],_mm256_xor_si256(c2[871],_mm256_xor_si256(c2[811],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[1724],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[1075],_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[56],c2[1915]))))))))))))))))))))))))))))))))))))); + d2[39]=simde_mm256_xor_si256(c2[1141],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[846],simde_mm256_xor_si256(c2[786],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[1273],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[439],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[1580],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[1406],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[871],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[1724],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[1075],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[56],c2[1915]))))))))))))))))))))))))))))))))))))); //row: 14 - d2[42]=_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[781],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[1326],_mm256_xor_si256(c2[1266],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[367],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[1687],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[1146],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[1093],_mm256_xor_si256(c2[1033],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1340],_mm256_xor_si256(c2[259],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[559],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[986],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[990],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[1718],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[1177],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[937],_mm256_xor_si256(c2[1838],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[1356],_mm256_xor_si256(c2[942],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[828],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[895],_mm256_xor_si256(c2[1434],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[894],_mm256_xor_si256(c2[1795],c2[1735]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[42]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1326],simde_mm256_xor_si256(c2[1266],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[367],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[1146],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1340],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[990],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[1718],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[1177],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[942],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[828],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[895],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[894],simde_mm256_xor_si256(c2[1795],c2[1735]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 15 - d2[45]=_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[1382],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[242],_mm256_xor_si256(c2[1867],_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[1028],_mm256_xor_si256(c2[968],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[1446],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[793],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[1159],_mm256_xor_si256(c2[1099],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[1591],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[391],_mm256_xor_si256(c2[1471],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[1477],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[1538],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1244],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[1429],_mm256_xor_si256(c2[590],_mm256_xor_si256(c2[1010],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[1610],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[655],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[1735],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[1495],c2[656])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[45]=simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[1867],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[968],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[1446],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1099],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[391],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[1244],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[1429],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[1610],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[655],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[1495],c2[656])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 16 - d2[48]=_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[781],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[1562],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1442],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[1028],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[1388],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[1272],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[498],_mm256_xor_si256(c2[139],_mm256_xor_si256(c2[79],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[258],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[1639],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[984],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[1225],_mm256_xor_si256(c2[806],_mm256_xor_si256(c2[1405],_mm256_xor_si256(c2[986],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[1711],_mm256_xor_si256(c2[1651],_mm256_xor_si256(c2[870],_mm256_xor_si256(c2[451],_mm256_xor_si256(c2[876],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[1898],_mm256_xor_si256(c2[1838],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[1663],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[1723],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[1549],_mm256_xor_si256(c2[1489],_mm256_xor_si256(c2[1489],_mm256_xor_si256(c2[1070],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[1670],_mm256_xor_si256(c2[1194],_mm256_xor_si256(c2[1134],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[715],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[236],_mm256_xor_si256(c2[176],_mm256_xor_si256(c2[55],_mm256_xor_si256(c2[1555],c2[1076]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[48]=simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[1272],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[498],simde_mm256_xor_si256(c2[139],simde_mm256_xor_si256(c2[79],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[1639],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[1225],simde_mm256_xor_si256(c2[806],simde_mm256_xor_si256(c2[1405],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[1711],simde_mm256_xor_si256(c2[1651],simde_mm256_xor_si256(c2[870],simde_mm256_xor_si256(c2[451],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[1898],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[1663],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[1723],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[1908],simde_mm256_xor_si256(c2[1549],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1070],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[1670],simde_mm256_xor_si256(c2[1194],simde_mm256_xor_si256(c2[1134],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[715],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[55],simde_mm256_xor_si256(c2[1555],c2[1076]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 17 - d2[51]=_mm256_xor_si256(c2[1382],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[1566],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[787],_mm256_xor_si256(c2[1807],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[734],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[680],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[440],_mm256_xor_si256(c2[739],_mm256_xor_si256(c2[619],_mm256_xor_si256(c2[559],_mm256_xor_si256(c2[1758],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[1345],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[1164],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[938],_mm256_xor_si256(c2[818],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[277],_mm256_xor_si256(c2[217],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[1608],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[1316],_mm256_xor_si256(c2[1256],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[594],_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[174],c2[1916]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[51]=simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[1566],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[1807],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[680],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[739],simde_mm256_xor_si256(c2[619],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[1345],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[1164],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[938],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[1842],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1608],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[1316],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[714],simde_mm256_xor_si256(c2[594],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[174],c2[1916]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 18 - d2[54]=_mm256_xor_si256(c2[1562],_mm256_xor_si256(c2[396],c2[883])); + d2[54]=simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[396],c2[883])); //row: 19 - d2[57]=_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[1687],_mm256_xor_si256(c2[788],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[607],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[1758],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[980],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1411],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[475],_mm256_xor_si256(c2[1855],c2[1315])))))))))))))))))))))))))))); + d2[57]=simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[607],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[1855],c2[1315])))))))))))))))))))))))))))); //row: 20 - d2[60]=_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[1022],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[728],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[1765],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[31],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[1178],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[884],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[1675],c2[1135])))))))))))))))))))))))))))))))))); + d2[60]=simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[1765],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[1675],c2[1135])))))))))))))))))))))))))))))))))); //row: 21 - d2[63]=_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[1741],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[1093],_mm256_xor_si256(c2[1033],_mm256_xor_si256(c2[259],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[986],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[1838],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[950],_mm256_xor_si256(c2[895],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[1795],c2[1735])))))))))))))))))))))))))))))))))))); + d2[63]=simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1741],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[950],simde_mm256_xor_si256(c2[895],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[1795],c2[1735])))))))))))))))))))))))))))))))))))); //row: 22 - d2[66]=_mm256_xor_si256(c2[1206],c2[1213]); + d2[66]=simde_mm256_xor_si256(c2[1206],c2[1213]); //row: 23 - d2[69]=_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[1340],c2[1892])); + d2[69]=simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1340],c2[1892])); //row: 24 - d2[72]=_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[1513],c2[56])); + d2[72]=simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[1513],c2[56])); //row: 25 - d2[75]=_mm256_xor_si256(c2[781],c2[1290]); + d2[75]=simde_mm256_xor_si256(c2[781],c2[1290]); //row: 26 - d2[78]=_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[122],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[1022],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[780],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[1387],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[488],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[1808],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[1458],_mm256_xor_si256(c2[1339],_mm256_xor_si256(c2[1640],_mm256_xor_si256(c2[1580],_mm256_xor_si256(c2[1458],_mm256_xor_si256(c2[680],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[265],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[446],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[1171],_mm256_xor_si256(c2[1111],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[1771],_mm256_xor_si256(c2[1711],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[1776],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[1298],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[702],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[1130],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[235],_mm256_xor_si256(c2[175],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[1615],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[1436],_mm256_xor_si256(c2[1015],_mm256_xor_si256(c2[956],c2[896]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[78]=simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1387],simde_mm256_xor_si256(c2[1268],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[1808],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[1458],simde_mm256_xor_si256(c2[1339],simde_mm256_xor_si256(c2[1640],simde_mm256_xor_si256(c2[1580],simde_mm256_xor_si256(c2[1458],simde_mm256_xor_si256(c2[680],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[446],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[1171],simde_mm256_xor_si256(c2[1111],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[1771],simde_mm256_xor_si256(c2[1711],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1776],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[702],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[235],simde_mm256_xor_si256(c2[175],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[1615],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[1436],simde_mm256_xor_si256(c2[1015],simde_mm256_xor_si256(c2[956],c2[896]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 27 - d2[81]=_mm256_xor_si256(c2[420],c2[1117]); + d2[81]=simde_mm256_xor_si256(c2[420],c2[1117]); //row: 28 - d2[84]=_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[912],c2[512])); + d2[84]=simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[912],c2[512])); //row: 29 - d2[87]=_mm256_xor_si256(c2[840],c2[1044]); + d2[87]=simde_mm256_xor_si256(c2[840],c2[1044]); //row: 30 - d2[90]=_mm256_xor_si256(c2[1452],_mm256_xor_si256(c2[1591],_mm256_xor_si256(c2[1243],c2[1495]))); + d2[90]=simde_mm256_xor_si256(c2[1452],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[1243],c2[1495]))); //row: 31 - d2[93]=_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[679],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1406],_mm256_xor_si256(c2[1646],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[1111],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[516],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[1670],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[296],c2[236]))))))))))))))))))))))))))))))))))); + d2[93]=simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1628],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[679],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1406],simde_mm256_xor_si256(c2[1646],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[1111],simde_mm256_xor_si256(c2[1051],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[1670],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[1315],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[296],c2[236]))))))))))))))))))))))))))))))))))); //row: 32 - d2[96]=_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[661],_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[1026],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[1334],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[1100],_mm256_xor_si256(c2[1279],_mm256_xor_si256(c2[1219],_mm256_xor_si256(c2[319],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[26],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[750],_mm256_xor_si256(c2[1472],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[937],_mm256_xor_si256(c2[697],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[702],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[588],_mm256_xor_si256(c2[169],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[1796],_mm256_xor_si256(c2[1736],_mm256_xor_si256(c2[1254],_mm256_xor_si256(c2[1194],c2[654])))))))))))))))))))))))))))))))))))))))))); + d2[96]=simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[1874],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[1100],simde_mm256_xor_si256(c2[1279],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[319],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[697],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[702],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[169],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[1796],simde_mm256_xor_si256(c2[1736],simde_mm256_xor_si256(c2[1254],simde_mm256_xor_si256(c2[1194],c2[654])))))))))))))))))))))))))))))))))))))))))); //row: 33 - d2[99]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[787],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[979],_mm256_xor_si256(c2[686],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[745],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[210],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[1597],_mm256_xor_si256(c2[1357],_mm256_xor_si256(c2[1362],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[1184],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[1429],_mm256_xor_si256(c2[474],_mm256_xor_si256(c2[1854],c2[1314])))))))))))))))))))))))))))); + d2[99]=simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[979],simde_mm256_xor_si256(c2[686],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[745],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[1597],simde_mm256_xor_si256(c2[1357],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[1184],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[1429],simde_mm256_xor_si256(c2[474],simde_mm256_xor_si256(c2[1854],c2[1314])))))))))))))))))))))))))))); //row: 34 - d2[102]=_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[782],_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[1028],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[1446],_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[1147],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[1034],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[1574],_mm256_xor_si256(c2[1159],_mm256_xor_si256(c2[1099],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[1278],_mm256_xor_si256(c2[1218],_mm256_xor_si256(c2[919],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[85],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[1645],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[84],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[1471],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1477],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[996],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[637],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[163],_mm256_xor_si256(c2[103],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[590],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[1735],_mm256_xor_si256(c2[1436],_mm256_xor_si256(c2[1256],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[894],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[414],c2[354])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[102]=simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[1446],simde_mm256_xor_si256(c2[1207],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1099],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[919],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[1645],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[1704],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[637],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[163],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[1436],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[894],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[414],c2[354])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 35 - d2[105]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[1146],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[187],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[788],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[1394],_mm256_xor_si256(c2[12],_mm256_xor_si256(c2[1220],_mm256_xor_si256(c2[1160],_mm256_xor_si256(c2[1279],_mm256_xor_si256(c2[379],_mm256_xor_si256(c2[86],_mm256_xor_si256(c2[1884],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[1532],_mm256_xor_si256(c2[1472],_mm256_xor_si256(c2[1538],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[1856],_mm256_xor_si256(c2[1796],_mm256_xor_si256(c2[1254],c2[714])))))))))))))))))))))))))))))))))); + d2[105]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[1146],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[187],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[1279],simde_mm256_xor_si256(c2[379],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[1884],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[1532],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[1856],simde_mm256_xor_si256(c2[1796],simde_mm256_xor_si256(c2[1254],c2[714])))))))))))))))))))))))))))))))))); //row: 36 - d2[108]=_mm256_xor_si256(c2[1500],_mm256_xor_si256(c2[1393],c2[644])); + d2[108]=simde_mm256_xor_si256(c2[1500],simde_mm256_xor_si256(c2[1393],c2[644])); //row: 37 - d2[111]=_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1741],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[307],_mm256_xor_si256(c2[1866],_mm256_xor_si256(c2[1327],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[728],_mm256_xor_si256(c2[428],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[612],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[1152],_mm256_xor_si256(c2[852],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[500],_mm256_xor_si256(c2[140],_mm256_xor_si256(c2[1519],_mm256_xor_si256(c2[1159],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[1105],_mm256_xor_si256(c2[745],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[31],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[750],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[1777],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[1597],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[1902],_mm256_xor_si256(c2[1542],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[1369],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1609],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[654],_mm256_xor_si256(c2[475],_mm256_xor_si256(c2[115],_mm256_xor_si256(c2[1854],_mm256_xor_si256(c2[1554],c2[1494]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[111]=simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[1741],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[307],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[1327],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[1152],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[1519],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[1105],simde_mm256_xor_si256(c2[745],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[1590],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[1777],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1597],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[1902],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[1369],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1609],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[654],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[115],simde_mm256_xor_si256(c2[1854],simde_mm256_xor_si256(c2[1554],c2[1494]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 38 - d2[114]=_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[662],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[1868],_mm256_xor_si256(c2[1808],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[307],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[254],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[734],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[79],_mm256_xor_si256(c2[1098],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[1532],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[1411],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[1476],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1182],_mm256_xor_si256(c2[1370],_mm256_xor_si256(c2[948],_mm256_xor_si256(c2[1548],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[54],c2[1436])))))))))))))))))))))))))))))))))); + d2[114]=simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[662],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1868],simde_mm256_xor_si256(c2[1808],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[307],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[79],simde_mm256_xor_si256(c2[1098],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[1532],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[1716],simde_mm256_xor_si256(c2[1476],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1182],simde_mm256_xor_si256(c2[1370],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[1548],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[54],c2[1436])))))))))))))))))))))))))))))))))); //row: 39 - d2[117]=_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1142],_mm256_xor_si256(c2[1022],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[1567],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[1578],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[504],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[1291],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[31],_mm256_xor_si256(c2[37],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1418],_mm256_xor_si256(c2[1178],_mm256_xor_si256(c2[1243],_mm256_xor_si256(c2[1183],_mm256_xor_si256(c2[884],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[650],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[1735],_mm256_xor_si256(c2[1675],c2[1135])))))))))))))))))))))))))))))))))))))))))); + d2[117]=simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[283],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[1675],c2[1135])))))))))))))))))))))))))))))))))))))))))); //row: 40 - d2[120]=_mm256_xor_si256(c2[1442],_mm256_xor_si256(c2[961],_mm256_xor_si256(c2[301],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[1686],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[1087],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[606],_mm256_xor_si256(c2[974],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[1093],_mm256_xor_si256(c2[1033],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[259],_mm256_xor_si256(c2[859],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[1878],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[986],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[390],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[1112],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[96],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[1838],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[895],_mm256_xor_si256(c2[834],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[1795],c2[1735])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); + d2[120]=simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[1087],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[974],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[859],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[895],simde_mm256_xor_si256(c2[834],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[1795],c2[1735])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); //row: 41 - d2[123]=_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[541],_mm256_xor_si256(c2[1322],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[1687],_mm256_xor_si256(c2[788],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[1147],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[73],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[1818],_mm256_xor_si256(c2[1758],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[980],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1411],_mm256_xor_si256(c2[211],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[217],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[1598],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[1363],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[475],_mm256_xor_si256(c2[1855],c2[1315])))))))))))))))))))))))))))))))))); + d2[123]=simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[1818],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[1855],c2[1315])))))))))))))))))))))))))))))))))); } } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder.c index d5669fbbab..90475831ff 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder.c @@ -140,7 +140,7 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,int shift=5; // AVX2 - 256-bit SIMD mask=31; strcpy(data_type,"__m256i"); - strcpy(xor_command,"_mm256_xor_si256"); + strcpy(xor_command,"simde_mm256_xor_si256"); } else if ((Zc&15)==0) { shift=4; // SSE4 - 128-bit SIMD diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder2.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder2.c index 73c165a2c8..28fcc7f04f 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder2.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder2.c @@ -38,6 +38,7 @@ #include "common/utils/LOG/log.h" #include "time_meas.h" #include "defs.h" +#include "PHY/sse_intrin.h" #include "ldpc384_byte.c" #include "ldpc352_byte.c" @@ -303,21 +304,19 @@ int ldpc_encoder_optim_8seg(unsigned char **test_input,unsigned char **channel_i char temp; int simd_size; -#ifdef __AVX2__ - __m256i shufmask = _mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); - __m256i andmask = _mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. - __m256i zero256 = _mm256_setzero_si256(); + __m256i shufmask = simde_mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); + __m256i andmask = simde_mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. + __m256i zero256 = simde_mm256_setzero_si256(); __m256i masks[8]; register __m256i c256; - masks[0] = _mm256_set1_epi8(0x1); - masks[1] = _mm256_set1_epi8(0x2); - masks[2] = _mm256_set1_epi8(0x4); - masks[3] = _mm256_set1_epi8(0x8); - masks[4] = _mm256_set1_epi8(0x10); - masks[5] = _mm256_set1_epi8(0x20); - masks[6] = _mm256_set1_epi8(0x40); - masks[7] = _mm256_set1_epi8(0x80); -#endif + masks[0] = simde_mm256_set1_epi8(0x1); + masks[1] = simde_mm256_set1_epi8(0x2); + masks[2] = simde_mm256_set1_epi8(0x4); + masks[3] = simde_mm256_set1_epi8(0x8); + masks[4] = simde_mm256_set1_epi8(0x10); + masks[5] = simde_mm256_set1_epi8(0x20); + masks[6] = simde_mm256_set1_epi8(0x40); + masks[7] = simde_mm256_set1_epi8(0x80); AssertFatal(n_segments>0&&n_segments<=8,"0 < n_segments %d <= 8\n",n_segments); @@ -374,11 +373,10 @@ int ldpc_encoder_optim_8seg(unsigned char **test_input,unsigned char **channel_i } } #else -#ifdef __AVX2__ for (i=0; i>5; i++) { - c256 = _mm256_and_si256(_mm256_cmpeq_epi8(_mm256_andnot_si256(_mm256_shuffle_epi8(_mm256_set1_epi32(((uint32_t*)test_input[0])[i]), shufmask),andmask),zero256),masks[0]); + c256 = simde_mm256_and_si256(simde_mm256_cmpeq_epi8(simde_mm256_andnot_si256(simde_mm256_shuffle_epi8(simde_mm256_set1_epi32(((uint32_t*)test_input[0])[i]), shufmask),andmask),zero256),masks[0]); for (j=1; j0) l1++; for (i=0;i0) l2++; for (i1=0;i1>j)&1; } -#else - AssertFatal(1==0,"Need AVX2 for now\n"); -#endif - if(toutput != NULL) stop_meas(toutput); return 0; } @@ -490,23 +480,19 @@ int ldpc_encoder_optim_8seg_multi(unsigned char **test_input,unsigned char **cha //printf("macro_segment: %d\n", macro_segment); //printf("macro_segment_end: %d\n", macro_segment_end ); -#ifdef __AVX2__ - __m256i shufmask = _mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); - __m256i andmask = _mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. - __m256i zero256 = _mm256_setzero_si256(); + __m256i shufmask = simde_mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); + __m256i andmask = simde_mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. + __m256i zero256 = simde_mm256_setzero_si256(); __m256i masks[8]; register __m256i c256; - masks[0] = _mm256_set1_epi8(0x1); - masks[1] = _mm256_set1_epi8(0x2); - masks[2] = _mm256_set1_epi8(0x4); - masks[3] = _mm256_set1_epi8(0x8); - masks[4] = _mm256_set1_epi8(0x10); - masks[5] = _mm256_set1_epi8(0x20); - masks[6] = _mm256_set1_epi8(0x40); - masks[7] = _mm256_set1_epi8(0x80); -#endif - - + masks[0] = simde_mm256_set1_epi8(0x1); + masks[1] = simde_mm256_set1_epi8(0x2); + masks[2] = simde_mm256_set1_epi8(0x4); + masks[3] = simde_mm256_set1_epi8(0x8); + masks[4] = simde_mm256_set1_epi8(0x10); + masks[5] = simde_mm256_set1_epi8(0x20); + masks[6] = simde_mm256_set1_epi8(0x40); + masks[7] = simde_mm256_set1_epi8(0x80); //determine number of bits in codeword if (BG==1) @@ -558,12 +544,11 @@ int ldpc_encoder_optim_8seg_multi(unsigned char **test_input,unsigned char **cha } } #else -#ifdef __AVX2__ for (i=0; i>5; i++) { - c256 = _mm256_and_si256(_mm256_cmpeq_epi8(_mm256_andnot_si256(_mm256_shuffle_epi8(_mm256_set1_epi32(((uint32_t*)test_input[macro_segment])[i]), shufmask),andmask),zero256),masks[0]); + c256 = simde_mm256_and_si256(simde_mm256_cmpeq_epi8(simde_mm256_andnot_si256(simde_mm256_shuffle_epi8(simde_mm256_set1_epi32(((uint32_t*)test_input[macro_segment])[i]), shufmask),andmask),zero256),masks[0]); //for (j=1; j0) l1++; for (i=0;i0) l2++; for (i1=0;i1>(j-macro_segment))&1; } -#else - AssertFatal(1==0,"Need AVX2 for now\n"); -#endif - if(toutput != NULL) stop_meas(toutput); return 0; } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c index 958ef5aca7..ad71674349 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8seg.c @@ -39,7 +39,7 @@ #include "openair1/PHY/CODING/nrLDPC_defs.h" #include "ldpc_encode_parity_check.c" #include "ldpc_generate_coefficient.c" - +#include "PHY/sse_intrin.h" int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc,int Kb,short block_length, short BG, encoder_implemparams_t *impp) @@ -51,21 +51,19 @@ int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc char temp; int simd_size; -#ifdef __AVX2__ - __m256i shufmask = _mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); - __m256i andmask = _mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. - __m256i zero256 = _mm256_setzero_si256(); + __m256i shufmask = simde_mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); + __m256i andmask = simde_mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. + __m256i zero256 = simde_mm256_setzero_si256(); __m256i masks[8]; register __m256i c256; - masks[0] = _mm256_set1_epi8(0x1); - masks[1] = _mm256_set1_epi8(0x2); - masks[2] = _mm256_set1_epi8(0x4); - masks[3] = _mm256_set1_epi8(0x8); - masks[4] = _mm256_set1_epi8(0x10); - masks[5] = _mm256_set1_epi8(0x20); - masks[6] = _mm256_set1_epi8(0x40); - masks[7] = _mm256_set1_epi8(0x80); -#endif + masks[0] = simde_mm256_set1_epi8(0x1); + masks[1] = simde_mm256_set1_epi8(0x2); + masks[2] = simde_mm256_set1_epi8(0x4); + masks[3] = simde_mm256_set1_epi8(0x8); + masks[4] = simde_mm256_set1_epi8(0x10); + masks[5] = simde_mm256_set1_epi8(0x20); + masks[6] = simde_mm256_set1_epi8(0x40); + masks[7] = simde_mm256_set1_epi8(0x80); AssertFatal((impp->n_segments>0&&impp->n_segments<=8),"0 < n_segments %d <= 8\n",impp->n_segments); @@ -121,11 +119,10 @@ int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc } } #else -#ifdef __AVX2__ for (i=0; i>5; i++) { - c256 = _mm256_and_si256(_mm256_cmpeq_epi8(_mm256_andnot_si256(_mm256_shuffle_epi8(_mm256_set1_epi32(((uint32_t*)test_input[0])[i]), shufmask),andmask),zero256),masks[0]); + c256 = simde_mm256_and_si256(simde_mm256_cmpeq_epi8(simde_mm256_andnot_si256(simde_mm256_shuffle_epi8(simde_mm256_set1_epi32(((uint32_t*)test_input[0])[i]), shufmask),andmask),zero256),masks[0]); for (j=1; jn_segments; j++) { - c256 = _mm256_or_si256(_mm256_and_si256(_mm256_cmpeq_epi8(_mm256_andnot_si256(_mm256_shuffle_epi8(_mm256_set1_epi32(((uint32_t*)test_input[j])[i]), shufmask),andmask),zero256),masks[j]),c256); + c256 = simde_mm256_or_si256(simde_mm256_and_si256(simde_mm256_cmpeq_epi8(simde_mm256_andnot_si256(simde_mm256_shuffle_epi8(simde_mm256_set1_epi32(((uint32_t*)test_input[j])[i]), shufmask),andmask),zero256),masks[j]),c256); } ((__m256i *)c)[i] = c256; } @@ -138,9 +135,6 @@ int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc c[i] |= (temp << j); } } -#else - AssertFatal(1==0,"Need AVX2 for this\n"); -#endif #endif if(impp->tinput != NULL) stop_meas(impp->tinput); @@ -166,7 +160,6 @@ int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc memcpy(&channel_input[0], &c[2*Zc], (block_length-2*Zc)*sizeof(unsigned char)); memcpy(&channel_input[block_length-2*Zc], &d[0], ((nrows-no_punctured_columns) * Zc-removed_bit)*sizeof(unsigned char)); */ -#ifdef __AVX2__ if ((((2*Zc)&31) == 0) && (((block_length-(2*Zc))&31) == 0)) { //AssertFatal(((2*Zc)&31) == 0,"2*Zc needs to be a multiple of 32 for now\n"); //AssertFatal(((block_length-(2*Zc))&31) == 0,"block_length-(2*Zc) needs to be a multiple of 32 for now\n"); @@ -177,12 +170,12 @@ int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc // if (((block_length-(2*Zc))&31)>0) l1++; for (i=0;in_segments;j++) ((__m256i *)channel_input[j])[i] = _mm256_and_si256(_mm256_srai_epi16(c256p[i],j),masks[0]); + for (j=0;jn_segments;j++) ((__m256i *)channel_input[j])[i] = simde_mm256_and_si256(simde_mm256_srai_epi16(c256p[i],j),masks[0]); // if ((((nrows-no_punctured_columns) * Zc-removed_bit)&31)>0) l2++; for (i1=0;i1n_segments;j++) ((__m256i *)channel_input[j])[i] = _mm256_and_si256(_mm256_srai_epi16(d256p[i1],j),masks[0]); + for (j=0;jn_segments;j++) ((__m256i *)channel_input[j])[i] = simde_mm256_and_si256(simde_mm256_srai_epi16(d256p[i1],j),masks[0]); } else { #ifdef DEBUG_LDPC @@ -197,10 +190,6 @@ int nrLDPC_encod(unsigned char **test_input,unsigned char **channel_input,int Zc channel_input[j][block_length-2*Zc+i] = (d[i]>>j)&1; } -#else - AssertFatal(1==0,"Need AVX2 for now\n"); -#endif - if(impp->toutput != NULL) stop_meas(impp->toutput); return 0; } diff --git a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c index 9ef8cbfe65..5df688bc58 100644 --- a/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c +++ b/openair1/PHY/CODING/nrLDPC_encoder/ldpc_encoder_optim8segmulti.c @@ -37,6 +37,7 @@ #include "common/utils/LOG/log.h" #include "time_meas.h" #include "openair1/PHY/CODING/nrLDPC_defs.h" +#include "PHY/sse_intrin.h" #include "ldpc_encode_parity_check.c" #include "ldpc_generate_coefficient.c" @@ -61,21 +62,19 @@ int nrLDPC_encod(unsigned char **input,unsigned char **output,int Zc,int Kb,shor ///printf("macro_segment: %d\n", macro_segment); ///printf("macro_segment_end: %d\n", macro_segment_end ); -#ifdef __AVX2__ - __m256i shufmask = _mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); - __m256i andmask = _mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. - __m256i zero256 = _mm256_setzero_si256(); + __m256i shufmask = simde_mm256_set_epi64x(0x0303030303030303, 0x0202020202020202,0x0101010101010101, 0x0000000000000000); + __m256i andmask = simde_mm256_set1_epi64x(0x0102040810204080); // every 8 bits -> 8 bytes, pattern repeats. + __m256i zero256 = simde_mm256_setzero_si256(); __m256i masks[8]; register __m256i c256; - masks[0] = _mm256_set1_epi8(0x1); - masks[1] = _mm256_set1_epi8(0x2); - masks[2] = _mm256_set1_epi8(0x4); - masks[3] = _mm256_set1_epi8(0x8); - masks[4] = _mm256_set1_epi8(0x10); - masks[5] = _mm256_set1_epi8(0x20); - masks[6] = _mm256_set1_epi8(0x40); - masks[7] = _mm256_set1_epi8(0x80); -#endif + masks[0] = simde_mm256_set1_epi8(0x1); + masks[1] = simde_mm256_set1_epi8(0x2); + masks[2] = simde_mm256_set1_epi8(0x4); + masks[3] = simde_mm256_set1_epi8(0x8); + masks[4] = simde_mm256_set1_epi8(0x10); + masks[5] = simde_mm256_set1_epi8(0x20); + masks[6] = simde_mm256_set1_epi8(0x40); + masks[7] = simde_mm256_set1_epi8(0x80); @@ -127,12 +126,11 @@ int nrLDPC_encod(unsigned char **input,unsigned char **output,int Zc,int Kb,shor } } #else -#ifdef __AVX2__ for (int i=0; i>5; i++) { - c256 = _mm256_and_si256(_mm256_cmpeq_epi8(_mm256_andnot_si256(_mm256_shuffle_epi8(_mm256_set1_epi32(((uint32_t*)input[macro_segment])[i]), shufmask),andmask),zero256),masks[0]); + c256 = simde_mm256_and_si256(simde_mm256_cmpeq_epi8(simde_mm256_andnot_si256(simde_mm256_shuffle_epi8(simde_mm256_set1_epi32(((uint32_t*)input[macro_segment])[i]), shufmask),andmask),zero256),masks[0]); //for (j=1; jtinput != NULL) stop_meas(impp->tinput); @@ -174,7 +169,6 @@ int nrLDPC_encod(unsigned char **input,unsigned char **output,int Zc,int Kb,shor memcpy(&output[0], &c[2*Zc], (block_length-2*Zc)*sizeof(unsigned char)); memcpy(&output[block_length-2*Zc], &d[0], ((nrows-no_punctured_columns) * Zc-removed_bit)*sizeof(unsigned char)); */ -#ifdef __AVX2__ if ((((2*Zc)&31) == 0) && (((block_length-(2*Zc))&31) == 0)) { //AssertFatal(((2*Zc)&31) == 0,"2*Zc needs to be a multiple of 32 for now\n"); //AssertFatal(((block_length-(2*Zc))&31) == 0,"block_length-(2*Zc) needs to be a multiple of 32 for now\n"); @@ -185,15 +179,15 @@ int nrLDPC_encod(unsigned char **input,unsigned char **output,int Zc,int Kb,shor // if (((block_length-(2*Zc))&31)>0) l1++; for (int i=0;i0) l2++; for (int i1=0, i=l1;i1>(j-macro_segment))&1; } -#else - AssertFatal(1==0,"Need AVX2 for now\n"); -#endif - if(impp->toutput != NULL) stop_meas(impp->toutput); return 0; } diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c index b201db2ba6..662111fcb6 100644 --- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c +++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c @@ -36,7 +36,6 @@ //#define DEBUG_NEW_IMPL 1 - static inline void updateBit(uint8_t listSize, uint16_t row, uint16_t col, @@ -262,7 +261,6 @@ void applyFtoleft(const t_nrPolar_params *pp, decoder_node_t *node) { if (node->left->all_frozen == 0) { -#if defined(__AVX2__) int avx2mod = (node->Nv/2)&15; if (avx2mod == 0) { __m256i a256,b256,absa256,absb256,minabs256; @@ -272,10 +270,10 @@ void applyFtoleft(const t_nrPolar_params *pp, decoder_node_t *node) { for (int i=0;iNv/2)&7; - int sse4len = node->Nv/2/8; -#if defined(__arm__) || defined(__aarch64__) - int16x8_t signatimesb,comp1,comp2,negminabs128; - int16x8_t zero=vdupq_n_s16(0); -#endif - - if (sse4mod == 0) { - for (int i=0;iNv/2/8; - - a128 =*((__m128i*)alpha_v); - b128 =((__m128i*)alpha_v)[1]; - absa128 =_mm_abs_epi16(a128); - absb128 =_mm_abs_epi16(b128); - minabs128 =_mm_min_epi16(absa128,absb128); -#if defined(__arm__) || defined(__aarch64__) - // unfortunately no direct equivalent to _mm_sign_epi16 - signatimesb=vxorrq_s16(a128,b128); - comp1=vcltq_s16(signatimesb,zero); - comp2=vcgeq_s16(signatimesb,zero); - negminabs128=vnegq_s16(minabs128); - *((__m128i*)alpha_l) =vorrq_s16(vandq_s16(minabs128,comp0),vandq_s16(negminabs128,comp1)); -#else - *((__m128i*)alpha_l) =_mm_sign_epi16(minabs128,_mm_sign_epi16(a128,b128)); -#endif - } - } - else if (sse4mod == 4) { - __m64 a64,b64,absa64,absb64,minabs64; - a64 =*((__m64*)alpha_v); - b64 =((__m64*)alpha_v)[1]; - absa64 =_mm_abs_pi16(a64); - absb64 =_mm_abs_pi16(b64); - minabs64 =_mm_min_pi16(absa64,absb64); -#if defined(__arm__) || defined(__aarch64__) - AssertFatal(1==0,"Need to do this still for ARM\n"); -#else - *((__m64*)alpha_l) =_mm_sign_pi16(minabs64,_mm_sign_epi16(a64,b64)); -#endif - } - - else -#endif { // equivalent scalar code to above, activated only on non x86/ARM architectures for (int i=0;iNv/2;i++) { a=alpha_v[i]; @@ -381,15 +333,14 @@ void applyGtoright(const t_nrPolar_params *pp,decoder_node_t *node) { #endif if (node->right->all_frozen == 0) { -#if defined(__AVX2__) int avx2mod = (node->Nv/2)&15; if (avx2mod == 0) { int avx2len = node->Nv/2/16; for (int i=0;iNv/2)&7; - - if (sse4mod == 0) { - int sse4len = node->Nv/2/8; - - for (int i=0;iNv/2;i++) { alpha_r[i] = alpha_v[i+(node->Nv/2)] - (betal[i]*alpha_v[i]); @@ -449,13 +377,12 @@ void computeBeta(const t_nrPolar_params *pp,decoder_node_t *node) { printf("Computing beta @ level %d first_leaf_index %d (all_frozen %d)\n",node->level,node->first_leaf_index,node->left->all_frozen); #endif if (node->left->all_frozen==0) { // if left node is not aggregation of frozen bits -#if defined(__AVX2__) int avx2mod = (node->Nv/2)&15; register __m256i allones=*((__m256i*)all1); if (avx2mod == 0) { int avx2len = node->Nv/2/16; for (int i=0;iNv/2)&15; - - if (ssr4mod == 0) { - int ssr4len = node->Nv/2/8; - register __m128i allones=*((__m128i*)all1); - for (int i=0;iNv/2;i++) { betav[i] = (betal[i] != betar[i]) ? 1 : -1; diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_kernal_operation.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_kernal_operation.c index 5985130eee..c826a523df 100644 --- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_kernal_operation.c +++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_kernal_operation.c @@ -3,7 +3,7 @@ #include #include -#include +#include "PHY/sse_intrin.h" void nr_polar_kernal_operation(uint8_t *u, uint8_t *d, uint16_t N) { @@ -11,8 +11,6 @@ void nr_polar_kernal_operation(uint8_t *u, uint8_t *d, uint16_t N) uint32_t i,j; - #ifdef __AVX2__ - __m256i A,B,C,D,E,U,zerosOnly, OUT; __m256i inc; uint32_t dTest[8]; @@ -23,33 +21,33 @@ void nr_polar_kernal_operation(uint8_t *u, uint8_t *d, uint16_t N) //initialisation for(k=0; k<8; k++) incArray[k]=k; - inc=_mm256_loadu_si256((__m256i const*)incArray); // 0, 1, ..., 7 to increase + inc=simde_mm256_loadu_si256((__m256i const*)incArray); // 0, 1, ..., 7 to increase - zerosOnly=_mm256_setzero_si256(); // for comparison + zerosOnly=simde_mm256_setzero_si256(); // for comparison for(i=0; i If zero, then XOR with the u(j) - D=_mm256_cmpeq_epi32(C, zerosOnly); // compare with zero and use the result as mask + C=simde_mm256_and_si256(A, B); //(j-i)&i -> If zero, then XOR with the u(j) + D=simde_mm256_cmpeq_epi32(C, zerosOnly); // compare with zero and use the result as mask - E=_mm256_maskload_epi32((int const*)uArray, D); // load only some u(j)s for the XOR - OUT=_mm256_xor_si256(OUT, E); //32 bit x 8 + E=simde_mm256_maskload_epi32((int const*)uArray, D); // load only some u(j)s for the XOR + OUT=simde_mm256_xor_si256(OUT, E); //32 bit x 8 } - _mm256_storeu_si256((__m256i*)dTest, OUT); + simde_mm256_storeu_si256((__m256i*)dTest, OUT); for(k=0; k<8; k++) // Conversion from 32 bits to 8 bits { @@ -58,18 +56,4 @@ void nr_polar_kernal_operation(uint8_t *u, uint8_t *d, uint16_t N) } - #else - - for(i=0; i maxVal){ @@ -85,27 +77,28 @@ uint16_t decodeSmallBlock(int8_t *in, uint8_t len){ } else { uint8_t maxRow = 0, maxCol = 0; -#if defined(__AVX2__) int16_t maxVal = 0; int DmatrixElementVal = 0; +#if !defined(__AVX512F__) int8_t DmatrixElement[NR_SMALL_BLOCK_CODED_BITS] = {0}; - __m256i _in_256 = _mm256_loadu_si256 ((__m256i*)&in[0]); +#endif + __m256i _in_256 = simde_mm256_loadu_si256 ((__m256i*)&in[0]); __m256i _maskD_256, _Dmatrixj_256, _maskH_256, _DmatrixElement_256; for (int j = 0; j < ( 1<<(len-6) ); ++j) { - _maskD_256 = _mm256_loadu_si256 ((__m256i*)(&maskD[j][0])); - _Dmatrixj_256 = _mm256_sign_epi8 (_in_256, _maskD_256); + _maskD_256 = simde_mm256_loadu_si256 ((__m256i*)(&maskD[j][0])); + _Dmatrixj_256 = simde_mm256_sign_epi8 (_in_256, _maskD_256); for (int k = 0; k < NR_SMALL_BLOCK_CODED_BITS; ++k) { - _maskH_256 = _mm256_loadu_si256 ((__m256i*)(&hadamard32InterleavedTransposed[k][0])); - _DmatrixElement_256 = _mm256_sign_epi8 (_Dmatrixj_256, _maskH_256); + _maskH_256 = simde_mm256_loadu_si256 ((__m256i*)(&hadamard32InterleavedTransposed[k][0])); + _DmatrixElement_256 = simde_mm256_sign_epi8 (_Dmatrixj_256, _maskH_256); #if defined(__AVX512F__) DmatrixElementVal = _mm512_reduce_add_epi32 ( _mm512_add_epi32( - _mm512_cvtepi8_epi32 (_mm256_extracti128_si256 (_DmatrixElement_256, 1)), - _mm512_cvtepi8_epi32 (_mm256_castsi256_si128 (_DmatrixElement_256)) + _mm512_cvtepi8_epi32 (simde_mm256_extracti128_si256 (_DmatrixElement_256, 1)), + _mm512_cvtepi8_epi32 (simde_mm256_castsi256_si128 (_DmatrixElement_256)) ) ); #else - _mm256_storeu_si256((__m256i*)(&DmatrixElement[0]), _DmatrixElement_256); + simde_mm256_storeu_si256((__m256i*)(&DmatrixElement[0]), _DmatrixElement_256); for (int i = 0; i < NR_SMALL_BLOCK_CODED_BITS; ++i) DmatrixElementVal += DmatrixElement[i]; #endif @@ -118,33 +111,6 @@ uint16_t decodeSmallBlock(int8_t *in, uint8_t len){ } } out = properOrderedBasisExtended[maxRow] | properOrderedBasis[maxCol] | ( (maxVal > 0) ? (uint16_t)0 : (uint16_t)1 ); -#else - int8_t Dmatrix[NR_SMALL_BLOCK_CODED_BITS][NR_SMALL_BLOCK_CODED_BITS] = {0}; - int16_t DmatrixFHT[NR_SMALL_BLOCK_CODED_BITS][NR_SMALL_BLOCK_CODED_BITS] = {0}; - uint16_t maxVal; - uint8_t rowLimit = 1<<(len-6); - - for (int j = 0; j < ( rowLimit ); ++j) - for (int k = 0; k < NR_SMALL_BLOCK_CODED_BITS; ++k) - Dmatrix[j][k] = in[k] * maskD[j][k]; - - for (int i = 0; i < ( rowLimit ); ++i) - for (int j = 0; j < NR_SMALL_BLOCK_CODED_BITS; ++j) - for (int k = 0; k < NR_SMALL_BLOCK_CODED_BITS; ++k) - DmatrixFHT[i][j] += Dmatrix[i][k] * hadamard32InterleavedTransposed[j][k]; - - maxVal = abs(DmatrixFHT[0][0]); - for (int i = 0; i < ( rowLimit ); ++i) - for (int j = 0; j < NR_SMALL_BLOCK_CODED_BITS; ++j) - if (abs(DmatrixFHT[i][j]) > maxVal){ - maxVal = abs(DmatrixFHT[i][j]); - maxRow = i; - maxCol = j; - } - - out = properOrderedBasisExtended[maxRow] | properOrderedBasis[maxCol] | ( (DmatrixFHT[maxRow][maxCol] > 0) ? (uint16_t)0 : (uint16_t)1 ); -#endif - #ifdef DEBUG_DECODESMALLBLOCK for (int k = 0; k < NR_SMALL_BLOCK_CODED_BITS; ++k) printf("[decodeSmallBlock]maxRow = %d maxCol = %d out[%d]=%d\n", maxRow, maxCol, k, ((uint32_t)out>>k)&1); diff --git a/openair1/PHY/CODING/nr_rate_matching.c b/openair1/PHY/CODING/nr_rate_matching.c index c99bd02fb2..0720a32753 100644 --- a/openair1/PHY/CODING/nr_rate_matching.c +++ b/openair1/PHY/CODING/nr_rate_matching.c @@ -27,6 +27,7 @@ #include "PHY/defs_gNB.h" #include "PHY/defs_nr_UE.h" #include "PHY/CODING/coding_defs.h" +#include "PHY/sse_intrin.h" //#define RM_DEBUG 1 @@ -40,7 +41,7 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f) memset(f,0,E*sizeof(uint8_t)); uint8_t *e0,*e1,*e2,*e3,*e4,*e5,*e6,*e7; uint8_t *fp; -#if 0 //def __AVX2__ +#if 0 //def __WASAVX2__ __m256i tmp0,tmp1,tmp2,tmp0b,tmp1b,tmp3,tmp4,tmp5; __m256i *e0_256,*e1_256,*e2_256,*e3_256,*e4_256,*e5_256,*e6_256,*e7_256; @@ -54,8 +55,8 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f) e0_256=(__m256i *)e0; e1_256=(__m256i *)e1; for (int k=0,j=0;j>5;j++,k+=2) { - f_256[k] = _mm256_unpacklo_epi8(e0_256[j],e1_256[j]); - f_256[k+1] = _mm256_unpackhi_epi8(e0_256[j],e1_256[j]); + f_256[k] = simde_mm256_unpacklo_epi8(e0_256[j],e1_256[j]); + f_256[k+1] = simde_mm256_unpackhi_epi8(e0_256[j],e1_256[j]); } break; case 4: @@ -68,14 +69,14 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f) e2_256=(__m256i *)e2; e3_256=(__m256i *)e3; for (int k=0,j=0;j>5;j++,k+=4) { - tmp0 = _mm256_unpacklo_epi8(e0_256[j],e1_256[j]); // e0(i) e1(i) e0(i+1) e1(i+1) .... e0(i+15) e1(i+15) - tmp1 = _mm256_unpacklo_epi8(e2_256[j],e3_256[j]); // e2(i) e3(i) e2(i+1) e3(i+1) .... e2(i+15) e3(i+15) - f_256[k] = _mm256_unpacklo_epi8(tmp0,tmp1); // e0(i) e1(i) e2(i) e3(i) ... e0(i+7) e1(i+7) e2(i+7) e3(i+7) - f_256[k+1] = _mm256_unpackhi_epi8(tmp0,tmp1); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) ... e0(i+15) e1(i+15) e2(i+15) e3(i+15) - tmp0 = _mm256_unpackhi_epi8(e0_256[j],e1_256[j]); // e0(i+16) e1(i+16) e0(i+17) e1(i+17) .... e0(i+31) e1(i+31) - tmp1 = _mm256_unpackhi_epi8(e2_256[j],e3_256[j]); // e2(i+16) e3(i+16) e2(i+17) e3(i+17) .... e2(i+31) e3(i+31) - f_256[k+2] = _mm256_unpacklo_epi8(tmp0,tmp1); - f_256[k+3] = _mm256_unpackhi_epi8(tmp0,tmp1); + tmp0 = simde_mm256_unpacklo_epi8(e0_256[j],e1_256[j]); // e0(i) e1(i) e0(i+1) e1(i+1) .... e0(i+15) e1(i+15) + tmp1 = simde_mm256_unpacklo_epi8(e2_256[j],e3_256[j]); // e2(i) e3(i) e2(i+1) e3(i+1) .... e2(i+15) e3(i+15) + f_256[k] = simde_mm256_unpacklo_epi8(tmp0,tmp1); // e0(i) e1(i) e2(i) e3(i) ... e0(i+7) e1(i+7) e2(i+7) e3(i+7) + f_256[k+1] = simde_mm256_unpackhi_epi8(tmp0,tmp1); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) ... e0(i+15) e1(i+15) e2(i+15) e3(i+15) + tmp0 = simde_mm256_unpackhi_epi8(e0_256[j],e1_256[j]); // e0(i+16) e1(i+16) e0(i+17) e1(i+17) .... e0(i+31) e1(i+31) + tmp1 = simde_mm256_unpackhi_epi8(e2_256[j],e3_256[j]); // e2(i+16) e3(i+16) e2(i+17) e3(i+17) .... e2(i+31) e3(i+31) + f_256[k+2] = simde_mm256_unpacklo_epi8(tmp0,tmp1); + f_256[k+3] = simde_mm256_unpackhi_epi8(tmp0,tmp1); } break; case 6: @@ -96,83 +97,83 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f) fp = f+k; fp2 = fp+96; - tmp0 = _mm256_unpacklo_epi8(e0_256[j],e1_256[j]); // e0(i) e1(i) e0(i+1) e1(i+1) .... e0(i+15) e1(i+15) - tmp1 = _mm256_unpacklo_epi8(e2_256[j],e3_256[j]); // e2(i) e3(i) e2(i+1) e3(i+1) .... e2(i+15) e3(i+15) - tmp0b = _mm256_unpacklo_epi16(tmp0,tmp1); // e0(i) e1(i) e2(i) e3(i) ... e0(i+7) e1(i+7) e2(i+7) e3(i+7) - tmp1b = _mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) ... e0(i+15) e1(i+15) e2(i+15) e3(i+15) - tmp0 = _mm256_unpacklo_epi8(e4_256[j],e5_256[j]); // e4(i) e5(i) e4(i+1) e5(i+1) .... e4(i+15) e5(i+15) - *((uint32_t*)fp) = _mm256_extract_epi32(tmp0b,0); - *((uint16_t*)(fp+4)) = _mm256_extract_epi16(tmp0,0); - *((uint32_t*)(fp+6)) = _mm256_extract_epi32(tmp0b,1); - *((uint16_t*)(fp+10)) = _mm256_extract_epi16(tmp0,1); - *((uint32_t*)(fp+12)) = _mm256_extract_epi32(tmp0b,2); - *((uint16_t*)(fp+16)) = _mm256_extract_epi16(tmp0,2); - *((uint32_t*)(fp+18)) = _mm256_extract_epi32(tmp0b,3); - *((uint16_t*)(fp+22)) = _mm256_extract_epi16(tmp0,3); - *((uint32_t*)(fp+24)) = _mm256_extract_epi32(tmp0b,4); - *((uint16_t*)(fp+26)) = _mm256_extract_epi16(tmp0,4); - *((uint32_t*)(fp+30)) = _mm256_extract_epi32(tmp0b,5); - *((uint16_t*)(fp+34)) = _mm256_extract_epi16(tmp0,5); - *((uint32_t*)(fp+36)) = _mm256_extract_epi32(tmp0,6); - *((uint16_t*)(fp+40)) = _mm256_extract_epi16(tmp0,6); - *((uint32_t*)(fp+42)) = _mm256_extract_epi32(tmp0b,7); - *((uint16_t*)(fp+46)) = _mm256_extract_epi16(tmp0,7); + tmp0 = simde_mm256_unpacklo_epi8(e0_256[j],e1_256[j]); // e0(i) e1(i) e0(i+1) e1(i+1) .... e0(i+15) e1(i+15) + tmp1 = simde_mm256_unpacklo_epi8(e2_256[j],e3_256[j]); // e2(i) e3(i) e2(i+1) e3(i+1) .... e2(i+15) e3(i+15) + tmp0b = simde_mm256_unpacklo_epi16(tmp0,tmp1); // e0(i) e1(i) e2(i) e3(i) ... e0(i+7) e1(i+7) e2(i+7) e3(i+7) + tmp1b = simde_mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) ... e0(i+15) e1(i+15) e2(i+15) e3(i+15) + tmp0 = simde_mm256_unpacklo_epi8(e4_256[j],e5_256[j]); // e4(i) e5(i) e4(i+1) e5(i+1) .... e4(i+15) e5(i+15) + *((uint32_t*)fp) = simde_mm256_extract_epi32(tmp0b,0); + *((uint16_t*)(fp+4)) = simde_mm256_extract_epi16(tmp0,0); + *((uint32_t*)(fp+6)) = simde_mm256_extract_epi32(tmp0b,1); + *((uint16_t*)(fp+10)) = simde_mm256_extract_epi16(tmp0,1); + *((uint32_t*)(fp+12)) = simde_mm256_extract_epi32(tmp0b,2); + *((uint16_t*)(fp+16)) = simde_mm256_extract_epi16(tmp0,2); + *((uint32_t*)(fp+18)) = simde_mm256_extract_epi32(tmp0b,3); + *((uint16_t*)(fp+22)) = simde_mm256_extract_epi16(tmp0,3); + *((uint32_t*)(fp+24)) = simde_mm256_extract_epi32(tmp0b,4); + *((uint16_t*)(fp+26)) = simde_mm256_extract_epi16(tmp0,4); + *((uint32_t*)(fp+30)) = simde_mm256_extract_epi32(tmp0b,5); + *((uint16_t*)(fp+34)) = simde_mm256_extract_epi16(tmp0,5); + *((uint32_t*)(fp+36)) = simde_mm256_extract_epi32(tmp0,6); + *((uint16_t*)(fp+40)) = simde_mm256_extract_epi16(tmp0,6); + *((uint32_t*)(fp+42)) = simde_mm256_extract_epi32(tmp0b,7); + *((uint16_t*)(fp+46)) = simde_mm256_extract_epi16(tmp0,7); - *((uint32_t*)(fp+48)) = _mm256_extract_epi32(tmp1b,0); - *((uint16_t*)(fp+52)) = _mm256_extract_epi16(tmp0,8); - *((uint32_t*)(fp+56)) = _mm256_extract_epi32(tmp1b,1); - *((uint16_t*)(fp+60)) = _mm256_extract_epi16(tmp0,9); - *((uint32_t*)(fp+62)) = _mm256_extract_epi32(tmp1b,2); - *((uint16_t*)(fp+66)) = _mm256_extract_epi16(tmp0,10); - *((uint32_t*)(fp+68)) = _mm256_extract_epi32(tmp1b,3); - *((uint16_t*)(fp+72)) = _mm256_extract_epi16(tmp0,11); - *((uint32_t*)(fp+74)) = _mm256_extract_epi32(tmp1b,4); - *((uint16_t*)(fp+76)) = _mm256_extract_epi16(tmp0,12); - *((uint32_t*)(fp+80)) = _mm256_extract_epi32(tmp1b,5); - *((uint16_t*)(fp+82)) = _mm256_extract_epi16(tmp0,13); - *((uint32_t*)(fp+86)) = _mm256_extract_epi32(tmp1b,6); - *((uint16_t*)(fp+90)) = _mm256_extract_epi16(tmp0,14); - *((uint32_t*)(fp+92)) = _mm256_extract_epi32(tmp1b,7); - *((uint16_t*)(fp+94)) = _mm256_extract_epi16(tmp0,15); + *((uint32_t*)(fp+48)) = simde_mm256_extract_epi32(tmp1b,0); + *((uint16_t*)(fp+52)) = simde_mm256_extract_epi16(tmp0,8); + *((uint32_t*)(fp+56)) = simde_mm256_extract_epi32(tmp1b,1); + *((uint16_t*)(fp+60)) = simde_mm256_extract_epi16(tmp0,9); + *((uint32_t*)(fp+62)) = simde_mm256_extract_epi32(tmp1b,2); + *((uint16_t*)(fp+66)) = simde_mm256_extract_epi16(tmp0,10); + *((uint32_t*)(fp+68)) = simde_mm256_extract_epi32(tmp1b,3); + *((uint16_t*)(fp+72)) = simde_mm256_extract_epi16(tmp0,11); + *((uint32_t*)(fp+74)) = simde_mm256_extract_epi32(tmp1b,4); + *((uint16_t*)(fp+76)) = simde_mm256_extract_epi16(tmp0,12); + *((uint32_t*)(fp+80)) = simde_mm256_extract_epi32(tmp1b,5); + *((uint16_t*)(fp+82)) = simde_mm256_extract_epi16(tmp0,13); + *((uint32_t*)(fp+86)) = simde_mm256_extract_epi32(tmp1b,6); + *((uint16_t*)(fp+90)) = simde_mm256_extract_epi16(tmp0,14); + *((uint32_t*)(fp+92)) = simde_mm256_extract_epi32(tmp1b,7); + *((uint16_t*)(fp+94)) = simde_mm256_extract_epi16(tmp0,15); - tmp0 = _mm256_unpackhi_epi8(e0_256[j],e1_256[j]); // e0(i+16) e1(i+16) e0(i+17) e1(i+17) .... e0(i+31) e1(i+31) - tmp1 = _mm256_unpackhi_epi8(e2_256[j],e3_256[j]); // e2(i+16) e3(i+16) e2(i+17) e3(i+17) .... e2(i+31) e3(i+31) - tmp0b = _mm256_unpacklo_epi16(tmp0,tmp1); // e0(i+16) e1(i+16) e2(i+16) e3(i+16) ... e0(i+23) e1(i+23) e2(i+23) e3(i+23) - tmp1b = _mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+24) e1(i+24) e2(i+24) e3(i+24) ... e0(i+31) e1(i+31) e2(i+31) e3(i+31) - tmp0 = _mm256_unpackhi_epi8(e4_256[j],e5_256[j]); // e4(i+16) e5(i+16) e4(i+17) e5(i+17) .... e4(i+31) e5(i+31) - *((uint32_t*)fp2) = _mm256_extract_epi32(tmp0b,0); - *((uint16_t*)(fp2+4)) = _mm256_extract_epi16(tmp0,0); - *((uint32_t*)(fp2+6)) = _mm256_extract_epi32(tmp0b,1); - *((uint16_t*)(fp2+10)) = _mm256_extract_epi16(tmp0,1); - *((uint32_t*)(fp2+12)) = _mm256_extract_epi32(tmp0b,2); - *((uint16_t*)(fp2+16)) = _mm256_extract_epi16(tmp0,2); - *((uint32_t*)(fp2+18)) = _mm256_extract_epi32(tmp0b,3); - *((uint16_t*)(fp2+22)) = _mm256_extract_epi16(tmp0,3); - *((uint32_t*)(fp2+24)) = _mm256_extract_epi32(tmp0b,4); - *((uint16_t*)(fp2+26)) = _mm256_extract_epi16(tmp0,4); - *((uint32_t*)(fp2+30)) = _mm256_extract_epi32(tmp0b,5); - *((uint16_t*)(fp2+34)) = _mm256_extract_epi16(tmp0,5); - *((uint32_t*)(fp2+36)) = _mm256_extract_epi32(tmp0,6); - *((uint16_t*)(fp2+40)) = _mm256_extract_epi16(tmp0,6); - *((uint32_t*)(fp2+42)) = _mm256_extract_epi32(tmp0b,7); - *((uint16_t*)(fp2+46)) = _mm256_extract_epi16(tmp0,7); + tmp0 = simde_mm256_unpackhi_epi8(e0_256[j],e1_256[j]); // e0(i+16) e1(i+16) e0(i+17) e1(i+17) .... e0(i+31) e1(i+31) + tmp1 = simde_mm256_unpackhi_epi8(e2_256[j],e3_256[j]); // e2(i+16) e3(i+16) e2(i+17) e3(i+17) .... e2(i+31) e3(i+31) + tmp0b = simde_mm256_unpacklo_epi16(tmp0,tmp1); // e0(i+16) e1(i+16) e2(i+16) e3(i+16) ... e0(i+23) e1(i+23) e2(i+23) e3(i+23) + tmp1b = simde_mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+24) e1(i+24) e2(i+24) e3(i+24) ... e0(i+31) e1(i+31) e2(i+31) e3(i+31) + tmp0 = simde_mm256_unpackhi_epi8(e4_256[j],e5_256[j]); // e4(i+16) e5(i+16) e4(i+17) e5(i+17) .... e4(i+31) e5(i+31) + *((uint32_t*)fp2) = simde_mm256_extract_epi32(tmp0b,0); + *((uint16_t*)(fp2+4)) = simde_mm256_extract_epi16(tmp0,0); + *((uint32_t*)(fp2+6)) = simde_mm256_extract_epi32(tmp0b,1); + *((uint16_t*)(fp2+10)) = simde_mm256_extract_epi16(tmp0,1); + *((uint32_t*)(fp2+12)) = simde_mm256_extract_epi32(tmp0b,2); + *((uint16_t*)(fp2+16)) = simde_mm256_extract_epi16(tmp0,2); + *((uint32_t*)(fp2+18)) = simde_mm256_extract_epi32(tmp0b,3); + *((uint16_t*)(fp2+22)) = simde_mm256_extract_epi16(tmp0,3); + *((uint32_t*)(fp2+24)) = simde_mm256_extract_epi32(tmp0b,4); + *((uint16_t*)(fp2+26)) = simde_mm256_extract_epi16(tmp0,4); + *((uint32_t*)(fp2+30)) = simde_mm256_extract_epi32(tmp0b,5); + *((uint16_t*)(fp2+34)) = simde_mm256_extract_epi16(tmp0,5); + *((uint32_t*)(fp2+36)) = simde_mm256_extract_epi32(tmp0,6); + *((uint16_t*)(fp2+40)) = simde_mm256_extract_epi16(tmp0,6); + *((uint32_t*)(fp2+42)) = simde_mm256_extract_epi32(tmp0b,7); + *((uint16_t*)(fp2+46)) = simde_mm256_extract_epi16(tmp0,7); - *((uint32_t*)(fp2+48)) = _mm256_extract_epi32(tmp1b,0); - *((uint16_t*)(fp2+52)) = _mm256_extract_epi16(tmp0,8); - *((uint32_t*)(fp2+56)) = _mm256_extract_epi32(tmp1b,1); - *((uint16_t*)(fp2+60)) = _mm256_extract_epi16(tmp0,9); - *((uint32_t*)(fp2+62)) = _mm256_extract_epi32(tmp1b,2); - *((uint16_t*)(fp2+66)) = _mm256_extract_epi16(tmp0,10); - *((uint32_t*)(fp2+68)) = _mm256_extract_epi32(tmp1b,3); - *((uint16_t*)(fp2+72)) = _mm256_extract_epi16(tmp0,11); - *((uint32_t*)(fp2+74)) = _mm256_extract_epi32(tmp1b,4); - *((uint16_t*)(fp2+76)) = _mm256_extract_epi16(tmp0,12); - *((uint32_t*)(fp2+80)) = _mm256_extract_epi32(tmp1b,5); - *((uint16_t*)(fp2+82)) = _mm256_extract_epi16(tmp0,13); - *((uint32_t*)(fp2+86)) = _mm256_extract_epi32(tmp1b,6); - *((uint16_t*)(fp2+90)) = _mm256_extract_epi16(tmp0,14); - *((uint32_t*)(fp2+92)) = _mm256_extract_epi32(tmp1b,7); - *((uint16_t*)(fp2+94)) = _mm256_extract_epi16(tmp0,15); + *((uint32_t*)(fp2+48)) = simde_mm256_extract_epi32(tmp1b,0); + *((uint16_t*)(fp2+52)) = simde_mm256_extract_epi16(tmp0,8); + *((uint32_t*)(fp2+56)) = simde_mm256_extract_epi32(tmp1b,1); + *((uint16_t*)(fp2+60)) = simde_mm256_extract_epi16(tmp0,9); + *((uint32_t*)(fp2+62)) = simde_mm256_extract_epi32(tmp1b,2); + *((uint16_t*)(fp2+66)) = simde_mm256_extract_epi16(tmp0,10); + *((uint32_t*)(fp2+68)) = simde_mm256_extract_epi32(tmp1b,3); + *((uint16_t*)(fp2+72)) = simde_mm256_extract_epi16(tmp0,11); + *((uint32_t*)(fp2+74)) = simde_mm256_extract_epi32(tmp1b,4); + *((uint16_t*)(fp2+76)) = simde_mm256_extract_epi16(tmp0,12); + *((uint32_t*)(fp2+80)) = simde_mm256_extract_epi32(tmp1b,5); + *((uint16_t*)(fp2+82)) = simde_mm256_extract_epi16(tmp0,13); + *((uint32_t*)(fp2+86)) = simde_mm256_extract_epi32(tmp1b,6); + *((uint16_t*)(fp2+90)) = simde_mm256_extract_epi16(tmp0,14); + *((uint32_t*)(fp2+92)) = simde_mm256_extract_epi32(tmp1b,7); + *((uint16_t*)(fp2+94)) = simde_mm256_extract_epi16(tmp0,15); } break; case 8: @@ -194,33 +195,33 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f) e6_256=(__m256i *)e6; e7_256=(__m256i *)e7; for (int k=0,j=0;j>5;j++,k+=8) { - tmp0 = _mm256_unpacklo_epi8(e0_256[j],e1_256[j]); // e0(i) e1(i) e0(i+1) e1(i+1) .... e0(i+15) e1(i+15) - tmp1 = _mm256_unpacklo_epi8(e2_256[j],e3_256[j]); // e2(i) e3(i) e2(i+1) e3(i+1) .... e2(i+15) e3(i+15) - tmp2 = _mm256_unpacklo_epi8(e4_256[j],e5_256[j]); // e4(i) e5(i) e4(i+1) e5(i+1) .... e4(i+15) e5(i+15) - tmp3 = _mm256_unpacklo_epi8(e6_256[j],e7_256[j]); // e6(i) e7(i) e6(i+1) e7(i+1) .... e6(i+15) e7(i+15) - tmp4 = _mm256_unpacklo_epi16(tmp0,tmp1); // e0(i) e1(i) e2(i) e3(i) ... e0(i+7) e1(i+7) e2(i+7) e3(i+7) - tmp5 = _mm256_unpacklo_epi16(tmp2,tmp3); // e4(i) e5(i) e6(i) e7(i) ... e4(i+7) e5(i+7) e6(i+7) e7(i+7) - f_256[k] = _mm256_unpacklo_epi16(tmp4,tmp5); // e0(i) e1(i) e2(i) e3(i) e4(i) e5(i) e6(i) e7(i)... e0(i+3) e1(i+3) e2(i+3) e3(i+3) e4(i+3) e5(i+3) e6(i+3) e7(i+3)) - f_256[k+1] = _mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+4) e1(i+4) e2(i+4) e3(i+4) e4(i+4) e5(i+4) e6(i+4) e7(i+4)... e0(i+7) e1(i+7) e2(i+7) e3(i+7) e4(i+7) e5(i+7) e6(i+7) e7(i+7)) + tmp0 = simde_mm256_unpacklo_epi8(e0_256[j],e1_256[j]); // e0(i) e1(i) e0(i+1) e1(i+1) .... e0(i+15) e1(i+15) + tmp1 = simde_mm256_unpacklo_epi8(e2_256[j],e3_256[j]); // e2(i) e3(i) e2(i+1) e3(i+1) .... e2(i+15) e3(i+15) + tmp2 = simde_mm256_unpacklo_epi8(e4_256[j],e5_256[j]); // e4(i) e5(i) e4(i+1) e5(i+1) .... e4(i+15) e5(i+15) + tmp3 = simde_mm256_unpacklo_epi8(e6_256[j],e7_256[j]); // e6(i) e7(i) e6(i+1) e7(i+1) .... e6(i+15) e7(i+15) + tmp4 = simde_mm256_unpacklo_epi16(tmp0,tmp1); // e0(i) e1(i) e2(i) e3(i) ... e0(i+7) e1(i+7) e2(i+7) e3(i+7) + tmp5 = simde_mm256_unpacklo_epi16(tmp2,tmp3); // e4(i) e5(i) e6(i) e7(i) ... e4(i+7) e5(i+7) e6(i+7) e7(i+7) + f_256[k] = simde_mm256_unpacklo_epi16(tmp4,tmp5); // e0(i) e1(i) e2(i) e3(i) e4(i) e5(i) e6(i) e7(i)... e0(i+3) e1(i+3) e2(i+3) e3(i+3) e4(i+3) e5(i+3) e6(i+3) e7(i+3)) + f_256[k+1] = simde_mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+4) e1(i+4) e2(i+4) e3(i+4) e4(i+4) e5(i+4) e6(i+4) e7(i+4)... e0(i+7) e1(i+7) e2(i+7) e3(i+7) e4(i+7) e5(i+7) e6(i+7) e7(i+7)) - tmp4 = _mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) ... e0(i+15) e1(i+15) e2(i+15) e3(i+15) - tmp5 = _mm256_unpackhi_epi16(tmp2,tmp3); // e4(i+8) e5(i+8) e6(i+8) e7(i+8) ... e4(i+15) e5(i+15) e6(i+15) e7(i+15) - f_256[k+2] = _mm256_unpacklo_epi16(tmp4,tmp5); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) e4(i+8) e5(i+8) e6(i+8) e7(i+8)... e0(i+11) e1(i+11) e2(i+11) e3(i+11) e4(i+11) e5(i+11) e6(i+11) e7(i+11)) - f_256[k+3] = _mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+12) e1(i+12) e2(i+12) e3(i+12) e4(i+12) e5(i+12) e6(i+12) e7(i+12)... e0(i+15) e1(i+15) e2(i+15) e3(i+15) e4(i+15) e5(i+15) e6(i+15) e7(i+15)) + tmp4 = simde_mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) ... e0(i+15) e1(i+15) e2(i+15) e3(i+15) + tmp5 = simde_mm256_unpackhi_epi16(tmp2,tmp3); // e4(i+8) e5(i+8) e6(i+8) e7(i+8) ... e4(i+15) e5(i+15) e6(i+15) e7(i+15) + f_256[k+2] = simde_mm256_unpacklo_epi16(tmp4,tmp5); // e0(i+8) e1(i+8) e2(i+8) e3(i+8) e4(i+8) e5(i+8) e6(i+8) e7(i+8)... e0(i+11) e1(i+11) e2(i+11) e3(i+11) e4(i+11) e5(i+11) e6(i+11) e7(i+11)) + f_256[k+3] = simde_mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+12) e1(i+12) e2(i+12) e3(i+12) e4(i+12) e5(i+12) e6(i+12) e7(i+12)... e0(i+15) e1(i+15) e2(i+15) e3(i+15) e4(i+15) e5(i+15) e6(i+15) e7(i+15)) - tmp0 = _mm256_unpackhi_epi8(e0_256[j],e1_256[j]); // e0(i+16) e1(i+16) e0(i+17) e1(i+17) .... e0(i+31) e1(i+31) - tmp1 = _mm256_unpackhi_epi8(e2_256[j],e3_256[j]); // e2(i+16) e3(i+16) e2(i+17) e3(i+17) .... e2(i+31) e3(i+31) - tmp2 = _mm256_unpackhi_epi8(e4_256[j],e5_256[j]); // e4(i+16) e5(i+16) e4(i+17) e5(i+17) .... e4(i+31) e5(i+31) - tmp3 = _mm256_unpackhi_epi8(e6_256[j],e7_256[j]); // e6(i+16) e7(i+16) e6(i+17) e7(i+17) .... e6(i+31) e7(i+31) - tmp4 = _mm256_unpacklo_epi16(tmp0,tmp1); // e0(i+!6) e1(i+16) e2(i+16) e3(i+16) ... e0(i+23) e1(i+23) e2(i+23) e3(i+23) - tmp5 = _mm256_unpacklo_epi16(tmp2,tmp3); // e4(i+16) e5(i+16) e6(i+16) e7(i+16) ... e4(i+23) e5(i+23) e6(i+23) e7(i+23) - f_256[k+4] = _mm256_unpacklo_epi16(tmp4,tmp5); // e0(i+16) e1(i+16) e2(i+16) e3(i+16) e4(i+16) e5(i+16) e6(i+16) e7(i+16)... e0(i+19) e1(i+19) e2(i+19) e3(i+19) e4(i+19) e5(i+19) e6(i+19) e7(i+19)) - f_256[k+5] = _mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+20) e1(i+20) e2(i+20) e3(i+20) e4(i+20) e5(i+20) e6(i+20) e7(i+20)... e0(i+23) e1(i+23) e2(i+23) e3(i+23) e4(i+23) e5(i+23) e6(i+23) e7(i+23)) + tmp0 = simde_mm256_unpackhi_epi8(e0_256[j],e1_256[j]); // e0(i+16) e1(i+16) e0(i+17) e1(i+17) .... e0(i+31) e1(i+31) + tmp1 = simde_mm256_unpackhi_epi8(e2_256[j],e3_256[j]); // e2(i+16) e3(i+16) e2(i+17) e3(i+17) .... e2(i+31) e3(i+31) + tmp2 = simde_mm256_unpackhi_epi8(e4_256[j],e5_256[j]); // e4(i+16) e5(i+16) e4(i+17) e5(i+17) .... e4(i+31) e5(i+31) + tmp3 = simde_mm256_unpackhi_epi8(e6_256[j],e7_256[j]); // e6(i+16) e7(i+16) e6(i+17) e7(i+17) .... e6(i+31) e7(i+31) + tmp4 = simde_mm256_unpacklo_epi16(tmp0,tmp1); // e0(i+!6) e1(i+16) e2(i+16) e3(i+16) ... e0(i+23) e1(i+23) e2(i+23) e3(i+23) + tmp5 = simde_mm256_unpacklo_epi16(tmp2,tmp3); // e4(i+16) e5(i+16) e6(i+16) e7(i+16) ... e4(i+23) e5(i+23) e6(i+23) e7(i+23) + f_256[k+4] = simde_mm256_unpacklo_epi16(tmp4,tmp5); // e0(i+16) e1(i+16) e2(i+16) e3(i+16) e4(i+16) e5(i+16) e6(i+16) e7(i+16)... e0(i+19) e1(i+19) e2(i+19) e3(i+19) e4(i+19) e5(i+19) e6(i+19) e7(i+19)) + f_256[k+5] = simde_mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+20) e1(i+20) e2(i+20) e3(i+20) e4(i+20) e5(i+20) e6(i+20) e7(i+20)... e0(i+23) e1(i+23) e2(i+23) e3(i+23) e4(i+23) e5(i+23) e6(i+23) e7(i+23)) - tmp4 = _mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+24) e1(i+24) e2(i+24) e3(i+24) ... e0(i+31) e1(i+31) e2(i+31) e3(i+31) - tmp5 = _mm256_unpackhi_epi16(tmp2,tmp3); // e4(i+24) e5(i+24) e6(i+24) e7(i+24) ... e4(i+31) e5(i+31) e6(i+31) e7(i+31) - f_256[k+6] = _mm256_unpacklo_epi16(tmp4,tmp5); // e0(i+24) e1(i+24) e2(i+24) e3(i+24) e4(i+24) e5(i+24) e6(i+24) e7(i+24)... e0(i+27) e1(i+27) e2(i+27) e3(i+27) e4(i+27) e5(i+27) e6(i+27) e7(i+27)) - f_256[k+7] = _mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+28) e1(i+28) e2(i+28) e3(i+28) e4(i+28) e5(i+28) e6(i+28) e7(i+28)... e0(i+31) e1(i+31) e2(i+31) e3(i+31) e4(i+31) e5(i+31) e6(i+31) e7(i+31)) + tmp4 = simde_mm256_unpackhi_epi16(tmp0,tmp1); // e0(i+24) e1(i+24) e2(i+24) e3(i+24) ... e0(i+31) e1(i+31) e2(i+31) e3(i+31) + tmp5 = simde_mm256_unpackhi_epi16(tmp2,tmp3); // e4(i+24) e5(i+24) e6(i+24) e7(i+24) ... e4(i+31) e5(i+31) e6(i+31) e7(i+31) + f_256[k+6] = simde_mm256_unpacklo_epi16(tmp4,tmp5); // e0(i+24) e1(i+24) e2(i+24) e3(i+24) e4(i+24) e5(i+24) e6(i+24) e7(i+24)... e0(i+27) e1(i+27) e2(i+27) e3(i+27) e4(i+27) e5(i+27) e6(i+27) e7(i+27)) + f_256[k+7] = simde_mm256_unpackhi_epi16(tmp4,tmp5); // e0(i+28) e1(i+28) e2(i+28) e3(i+28) e4(i+28) e5(i+28) e6(i+28) e7(i+28)... e0(i+31) e1(i+31) e2(i+31) e3(i+31) e4(i+31) e5(i+31) e6(i+31) e7(i+31)) } break; default: AssertFatal(1==0,"Should be here!\n"); diff --git a/openair1/PHY/CODING/viterbi.c b/openair1/PHY/CODING/viterbi.c index f44e2ebf8f..6d900d452d 100644 --- a/openair1/PHY/CODING/viterbi.c +++ b/openair1/PHY/CODING/viterbi.c @@ -193,7 +193,7 @@ void phy_viterbi_dot11_sse2(char *y,unsigned char *decoded_bytes,unsigned short __m128i *m0_ptr,*m1_ptr,*TB_ptr = &TB[offset<<2]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint8x16x2_t TB[2*4095*8]; // 2 int8x16_t per input bit, 8 bits / byte, 4095 is largest packet size in bytes uint8x16_t even0_30a,even0_30b,even32_62a,even32_62b,odd1_31a,odd1_31b,odd33_63a,odd33_63b,TBeven0_30,TBeven32_62,TBodd1_31,TBodd33_63; @@ -224,7 +224,7 @@ void phy_viterbi_dot11_sse2(char *y,unsigned char *decoded_bytes,unsigned short metrics48_63 = _mm_setzero_si128(); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) if (offset == 0) { // set initial metrics @@ -318,7 +318,7 @@ void phy_viterbi_dot11_sse2(char *y,unsigned char *decoded_bytes,unsigned short metrics16_31 = _mm_subs_epu8(metrics16_31,min_state); metrics32_47 = _mm_subs_epu8(metrics32_47,min_state); metrics48_63 = _mm_subs_epu8(metrics48_63,min_state); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) m0_ptr = (uint8x16_t *)&m0_table[table_offset]; m1_ptr = (uint8x16_t *)&m1_table[table_offset]; diff --git a/openair1/PHY/CODING/viterbi_lte.c b/openair1/PHY/CODING/viterbi_lte.c index 35c9a0d501..bebb5417bf 100644 --- a/openair1/PHY/CODING/viterbi_lte.c +++ b/openair1/PHY/CODING/viterbi_lte.c @@ -136,7 +136,7 @@ void phy_viterbi_lte_sse2(int8_t *y,uint8_t *decoded_bytes,uint16_t n) __m128i min_state,min_state2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint8x16x2_t TB[2*8192]; // 2 int8x16_t per input bit, 8 bits / byte, 8192 is largest packet size in bits uint8x16_t even0_30a,even0_30b,even32_62a,even32_62b,odd1_31a,odd1_31b,odd33_63a,odd33_63b,TBeven0_30,TBeven32_62,TBodd1_31,TBodd33_63; @@ -165,7 +165,7 @@ void phy_viterbi_lte_sse2(int8_t *y,uint8_t *decoded_bytes,uint16_t n) metrics16_31 = _mm_setzero_si128(); metrics32_47 = _mm_setzero_si128(); metrics48_63 = _mm_setzero_si128(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) metrics0_31.val[0] = vdupq_n_u8(0); metrics0_31.val[1] = vdupq_n_u8(0); metrics32_63.val[0] = vdupq_n_u8(0); @@ -259,7 +259,7 @@ void phy_viterbi_lte_sse2(int8_t *y,uint8_t *decoded_bytes,uint16_t n) metrics16_31 = _mm_subs_epu8(metrics16_31,min_state); metrics32_47 = _mm_subs_epu8(metrics32_47,min_state); metrics48_63 = _mm_subs_epu8(metrics48_63,min_state); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) m0_ptr = (uint8x16_t *)&m0_table[table_offset]; m1_ptr = (uint8x16_t *)&m1_table[table_offset]; @@ -353,7 +353,7 @@ void phy_viterbi_lte_sse2(int8_t *y,uint8_t *decoded_bytes,uint16_t n) } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) for (s=0; s<16; s++) if (((uint8_t *)&metrics0_31.val[0])[s] > maxm) { maxm = ((uint8_t *)&metrics0_31.val[0])[s]; diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c index 55599b7cc3..4e9846d2c2 100644 --- a/openair1/PHY/INIT/nr_init.c +++ b/openair1/PHY/INIT/nr_init.c @@ -661,11 +661,7 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB, int n_buf = Prx*max_ul_mimo_layers; int nb_re_pusch = N_RB_UL * NR_NB_SC_PER_RB; -#ifdef __AVX2__ int nb_re_pusch2 = nb_re_pusch + (nb_re_pusch&7); -#else - int nb_re_pusch2 = nb_re_pusch; -#endif for (int ULSCH_id=0; ULSCH_idnumber_of_nr_ulsch_max; ULSCH_id++) { pusch_vars[ULSCH_id] = (NR_gNB_PUSCH *)malloc16_clear( sizeof(NR_gNB_PUSCH) ); diff --git a/openair1/PHY/LTE_ESTIMATION/freq_equalization.c b/openair1/PHY/LTE_ESTIMATION/freq_equalization.c index 6d382bdd63..e864e1cfc7 100644 --- a/openair1/PHY/LTE_ESTIMATION/freq_equalization.c +++ b/openair1/PHY/LTE_ESTIMATION/freq_equalization.c @@ -301,7 +301,7 @@ void freq_equalization(LTE_DL_FRAME_PARMS *frame_parms, rxdataF_comp128 = (__m128i *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128 = (__m128i *)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12]; ul_ch_magb128 = (__m128i *)&ul_ch_magb[0][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *ul_ch_mag128,*ul_ch_magb128,*rxdataF_comp128; rxdataF_comp128 = (int16x8_t*)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128 = (int16x8_t*)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12]; @@ -330,7 +330,7 @@ void freq_equalization(LTE_DL_FRAME_PARMS *frame_parms, ul_ch_mag128[re] = _mm_set1_epi16(316); // this is 512*4/sqrt(42) ul_ch_magb128[re] = _mm_set1_epi16(158); // this is 512*2/sqrt(42) } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128[re] = vmulq_s16(rxdataF_comp128[re],inv_ch[amp]); if (Qm==4) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c b/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c index 80d9fc9cc3..22282fea5e 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c @@ -30,7 +30,7 @@ #if defined(__x86_64__) || defined(__i386__) __m128i avg128F; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t avg128F; #endif @@ -42,7 +42,7 @@ int dl_channel_level(int16_t *dl_ch, int16_t rb; #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x4_t *dl_ch128; #endif int avg; @@ -61,7 +61,7 @@ int dl_channel_level(int16_t *dl_ch, dl_ch128+=3; } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) avg128F = vdupq_n_s32(0); dl_ch128=(int16x4_t *)dl_ch; diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c index 880c056578..16b818e90f 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c @@ -769,7 +769,7 @@ void dlsch_channel_level_TM34_meas(int *ch00, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -1019,7 +1019,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue, unsigned int limit,subband; #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch0_128,*dl_ch1_128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *dl_ch0_128, *dl_ch1_128; #endif int *dl_ch0,*dl_ch1; @@ -1218,7 +1218,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue, dl_ch0_128 = (__m128i *)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][aarx][4]; dl_ch1_128 = (__m128i *)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2+aarx][4]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t pmi128_re,pmi128_im,mmtmpPMI0,mmtmpPMI1,mmtmpPMI0b,mmtmpPMI1b; dl_ch0_128 = (int16x8_t *)&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][aarx][4]; @@ -1233,7 +1233,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue, pmi128_re = _mm_xor_si128(pmi128_re,pmi128_re); pmi128_im = _mm_xor_si128(pmi128_im,pmi128_im); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) pmi128_re = vdupq_n_s32(0); pmi128_im = vdupq_n_s32(0); @@ -1291,7 +1291,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue, pmi128_im = _mm_add_epi32(pmi128_im,mmtmpPMI1); //print_ints(" pmi128_im 1 ",&pmi128_im);*/ -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmpPMI0 = vmull_s16(((int16x4_t*)dl_ch0_128)[0], ((int16x4_t*)dl_ch1_128)[0]); mmtmpPMI1 = vmull_s16(((int16x4_t*)dl_ch0_128)[1], ((int16x4_t*)dl_ch1_128)[1]); diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c index 45c25b59ea..380dce2c4f 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c @@ -76,7 +76,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF128,*ul_ref128,*ul_ch128; __m128i mmtmpU0,mmtmpU1,mmtmpU2,mmtmpU3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF128,*ul_ref128,*ul_ch128; int32x4_t mmtmp0,mmtmp1,mmtmp_re,mmtmp_im; #endif @@ -120,7 +120,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms, rxdataF128 = (__m128i *)&rxdataF_ext[aa][symbol_offset]; ul_ch128 = (__m128i *)&ul_ch_estimates[aa][symbol_offset]; ul_ref128 = (__m128i *)ul_ref_sigs_rx[u][v][Msc_RS_idx]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF128 = (int16x8_t *)&rxdataF_ext[aa][symbol_offset]; ul_ch128 = (int16x8_t *)&ul_ch_estimates[aa][symbol_offset]; ul_ref128 = (int16x8_t *)ul_ref_sigs_rx[u][v][Msc_RS_idx]; @@ -167,7 +167,7 @@ int32_t lte_ul_channel_estimation(LTE_DL_FRAME_PARMS *frame_parms, mmtmpU2 = _mm_unpacklo_epi32(mmtmpU0,mmtmpU1); mmtmpU3 = _mm_unpackhi_epi32(mmtmpU0,mmtmpU1); ul_ch128[2] = _mm_packs_epi32(mmtmpU2,mmtmpU3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmp0 = vmull_s16(((int16x4_t *)ul_ref128)[0],((int16x4_t *)rxdataF128)[0]); mmtmp1 = vmull_s16(((int16x4_t *)ul_ref128)[1],((int16x4_t *)rxdataF128)[1]); mmtmp_re = vcombine_s32(vpadd_s32(vget_low_s32(mmtmp0),vget_high_s32(mmtmp0)), @@ -412,7 +412,7 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF128,*ul_ref128,*ul_ch128; __m128i mmtmpU0,mmtmpU1,mmtmpU2,mmtmpU3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF128,*ul_ref128,*ul_ch128; int32x4_t mmtmp0,mmtmp1,mmtmp_re,mmtmp_im; #endif @@ -448,7 +448,7 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms, rxdataF128 = (__m128i *)&rxdataF_ext[aa][symbol_offset]; ul_ch128 = (__m128i *)&ul_ch_estimates[aa][symbol_offset]; ul_ref128 = (__m128i *)ul_ref_sigs_rx[u][v][Msc_RS_idx]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF128 = (int16x8_t *)&rxdataF_ext[aa][symbol_offset]; ul_ch128 = (int16x8_t *)&ul_ch_estimates[aa][symbol_offset]; ul_ref128 = (int16x8_t *)ul_ref_sigs_rx[u][v][Msc_RS_idx]; @@ -495,7 +495,7 @@ int32_t lte_ul_channel_estimation_RRU(LTE_DL_FRAME_PARMS *frame_parms, mmtmpU2 = _mm_unpacklo_epi32(mmtmpU0,mmtmpU1); mmtmpU3 = _mm_unpackhi_epi32(mmtmpU0,mmtmpU1); ul_ch128[2] = _mm_packs_epi32(mmtmpU2,mmtmpU3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmp0 = vmull_s16(((int16x4_t *)ul_ref128)[0],((int16x4_t *)rxdataF128)[0]); mmtmp1 = vmull_s16(((int16x4_t *)ul_ref128)[1],((int16x4_t *)rxdataF128)[1]); mmtmp_re = vcombine_s32(vpadd_s32(vget_low_s32(mmtmp0),vget_high_s32(mmtmp0)), @@ -906,7 +906,7 @@ int16_t lte_ul_freq_offset_estimation(LTE_DL_FRAME_PARMS *frame_parms, phase_idx = -phase_idx; return(phase_idx); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) return(0); #endif } diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c index 5a203ab331..51e4d40a33 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c @@ -624,17 +624,9 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB, } */ #if defined(__x86_64__) || defined(__i386__) -#ifndef __AVX2__ - ((__m128i *)cseq)[i2++] = ((__m128i *)unscrambling_lut)[(s&65535)<<1]; - ((__m128i *)cseq)[i2++] = ((__m128i *)unscrambling_lut)[1+((s&65535)<<1)]; - s>>=16; - ((__m128i *)cseq)[i2++] = ((__m128i *)unscrambling_lut)[(s&65535)<<1]; - ((__m128i *)cseq)[i2++] = ((__m128i *)unscrambling_lut)[1+((s&65535)<<1)]; -#else ((__m256i *)cseq)[i2++] = ((__m256i *)unscrambling_lut)[s&65535]; ((__m256i *)cseq)[i2++] = ((__m256i *)unscrambling_lut)[(s>>16)&65535]; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ((int16x8_t *)cseq)[i2++] = ((int16x8_t *)unscrambling_lut)[(s&65535)<<1]; ((int16x8_t *)cseq)[i2++] = ((int16x8_t *)unscrambling_lut)[1+((s&65535)<<1)]; s>>=16; @@ -973,14 +965,9 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB, /* To be improved according to alignment of j2 #if defined(__x86_64__)||defined(__i386__) - #ifndef __AVX2__ - for (iprime=0; iprimee[iprime]) = *((__m128i *)&y[j2]); - #else for (iprime=0; iprimee[iprime]) = *((__m256i *)&y[j2]); - #endif - #elif defined(__arm__) + #elif defined(__arm__) || defined(__aarch64__) for (iprime=0; iprimee[iprime]) = *((int16x8_t *)&y[j2]); #endif diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c index 3529df8e44..39d1a86e5b 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c @@ -55,7 +55,7 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH) { #if defined(__x86_64__) || defined(__i386__) __m128i idft_in128[3][1200],idft_out128[3][1200]; __m128i norm128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t idft_in128[3][1200],idft_out128[3][1200]; int16x8_t norm128; #endif @@ -117,7 +117,7 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH) { * &(((__m128i *)z11)[i])=_mm_sign_epi16( *&(((__m128i *)z11)[i]),*(__m128i *)&conjugate2[0]); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) * &(((int16x8_t *)z0)[i])=vmulq_s16( *&(((int16x8_t *)z0)[i]),*(int16x8_t *)&conjugate2[0]); * &(((int16x8_t *)z1)[i])=vmulq_s16( *&(((int16x8_t *)z1)[i]),*(int16x8_t *)&conjugate2[0]); * &(((int16x8_t *)z2)[i])=vmulq_s16( *&(((int16x8_t *)z2)[i]),*(int16x8_t *)&conjugate2[0]); @@ -162,7 +162,7 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH) { dft(DFT_12,(int16_t *)idft_in2,(int16_t *)idft_out2,0); #if defined(__x86_64__)||defined(__i386__) norm128 = _mm_set1_epi16(9459); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) norm128 = vdupq_n_s16(9459); #endif @@ -171,7 +171,7 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH) { ((__m128i *)idft_out0)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i *)idft_out0)[i],norm128),1); ((__m128i *)idft_out1)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i *)idft_out1)[i],norm128),1); ((__m128i *)idft_out2)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i *)idft_out2)[i],norm128),1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ((int16x8_t *)idft_out0)[i] = vqdmulhq_s16(((int16x8_t *)idft_out0)[i],norm128); ((int16x8_t *)idft_out1)[i] = vqdmulhq_s16(((int16x8_t *)idft_out1)[i],norm128); ((int16x8_t *)idft_out2)[i] = vqdmulhq_s16(((int16x8_t *)idft_out2)[i],norm128); @@ -430,7 +430,7 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH) { ((__m128i *)z11)[i]=_mm_sign_epi16(((__m128i *)z11)[i],*(__m128i *)&conjugate2[0]); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) * &(((int16x8_t *)z0)[i])=vmulq_s16( *&(((int16x8_t *)z0)[i]),*(int16x8_t *)&conjugate2[0]); * &(((int16x8_t *)z1)[i])=vmulq_s16( *&(((int16x8_t *)z1)[i]),*(int16x8_t *)&conjugate2[0]); * &(((int16x8_t *)z2)[i])=vmulq_s16( *&(((int16x8_t *)z2)[i]),*(int16x8_t *)&conjugate2[0]); @@ -470,7 +470,7 @@ int32_t ulsch_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i *rxF=(__m128i *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; __m128i **llrp128 = (__m128i **)llrp; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF= (int16x8_t *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; int16x8_t **llrp128 = (int16x8_t **)llrp; #endif @@ -503,7 +503,7 @@ void ulsch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, __m128i mmtmpU0; __m128i **llrp128=(__m128i **)llrp; ch_mag =(__m128i *)&ul_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF=(int16x8_t *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; int16x8_t *ch_mag; int16x8_t xmm0; @@ -518,7 +518,7 @@ void ulsch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, (*llrp128)[0] = _mm_unpacklo_epi32(rxF[i],mmtmpU0); (*llrp128)[1] = _mm_unpackhi_epi32(rxF[i],mmtmpU0); (*llrp128)+=2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm0 = vabsq_s16(rxF[i]); xmm0 = vqsubq_s16(ch_mag[i],xmm0); (*llrp16)[0] = vgetq_lane_s16(rxF[i],0); @@ -565,7 +565,7 @@ void ulsch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, __m128i mmtmpU1,mmtmpU2; ch_mag =(__m128i *)&ul_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; ch_magb =(__m128i *)&ul_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF=(int16x8_t *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; int16x8_t *ch_mag,*ch_magb; int16x8_t mmtmpU1,mmtmpU2; @@ -595,7 +595,7 @@ void ulsch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, (*llrp32)[9] = _mm_extract_epi32(rxF[i],3); (*llrp32)[10] = _mm_extract_epi32(mmtmpU1,3); (*llrp32)[11] = _mm_extract_epi32(mmtmpU2,3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmpU1 = vabsq_s16(rxF[i]); mmtmpU1 = vqsubq_s16(ch_mag[i],mmtmpU1); mmtmpU2 = vabsq_s16(mmtmpU1); @@ -633,7 +633,7 @@ void ulsch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, __m128i *rxdataF_comp128_1=NULL,*ul_ch_mag128_1=NULL,*ul_ch_mag128_1b=NULL; __m128i *rxdataF_comp128_2=NULL,*ul_ch_mag128_2=NULL,*ul_ch_mag128_2b=NULL; __m128i *rxdataF_comp128_3=NULL,*ul_ch_mag128_3=NULL,*ul_ch_mag128_3b=NULL; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*ul_ch_mag128_0,*ul_ch_mag128_0b; int16x8_t *rxdataF_comp128_1,*ul_ch_mag128_1,*ul_ch_mag128_1b; int16x8_t *rxdataF_comp128_2,*ul_ch_mag128_2,*ul_ch_mag128_2b; @@ -682,7 +682,7 @@ void ulsch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, ul_ch_mag128_0b[i] = _mm_srai_epi16(_mm_adds_epi16(ul_ch_mag128_0b[i],_mm_adds_epi16(ul_ch_mag128_1b[i],_mm_adds_epi16(ul_ch_mag128_2b[i],ul_ch_mag128_3b[i]))),2); rxdataF_comp128_0[i] = _mm_add_epi16(rxdataF_comp128_0[i],(*(__m128i *)&jitterc[0])); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128_0 = (int16x8_t *)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12]; @@ -786,7 +786,7 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext, uint8_t aarx;//,symbol_mod; __m128i mmtmpU0,mmtmpU1,mmtmpU2,mmtmpU3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x4_t *ul_ch128,*rxdataF128; int16x8_t *ul_ch_mag128,*ul_ch_mag128b,*rxdataF_comp128; uint8_t aarx;//,symbol_mod; @@ -803,7 +803,7 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext, ul_ch_mag128b = (__m128i *)&ul_ch_magb[aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128 = (__m128i *)&rxdataF_comp[aarx][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ul_ch128 = (int16x4_t *)&ul_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128 = (int16x8_t *)&ul_ch_mag[aarx][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128b = (int16x8_t *)&ul_ch_magb[aarx][symbol*frame_parms->N_RB_DL*12]; @@ -826,7 +826,7 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext, mmtmpU1 = _mm_packs_epi32(mmtmpU0,mmtmpU0); ul_ch_mag128[2] = _mm_unpacklo_epi16(mmtmpU1,mmtmpU1); //LOG_I(PHY,"comp: ant %d symbol %d rb %d => %d,%d,%d (output_shift %d)\n",aarx,symbol,rb,*((int16_t *)&ul_ch_mag128[0]),*((int16_t *)&ul_ch_mag128[1]),*((int16_t *)&ul_ch_mag128[2]),output_shift); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmpU0 = vmull_s16(ul_ch128[0], ul_ch128[0]); mmtmpU0 = vqshlq_s32(vqaddq_s32(mmtmpU0,vrev64q_s32(mmtmpU0)),-output_shift128); mmtmpU1 = vmull_s16(ul_ch128[1], ul_ch128[1]); @@ -917,7 +917,7 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext, ul_ch_mag128b+=3; rxdataF128+=3; rxdataF_comp128+=3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmpU0 = vmull_s16(ul_ch128[0], rxdataF128[0]); //mmtmpU0 = [Re(ch[0])Re(rx[0]) Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1]) Im(ch[1])Im(ch[1])] mmtmpU1 = vmull_s16(ul_ch128[1], rxdataF128[1]); @@ -986,7 +986,7 @@ void ulsch_channel_level(int32_t **drs_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) __m128i *ul_ch128; __m128 avg128U; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t avg128U; int16x4_t *ul_ch128; #endif @@ -1004,7 +1004,7 @@ void ulsch_channel_level(int32_t **drs_ch_estimates_ext, ul_ch128+=3; } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) avg128U = vdupq_n_s32(0); ul_ch128=(int16x4_t *)drs_ch_estimates_ext[aarx]; diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c index 0d8c3c9960..44168dfa95 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c @@ -356,7 +356,7 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128; __m128i avg128P; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *dl_ch128; int32x4_t *avg128P; #else @@ -370,9 +370,9 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) avg128P = _mm_setzero_si128(); dl_ch128=(__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][0]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) dl_ch128=&dl_ch_estimates_ext[(aatx<<1)+aarx][0]; -#error __arm__ not yet implemented, cannot build __FILE__ +#error __arm__ or __aarch64__ not yet implemented, cannot build __FILE__ #else dl_ch128=&dl_ch_estimates_ext[(aatx<<1)+aarx][0]; #error Unsupported CPU architecture, cannot build __FILE__ @@ -383,7 +383,7 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext, avg128P = _mm_add_epi32(avg128P,_mm_madd_epi16(dl_ch128[0],dl_ch128[0])); avg128P = _mm_add_epi32(avg128P,_mm_madd_epi16(dl_ch128[1],dl_ch128[1])); avg128P = _mm_add_epi32(avg128P,_mm_madd_epi16(dl_ch128[2],dl_ch128[2])); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #else #error Unsupported CPU architecture, cannot build __FILE__ #endif @@ -427,7 +427,7 @@ void pdcch_detection_mrc_i(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1,*rxdataF_comp128_i0,*rxdataF_comp128_i1,*rho128_0,*rho128_1,*rho128_i0,*rho128_i1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1,*rxdataF_comp128_i0,*rxdataF_comp128_i1,*rho128_0,*rho128_1,*rho128_i0,*rho128_i1; #else #error Unsupported CPU architecture, cannot build __FILE__ @@ -441,7 +441,7 @@ void pdcch_detection_mrc_i(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0 = (__m128i *)&rxdataF_comp[(aatx<<1)][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (__m128i *)&rxdataF_comp[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[(aatx<<1)][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12]; #else @@ -451,7 +451,7 @@ void pdcch_detection_mrc_i(LTE_DL_FRAME_PARMS *frame_parms, for (i=0; iN_RB_DL*3; i++) { #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_0[i],1),_mm_srai_epi16(rxdataF_comp128_1[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0[i] = vhaddq_s16(rxdataF_comp128_0[i],rxdataF_comp128_1[i]); #endif } @@ -460,14 +460,14 @@ void pdcch_detection_mrc_i(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rho128_0 = (__m128i *) &rho[0][symbol*frame_parms->N_RB_DL*12]; rho128_1 = (__m128i *) &rho[1][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rho128_0 = (int16x8_t *) &rho[0][symbol*frame_parms->N_RB_DL*12]; rho128_1 = (int16x8_t *) &rho[1][symbol*frame_parms->N_RB_DL*12]; #endif for (i=0; iN_RB_DL*3; i++) { #if defined(__x86_64__) || defined(__i386__) rho128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rho128_0[i],1),_mm_srai_epi16(rho128_1[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rho128_0[i] = vhaddq_s16(rho128_0[i],rho128_1[i]); #endif } @@ -477,7 +477,7 @@ void pdcch_detection_mrc_i(LTE_DL_FRAME_PARMS *frame_parms, rho128_i1 = (__m128i *) &rho_i[1][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_i0 = (__m128i *)&rxdataF_comp_i[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_i1 = (__m128i *)&rxdataF_comp_i[1][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rho128_i0 = (int16x8_t*) &rho_i[0][symbol*frame_parms->N_RB_DL*12]; rho128_i1 = (int16x8_t*) &rho_i[1][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_i0 = (int16x8_t *)&rxdataF_comp_i[0][symbol*frame_parms->N_RB_DL*12]; @@ -489,7 +489,7 @@ void pdcch_detection_mrc_i(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_i0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_i0[i],1),_mm_srai_epi16(rxdataF_comp128_i1[i],1)); rho128_i0[i] = _mm_adds_epi16(_mm_srai_epi16(rho128_i0[i],1),_mm_srai_epi16(rho128_i1[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_i0[i] = vhaddq_s16(rxdataF_comp128_i0[i],rxdataF_comp128_i1[i]); rho128_i0[i] = vhaddq_s16(rho128_i0[i],rho128_i1[i]); @@ -989,7 +989,7 @@ void pdcch_channel_compensation(int32_t **rxdataF_ext, __m128i *dl_ch128,*rxdataF128,*rxdataF_comp128; __m128i *dl_ch128_2, *rho128; __m128i mmtmpPD0,mmtmpPD1,mmtmpPD2,mmtmpPD3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif uint8_t aatx,aarx,pilots=0; @@ -1014,7 +1014,7 @@ void pdcch_channel_compensation(int32_t **rxdataF_ext, rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128 = (__m128i *)&rxdataF_comp[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -1093,7 +1093,7 @@ void pdcch_channel_compensation(int32_t **rxdataF_ext, rxdataF128+=2; rxdataF_comp128+=2; } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -1110,7 +1110,7 @@ void pdcch_channel_compensation(int32_t **rxdataF_ext, dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; dl_ch128_2 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif for (rb=0; rbN_RB_DL; rb++) { @@ -1205,7 +1205,7 @@ void pdcch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1; #endif int32_t i; @@ -1215,7 +1215,7 @@ void pdcch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0 = (__m128i *)&rxdataF_comp[(aatx<<1)][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (__m128i *)&rxdataF_comp[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[(aatx<<1)][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12]; #endif @@ -1223,7 +1223,7 @@ void pdcch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, for (i=0; iN_RB_DL*3; i++) { #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_0[i],1),_mm_srai_epi16(rxdataF_comp128_1[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0[i] = vhaddq_s16(rxdataF_comp128_0[i],rxdataF_comp128_1[i]); #endif } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c index 39900113b7..ca5d6d28de 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c @@ -173,7 +173,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue, #ifdef DEBUG_DLSCH_DECODING uint16_t i; #endif - //#ifdef __AVX2__ + //#ifdef __WASAVX2__ #if 0 int Kr_last,skipped_last=0; uint8_t (*tc_2cw)(int16_t *y, @@ -402,7 +402,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue, printf("%d : %d\n",i,harq_process->d[r][96+i]); printf("\n"); */ - //#ifndef __AVX2__ + //#ifndef __WASAVX2__ #if 1 if (err_flag == 0) { diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c index 8f5e33d6e0..b9b442f6f5 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c @@ -1453,7 +1453,7 @@ void dlsch_channel_compensation(int **rxdataF_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) unsigned short rb; unsigned char aatx,aarx,symbol_mod,pilots=0; int16x4_t *dl_ch128,*dl_ch128_2,*rxdataF128; @@ -1863,7 +1863,7 @@ void prec2A_TM56_128(unsigned char pmi,__m128i *ch0,__m128i *ch1) { _mm_empty(); _m_empty(); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) void prec2A_TM56_128(unsigned char pmi,__m128i *ch0,__m128i *ch1) { // sqrt(2) is already taken into account in computation sqrt_rho_a, sqrt_rho_b, //so removed it @@ -2159,7 +2159,7 @@ void dlsch_channel_compensation_TM56(int **rxdataF_ext, measurements->precoded_cqi_dB[eNB_id][0] = dB_fixed2(precoded_signal_strength,measurements->n0_power_tot); //printf("eNB_id %d, symbol %d: precoded CQI %d dB\n",eNB_id,symbol, // measurements->precoded_cqi_dB[eNB_id][0]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) uint32_t rb,Nre; uint32_t aarx,symbol_mod,pilots=0; int16x4_t *dl_ch0_128,*dl_ch1_128,*rxdataF128; @@ -2714,7 +2714,7 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms, // measurements->precoded_cqi_dB[eNB_id][0]); _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) unsigned short rb,Nre; unsigned char aarx,symbol_mod,pilots=0; int precoded_signal_strength0=0,precoded_signal_strength1=0, rx_power_correction; @@ -3064,7 +3064,7 @@ void dlsch_dual_stream_correlation(LTE_DL_FRAME_PARMS *frame_parms, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -3140,7 +3140,7 @@ void dlsch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) unsigned char aatx; int i; int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1,*rxdataF_comp128_i0,*rxdataF_comp128_i1,*dl_ch_mag128_0,*dl_ch_mag128_1,*dl_ch_mag128_0b,*dl_ch_mag128_1b,*rho128_0,*rho128_1,*rho128_i0,*rho128_i1, @@ -3366,7 +3366,7 @@ void dlsch_scale_channel(int **dl_ch_estimates_ext, } } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -3433,7 +3433,7 @@ void dlsch_channel_level(int **dl_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) short rb; unsigned char aatx,aarx,nre=12,symbol_mod; int32x4_t avg128D; @@ -3533,7 +3533,7 @@ void dlsch_channel_level_core(int **dl_ch_estimates_ext, _mm_empty(); _m_empty(); /* FIXME This part needs to be adapted like the one above */ -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) short rb; unsigned char aatx,aarx,nre=12,symbol_mod; int32x4_t avg128D; @@ -3627,7 +3627,7 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) short rb; unsigned char aatx,aarx,nre=12,symbol_mod; int32x4_t norm128D; @@ -3997,7 +3997,7 @@ void dlsch_channel_aver_band(int **dl_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -4369,7 +4369,7 @@ void dlsch_channel_level_TM34(int **dl_ch_estimates_ext, avg_1[0] = avg_0[0]; _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -4438,7 +4438,7 @@ void dlsch_channel_level_TM56(int **dl_ch_estimates_ext, avg[0] = cmax(avg[0],avg[1]); _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -4501,7 +4501,7 @@ void dlsch_channel_level_TM7(int **dl_bf_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } //#define ONE_OVER_2_Q15 16384 @@ -4585,7 +4585,7 @@ void dlsch_alamouti(LTE_DL_FRAME_PARMS *frame_parms, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c index 43f3b5451f..b1ff7357da 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c @@ -618,7 +618,7 @@ __m128i tmp_result4 __attribute__ ((aligned(16))); // calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor for 64-QAM #define square_a_64qam_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm_mulhi_epi16(a_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm_slli_epi16(tmp_result,3); tmp_result = _mm_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(a_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm_slli_epi16(tmp_result2,3); tmp_result2 = _mm_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm_slli_epi16(tmp_result2,1); a_sq = _mm_adds_epi16(tmp_result,tmp_result2); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -886,7 +886,7 @@ void qam16_llr(int16_t *stream0_in, __m128i *ch_mag_128 = (__m128i*)chan_magn; __m128i llr128[2]; int32_t *llr32 = (int32_t*) llr; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF_128 = (int16x8_t*)stream0_in; int16x8_t *ch_mag_128 = (int16x8_t*)chan_magn; int16x8_t xmm0; @@ -912,7 +912,7 @@ void qam16_llr(int16_t *stream0_in, llr32[6] = _mm_extract_epi32(llr128[1],2); //((uint32_t *)&llr128[1])[2]; llr32[7] = _mm_extract_epi32(llr128[1],3); //((uint32_t *)&llr128[1])[3]; llr32+=8; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm0 = vabsq_s16(rxF[i]); xmm0 = vqsubq_s16(ch_mag[i],xmm0); // lambda_1=y_R, lambda_2=|y_R|-|h|^2, lamda_3=y_I, lambda_4=|y_I|-|h|^2 @@ -1139,7 +1139,7 @@ void qam64_llr(int16_t *stream0_in, __m128i *rxF_128 = (__m128i*)stream0_in; __m128i *ch_mag_128 = (__m128i*)chan_magn; __m128i *ch_magb_128 = (__m128i*)chan_magn_b; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF_128 = (int16x8_t*)stream0_in; int16x8_t *ch_mag_128 = (int16x8_t*)chan_magn; int16x8_t *ch_magb_128 = (int16x8_t*)chan_magn_b; @@ -1158,7 +1158,7 @@ void qam64_llr(int16_t *stream0_in, xmm1 = _mm_subs_epi16(ch_mag_128[i],xmm1); xmm2 = _mm_abs_epi16(xmm1); xmm2 = _mm_subs_epi16(ch_magb_128[i],xmm2); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm1 = vabsq_s16(rxF_128[i]); xmm1 = vsubq_s16(ch_mag_128[i],xmm1); xmm2 = vabsq_s16(xmm1); @@ -1184,7 +1184,7 @@ void qam64_llr(int16_t *stream0_in, llr[3] = _mm_extract_epi16(xmm1,1);//((short *)&xmm1)[j+1]; llr[4] = _mm_extract_epi16(xmm2,0);//((short *)&xmm2)[j]; llr[5] = _mm_extract_epi16(xmm2,1);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr[2] = vgetq_lane_s16(xmm1,0); llr[3] = vgetq_lane_s16(xmm1,1);//((short *)&xmm1)[j+1]; llr[4] = vgetq_lane_s16(xmm2,0);//((short *)&xmm2)[j]; @@ -1199,7 +1199,7 @@ void qam64_llr(int16_t *stream0_in, llr[3] = _mm_extract_epi16(xmm1,3);//((short *)&xmm1)[j+1]; llr[4] = _mm_extract_epi16(xmm2,2);//((short *)&xmm2)[j]; llr[5] = _mm_extract_epi16(xmm2,3);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr[2] = vgetq_lane_s16(xmm1,2); llr[3] = vgetq_lane_s16(xmm1,3);//((short *)&xmm1)[j+1]; llr[4] = vgetq_lane_s16(xmm2,2);//((short *)&xmm2)[j]; @@ -1214,7 +1214,7 @@ void qam64_llr(int16_t *stream0_in, llr[3] = _mm_extract_epi16(xmm1,5);//((short *)&xmm1)[j+1]; llr[4] = _mm_extract_epi16(xmm2,4);//((short *)&xmm2)[j]; llr[5] = _mm_extract_epi16(xmm2,5);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr[2] = vgetq_lane_s16(xmm1,4); llr[3] = vgetq_lane_s16(xmm1,5);//((short *)&xmm1)[j+1]; llr[4] = vgetq_lane_s16(xmm2,4);//((short *)&xmm2)[j]; @@ -1228,7 +1228,7 @@ void qam64_llr(int16_t *stream0_in, llr[3] = _mm_extract_epi16(xmm1,7);//((short *)&xmm1)[j+1]; llr[4] = _mm_extract_epi16(xmm2,6);//((short *)&xmm2)[j]; llr[5] = _mm_extract_epi16(xmm2,7);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr[2] = vgetq_lane_s16(xmm1,6); llr[3] = vgetq_lane_s16(xmm1,7);//((short *)&xmm1)[j+1]; llr[4] = vgetq_lane_s16(xmm2,6);//((short *)&xmm2)[j]; @@ -1500,7 +1500,7 @@ void qpsk_qpsk(short *stream0_in, __m128i *stream1_128i_in = (__m128i *)stream1_in; __m128i *stream0_128i_out = (__m128i *)stream0_out; __m128i ONE_OVER_SQRT_8 = _mm_set1_epi16(23170); //round(2^16/sqrt(8)) -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rho01_128i = (int16x8_t *)rho01; int16x8_t *stream0_128i_in = (int16x8_t *)stream0_in; int16x8_t *stream1_128i_in = (int16x8_t *)stream1_in; @@ -1536,7 +1536,7 @@ void qpsk_qpsk(short *stream0_in, // divide by sqrt(8), no shift needed ONE_OVER_SQRT_8 = Q1.16 rho_rpi = _mm_mulhi_epi16(rho_rpi,ONE_OVER_SQRT_8); rho_rmi = _mm_mulhi_epi16(rho_rmi,ONE_OVER_SQRT_8); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -1560,7 +1560,7 @@ void qpsk_qpsk(short *stream0_in, y0r_over2 = _mm_srai_epi16(y0r,1); // divide by 2 y0i_over2 = _mm_srai_epi16(y0i,1); // divide by 2 -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -1762,7 +1762,7 @@ void qpsk_qam16(int16_t *stream0_in, __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15) __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15) __m128i ch_mag_int __attribute__((aligned(16))); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rho01_128i = (int16x8_t *)rho01; int16x8_t *stream0_128i_in = (int16x8_t *)stream0_in; int16x8_t *stream1_128i_in = (int16x8_t *)stream1_in; @@ -1937,7 +1937,7 @@ void qpsk_qam16(int16_t *stream0_in, if (i<((length>>1) - 1)) // false if only 2 REs remain stream0_128i_out[i+1] = _mm_unpackhi_epi16(y0r,y0i); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -2050,7 +2050,7 @@ void qpsk_qam64(short *stream0_in, __m128i ch_mag_int_with_sigma2; __m128i two_ch_mag_int_with_sigma2; __m128i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -2235,7 +2235,7 @@ void qpsk_qam64(short *stream0_in, if (i<((length>>1) - 1)) // false if only 2 REs remain stream0_128i_out[i+1] = _mm_unpackhi_epi16(y0r,y0i); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -2311,7 +2311,7 @@ void qam16_qpsk(short *stream0_in, __m128i ch_mag_over_10; __m128i ch_mag_over_2; __m128i ch_mag_9_over_10; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -2702,7 +2702,7 @@ void qam16_qpsk(short *stream0_in, stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3); stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -2820,7 +2820,7 @@ void qam16_qam16(short *stream0_in, __m128i ch_mag_over_10; __m128i ch_mag_over_2; __m128i ch_mag_9_over_10; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -3254,7 +3254,7 @@ void qam16_qam16(short *stream0_in, stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2); stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3); stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -3385,7 +3385,7 @@ void qam16_qam64(int16_t *stream0_in, __m128i two_ch_mag_int_with_sigma2; __m128i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif int i; @@ -3887,7 +3887,7 @@ void qam16_qam64(int16_t *stream0_in, stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2); stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3); stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -4068,7 +4068,7 @@ void qam64_qpsk(int16_t *stream0_in, __m128i y0i_three_over_sqrt_21; __m128i y0i_five_over_sqrt_21; __m128i y0i_seven_over_sqrt_21; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -5453,7 +5453,7 @@ void qam64_qpsk(int16_t *stream0_in, stream0_out[j + 45] = ((short *)&y0i)[7]; stream0_out[j + 46] = ((short *)&y1i)[7]; stream0_out[j + 47] = ((short *)&y2i)[7]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -5593,7 +5593,7 @@ void qam64_qam16(short *stream0_in, __m128i y0i_five_over_sqrt_21; __m128i y0i_seven_over_sqrt_21; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif int i,j; @@ -6993,7 +6993,7 @@ void qam64_qam16(short *stream0_in, stream0_out[j + 46] = ((short *)&y1i)[7]; stream0_out[j + 47] = ((short *)&y2i)[7]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -7139,7 +7139,7 @@ void qam64_qam64(short *stream0_in, __m128i ch_mag_int_with_sigma2; __m128i two_ch_mag_int_with_sigma2; __m128i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -8803,7 +8803,7 @@ void qam64_qam64(short *stream0_in, stream0_out[j + 46] = ((short *)&y1i)[7]; stream0_out[j + 47] = ((short *)&y2i)[7]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -8878,8 +8878,6 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr16, pllr_symbol);*/ -#ifdef __AVX2__ - // Round length up to multiple of 16 words uint32_t len256i = ((len+16)>>4)*16; int32_t *rxF_256i = (int32_t*) malloc16_clear(len256i*4); @@ -8908,16 +8906,6 @@ int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, free16(ch_mag_i_256i, sizeof(ch_mag_i_256i)); free16(rho_256i, sizeof(rho_256i)); -#else - qam64_qam64((short *)rxF, - (short *)rxF_i, - (short *)ch_mag, - (short *)ch_mag_i, - (short *)llr16, - (short *)rho, - len); -#endif - llr16 += (6*len); //*llr16p = (short *)llr16; 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 f6938f3234..719295a5ef 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c @@ -589,20 +589,20 @@ static __m256i tmp_result4 __attribute__ ((aligned(32))); // Auxiliary Makros // calculate interference magnitude -#define interference_abs_epi16(psi,int_ch_mag,int_mag,c1,c2) tmp_result = _mm256_cmpgt_epi16(int_ch_mag,psi); tmp_result2 = _mm256_xor_si256(tmp_result,(*(__m256i*)&ones256[0])); tmp_result = _mm256_and_si256(tmp_result,c1); tmp_result2 = _mm256_and_si256(tmp_result2,c2); int_mag = _mm256_or_si256(tmp_result,tmp_result2); +#define interference_abs_epi16(psi,int_ch_mag,int_mag,c1,c2) tmp_result = simde_mm256_cmpgt_epi16(int_ch_mag,psi); tmp_result2 = simde_mm256_xor_si256(tmp_result,(*(__m256i*)&ones256[0])); tmp_result = simde_mm256_and_si256(tmp_result,c1); tmp_result2 = simde_mm256_and_si256(tmp_result2,c2); int_mag = simde_mm256_or_si256(tmp_result,tmp_result2); // calculate interference magnitude // tmp_result = ones in shorts corr. to interval 2<=x<=4, tmp_result2 interval < 2, tmp_result3 interval 46 -#define interference_abs_64qam_epi16(psi,int_ch_mag,int_two_ch_mag,int_three_ch_mag,a,c1,c3,c5,c7) tmp_result = _mm256_cmpgt_epi16(int_two_ch_mag,psi); tmp_result3 = _mm256_xor_si256(tmp_result,(*(__m256i*)&ones256[0])); tmp_result2 = _mm256_cmpgt_epi16(int_ch_mag,psi); tmp_result = _mm256_xor_si256(tmp_result,tmp_result2); tmp_result4 = _mm256_cmpgt_epi16(psi,int_three_ch_mag); tmp_result3 = _mm256_xor_si256(tmp_result3,tmp_result4); tmp_result = _mm256_and_si256(tmp_result,c3); tmp_result2 = _mm256_and_si256(tmp_result2,c1); tmp_result3 = _mm256_and_si256(tmp_result3,c5); tmp_result4 = _mm256_and_si256(tmp_result4,c7); tmp_result = _mm256_or_si256(tmp_result,tmp_result2); tmp_result3 = _mm256_or_si256(tmp_result3,tmp_result4); a = _mm256_or_si256(tmp_result,tmp_result3); +#define interference_abs_64qam_epi16(psi,int_ch_mag,int_two_ch_mag,int_three_ch_mag,a,c1,c3,c5,c7) tmp_result = simde_mm256_cmpgt_epi16(int_two_ch_mag,psi); tmp_result3 = simde_mm256_xor_si256(tmp_result,(*(__m256i*)&ones256[0])); tmp_result2 = simde_mm256_cmpgt_epi16(int_ch_mag,psi); tmp_result = simde_mm256_xor_si256(tmp_result,tmp_result2); tmp_result4 = simde_mm256_cmpgt_epi16(psi,int_three_ch_mag); tmp_result3 = simde_mm256_xor_si256(tmp_result3,tmp_result4); tmp_result = simde_mm256_and_si256(tmp_result,c3); tmp_result2 = simde_mm256_and_si256(tmp_result2,c1); tmp_result3 = simde_mm256_and_si256(tmp_result3,c5); tmp_result4 = simde_mm256_and_si256(tmp_result4,c7); tmp_result = simde_mm256_or_si256(tmp_result,tmp_result2); tmp_result3 = simde_mm256_or_si256(tmp_result3,tmp_result4); a = simde_mm256_or_si256(tmp_result,tmp_result3); // calculates psi_a = psi_r*a_r + psi_i*a_i -#define prodsum_psi_a_epi16(psi_r,a_r,psi_i,a_i,psi_a) tmp_result = _mm256_mulhi_epi16(psi_r,a_r); tmp_result = _mm256_slli_epi16(tmp_result,1); tmp_result2 = _mm256_mulhi_epi16(psi_i,a_i); tmp_result2 = _mm256_slli_epi16(tmp_result2,1); psi_a = _mm256_adds_epi16(tmp_result,tmp_result2); +#define prodsum_psi_a_epi16(psi_r,a_r,psi_i,a_i,psi_a) tmp_result = simde_mm256_mulhi_epi16(psi_r,a_r); tmp_result = simde_mm256_slli_epi16(tmp_result,1); tmp_result2 = simde_mm256_mulhi_epi16(psi_i,a_i); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,1); psi_a = simde_mm256_adds_epi16(tmp_result,tmp_result2); // calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor -#define square_a_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm256_mulhi_epi16(a_r,a_r); tmp_result = _mm256_slli_epi16(tmp_result,1); tmp_result = _mm256_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm256_slli_epi16(tmp_result,1); tmp_result = _mm256_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm256_slli_epi16(tmp_result,1); tmp_result2 = _mm256_mulhi_epi16(a_i,a_i); tmp_result2 = _mm256_slli_epi16(tmp_result2,1); tmp_result2 = _mm256_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm256_slli_epi16(tmp_result2,1); tmp_result2 = _mm256_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm256_slli_epi16(tmp_result2,1); a_sq = _mm256_adds_epi16(tmp_result,tmp_result2); +#define square_a_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = simde_mm256_mulhi_epi16(a_r,a_r); tmp_result = simde_mm256_slli_epi16(tmp_result,1); tmp_result = simde_mm256_mulhi_epi16(tmp_result,scale_factor); tmp_result = simde_mm256_slli_epi16(tmp_result,1); tmp_result = simde_mm256_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = simde_mm256_slli_epi16(tmp_result,1); tmp_result2 = simde_mm256_mulhi_epi16(a_i,a_i); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,1); tmp_result2 = simde_mm256_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,1); tmp_result2 = simde_mm256_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,1); a_sq = simde_mm256_adds_epi16(tmp_result,tmp_result2); // calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor for 64-QAM -#define square_a_64qam_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm256_mulhi_epi16(a_r,a_r); tmp_result = _mm256_slli_epi16(tmp_result,1); tmp_result = _mm256_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm256_slli_epi16(tmp_result,3); tmp_result = _mm256_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm256_slli_epi16(tmp_result,1); tmp_result2 = _mm256_mulhi_epi16(a_i,a_i); tmp_result2 = _mm256_slli_epi16(tmp_result2,1); tmp_result2 = _mm256_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm256_slli_epi16(tmp_result2,3); tmp_result2 = _mm256_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm256_slli_epi16(tmp_result2,1); a_sq = _mm256_adds_epi16(tmp_result,tmp_result2); +#define square_a_64qam_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = simde_mm256_mulhi_epi16(a_r,a_r); tmp_result = simde_mm256_slli_epi16(tmp_result,1); tmp_result = simde_mm256_mulhi_epi16(tmp_result,scale_factor); tmp_result = simde_mm256_slli_epi16(tmp_result,3); tmp_result = simde_mm256_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = simde_mm256_slli_epi16(tmp_result,1); tmp_result2 = simde_mm256_mulhi_epi16(a_i,a_i); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,1); tmp_result2 = simde_mm256_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,3); tmp_result2 = simde_mm256_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = simde_mm256_slli_epi16(tmp_result2,1); a_sq = simde_mm256_adds_epi16(tmp_result,tmp_result2); void seperate_real_imag_parts(__m256i *out_re, __m256i *out_im, @@ -612,24 +612,24 @@ void seperate_real_imag_parts(__m256i *out_re, __m256i tmp0; __m256i tmp1; - in0 = _mm256_shufflelo_epi16(in0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - in0 = _mm256_shufflehi_epi16(in0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - in0 = _mm256_shuffle_epi32(in0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + in0 = simde_mm256_shufflelo_epi16(in0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + in0 = simde_mm256_shufflehi_epi16(in0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + in0 = simde_mm256_shuffle_epi32(in0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - in1 = _mm256_shufflelo_epi16(in1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - in1 = _mm256_shufflehi_epi16(in1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - in1 = _mm256_shuffle_epi32(in1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + in1 = simde_mm256_shufflelo_epi16(in1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + in1 = simde_mm256_shufflehi_epi16(in1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + in1 = simde_mm256_shuffle_epi32(in1,0xd8); //_MM_SHUFFLE(0,2,1,3)); //in0 = [Re(0,1,2,3) Im(0,1,2,3) Re(4,5,6,7) Im(4,5,6,7)] //in0 = [Re(8,9,10,11) Im(8,9,10,11) Re(12,13,14,15) Im(12,13,14,15)] - tmp0 = _mm256_unpacklo_epi64(in0, in1); + tmp0 = simde_mm256_unpacklo_epi64(in0, in1); //axmm2 = [Re(0,1,2,3) Re(8,9,10,11) Re(4,5,6,7) Re(12,13,14,15)] - tmp0 = _mm256_permute4x64_epi64(tmp0,0xd8); // Re(rho) + tmp0 = simde_mm256_permute4x64_epi64(tmp0,0xd8); // Re(rho) - tmp1 = _mm256_unpackhi_epi64(in0, in1); + tmp1 = simde_mm256_unpackhi_epi64(in0, in1); //axmm3 = [Im(0,1,2,3) Im(8,9,10,11) Im(4,5,6,7) Im(12,13,14,15)] - tmp1 = _mm256_permute4x64_epi64(tmp1,0xd8); // Im(rho) + tmp1 = simde_mm256_permute4x64_epi64(tmp1,0xd8); // Im(rho) *out_re = tmp0; *out_im = tmp1; @@ -668,22 +668,22 @@ void qam64_qam16_avx2(short *stream0_in, __m256i *ch_mag_256i = (__m256i *)ch_mag; __m256i *ch_mag_256i_i = (__m256i *)ch_mag_i; - __m256i ONE_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(10112)); // round(1/sqrt(42)*2^16) - __m256i THREE_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(30337)); // round(3/sqrt(42)*2^16) - __m256i FIVE_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(25281)); // round(5/sqrt(42)*2^15) - __m256i SEVEN_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(17697)); // round(5/sqrt(42)*2^15) - __m256i FORTYNINE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(30969)); // round(49/(4*sqrt(42))*2^14), Q2.14 - __m256i THIRTYSEVEN_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(23385)); // round(37/(4*sqrt(42))*2^14), Q2.14 - __m256i TWENTYFIVE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(31601)); // round(25/(4*sqrt(42))*2^15) - __m256i TWENTYNINE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(18329)); // round(29/(4*sqrt(42))*2^15), Q2.14 - __m256i SEVENTEEN_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(21489)); // round(17/(4*sqrt(42))*2^15) - __m256i NINE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(11376)); // round(9/(4*sqrt(42))*2^15) - __m256i THIRTEEN_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(16433)); // round(13/(4*sqrt(42))*2^15) - __m256i FIVE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(6320)); // round(5/(4*sqrt(42))*2^15) - __m256i ONE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(1264)); // round(1/(4*sqrt(42))*2^15) - __m256i ONE_OVER_SQRT_10_Q15 = _mm256_broadcastw_epi16(_mm_set1_epi16(10362)); // round(1/sqrt(10)*2^15) - __m256i THREE_OVER_SQRT_10 = _mm256_broadcastw_epi16(_mm_set1_epi16(31086)); // round(3/sqrt(10)*2^15) - __m256i SQRT_10_OVER_FOUR = _mm256_broadcastw_epi16(_mm_set1_epi16(25905)); // round(sqrt(10)/4*2^15) + __m256i ONE_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(10112)); // round(1/sqrt(42)*2^16) + __m256i THREE_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(30337)); // round(3/sqrt(42)*2^16) + __m256i FIVE_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(25281)); // round(5/sqrt(42)*2^15) + __m256i SEVEN_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(17697)); // round(5/sqrt(42)*2^15) + __m256i FORTYNINE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(30969)); // round(49/(4*sqrt(42))*2^14), Q2.14 + __m256i THIRTYSEVEN_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(23385)); // round(37/(4*sqrt(42))*2^14), Q2.14 + __m256i TWENTYFIVE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(31601)); // round(25/(4*sqrt(42))*2^15) + __m256i TWENTYNINE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(18329)); // round(29/(4*sqrt(42))*2^15), Q2.14 + __m256i SEVENTEEN_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(21489)); // round(17/(4*sqrt(42))*2^15) + __m256i NINE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(11376)); // round(9/(4*sqrt(42))*2^15) + __m256i THIRTEEN_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(16433)); // round(13/(4*sqrt(42))*2^15) + __m256i FIVE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(6320)); // round(5/(4*sqrt(42))*2^15) + __m256i ONE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(1264)); // round(1/(4*sqrt(42))*2^15) + __m256i ONE_OVER_SQRT_10_Q15 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(10362)); // round(1/sqrt(10)*2^15) + __m256i THREE_OVER_SQRT_10 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(31086)); // round(3/sqrt(10)*2^15) + __m256i SQRT_10_OVER_FOUR = simde_mm256_broadcastw_epi16(_mm_set1_epi16(25905)); // round(sqrt(10)/4*2^15) __m256i ch_mag_int; @@ -706,7 +706,7 @@ void qam64_qam16_avx2(short *stream0_in, __m256i y0i_five_over_sqrt_21; __m256i y0i_seven_over_sqrt_21; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif int i,j; @@ -732,360 +732,360 @@ void qam64_qam16_avx2(short *stream0_in, */ seperate_real_imag_parts(&xmm2, &xmm3, rho01_256i[i], rho01_256i[i+1]); - rho_rpi = _mm256_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho) - rho_rmi = _mm256_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho) + rho_rpi = simde_mm256_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho) + rho_rmi = simde_mm256_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho) // Compute the different rhos - rho_rpi_1_1 = _mm256_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42); - rho_rmi_1_1 = _mm256_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42); - rho_rpi_3_3 = _mm256_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42); - rho_rmi_3_3 = _mm256_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42); - rho_rpi_5_5 = _mm256_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42); - rho_rmi_5_5 = _mm256_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42); - rho_rpi_7_7 = _mm256_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42); - rho_rmi_7_7 = _mm256_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42); + rho_rpi_1_1 = simde_mm256_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42); + rho_rmi_1_1 = simde_mm256_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42); + rho_rpi_3_3 = simde_mm256_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42); + rho_rmi_3_3 = simde_mm256_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42); + rho_rpi_5_5 = simde_mm256_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42); + rho_rmi_5_5 = simde_mm256_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42); + rho_rpi_7_7 = simde_mm256_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42); + rho_rmi_7_7 = simde_mm256_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42); - rho_rpi_5_5 = _mm256_slli_epi16(rho_rpi_5_5, 1); - rho_rmi_5_5 = _mm256_slli_epi16(rho_rmi_5_5, 1); - rho_rpi_7_7 = _mm256_slli_epi16(rho_rpi_7_7, 2); - rho_rmi_7_7 = _mm256_slli_epi16(rho_rmi_7_7, 2); + rho_rpi_5_5 = simde_mm256_slli_epi16(rho_rpi_5_5, 1); + rho_rmi_5_5 = simde_mm256_slli_epi16(rho_rmi_5_5, 1); + rho_rpi_7_7 = simde_mm256_slli_epi16(rho_rpi_7_7, 2); + rho_rmi_7_7 = simde_mm256_slli_epi16(rho_rmi_7_7, 2); - xmm4 = _mm256_mulhi_epi16(xmm2, ONE_OVER_SQRT_42); - xmm5 = _mm256_mulhi_epi16(xmm3, ONE_OVER_SQRT_42); - xmm6 = _mm256_mulhi_epi16(xmm3, THREE_OVER_SQRT_42); - xmm7 = _mm256_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42); - xmm8 = _mm256_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42); - xmm7 = _mm256_slli_epi16(xmm7, 1); - xmm8 = _mm256_slli_epi16(xmm8, 2); + xmm4 = simde_mm256_mulhi_epi16(xmm2, ONE_OVER_SQRT_42); + xmm5 = simde_mm256_mulhi_epi16(xmm3, ONE_OVER_SQRT_42); + xmm6 = simde_mm256_mulhi_epi16(xmm3, THREE_OVER_SQRT_42); + xmm7 = simde_mm256_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42); + xmm8 = simde_mm256_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42); + xmm7 = simde_mm256_slli_epi16(xmm7, 1); + xmm8 = simde_mm256_slli_epi16(xmm8, 2); - rho_rpi_1_3 = _mm256_adds_epi16(xmm4, xmm6); - rho_rmi_1_3 = _mm256_subs_epi16(xmm4, xmm6); - rho_rpi_1_5 = _mm256_adds_epi16(xmm4, xmm7); - rho_rmi_1_5 = _mm256_subs_epi16(xmm4, xmm7); - rho_rpi_1_7 = _mm256_adds_epi16(xmm4, xmm8); - rho_rmi_1_7 = _mm256_subs_epi16(xmm4, xmm8); + rho_rpi_1_3 = simde_mm256_adds_epi16(xmm4, xmm6); + rho_rmi_1_3 = simde_mm256_subs_epi16(xmm4, xmm6); + rho_rpi_1_5 = simde_mm256_adds_epi16(xmm4, xmm7); + rho_rmi_1_5 = simde_mm256_subs_epi16(xmm4, xmm7); + rho_rpi_1_7 = simde_mm256_adds_epi16(xmm4, xmm8); + rho_rmi_1_7 = simde_mm256_subs_epi16(xmm4, xmm8); - xmm4 = _mm256_mulhi_epi16(xmm2, THREE_OVER_SQRT_42); - rho_rpi_3_1 = _mm256_adds_epi16(xmm4, xmm5); - rho_rmi_3_1 = _mm256_subs_epi16(xmm4, xmm5); - rho_rpi_3_5 = _mm256_adds_epi16(xmm4, xmm7); - rho_rmi_3_5 = _mm256_subs_epi16(xmm4, xmm7); - rho_rpi_3_7 = _mm256_adds_epi16(xmm4, xmm8); - rho_rmi_3_7 = _mm256_subs_epi16(xmm4, xmm8); + xmm4 = simde_mm256_mulhi_epi16(xmm2, THREE_OVER_SQRT_42); + rho_rpi_3_1 = simde_mm256_adds_epi16(xmm4, xmm5); + rho_rmi_3_1 = simde_mm256_subs_epi16(xmm4, xmm5); + rho_rpi_3_5 = simde_mm256_adds_epi16(xmm4, xmm7); + rho_rmi_3_5 = simde_mm256_subs_epi16(xmm4, xmm7); + rho_rpi_3_7 = simde_mm256_adds_epi16(xmm4, xmm8); + rho_rmi_3_7 = simde_mm256_subs_epi16(xmm4, xmm8); - xmm4 = _mm256_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42); - xmm4 = _mm256_slli_epi16(xmm4, 1); - rho_rpi_5_1 = _mm256_adds_epi16(xmm4, xmm5); - rho_rmi_5_1 = _mm256_subs_epi16(xmm4, xmm5); - rho_rpi_5_3 = _mm256_adds_epi16(xmm4, xmm6); - rho_rmi_5_3 = _mm256_subs_epi16(xmm4, xmm6); - rho_rpi_5_7 = _mm256_adds_epi16(xmm4, xmm8); - rho_rmi_5_7 = _mm256_subs_epi16(xmm4, xmm8); + xmm4 = simde_mm256_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42); + xmm4 = simde_mm256_slli_epi16(xmm4, 1); + rho_rpi_5_1 = simde_mm256_adds_epi16(xmm4, xmm5); + rho_rmi_5_1 = simde_mm256_subs_epi16(xmm4, xmm5); + rho_rpi_5_3 = simde_mm256_adds_epi16(xmm4, xmm6); + rho_rmi_5_3 = simde_mm256_subs_epi16(xmm4, xmm6); + rho_rpi_5_7 = simde_mm256_adds_epi16(xmm4, xmm8); + rho_rmi_5_7 = simde_mm256_subs_epi16(xmm4, xmm8); - xmm4 = _mm256_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42); - xmm4 = _mm256_slli_epi16(xmm4, 2); - rho_rpi_7_1 = _mm256_adds_epi16(xmm4, xmm5); - rho_rmi_7_1 = _mm256_subs_epi16(xmm4, xmm5); - rho_rpi_7_3 = _mm256_adds_epi16(xmm4, xmm6); - rho_rmi_7_3 = _mm256_subs_epi16(xmm4, xmm6); - rho_rpi_7_5 = _mm256_adds_epi16(xmm4, xmm7); - rho_rmi_7_5 = _mm256_subs_epi16(xmm4, xmm7); + xmm4 = simde_mm256_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42); + xmm4 = simde_mm256_slli_epi16(xmm4, 2); + rho_rpi_7_1 = simde_mm256_adds_epi16(xmm4, xmm5); + rho_rmi_7_1 = simde_mm256_subs_epi16(xmm4, xmm5); + rho_rpi_7_3 = simde_mm256_adds_epi16(xmm4, xmm6); + rho_rmi_7_3 = simde_mm256_subs_epi16(xmm4, xmm6); + rho_rpi_7_5 = simde_mm256_adds_epi16(xmm4, xmm7); + rho_rmi_7_5 = simde_mm256_subs_epi16(xmm4, xmm7); // Rearrange interfering MF output /* xmm0 = stream1_128i_in[i]; xmm1 = stream1_128i_in[i+1]; - xmm0 = _mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)] //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)] - y1r = _mm256_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)] - y1i = _mm256_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)] + y1r = simde_mm256_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)] + y1i = simde_mm256_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)] */ seperate_real_imag_parts(&y1r, &y1i, stream1_256i_in[i], stream1_256i_in[i+1]); // Psi_r calculation from rho_rpi or rho_rmi - xmm0 = _mm256_broadcastw_epi16(_mm_set1_epi16(0));// ZERO for abs_pi16 - xmm2 = _mm256_subs_epi16(rho_rpi_7_7, y1r); - psi_r_p7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_5, y1r); - psi_r_p7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_3, y1r); - psi_r_p7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_1, y1r); - psi_r_p7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_1, y1r); - psi_r_p7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_3, y1r); - psi_r_p7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_5, y1r); - psi_r_p7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_7, y1r); - psi_r_p7_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_7, y1r); - psi_r_p5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_5, y1r); - psi_r_p5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_3, y1r); - psi_r_p5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_1, y1r); - psi_r_p5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_1, y1r); - psi_r_p5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_3, y1r); - psi_r_p5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_5, y1r); - psi_r_p5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_7, y1r); - psi_r_p5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_7, y1r); - psi_r_p3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_5, y1r); - psi_r_p3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_3, y1r); - psi_r_p3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_1, y1r); - psi_r_p3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_1, y1r); - psi_r_p3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_3, y1r); - psi_r_p3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_5, y1r); - psi_r_p3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_7, y1r); - psi_r_p3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_7, y1r); - psi_r_p1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_5, y1r); - psi_r_p1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_3, y1r); - psi_r_p1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_1, y1r); - psi_r_p1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_1, y1r); - psi_r_p1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_3, y1r); - psi_r_p1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_5, y1r); - psi_r_p1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_7, y1r); - psi_r_p1_m7 = _mm256_abs_epi16(xmm2); + xmm0 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(0));// ZERO for abs_pi16 + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_7, y1r); + psi_r_p7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_5, y1r); + psi_r_p7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_3, y1r); + psi_r_p7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_1, y1r); + psi_r_p7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_1, y1r); + psi_r_p7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_3, y1r); + psi_r_p7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_5, y1r); + psi_r_p7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_7, y1r); + psi_r_p7_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_7, y1r); + psi_r_p5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_5, y1r); + psi_r_p5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_3, y1r); + psi_r_p5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_1, y1r); + psi_r_p5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_1, y1r); + psi_r_p5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_3, y1r); + psi_r_p5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_5, y1r); + psi_r_p5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_7, y1r); + psi_r_p5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_7, y1r); + psi_r_p3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_5, y1r); + psi_r_p3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_3, y1r); + psi_r_p3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_1, y1r); + psi_r_p3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_1, y1r); + psi_r_p3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_3, y1r); + psi_r_p3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_5, y1r); + psi_r_p3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_7, y1r); + psi_r_p3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_7, y1r); + psi_r_p1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_5, y1r); + psi_r_p1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_3, y1r); + psi_r_p1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_1, y1r); + psi_r_p1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_1, y1r); + psi_r_p1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_3, y1r); + psi_r_p1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_5, y1r); + psi_r_p1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_7, y1r); + psi_r_p1_m7 = simde_mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_7, y1r); - psi_r_m1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_5, y1r); - psi_r_m1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_3, y1r); - psi_r_m1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_1, y1r); - psi_r_m1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_1, y1r); - psi_r_m1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_3, y1r); - psi_r_m1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_5, y1r); - psi_r_m1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_7, y1r); - psi_r_m1_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_7, y1r); - psi_r_m3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_5, y1r); - psi_r_m3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_3, y1r); - psi_r_m3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_1, y1r); - psi_r_m3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_1, y1r); - psi_r_m3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_3, y1r); - psi_r_m3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_5, y1r); - psi_r_m3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_7, y1r); - psi_r_m3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_7, y1r); - psi_r_m5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_5, y1r); - psi_r_m5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_3, y1r); - psi_r_m5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_1, y1r); - psi_r_m5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_1, y1r); - psi_r_m5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_3, y1r); - psi_r_m5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_5, y1r); - psi_r_m5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_7, y1r); - psi_r_m5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_7, y1r); - psi_r_m7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_5, y1r); - psi_r_m7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_3, y1r); - psi_r_m7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_1, y1r); - psi_r_m7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_1, y1r); - psi_r_m7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_3, y1r); - psi_r_m7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_5, y1r); - psi_r_m7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_7, y1r); - psi_r_m7_m7 = _mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_7, y1r); + psi_r_m1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_5, y1r); + psi_r_m1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_3, y1r); + psi_r_m1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_1, y1r); + psi_r_m1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_1, y1r); + psi_r_m1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_3, y1r); + psi_r_m1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_5, y1r); + psi_r_m1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_7, y1r); + psi_r_m1_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_7, y1r); + psi_r_m3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_5, y1r); + psi_r_m3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_3, y1r); + psi_r_m3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_1, y1r); + psi_r_m3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_1, y1r); + psi_r_m3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_3, y1r); + psi_r_m3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_5, y1r); + psi_r_m3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_7, y1r); + psi_r_m3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_7, y1r); + psi_r_m5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_5, y1r); + psi_r_m5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_3, y1r); + psi_r_m5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_1, y1r); + psi_r_m5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_1, y1r); + psi_r_m5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_3, y1r); + psi_r_m5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_5, y1r); + psi_r_m5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_7, y1r); + psi_r_m5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_7, y1r); + psi_r_m7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_5, y1r); + psi_r_m7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_3, y1r); + psi_r_m7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_1, y1r); + psi_r_m7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_1, y1r); + psi_r_m7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_3, y1r); + psi_r_m7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_5, y1r); + psi_r_m7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_7, y1r); + psi_r_m7_m7 = simde_mm256_abs_epi16(xmm2); // Psi_i calculation from rho_rpi or rho_rmi - xmm2 = _mm256_subs_epi16(rho_rmi_7_7, y1i); - psi_i_p7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_7, y1i); - psi_i_p7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_7, y1i); - psi_i_p7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_7, y1i); - psi_i_p7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_7, y1i); - psi_i_p7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_7, y1i); - psi_i_p7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_7, y1i); - psi_i_p7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_7, y1i); - psi_i_p7_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_5, y1i); - psi_i_p5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_5, y1i); - psi_i_p5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_5, y1i); - psi_i_p5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_5, y1i); - psi_i_p5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_5, y1i); - psi_i_p5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_5, y1i); - psi_i_p5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_5, y1i); - psi_i_p5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_5, y1i); - psi_i_p5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_3, y1i); - psi_i_p3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_3, y1i); - psi_i_p3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_3, y1i); - psi_i_p3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_3, y1i); - psi_i_p3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_3, y1i); - psi_i_p3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_3, y1i); - psi_i_p3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_3, y1i); - psi_i_p3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_3, y1i); - psi_i_p3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_1, y1i); - psi_i_p1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_1, y1i); - psi_i_p1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_1, y1i); - psi_i_p1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_1, y1i); - psi_i_p1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_1, y1i); - psi_i_p1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_1, y1i); - psi_i_p1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_1, y1i); - psi_i_p1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_1, y1i); - psi_i_p1_m7 = _mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_7, y1i); + psi_i_p7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_7, y1i); + psi_i_p7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_7, y1i); + psi_i_p7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_7, y1i); + psi_i_p7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_7, y1i); + psi_i_p7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_7, y1i); + psi_i_p7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_7, y1i); + psi_i_p7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_7, y1i); + psi_i_p7_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_5, y1i); + psi_i_p5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_5, y1i); + psi_i_p5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_5, y1i); + psi_i_p5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_5, y1i); + psi_i_p5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_5, y1i); + psi_i_p5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_5, y1i); + psi_i_p5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_5, y1i); + psi_i_p5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_5, y1i); + psi_i_p5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_3, y1i); + psi_i_p3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_3, y1i); + psi_i_p3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_3, y1i); + psi_i_p3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_3, y1i); + psi_i_p3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_3, y1i); + psi_i_p3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_3, y1i); + psi_i_p3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_3, y1i); + psi_i_p3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_3, y1i); + psi_i_p3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_1, y1i); + psi_i_p1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_1, y1i); + psi_i_p1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_1, y1i); + psi_i_p1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_1, y1i); + psi_i_p1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_1, y1i); + psi_i_p1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_1, y1i); + psi_i_p1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_1, y1i); + psi_i_p1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_1, y1i); + psi_i_p1_m7 = simde_mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_1, y1i); - psi_i_m1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_1, y1i); - psi_i_m1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_1, y1i); - psi_i_m1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_1, y1i); - psi_i_m1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_1, y1i); - psi_i_m1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_1, y1i); - psi_i_m1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_1, y1i); - psi_i_m1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_1, y1i); - psi_i_m1_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_3, y1i); - psi_i_m3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_3, y1i); - psi_i_m3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_3, y1i); - psi_i_m3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_3, y1i); - psi_i_m3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_3, y1i); - psi_i_m3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_3, y1i); - psi_i_m3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_3, y1i); - psi_i_m3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_3, y1i); - psi_i_m3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_5, y1i); - psi_i_m5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_5, y1i); - psi_i_m5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_5, y1i); - psi_i_m5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_5, y1i); - psi_i_m5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_5, y1i); - psi_i_m5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_5, y1i); - psi_i_m5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_5, y1i); - psi_i_m5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_5, y1i); - psi_i_m5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_7, y1i); - psi_i_m7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_7, y1i); - psi_i_m7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_7, y1i); - psi_i_m7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_7, y1i); - psi_i_m7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_7, y1i); - psi_i_m7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_7, y1i); - psi_i_m7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_7, y1i); - psi_i_m7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_7, y1i); - psi_i_m7_m7 = _mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_1, y1i); + psi_i_m1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_1, y1i); + psi_i_m1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_1, y1i); + psi_i_m1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_1, y1i); + psi_i_m1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_1, y1i); + psi_i_m1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_1, y1i); + psi_i_m1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_1, y1i); + psi_i_m1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_1, y1i); + psi_i_m1_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_3, y1i); + psi_i_m3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_3, y1i); + psi_i_m3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_3, y1i); + psi_i_m3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_3, y1i); + psi_i_m3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_3, y1i); + psi_i_m3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_3, y1i); + psi_i_m3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_3, y1i); + psi_i_m3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_3, y1i); + psi_i_m3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_5, y1i); + psi_i_m5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_5, y1i); + psi_i_m5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_5, y1i); + psi_i_m5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_5, y1i); + psi_i_m5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_5, y1i); + psi_i_m5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_5, y1i); + psi_i_m5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_5, y1i); + psi_i_m5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_5, y1i); + psi_i_m5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_7, y1i); + psi_i_m7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_7, y1i); + psi_i_m7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_7, y1i); + psi_i_m7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_7, y1i); + psi_i_m7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_7, y1i); + psi_i_m7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_7, y1i); + psi_i_m7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_7, y1i); + psi_i_m7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_7, y1i); + psi_i_m7_m7 = simde_mm256_abs_epi16(xmm2); /* // Rearrange desired MF output xmm0 = stream0_128i_in[i]; xmm1 = stream0_128i_in[i+1]; - xmm0 = _mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)] //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)] - y0r = _mm256_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)] - y0i = _mm256_unpackhi_epi64(xmm0,xmm1); + y0r = simde_mm256_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)] + y0i = simde_mm256_unpackhi_epi64(xmm0,xmm1); */ seperate_real_imag_parts(&y0r, &y0i, stream0_256i_in[i], stream0_256i_in[i+1]); @@ -1093,13 +1093,13 @@ void qam64_qam16_avx2(short *stream0_in, // Rearrange desired channel magnitudes xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10)) xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10)) - xmm2 = _mm256_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm2 = _mm256_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm2 = _mm256_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm3 = _mm256_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm3 = _mm256_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm3 = _mm256_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); - ch_mag_des = _mm256_unpacklo_epi64(xmm2,xmm3); + xmm2 = simde_mm256_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm2 = simde_mm256_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm2 = simde_mm256_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm3 = simde_mm256_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm3 = simde_mm256_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm3 = simde_mm256_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); + ch_mag_des = simde_mm256_unpacklo_epi64(xmm2,xmm3); */ seperate_real_imag_parts(&ch_mag_des, &xmm2, ch_mag_256i[i], ch_mag_256i[i+1]); @@ -1108,64 +1108,64 @@ void qam64_qam16_avx2(short *stream0_in, /* xmm2 = ch_mag_128i_i[i]; xmm3 = ch_mag_128i_i[i+1]; - xmm2 = _mm256_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm2 = _mm256_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm2 = _mm256_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm3 = _mm256_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm3 = _mm256_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm3 = _mm256_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); - ch_mag_int = _mm256_unpacklo_epi64(xmm2,xmm3); + xmm2 = simde_mm256_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm2 = simde_mm256_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm2 = simde_mm256_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm3 = simde_mm256_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm3 = simde_mm256_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm3 = simde_mm256_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3)); + ch_mag_int = simde_mm256_unpacklo_epi64(xmm2,xmm3); */ seperate_real_imag_parts(&ch_mag_int, &xmm2, ch_mag_256i_i[i], ch_mag_256i_i[i+1]); - y0r_one_over_sqrt_21 = _mm256_mulhi_epi16(y0r, ONE_OVER_SQRT_42); - y0r_three_over_sqrt_21 = _mm256_mulhi_epi16(y0r, THREE_OVER_SQRT_42); - y0r_five_over_sqrt_21 = _mm256_mulhi_epi16(y0r, FIVE_OVER_SQRT_42); - y0r_five_over_sqrt_21 = _mm256_slli_epi16(y0r_five_over_sqrt_21, 1); - y0r_seven_over_sqrt_21 = _mm256_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42); - y0r_seven_over_sqrt_21 = _mm256_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14 + y0r_one_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, ONE_OVER_SQRT_42); + y0r_three_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, THREE_OVER_SQRT_42); + y0r_five_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, FIVE_OVER_SQRT_42); + y0r_five_over_sqrt_21 = simde_mm256_slli_epi16(y0r_five_over_sqrt_21, 1); + y0r_seven_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42); + y0r_seven_over_sqrt_21 = simde_mm256_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14 - y0i_one_over_sqrt_21 = _mm256_mulhi_epi16(y0i, ONE_OVER_SQRT_42); - y0i_three_over_sqrt_21 = _mm256_mulhi_epi16(y0i, THREE_OVER_SQRT_42); - y0i_five_over_sqrt_21 = _mm256_mulhi_epi16(y0i, FIVE_OVER_SQRT_42); - y0i_five_over_sqrt_21 = _mm256_slli_epi16(y0i_five_over_sqrt_21, 1); - y0i_seven_over_sqrt_21 = _mm256_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42); - y0i_seven_over_sqrt_21 = _mm256_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14 + y0i_one_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, ONE_OVER_SQRT_42); + y0i_three_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, THREE_OVER_SQRT_42); + y0i_five_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, FIVE_OVER_SQRT_42); + y0i_five_over_sqrt_21 = simde_mm256_slli_epi16(y0i_five_over_sqrt_21, 1); + y0i_seven_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42); + y0i_seven_over_sqrt_21 = simde_mm256_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14 - y0_p_7_1 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_7_3 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_7_5 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_7_7 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_p_5_1 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_5_3 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_5_5 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_5_7 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_p_3_1 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_3_3 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_3_5 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_3_7 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_p_1_1 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_1_3 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_1_5 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_1_7 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_7_1 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_7_3 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_7_5 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_7_7 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_5_1 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_5_3 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_5_5 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_5_7 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_3_1 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_3_3 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_3_5 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_3_7 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_1_1 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_1_3 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_1_5 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_1_7 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_1_1 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_1_3 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_1_5 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_1_7 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_3_1 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_3_3 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_3_5 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_3_7 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_5_1 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_5_3 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_5_5 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_5_7 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_7_1 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_7_3 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_7_5 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_7_7 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_1_1 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_1_3 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_1_5 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_1_7 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_3_1 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_3_3 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_3_5 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_3_7 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_5_1 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_5_3 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_5_5 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_5_7 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_7_1 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_7_3 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_7_5 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_7_7 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); interference_abs_epi16(psi_r_p7_p7, ch_mag_int, a_r_p7_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10); interference_abs_epi16(psi_r_p7_p5, ch_mag_int, a_r_p7_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10); @@ -1431,637 +1431,637 @@ void qam64_qam16_avx2(short *stream0_in, // Computing different multiples of ||h0||^2 // x=1, y=1 - ch_mag_2_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42); - ch_mag_2_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_2_over_42_with_sigma2,1); + ch_mag_2_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42); + ch_mag_2_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_2_over_42_with_sigma2,1); // x=1, y=3 - ch_mag_10_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42); - ch_mag_10_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_10_over_42_with_sigma2,1); + ch_mag_10_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42); + ch_mag_10_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_10_over_42_with_sigma2,1); // x=1, x=5 - ch_mag_26_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42); - ch_mag_26_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_26_over_42_with_sigma2,1); + ch_mag_26_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42); + ch_mag_26_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_26_over_42_with_sigma2,1); // x=1, y=7 - ch_mag_50_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); - ch_mag_50_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); + ch_mag_50_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); + ch_mag_50_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); // x=3, y=3 - ch_mag_18_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42); - ch_mag_18_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_18_over_42_with_sigma2,1); + ch_mag_18_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42); + ch_mag_18_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_18_over_42_with_sigma2,1); // x=3, y=5 - ch_mag_34_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42); - ch_mag_34_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_34_over_42_with_sigma2,1); + ch_mag_34_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42); + ch_mag_34_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_34_over_42_with_sigma2,1); // x=3, y=7 - ch_mag_58_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42); - ch_mag_58_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_58_over_42_with_sigma2,2); + ch_mag_58_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42); + ch_mag_58_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_58_over_42_with_sigma2,2); // x=5, y=5 - ch_mag_50_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); - ch_mag_50_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); + ch_mag_50_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); + ch_mag_50_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); // x=5, y=7 - ch_mag_74_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42); - ch_mag_74_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_74_over_42_with_sigma2,2); + ch_mag_74_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42); + ch_mag_74_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_74_over_42_with_sigma2,2); // x=7, y=7 - ch_mag_98_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42); - ch_mag_98_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_98_over_42_with_sigma2,2); + ch_mag_98_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42); + ch_mag_98_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_98_over_42_with_sigma2,2); // Computing Metrics - xmm0 = _mm256_subs_epi16(psi_a_p7_p7, a_sq_p7_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_7); - bit_met_p7_p7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_p5, a_sq_p7_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_5); - bit_met_p7_p5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_p3, a_sq_p7_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_3); - bit_met_p7_p3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_p1, a_sq_p7_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_1); - bit_met_p7_p1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m1, a_sq_p7_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_1); - bit_met_p7_m1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m3, a_sq_p7_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_3); - bit_met_p7_m3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m5, a_sq_p7_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_5); - bit_met_p7_m5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m7, a_sq_p7_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_7); - bit_met_p7_m7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p7, a_sq_p5_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_7); - bit_met_p5_p7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p5, a_sq_p5_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_5); - bit_met_p5_p5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p3, a_sq_p5_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_3); - bit_met_p5_p3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p1, a_sq_p5_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_1); - bit_met_p5_p1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m1, a_sq_p5_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_1); - bit_met_p5_m1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m3, a_sq_p5_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_3); - bit_met_p5_m3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m5, a_sq_p5_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_5); - bit_met_p5_m5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m7, a_sq_p5_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_7); - bit_met_p5_m7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p7, a_sq_p3_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_7); - bit_met_p3_p7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p5, a_sq_p3_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_5); - bit_met_p3_p5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p3, a_sq_p3_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_3); - bit_met_p3_p3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p1, a_sq_p3_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_1); - bit_met_p3_p1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m1, a_sq_p3_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_1); - bit_met_p3_m1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m3, a_sq_p3_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_3); - bit_met_p3_m3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m5, a_sq_p3_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_5); - bit_met_p3_m5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m7, a_sq_p3_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_7); - bit_met_p3_m7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p7, a_sq_p1_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_7); - bit_met_p1_p7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p5, a_sq_p1_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_5); - bit_met_p1_p5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p3, a_sq_p1_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_3); - bit_met_p1_p3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p1, a_sq_p1_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_1); - bit_met_p1_p1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m1, a_sq_p1_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_1); - bit_met_p1_m1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m3, a_sq_p1_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_3); - bit_met_p1_m3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m5, a_sq_p1_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_5); - bit_met_p1_m5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m7, a_sq_p1_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_7); - bit_met_p1_m7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p7, a_sq_p7_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_7); + bit_met_p7_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p5, a_sq_p7_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_5); + bit_met_p7_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p3, a_sq_p7_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_3); + bit_met_p7_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p1, a_sq_p7_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_1); + bit_met_p7_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m1, a_sq_p7_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_1); + bit_met_p7_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m3, a_sq_p7_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_3); + bit_met_p7_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m5, a_sq_p7_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_5); + bit_met_p7_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m7, a_sq_p7_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_7); + bit_met_p7_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p7, a_sq_p5_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_7); + bit_met_p5_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p5, a_sq_p5_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_5); + bit_met_p5_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p3, a_sq_p5_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_3); + bit_met_p5_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p1, a_sq_p5_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_1); + bit_met_p5_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m1, a_sq_p5_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_1); + bit_met_p5_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m3, a_sq_p5_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_3); + bit_met_p5_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m5, a_sq_p5_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_5); + bit_met_p5_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m7, a_sq_p5_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_7); + bit_met_p5_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p7, a_sq_p3_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_7); + bit_met_p3_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p5, a_sq_p3_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_5); + bit_met_p3_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p3, a_sq_p3_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_3); + bit_met_p3_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p1, a_sq_p3_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_1); + bit_met_p3_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m1, a_sq_p3_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_1); + bit_met_p3_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m3, a_sq_p3_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_3); + bit_met_p3_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m5, a_sq_p3_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_5); + bit_met_p3_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m7, a_sq_p3_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_7); + bit_met_p3_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p7, a_sq_p1_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_7); + bit_met_p1_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p5, a_sq_p1_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_5); + bit_met_p1_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p3, a_sq_p1_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_3); + bit_met_p1_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p1, a_sq_p1_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_1); + bit_met_p1_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m1, a_sq_p1_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_1); + bit_met_p1_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m3, a_sq_p1_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_3); + bit_met_p1_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m5, a_sq_p1_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_5); + bit_met_p1_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m7, a_sq_p1_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_7); + bit_met_p1_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p7, a_sq_m1_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_7); - bit_met_m1_p7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p5, a_sq_m1_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_5); - bit_met_m1_p5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p3, a_sq_m1_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_3); - bit_met_m1_p3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p1, a_sq_m1_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_1); - bit_met_m1_p1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m1, a_sq_m1_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_1); - bit_met_m1_m1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m3, a_sq_m1_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_3); - bit_met_m1_m3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m5, a_sq_m1_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_5); - bit_met_m1_m5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m7, a_sq_m1_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_7); - bit_met_m1_m7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p7, a_sq_m3_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_7); - bit_met_m3_p7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p5, a_sq_m3_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_5); - bit_met_m3_p5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p3, a_sq_m3_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_3); - bit_met_m3_p3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p1, a_sq_m3_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_1); - bit_met_m3_p1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m1, a_sq_m3_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_1); - bit_met_m3_m1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m3, a_sq_m3_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_3); - bit_met_m3_m3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m5, a_sq_m3_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_5); - bit_met_m3_m5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m7, a_sq_m3_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_7); - bit_met_m3_m7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p7, a_sq_m5_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_7); - bit_met_m5_p7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p5, a_sq_m5_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_5); - bit_met_m5_p5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p3, a_sq_m5_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_3); - bit_met_m5_p3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p1, a_sq_m5_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_1); - bit_met_m5_p1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m1, a_sq_m5_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_1); - bit_met_m5_m1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m3, a_sq_m5_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_3); - bit_met_m5_m3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m5, a_sq_m5_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_5); - bit_met_m5_m5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m7, a_sq_m5_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_7); - bit_met_m5_m7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p7, a_sq_m7_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_7); - bit_met_m7_p7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p5, a_sq_m7_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_5); - bit_met_m7_p5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p3, a_sq_m7_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_3); - bit_met_m7_p3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p1, a_sq_m7_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_1); - bit_met_m7_p1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m1, a_sq_m7_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_1); - bit_met_m7_m1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m3, a_sq_m7_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_3); - bit_met_m7_m3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m5, a_sq_m7_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_5); - bit_met_m7_m5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m7, a_sq_m7_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_7); - bit_met_m7_m7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p7, a_sq_m1_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_7); + bit_met_m1_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p5, a_sq_m1_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_5); + bit_met_m1_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p3, a_sq_m1_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_3); + bit_met_m1_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p1, a_sq_m1_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_1); + bit_met_m1_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m1, a_sq_m1_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_1); + bit_met_m1_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m3, a_sq_m1_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_3); + bit_met_m1_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m5, a_sq_m1_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_5); + bit_met_m1_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m7, a_sq_m1_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_7); + bit_met_m1_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p7, a_sq_m3_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_7); + bit_met_m3_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p5, a_sq_m3_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_5); + bit_met_m3_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p3, a_sq_m3_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_3); + bit_met_m3_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p1, a_sq_m3_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_1); + bit_met_m3_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m1, a_sq_m3_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_1); + bit_met_m3_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m3, a_sq_m3_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_3); + bit_met_m3_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m5, a_sq_m3_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_5); + bit_met_m3_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m7, a_sq_m3_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_7); + bit_met_m3_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p7, a_sq_m5_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_7); + bit_met_m5_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p5, a_sq_m5_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_5); + bit_met_m5_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p3, a_sq_m5_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_3); + bit_met_m5_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p1, a_sq_m5_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_1); + bit_met_m5_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m1, a_sq_m5_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_1); + bit_met_m5_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m3, a_sq_m5_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_3); + bit_met_m5_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m5, a_sq_m5_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_5); + bit_met_m5_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m7, a_sq_m5_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_7); + bit_met_m5_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p7, a_sq_m7_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_7); + bit_met_m7_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p5, a_sq_m7_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_5); + bit_met_m7_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p3, a_sq_m7_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_3); + bit_met_m7_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p1, a_sq_m7_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_1); + bit_met_m7_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m1, a_sq_m7_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_1); + bit_met_m7_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m3, a_sq_m7_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_3); + bit_met_m7_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m5, a_sq_m7_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_5); + bit_met_m7_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m7, a_sq_m7_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_7); + bit_met_m7_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); // Detection for 1st bit (LTE mapping) // bit = 1 - xmm0 = _mm256_max_epi16(bit_met_m7_p7, bit_met_m7_p5); - xmm1 = _mm256_max_epi16(bit_met_m7_p3, bit_met_m7_p1); - xmm2 = _mm256_max_epi16(bit_met_m7_m1, bit_met_m7_m3); - xmm3 = _mm256_max_epi16(bit_met_m7_m5, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m5_p5); - xmm1 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m5_p1); - xmm2 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m5_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m5_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m3_p7, bit_met_m3_p5); - xmm1 = _mm256_max_epi16(bit_met_m3_p3, bit_met_m3_p1); - xmm2 = _mm256_max_epi16(bit_met_m3_m1, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m3_m5, bit_met_m3_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m1_p5); - xmm1 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m1_m3); - xmm3 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m1_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m7_p7, bit_met_m7_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m7_p3, bit_met_m7_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m7_m1, bit_met_m7_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m7_m5, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m5_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m5_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m5_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m3_p7, bit_met_m3_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m3_p3, bit_met_m3_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m3_m1, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m3_m5, bit_met_m3_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m1_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m1_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m1_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); // bit = 0 - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p7_p5); - xmm1 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p7_p1); - xmm2 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p7_m3); - xmm3 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p5_p7, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p5_p3, bit_met_p5_p1); - xmm2 = _mm256_max_epi16(bit_met_p5_m1, bit_met_p5_m3); - xmm3 = _mm256_max_epi16(bit_met_p5_m5, bit_met_p5_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p3_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p3_p1); - xmm2 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p3_m3); - xmm3 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p3_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p1_p7, bit_met_p1_p5); - xmm1 = _mm256_max_epi16(bit_met_p1_p3, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_p1_m1, bit_met_p1_m3); - xmm3 = _mm256_max_epi16(bit_met_p1_m5, bit_met_p1_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p7_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p7_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p7_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p5_p7, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p5_p3, bit_met_p5_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p5_m1, bit_met_p5_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p5_m5, bit_met_p5_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p3_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p3_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p3_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p1_p7, bit_met_p1_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p1_p3, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p1_m1, bit_met_p1_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p1_m5, bit_met_p1_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y0r = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y0r = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 2nd bit (LTE mapping) // bit = 1 - xmm0 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); - xmm1 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); - xmm3 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); - xmm2 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); - xmm2 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); - xmm1 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); - xmm2 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); - xmm3 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); // bit = 0 - xmm0 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); - xmm1 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); - xmm3 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); - xmm2 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); - xmm2 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); - xmm1 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); - xmm2 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); - xmm3 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y1r = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y1r = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 3rd bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); - xmm1 = _mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); - xmm2 = _mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); - xmm3 = _mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); - xmm1 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); - xmm2 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); - xmm2 = _mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); - xmm3 = _mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); - xmm1 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); - xmm2 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); - xmm3 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); - xmm1 = _mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); - xmm2 = _mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); - xmm1 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); - xmm3 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); - xmm1 = _mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); - xmm3 = _mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); - xmm2 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); - xmm3 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y2r = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y2r = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 4th bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); - xmm1 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); - xmm2 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); - xmm3 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); - xmm2 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); - xmm2 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); - xmm1 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); - xmm2 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); - xmm3 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); - xmm1 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); - xmm3 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); - xmm2 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); - xmm1 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); - xmm3 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); - xmm2 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y0i = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y0i = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 5th bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); - xmm1 = _mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); - xmm2 = _mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); - xmm3 = _mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); - xmm1 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); - xmm3 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); - xmm1 = _mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); - xmm3 = _mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); - xmm1 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); - xmm2 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); - xmm3 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); - xmm1 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); - xmm2 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); - xmm1 = _mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); - xmm2 = _mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); - xmm2 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); - xmm3 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); - xmm2 = _mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); - xmm3 = _mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y1i = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y1i = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 6th bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); - xmm1 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); - xmm2 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); - xmm3 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); - xmm1 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); - xmm3 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); - xmm1 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); - xmm3 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); - xmm1 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); - xmm2 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); - xmm3 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); - xmm2 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); - xmm2 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); - xmm2 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); - xmm2 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y2i = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y2i = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // map to output stream, difficult to do in SIMD since we have 6 16bit LLRs // RE 1 @@ -2179,7 +2179,7 @@ void qam64_qam16_avx2(short *stream0_in, stream0_out[j + 94] = ((short *)&y1i)[15]; stream0_out[j + 95] = ((short *)&y2i)[15]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -2224,25 +2224,25 @@ void qam64_qam64_avx2(int32_t *stream0_in, __m256i *ch_mag_256i = (__m256i *)ch_mag; __m256i *ch_mag_256i_i = (__m256i *)ch_mag_i; - __m256i ONE_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(10112)); // round(1/sqrt(42)*2^16) - __m256i THREE_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(30337)); // round(3/sqrt(42)*2^16) - __m256i FIVE_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(25281)); // round(5/sqrt(42)*2^15) - __m256i SEVEN_OVER_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(17697)); // round(7/sqrt(42)*2^14) Q2.14 - __m256i ONE_OVER_SQRT_2 = _mm256_broadcastw_epi16(_mm_set1_epi16(23170)); // round(1/sqrt(2)*2^15) - __m256i ONE_OVER_SQRT_2_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(3575)); // round(1/sqrt(2*42)*2^15) - __m256i THREE_OVER_SQRT_2_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(10726)); // round(3/sqrt(2*42)*2^15) - __m256i FIVE_OVER_SQRT_2_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(17876)); // round(5/sqrt(2*42)*2^15) - __m256i SEVEN_OVER_SQRT_2_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(25027)); // round(7/sqrt(2*42)*2^15) - __m256i FORTYNINE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(30969)); // round(49/(4*sqrt(42))*2^14), Q2.14 - __m256i THIRTYSEVEN_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(23385)); // round(37/(4*sqrt(42))*2^14), Q2.14 - __m256i TWENTYFIVE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(31601)); // round(25/(4*sqrt(42))*2^15) - __m256i TWENTYNINE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(18329)); // round(29/(4*sqrt(42))*2^15), Q2.14 - __m256i SEVENTEEN_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(21489)); // round(17/(4*sqrt(42))*2^15) - __m256i NINE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(11376)); // round(9/(4*sqrt(42))*2^15) - __m256i THIRTEEN_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(16433)); // round(13/(4*sqrt(42))*2^15) - __m256i FIVE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(6320)); // round(5/(4*sqrt(42))*2^15) - __m256i ONE_OVER_FOUR_SQRT_42 = _mm256_broadcastw_epi16(_mm_set1_epi16(1264)); // round(1/(4*sqrt(42))*2^15) - __m256i SQRT_42_OVER_FOUR = _mm256_broadcastw_epi16(_mm_set1_epi16(13272)); // round(sqrt(42)/4*2^13), Q3.12 + __m256i ONE_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(10112)); // round(1/sqrt(42)*2^16) + __m256i THREE_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(30337)); // round(3/sqrt(42)*2^16) + __m256i FIVE_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(25281)); // round(5/sqrt(42)*2^15) + __m256i SEVEN_OVER_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(17697)); // round(7/sqrt(42)*2^14) Q2.14 + __m256i ONE_OVER_SQRT_2 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(23170)); // round(1/sqrt(2)*2^15) + __m256i ONE_OVER_SQRT_2_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(3575)); // round(1/sqrt(2*42)*2^15) + __m256i THREE_OVER_SQRT_2_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(10726)); // round(3/sqrt(2*42)*2^15) + __m256i FIVE_OVER_SQRT_2_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(17876)); // round(5/sqrt(2*42)*2^15) + __m256i SEVEN_OVER_SQRT_2_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(25027)); // round(7/sqrt(2*42)*2^15) + __m256i FORTYNINE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(30969)); // round(49/(4*sqrt(42))*2^14), Q2.14 + __m256i THIRTYSEVEN_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(23385)); // round(37/(4*sqrt(42))*2^14), Q2.14 + __m256i TWENTYFIVE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(31601)); // round(25/(4*sqrt(42))*2^15) + __m256i TWENTYNINE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(18329)); // round(29/(4*sqrt(42))*2^15), Q2.14 + __m256i SEVENTEEN_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(21489)); // round(17/(4*sqrt(42))*2^15) + __m256i NINE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(11376)); // round(9/(4*sqrt(42))*2^15) + __m256i THIRTEEN_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(16433)); // round(13/(4*sqrt(42))*2^15) + __m256i FIVE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(6320)); // round(5/(4*sqrt(42))*2^15) + __m256i ONE_OVER_FOUR_SQRT_42 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(1264)); // round(1/(4*sqrt(42))*2^15) + __m256i SQRT_42_OVER_FOUR = simde_mm256_broadcastw_epi16(_mm_set1_epi16(13272)); // round(sqrt(42)/4*2^13), Q3.12 __m256i ch_mag_des; __m256i ch_mag_int; @@ -2266,7 +2266,7 @@ void qam64_qam64_avx2(int32_t *stream0_in, __m256i ch_mag_int_with_sigma2; __m256i two_ch_mag_int_with_sigma2; __m256i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -2281,371 +2281,371 @@ void qam64_qam64_avx2(int32_t *stream0_in, /* xmm0 = rho01_256i[i]; xmm1 = rho01_256i[i+1]; - xmm0 = _mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); //xmm0 = [Re(0,1,2,3) Im(0,1,2,3) Re(4,5,6,7) Im(4,5,6,7)] //xmm0 = [Re(8,9,10,11) Im(8,9,10,11) Re(12,13,14,15) Im(12,13,14,15)] - xmm2 = _mm256_unpacklo_epi64(xmm0, xmm1); + xmm2 = simde_mm256_unpacklo_epi64(xmm0, xmm1); //xmm2 = [Re(0,1,2,3) Re(8,9,10,11) Re(4,5,6,7) Re(12,13,14,15)] - xmm2 = _mm256_permute4x64_epi64(xmm2,0xd8); // Re(rho) + xmm2 = simde_mm256_permute4x64_epi64(xmm2,0xd8); // Re(rho) - xmm3 = _mm256_unpackhi_epi64(xmm0, xmm1); + xmm3 = simde_mm256_unpackhi_epi64(xmm0, xmm1); //xmm3 = [Im(0,1,2,3) Im(8,9,10,11) Im(4,5,6,7) Im(12,13,14,15)] - xmm3 = _mm256_permute4x64_epi64(xmm3,0xd8); // Im(rho) + xmm3 = simde_mm256_permute4x64_epi64(xmm3,0xd8); // Im(rho) */ seperate_real_imag_parts(&xmm2, &xmm3, rho01_256i[i], rho01_256i[i+1]); - rho_rpi = _mm256_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho) - rho_rmi = _mm256_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho) + rho_rpi = simde_mm256_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho) + rho_rmi = simde_mm256_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho) // Compute the different rhos - rho_rpi_1_1 = _mm256_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42); - rho_rmi_1_1 = _mm256_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42); - rho_rpi_3_3 = _mm256_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42); - rho_rmi_3_3 = _mm256_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42); - rho_rpi_5_5 = _mm256_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42); - rho_rmi_5_5 = _mm256_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42); - rho_rpi_7_7 = _mm256_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42); - rho_rmi_7_7 = _mm256_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42); + rho_rpi_1_1 = simde_mm256_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42); + rho_rmi_1_1 = simde_mm256_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42); + rho_rpi_3_3 = simde_mm256_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42); + rho_rmi_3_3 = simde_mm256_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42); + rho_rpi_5_5 = simde_mm256_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42); + rho_rmi_5_5 = simde_mm256_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42); + rho_rpi_7_7 = simde_mm256_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42); + rho_rmi_7_7 = simde_mm256_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42); - rho_rpi_5_5 = _mm256_slli_epi16(rho_rpi_5_5, 1); - rho_rmi_5_5 = _mm256_slli_epi16(rho_rmi_5_5, 1); - rho_rpi_7_7 = _mm256_slli_epi16(rho_rpi_7_7, 2); - rho_rmi_7_7 = _mm256_slli_epi16(rho_rmi_7_7, 2); + rho_rpi_5_5 = simde_mm256_slli_epi16(rho_rpi_5_5, 1); + rho_rmi_5_5 = simde_mm256_slli_epi16(rho_rmi_5_5, 1); + rho_rpi_7_7 = simde_mm256_slli_epi16(rho_rpi_7_7, 2); + rho_rmi_7_7 = simde_mm256_slli_epi16(rho_rmi_7_7, 2); - xmm4 = _mm256_mulhi_epi16(xmm2, ONE_OVER_SQRT_42); - xmm5 = _mm256_mulhi_epi16(xmm3, ONE_OVER_SQRT_42); - xmm6 = _mm256_mulhi_epi16(xmm3, THREE_OVER_SQRT_42); - xmm7 = _mm256_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42); - xmm8 = _mm256_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42); - xmm7 = _mm256_slli_epi16(xmm7, 1); - xmm8 = _mm256_slli_epi16(xmm8, 2); + xmm4 = simde_mm256_mulhi_epi16(xmm2, ONE_OVER_SQRT_42); + xmm5 = simde_mm256_mulhi_epi16(xmm3, ONE_OVER_SQRT_42); + xmm6 = simde_mm256_mulhi_epi16(xmm3, THREE_OVER_SQRT_42); + xmm7 = simde_mm256_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42); + xmm8 = simde_mm256_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42); + xmm7 = simde_mm256_slli_epi16(xmm7, 1); + xmm8 = simde_mm256_slli_epi16(xmm8, 2); - rho_rpi_1_3 = _mm256_adds_epi16(xmm4, xmm6); - rho_rmi_1_3 = _mm256_subs_epi16(xmm4, xmm6); - rho_rpi_1_5 = _mm256_adds_epi16(xmm4, xmm7); - rho_rmi_1_5 = _mm256_subs_epi16(xmm4, xmm7); - rho_rpi_1_7 = _mm256_adds_epi16(xmm4, xmm8); - rho_rmi_1_7 = _mm256_subs_epi16(xmm4, xmm8); + rho_rpi_1_3 = simde_mm256_adds_epi16(xmm4, xmm6); + rho_rmi_1_3 = simde_mm256_subs_epi16(xmm4, xmm6); + rho_rpi_1_5 = simde_mm256_adds_epi16(xmm4, xmm7); + rho_rmi_1_5 = simde_mm256_subs_epi16(xmm4, xmm7); + rho_rpi_1_7 = simde_mm256_adds_epi16(xmm4, xmm8); + rho_rmi_1_7 = simde_mm256_subs_epi16(xmm4, xmm8); - xmm4 = _mm256_mulhi_epi16(xmm2, THREE_OVER_SQRT_42); - rho_rpi_3_1 = _mm256_adds_epi16(xmm4, xmm5); - rho_rmi_3_1 = _mm256_subs_epi16(xmm4, xmm5); - rho_rpi_3_5 = _mm256_adds_epi16(xmm4, xmm7); - rho_rmi_3_5 = _mm256_subs_epi16(xmm4, xmm7); - rho_rpi_3_7 = _mm256_adds_epi16(xmm4, xmm8); - rho_rmi_3_7 = _mm256_subs_epi16(xmm4, xmm8); + xmm4 = simde_mm256_mulhi_epi16(xmm2, THREE_OVER_SQRT_42); + rho_rpi_3_1 = simde_mm256_adds_epi16(xmm4, xmm5); + rho_rmi_3_1 = simde_mm256_subs_epi16(xmm4, xmm5); + rho_rpi_3_5 = simde_mm256_adds_epi16(xmm4, xmm7); + rho_rmi_3_5 = simde_mm256_subs_epi16(xmm4, xmm7); + rho_rpi_3_7 = simde_mm256_adds_epi16(xmm4, xmm8); + rho_rmi_3_7 = simde_mm256_subs_epi16(xmm4, xmm8); - xmm4 = _mm256_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42); - xmm4 = _mm256_slli_epi16(xmm4, 1); - rho_rpi_5_1 = _mm256_adds_epi16(xmm4, xmm5); - rho_rmi_5_1 = _mm256_subs_epi16(xmm4, xmm5); - rho_rpi_5_3 = _mm256_adds_epi16(xmm4, xmm6); - rho_rmi_5_3 = _mm256_subs_epi16(xmm4, xmm6); - rho_rpi_5_7 = _mm256_adds_epi16(xmm4, xmm8); - rho_rmi_5_7 = _mm256_subs_epi16(xmm4, xmm8); + xmm4 = simde_mm256_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42); + xmm4 = simde_mm256_slli_epi16(xmm4, 1); + rho_rpi_5_1 = simde_mm256_adds_epi16(xmm4, xmm5); + rho_rmi_5_1 = simde_mm256_subs_epi16(xmm4, xmm5); + rho_rpi_5_3 = simde_mm256_adds_epi16(xmm4, xmm6); + rho_rmi_5_3 = simde_mm256_subs_epi16(xmm4, xmm6); + rho_rpi_5_7 = simde_mm256_adds_epi16(xmm4, xmm8); + rho_rmi_5_7 = simde_mm256_subs_epi16(xmm4, xmm8); - xmm4 = _mm256_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42); - xmm4 = _mm256_slli_epi16(xmm4, 2); - rho_rpi_7_1 = _mm256_adds_epi16(xmm4, xmm5); - rho_rmi_7_1 = _mm256_subs_epi16(xmm4, xmm5); - rho_rpi_7_3 = _mm256_adds_epi16(xmm4, xmm6); - rho_rmi_7_3 = _mm256_subs_epi16(xmm4, xmm6); - rho_rpi_7_5 = _mm256_adds_epi16(xmm4, xmm7); - rho_rmi_7_5 = _mm256_subs_epi16(xmm4, xmm7); + xmm4 = simde_mm256_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42); + xmm4 = simde_mm256_slli_epi16(xmm4, 2); + rho_rpi_7_1 = simde_mm256_adds_epi16(xmm4, xmm5); + rho_rmi_7_1 = simde_mm256_subs_epi16(xmm4, xmm5); + rho_rpi_7_3 = simde_mm256_adds_epi16(xmm4, xmm6); + rho_rmi_7_3 = simde_mm256_subs_epi16(xmm4, xmm6); + rho_rpi_7_5 = simde_mm256_adds_epi16(xmm4, xmm7); + rho_rmi_7_5 = simde_mm256_subs_epi16(xmm4, xmm7); // Rearrange interfering MF output /* xmm0 = stream1_256i_in[i]; xmm1 = stream1_256i_in[i+1]; - xmm0 = _mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm0 = _mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm0 = simde_mm256_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - xmm1 = _mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); + xmm1 = simde_mm256_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3)); - y1r = _mm256_unpacklo_epi64(xmm0, xmm1); - y1r = _mm256_permute4x64_epi64(y1r,0xd8); // Re(y1) + y1r = simde_mm256_unpacklo_epi64(xmm0, xmm1); + y1r = simde_mm256_permute4x64_epi64(y1r,0xd8); // Re(y1) - y1i = _mm256_unpackhi_epi64(xmm0, xmm1); - y1i = _mm256_permute4x64_epi64(y1i,0xd8); // Im(y1) + y1i = simde_mm256_unpackhi_epi64(xmm0, xmm1); + y1i = simde_mm256_permute4x64_epi64(y1i,0xd8); // Im(y1) */ seperate_real_imag_parts(&y1r, &y1i, stream1_256i_in[i], stream1_256i_in[i+1]); // Psi_r calculation from rho_rpi or rho_rmi - xmm0 = _mm256_broadcastw_epi16(_mm_set1_epi16(0));// ZERO for abs_pi16 - xmm2 = _mm256_subs_epi16(rho_rpi_7_7, y1r); + xmm0 = simde_mm256_broadcastw_epi16(_mm_set1_epi16(0));// ZERO for abs_pi16 + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_7, y1r); - psi_r_p7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_5, y1r); - psi_r_p7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_3, y1r); - psi_r_p7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_1, y1r); - psi_r_p7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_1, y1r); - psi_r_p7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_3, y1r); - psi_r_p7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_5, y1r); - psi_r_p7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_7, y1r); - psi_r_p7_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_7, y1r); - psi_r_p5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_5, y1r); - psi_r_p5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_3, y1r); - psi_r_p5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_1, y1r); - psi_r_p5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_1, y1r); - psi_r_p5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_3, y1r); - psi_r_p5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_5, y1r); - psi_r_p5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_7, y1r); - psi_r_p5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_7, y1r); - psi_r_p3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_5, y1r); - psi_r_p3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_3, y1r); - psi_r_p3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_1, y1r); - psi_r_p3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_1, y1r); - psi_r_p3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_3, y1r); - psi_r_p3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_5, y1r); - psi_r_p3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_7, y1r); - psi_r_p3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_7, y1r); - psi_r_p1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_5, y1r); - psi_r_p1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_3, y1r); - psi_r_p1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_1, y1r); - psi_r_p1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_1, y1r); - psi_r_p1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_3, y1r); - psi_r_p1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_5, y1r); - psi_r_p1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_7, y1r); - psi_r_p1_m7 = _mm256_abs_epi16(xmm2); + psi_r_p7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_5, y1r); + psi_r_p7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_3, y1r); + psi_r_p7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_1, y1r); + psi_r_p7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_1, y1r); + psi_r_p7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_3, y1r); + psi_r_p7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_5, y1r); + psi_r_p7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_7, y1r); + psi_r_p7_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_7, y1r); + psi_r_p5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_5, y1r); + psi_r_p5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_3, y1r); + psi_r_p5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_1, y1r); + psi_r_p5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_1, y1r); + psi_r_p5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_3, y1r); + psi_r_p5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_5, y1r); + psi_r_p5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_7, y1r); + psi_r_p5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_7, y1r); + psi_r_p3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_5, y1r); + psi_r_p3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_3, y1r); + psi_r_p3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_1, y1r); + psi_r_p3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_1, y1r); + psi_r_p3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_3, y1r); + psi_r_p3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_5, y1r); + psi_r_p3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_7, y1r); + psi_r_p3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_7, y1r); + psi_r_p1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_5, y1r); + psi_r_p1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_3, y1r); + psi_r_p1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_1, y1r); + psi_r_p1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_1, y1r); + psi_r_p1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_3, y1r); + psi_r_p1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_5, y1r); + psi_r_p1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_7, y1r); + psi_r_p1_m7 = simde_mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_7, y1r); - psi_r_m1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_5, y1r); - psi_r_m1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_3, y1r); - psi_r_m1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_1, y1r); - psi_r_m1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_1, y1r); - psi_r_m1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_3, y1r); - psi_r_m1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_5, y1r); - psi_r_m1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_7, y1r); - psi_r_m1_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_7, y1r); - psi_r_m3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_5, y1r); - psi_r_m3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_3, y1r); - psi_r_m3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_1, y1r); - psi_r_m3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_1, y1r); - psi_r_m3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_3, y1r); - psi_r_m3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_5, y1r); - psi_r_m3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_7, y1r); - psi_r_m3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_7, y1r); - psi_r_m5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_5, y1r); - psi_r_m5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_3, y1r); - psi_r_m5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_1, y1r); - psi_r_m5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_1, y1r); - psi_r_m5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_3, y1r); - psi_r_m5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_5, y1r); - psi_r_m5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_7, y1r); - psi_r_m5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_7, y1r); - psi_r_m7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_5, y1r); - psi_r_m7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_3, y1r); - psi_r_m7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_1, y1r); - psi_r_m7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_1, y1r); - psi_r_m7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_3, y1r); - psi_r_m7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_5, y1r); - psi_r_m7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_7, y1r); - psi_r_m7_m7 = _mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_7, y1r); + psi_r_m1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_5, y1r); + psi_r_m1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_3, y1r); + psi_r_m1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_1, y1r); + psi_r_m1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_1, y1r); + psi_r_m1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_3, y1r); + psi_r_m1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_5, y1r); + psi_r_m1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_7, y1r); + psi_r_m1_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_7, y1r); + psi_r_m3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_5, y1r); + psi_r_m3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_3, y1r); + psi_r_m3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_1, y1r); + psi_r_m3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_1, y1r); + psi_r_m3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_3, y1r); + psi_r_m3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_5, y1r); + psi_r_m3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_7, y1r); + psi_r_m3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_7, y1r); + psi_r_m5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_5, y1r); + psi_r_m5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_3, y1r); + psi_r_m5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_1, y1r); + psi_r_m5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_1, y1r); + psi_r_m5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_3, y1r); + psi_r_m5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_5, y1r); + psi_r_m5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_7, y1r); + psi_r_m5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_7, y1r); + psi_r_m7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_5, y1r); + psi_r_m7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_3, y1r); + psi_r_m7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_1, y1r); + psi_r_m7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_1, y1r); + psi_r_m7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_3, y1r); + psi_r_m7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_5, y1r); + psi_r_m7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_7, y1r); + psi_r_m7_m7 = simde_mm256_abs_epi16(xmm2); // Psi_i calculation from rho_rpi or rho_rmi - xmm2 = _mm256_subs_epi16(rho_rmi_7_7, y1i); - psi_i_p7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_7, y1i); - psi_i_p7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_7, y1i); - psi_i_p7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_7, y1i); - psi_i_p7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_7, y1i); - psi_i_p7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_7, y1i); - psi_i_p7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_7, y1i); - psi_i_p7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_7, y1i); - psi_i_p7_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_5, y1i); - psi_i_p5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_5, y1i); - psi_i_p5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_5, y1i); - psi_i_p5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_5, y1i); - psi_i_p5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_5, y1i); - psi_i_p5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_5, y1i); - psi_i_p5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_5, y1i); - psi_i_p5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_5, y1i); - psi_i_p5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_3, y1i); - psi_i_p3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_3, y1i); - psi_i_p3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_3, y1i); - psi_i_p3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_3, y1i); - psi_i_p3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_3, y1i); - psi_i_p3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_3, y1i); - psi_i_p3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_3, y1i); - psi_i_p3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_3, y1i); - psi_i_p3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_7_1, y1i); - psi_i_p1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_5_1, y1i); - psi_i_p1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_3_1, y1i); - psi_i_p1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rmi_1_1, y1i); - psi_i_p1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_1_1, y1i); - psi_i_p1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_3_1, y1i); - psi_i_p1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_5_1, y1i); - psi_i_p1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rpi_7_1, y1i); - psi_i_p1_m7 = _mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_7, y1i); + psi_i_p7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_7, y1i); + psi_i_p7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_7, y1i); + psi_i_p7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_7, y1i); + psi_i_p7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_7, y1i); + psi_i_p7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_7, y1i); + psi_i_p7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_7, y1i); + psi_i_p7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_7, y1i); + psi_i_p7_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_5, y1i); + psi_i_p5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_5, y1i); + psi_i_p5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_5, y1i); + psi_i_p5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_5, y1i); + psi_i_p5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_5, y1i); + psi_i_p5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_5, y1i); + psi_i_p5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_5, y1i); + psi_i_p5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_5, y1i); + psi_i_p5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_3, y1i); + psi_i_p3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_3, y1i); + psi_i_p3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_3, y1i); + psi_i_p3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_3, y1i); + psi_i_p3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_3, y1i); + psi_i_p3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_3, y1i); + psi_i_p3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_3, y1i); + psi_i_p3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_3, y1i); + psi_i_p3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_7_1, y1i); + psi_i_p1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_5_1, y1i); + psi_i_p1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_3_1, y1i); + psi_i_p1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rmi_1_1, y1i); + psi_i_p1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_1_1, y1i); + psi_i_p1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_3_1, y1i); + psi_i_p1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_5_1, y1i); + psi_i_p1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rpi_7_1, y1i); + psi_i_p1_m7 = simde_mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_1, y1i); - psi_i_m1_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_1, y1i); - psi_i_m1_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_1, y1i); - psi_i_m1_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_1, y1i); - psi_i_m1_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_1, y1i); - psi_i_m1_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_1, y1i); - psi_i_m1_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_1, y1i); - psi_i_m1_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_1, y1i); - psi_i_m1_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_3, y1i); - psi_i_m3_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_3, y1i); - psi_i_m3_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_3, y1i); - psi_i_m3_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_3, y1i); - psi_i_m3_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_3, y1i); - psi_i_m3_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_3, y1i); - psi_i_m3_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_3, y1i); - psi_i_m3_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_3, y1i); - psi_i_m3_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_5, y1i); - psi_i_m5_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_5, y1i); - psi_i_m5_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_5, y1i); - psi_i_m5_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_5, y1i); - psi_i_m5_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_5, y1i); - psi_i_m5_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_5, y1i); - psi_i_m5_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_5, y1i); - psi_i_m5_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_5, y1i); - psi_i_m5_m7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_7_7, y1i); - psi_i_m7_p7 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_5_7, y1i); - psi_i_m7_p5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_3_7, y1i); - psi_i_m7_p3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_subs_epi16(rho_rpi_1_7, y1i); - psi_i_m7_p1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_1_7, y1i); - psi_i_m7_m1 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_3_7, y1i); - psi_i_m7_m3 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_5_7, y1i); - psi_i_m7_m5 = _mm256_abs_epi16(xmm2); - xmm2 = _mm256_adds_epi16(rho_rmi_7_7, y1i); - psi_i_m7_m7 = _mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_1, y1i); + psi_i_m1_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_1, y1i); + psi_i_m1_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_1, y1i); + psi_i_m1_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_1, y1i); + psi_i_m1_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_1, y1i); + psi_i_m1_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_1, y1i); + psi_i_m1_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_1, y1i); + psi_i_m1_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_1, y1i); + psi_i_m1_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_3, y1i); + psi_i_m3_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_3, y1i); + psi_i_m3_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_3, y1i); + psi_i_m3_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_3, y1i); + psi_i_m3_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_3, y1i); + psi_i_m3_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_3, y1i); + psi_i_m3_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_3, y1i); + psi_i_m3_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_3, y1i); + psi_i_m3_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_5, y1i); + psi_i_m5_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_5, y1i); + psi_i_m5_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_5, y1i); + psi_i_m5_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_5, y1i); + psi_i_m5_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_5, y1i); + psi_i_m5_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_5, y1i); + psi_i_m5_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_5, y1i); + psi_i_m5_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_5, y1i); + psi_i_m5_m7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_7_7, y1i); + psi_i_m7_p7 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_5_7, y1i); + psi_i_m7_p5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_3_7, y1i); + psi_i_m7_p3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_subs_epi16(rho_rpi_1_7, y1i); + psi_i_m7_p1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_1_7, y1i); + psi_i_m7_m1 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_3_7, y1i); + psi_i_m7_m3 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_5_7, y1i); + psi_i_m7_m5 = simde_mm256_abs_epi16(xmm2); + xmm2 = simde_mm256_adds_epi16(rho_rmi_7_7, y1i); + psi_i_m7_m7 = simde_mm256_abs_epi16(xmm2); /* // Rearrange desired MF output @@ -2695,59 +2695,59 @@ void qam64_qam64_avx2(int32_t *stream0_in, */ seperate_real_imag_parts(&ch_mag_int, &xmm2, ch_mag_256i_i[i], ch_mag_256i_i[i+1]); - y0r_one_over_sqrt_21 = _mm256_mulhi_epi16(y0r, ONE_OVER_SQRT_42); - y0r_three_over_sqrt_21 = _mm256_mulhi_epi16(y0r, THREE_OVER_SQRT_42); - y0r_five_over_sqrt_21 = _mm256_mulhi_epi16(y0r, FIVE_OVER_SQRT_42); - y0r_five_over_sqrt_21 = _mm256_slli_epi16(y0r_five_over_sqrt_21, 1); - y0r_seven_over_sqrt_21 = _mm256_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42); - y0r_seven_over_sqrt_21 = _mm256_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14 + y0r_one_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, ONE_OVER_SQRT_42); + y0r_three_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, THREE_OVER_SQRT_42); + y0r_five_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, FIVE_OVER_SQRT_42); + y0r_five_over_sqrt_21 = simde_mm256_slli_epi16(y0r_five_over_sqrt_21, 1); + y0r_seven_over_sqrt_21 = simde_mm256_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42); + y0r_seven_over_sqrt_21 = simde_mm256_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14 - y0i_one_over_sqrt_21 = _mm256_mulhi_epi16(y0i, ONE_OVER_SQRT_42); - y0i_three_over_sqrt_21 = _mm256_mulhi_epi16(y0i, THREE_OVER_SQRT_42); - y0i_five_over_sqrt_21 = _mm256_mulhi_epi16(y0i, FIVE_OVER_SQRT_42); - y0i_five_over_sqrt_21 = _mm256_slli_epi16(y0i_five_over_sqrt_21, 1); - y0i_seven_over_sqrt_21 = _mm256_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42); - y0i_seven_over_sqrt_21 = _mm256_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14 + y0i_one_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, ONE_OVER_SQRT_42); + y0i_three_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, THREE_OVER_SQRT_42); + y0i_five_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, FIVE_OVER_SQRT_42); + y0i_five_over_sqrt_21 = simde_mm256_slli_epi16(y0i_five_over_sqrt_21, 1); + y0i_seven_over_sqrt_21 = simde_mm256_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42); + y0i_seven_over_sqrt_21 = simde_mm256_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14 - y0_p_7_1 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_7_3 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_7_5 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_7_7 = _mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_p_5_1 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_5_3 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_5_5 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_5_7 = _mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_p_3_1 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_3_3 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_3_5 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_3_7 = _mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_p_1_1 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); - y0_p_1_3 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); - y0_p_1_5 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); - y0_p_1_7 = _mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_7_1 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_7_3 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_7_5 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_7_7 = simde_mm256_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_5_1 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_5_3 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_5_5 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_5_7 = simde_mm256_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_3_1 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_3_3 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_3_5 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_3_7 = simde_mm256_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_p_1_1 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); + y0_p_1_3 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); + y0_p_1_5 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); + y0_p_1_7 = simde_mm256_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_1_1 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_1_3 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_1_5 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_1_7 = _mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_3_1 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_3_3 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_3_5 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_3_7 = _mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_5_1 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_5_3 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_5_5 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_5_7 = _mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); - y0_m_7_1 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); - y0_m_7_3 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); - y0_m_7_5 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); - y0_m_7_7 = _mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_1_1 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_1_3 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_1_5 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_1_7 = simde_mm256_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_3_1 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_3_3 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_3_5 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_3_7 = simde_mm256_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_5_1 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_5_3 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_5_5 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_5_7 = simde_mm256_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21); + y0_m_7_1 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21); + y0_m_7_3 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21); + y0_m_7_5 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21); + y0_m_7_7 = simde_mm256_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21); // Detection of interference term - ch_mag_int_with_sigma2 = _mm256_srai_epi16(ch_mag_int, 1); // *2 + ch_mag_int_with_sigma2 = simde_mm256_srai_epi16(ch_mag_int, 1); // *2 two_ch_mag_int_with_sigma2 = ch_mag_int; // *4 - three_ch_mag_int_with_sigma2 = _mm256_adds_epi16(ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2); // *6 + three_ch_mag_int_with_sigma2 = simde_mm256_adds_epi16(ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2); // *6 interference_abs_64qam_epi16(psi_r_p7_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42, SEVEN_OVER_SQRT_2_42); @@ -3074,134 +3074,134 @@ void qam64_qam64_avx2(int32_t *stream0_in, prodsum_psi_a_epi16(psi_r_m7_m7, a_r_m7_m7, psi_i_m7_m7, a_i_m7_m7, psi_a_m7_m7); // Multiply by sqrt(2) - psi_a_p7_p7 = _mm256_mulhi_epi16(psi_a_p7_p7, ONE_OVER_SQRT_2); - psi_a_p7_p7 = _mm256_slli_epi16(psi_a_p7_p7, 2); - psi_a_p7_p5 = _mm256_mulhi_epi16(psi_a_p7_p5, ONE_OVER_SQRT_2); - psi_a_p7_p5 = _mm256_slli_epi16(psi_a_p7_p5, 2); - psi_a_p7_p3 = _mm256_mulhi_epi16(psi_a_p7_p3, ONE_OVER_SQRT_2); - psi_a_p7_p3 = _mm256_slli_epi16(psi_a_p7_p3, 2); - psi_a_p7_p1 = _mm256_mulhi_epi16(psi_a_p7_p1, ONE_OVER_SQRT_2); - psi_a_p7_p1 = _mm256_slli_epi16(psi_a_p7_p1, 2); - psi_a_p7_m1 = _mm256_mulhi_epi16(psi_a_p7_m1, ONE_OVER_SQRT_2); - psi_a_p7_m1 = _mm256_slli_epi16(psi_a_p7_m1, 2); - psi_a_p7_m3 = _mm256_mulhi_epi16(psi_a_p7_m3, ONE_OVER_SQRT_2); - psi_a_p7_m3 = _mm256_slli_epi16(psi_a_p7_m3, 2); - psi_a_p7_m5 = _mm256_mulhi_epi16(psi_a_p7_m5, ONE_OVER_SQRT_2); - psi_a_p7_m5 = _mm256_slli_epi16(psi_a_p7_m5, 2); - psi_a_p7_m7 = _mm256_mulhi_epi16(psi_a_p7_m7, ONE_OVER_SQRT_2); - psi_a_p7_m7 = _mm256_slli_epi16(psi_a_p7_m7, 2); - psi_a_p5_p7 = _mm256_mulhi_epi16(psi_a_p5_p7, ONE_OVER_SQRT_2); - psi_a_p5_p7 = _mm256_slli_epi16(psi_a_p5_p7, 2); - psi_a_p5_p5 = _mm256_mulhi_epi16(psi_a_p5_p5, ONE_OVER_SQRT_2); - psi_a_p5_p5 = _mm256_slli_epi16(psi_a_p5_p5, 2); - psi_a_p5_p3 = _mm256_mulhi_epi16(psi_a_p5_p3, ONE_OVER_SQRT_2); - psi_a_p5_p3 = _mm256_slli_epi16(psi_a_p5_p3, 2); - psi_a_p5_p1 = _mm256_mulhi_epi16(psi_a_p5_p1, ONE_OVER_SQRT_2); - psi_a_p5_p1 = _mm256_slli_epi16(psi_a_p5_p1, 2); - psi_a_p5_m1 = _mm256_mulhi_epi16(psi_a_p5_m1, ONE_OVER_SQRT_2); - psi_a_p5_m1 = _mm256_slli_epi16(psi_a_p5_m1, 2); - psi_a_p5_m3 = _mm256_mulhi_epi16(psi_a_p5_m3, ONE_OVER_SQRT_2); - psi_a_p5_m3 = _mm256_slli_epi16(psi_a_p5_m3, 2); - psi_a_p5_m5 = _mm256_mulhi_epi16(psi_a_p5_m5, ONE_OVER_SQRT_2); - psi_a_p5_m5 = _mm256_slli_epi16(psi_a_p5_m5, 2); - psi_a_p5_m7 = _mm256_mulhi_epi16(psi_a_p5_m7, ONE_OVER_SQRT_2); - psi_a_p5_m7 = _mm256_slli_epi16(psi_a_p5_m7, 2); - psi_a_p3_p7 = _mm256_mulhi_epi16(psi_a_p3_p7, ONE_OVER_SQRT_2); - psi_a_p3_p7 = _mm256_slli_epi16(psi_a_p3_p7, 2); - psi_a_p3_p5 = _mm256_mulhi_epi16(psi_a_p3_p5, ONE_OVER_SQRT_2); - psi_a_p3_p5 = _mm256_slli_epi16(psi_a_p3_p5, 2); - psi_a_p3_p3 = _mm256_mulhi_epi16(psi_a_p3_p3, ONE_OVER_SQRT_2); - psi_a_p3_p3 = _mm256_slli_epi16(psi_a_p3_p3, 2); - psi_a_p3_p1 = _mm256_mulhi_epi16(psi_a_p3_p1, ONE_OVER_SQRT_2); - psi_a_p3_p1 = _mm256_slli_epi16(psi_a_p3_p1, 2); - psi_a_p3_m1 = _mm256_mulhi_epi16(psi_a_p3_m1, ONE_OVER_SQRT_2); - psi_a_p3_m1 = _mm256_slli_epi16(psi_a_p3_m1, 2); - psi_a_p3_m3 = _mm256_mulhi_epi16(psi_a_p3_m3, ONE_OVER_SQRT_2); - psi_a_p3_m3 = _mm256_slli_epi16(psi_a_p3_m3, 2); - psi_a_p3_m5 = _mm256_mulhi_epi16(psi_a_p3_m5, ONE_OVER_SQRT_2); - psi_a_p3_m5 = _mm256_slli_epi16(psi_a_p3_m5, 2); - psi_a_p3_m7 = _mm256_mulhi_epi16(psi_a_p3_m7, ONE_OVER_SQRT_2); - psi_a_p3_m7 = _mm256_slli_epi16(psi_a_p3_m7, 2); - psi_a_p1_p7 = _mm256_mulhi_epi16(psi_a_p1_p7, ONE_OVER_SQRT_2); - psi_a_p1_p7 = _mm256_slli_epi16(psi_a_p1_p7, 2); - psi_a_p1_p5 = _mm256_mulhi_epi16(psi_a_p1_p5, ONE_OVER_SQRT_2); - psi_a_p1_p5 = _mm256_slli_epi16(psi_a_p1_p5, 2); - psi_a_p1_p3 = _mm256_mulhi_epi16(psi_a_p1_p3, ONE_OVER_SQRT_2); - psi_a_p1_p3 = _mm256_slli_epi16(psi_a_p1_p3, 2); - psi_a_p1_p1 = _mm256_mulhi_epi16(psi_a_p1_p1, ONE_OVER_SQRT_2); - psi_a_p1_p1 = _mm256_slli_epi16(psi_a_p1_p1, 2); - psi_a_p1_m1 = _mm256_mulhi_epi16(psi_a_p1_m1, ONE_OVER_SQRT_2); - psi_a_p1_m1 = _mm256_slli_epi16(psi_a_p1_m1, 2); - psi_a_p1_m3 = _mm256_mulhi_epi16(psi_a_p1_m3, ONE_OVER_SQRT_2); - psi_a_p1_m3 = _mm256_slli_epi16(psi_a_p1_m3, 2); - psi_a_p1_m5 = _mm256_mulhi_epi16(psi_a_p1_m5, ONE_OVER_SQRT_2); - psi_a_p1_m5 = _mm256_slli_epi16(psi_a_p1_m5, 2); - psi_a_p1_m7 = _mm256_mulhi_epi16(psi_a_p1_m7, ONE_OVER_SQRT_2); - psi_a_p1_m7 = _mm256_slli_epi16(psi_a_p1_m7, 2); - psi_a_m1_p7 = _mm256_mulhi_epi16(psi_a_m1_p7, ONE_OVER_SQRT_2); - psi_a_m1_p7 = _mm256_slli_epi16(psi_a_m1_p7, 2); - psi_a_m1_p5 = _mm256_mulhi_epi16(psi_a_m1_p5, ONE_OVER_SQRT_2); - psi_a_m1_p5 = _mm256_slli_epi16(psi_a_m1_p5, 2); - psi_a_m1_p3 = _mm256_mulhi_epi16(psi_a_m1_p3, ONE_OVER_SQRT_2); - psi_a_m1_p3 = _mm256_slli_epi16(psi_a_m1_p3, 2); - psi_a_m1_p1 = _mm256_mulhi_epi16(psi_a_m1_p1, ONE_OVER_SQRT_2); - psi_a_m1_p1 = _mm256_slli_epi16(psi_a_m1_p1, 2); - psi_a_m1_m1 = _mm256_mulhi_epi16(psi_a_m1_m1, ONE_OVER_SQRT_2); - psi_a_m1_m1 = _mm256_slli_epi16(psi_a_m1_m1, 2); - psi_a_m1_m3 = _mm256_mulhi_epi16(psi_a_m1_m3, ONE_OVER_SQRT_2); - psi_a_m1_m3 = _mm256_slli_epi16(psi_a_m1_m3, 2); - psi_a_m1_m5 = _mm256_mulhi_epi16(psi_a_m1_m5, ONE_OVER_SQRT_2); - psi_a_m1_m5 = _mm256_slli_epi16(psi_a_m1_m5, 2); - psi_a_m1_m7 = _mm256_mulhi_epi16(psi_a_m1_m7, ONE_OVER_SQRT_2); - psi_a_m1_m7 = _mm256_slli_epi16(psi_a_m1_m7, 2); - psi_a_m3_p7 = _mm256_mulhi_epi16(psi_a_m3_p7, ONE_OVER_SQRT_2); - psi_a_m3_p7 = _mm256_slli_epi16(psi_a_m3_p7, 2); - psi_a_m3_p5 = _mm256_mulhi_epi16(psi_a_m3_p5, ONE_OVER_SQRT_2); - psi_a_m3_p5 = _mm256_slli_epi16(psi_a_m3_p5, 2); - psi_a_m3_p3 = _mm256_mulhi_epi16(psi_a_m3_p3, ONE_OVER_SQRT_2); - psi_a_m3_p3 = _mm256_slli_epi16(psi_a_m3_p3, 2); - psi_a_m3_p1 = _mm256_mulhi_epi16(psi_a_m3_p1, ONE_OVER_SQRT_2); - psi_a_m3_p1 = _mm256_slli_epi16(psi_a_m3_p1, 2); - psi_a_m3_m1 = _mm256_mulhi_epi16(psi_a_m3_m1, ONE_OVER_SQRT_2); - psi_a_m3_m1 = _mm256_slli_epi16(psi_a_m3_m1, 2); - psi_a_m3_m3 = _mm256_mulhi_epi16(psi_a_m3_m3, ONE_OVER_SQRT_2); - psi_a_m3_m3 = _mm256_slli_epi16(psi_a_m3_m3, 2); - psi_a_m3_m5 = _mm256_mulhi_epi16(psi_a_m3_m5, ONE_OVER_SQRT_2); - psi_a_m3_m5 = _mm256_slli_epi16(psi_a_m3_m5, 2); - psi_a_m3_m7 = _mm256_mulhi_epi16(psi_a_m3_m7, ONE_OVER_SQRT_2); - psi_a_m3_m7 = _mm256_slli_epi16(psi_a_m3_m7, 2); - psi_a_m5_p7 = _mm256_mulhi_epi16(psi_a_m5_p7, ONE_OVER_SQRT_2); - psi_a_m5_p7 = _mm256_slli_epi16(psi_a_m5_p7, 2); - psi_a_m5_p5 = _mm256_mulhi_epi16(psi_a_m5_p5, ONE_OVER_SQRT_2); - psi_a_m5_p5 = _mm256_slli_epi16(psi_a_m5_p5, 2); - psi_a_m5_p3 = _mm256_mulhi_epi16(psi_a_m5_p3, ONE_OVER_SQRT_2); - psi_a_m5_p3 = _mm256_slli_epi16(psi_a_m5_p3, 2); - psi_a_m5_p1 = _mm256_mulhi_epi16(psi_a_m5_p1, ONE_OVER_SQRT_2); - psi_a_m5_p1 = _mm256_slli_epi16(psi_a_m5_p1, 2); - psi_a_m5_m1 = _mm256_mulhi_epi16(psi_a_m5_m1, ONE_OVER_SQRT_2); - psi_a_m5_m1 = _mm256_slli_epi16(psi_a_m5_m1, 2); - psi_a_m5_m3 = _mm256_mulhi_epi16(psi_a_m5_m3, ONE_OVER_SQRT_2); - psi_a_m5_m3 = _mm256_slli_epi16(psi_a_m5_m3, 2); - psi_a_m5_m5 = _mm256_mulhi_epi16(psi_a_m5_m5, ONE_OVER_SQRT_2); - psi_a_m5_m5 = _mm256_slli_epi16(psi_a_m5_m5, 2); - psi_a_m5_m7 = _mm256_mulhi_epi16(psi_a_m5_m7, ONE_OVER_SQRT_2); - psi_a_m5_m7 = _mm256_slli_epi16(psi_a_m5_m7, 2); - psi_a_m7_p7 = _mm256_mulhi_epi16(psi_a_m7_p7, ONE_OVER_SQRT_2); - psi_a_m7_p7 = _mm256_slli_epi16(psi_a_m7_p7, 2); - psi_a_m7_p5 = _mm256_mulhi_epi16(psi_a_m7_p5, ONE_OVER_SQRT_2); - psi_a_m7_p5 = _mm256_slli_epi16(psi_a_m7_p5, 2); - psi_a_m7_p3 = _mm256_mulhi_epi16(psi_a_m7_p3, ONE_OVER_SQRT_2); - psi_a_m7_p3 = _mm256_slli_epi16(psi_a_m7_p3, 2); - psi_a_m7_p1 = _mm256_mulhi_epi16(psi_a_m7_p1, ONE_OVER_SQRT_2); - psi_a_m7_p1 = _mm256_slli_epi16(psi_a_m7_p1, 2); - psi_a_m7_m1 = _mm256_mulhi_epi16(psi_a_m7_m1, ONE_OVER_SQRT_2); - psi_a_m7_m1 = _mm256_slli_epi16(psi_a_m7_m1, 2); - psi_a_m7_m3 = _mm256_mulhi_epi16(psi_a_m7_m3, ONE_OVER_SQRT_2); - psi_a_m7_m3 = _mm256_slli_epi16(psi_a_m7_m3, 2); - psi_a_m7_m5 = _mm256_mulhi_epi16(psi_a_m7_m5, ONE_OVER_SQRT_2); - psi_a_m7_m5 = _mm256_slli_epi16(psi_a_m7_m5, 2); - psi_a_m7_m7 = _mm256_mulhi_epi16(psi_a_m7_m7, ONE_OVER_SQRT_2); - psi_a_m7_m7 = _mm256_slli_epi16(psi_a_m7_m7, 2); + psi_a_p7_p7 = simde_mm256_mulhi_epi16(psi_a_p7_p7, ONE_OVER_SQRT_2); + psi_a_p7_p7 = simde_mm256_slli_epi16(psi_a_p7_p7, 2); + psi_a_p7_p5 = simde_mm256_mulhi_epi16(psi_a_p7_p5, ONE_OVER_SQRT_2); + psi_a_p7_p5 = simde_mm256_slli_epi16(psi_a_p7_p5, 2); + psi_a_p7_p3 = simde_mm256_mulhi_epi16(psi_a_p7_p3, ONE_OVER_SQRT_2); + psi_a_p7_p3 = simde_mm256_slli_epi16(psi_a_p7_p3, 2); + psi_a_p7_p1 = simde_mm256_mulhi_epi16(psi_a_p7_p1, ONE_OVER_SQRT_2); + psi_a_p7_p1 = simde_mm256_slli_epi16(psi_a_p7_p1, 2); + psi_a_p7_m1 = simde_mm256_mulhi_epi16(psi_a_p7_m1, ONE_OVER_SQRT_2); + psi_a_p7_m1 = simde_mm256_slli_epi16(psi_a_p7_m1, 2); + psi_a_p7_m3 = simde_mm256_mulhi_epi16(psi_a_p7_m3, ONE_OVER_SQRT_2); + psi_a_p7_m3 = simde_mm256_slli_epi16(psi_a_p7_m3, 2); + psi_a_p7_m5 = simde_mm256_mulhi_epi16(psi_a_p7_m5, ONE_OVER_SQRT_2); + psi_a_p7_m5 = simde_mm256_slli_epi16(psi_a_p7_m5, 2); + psi_a_p7_m7 = simde_mm256_mulhi_epi16(psi_a_p7_m7, ONE_OVER_SQRT_2); + psi_a_p7_m7 = simde_mm256_slli_epi16(psi_a_p7_m7, 2); + psi_a_p5_p7 = simde_mm256_mulhi_epi16(psi_a_p5_p7, ONE_OVER_SQRT_2); + psi_a_p5_p7 = simde_mm256_slli_epi16(psi_a_p5_p7, 2); + psi_a_p5_p5 = simde_mm256_mulhi_epi16(psi_a_p5_p5, ONE_OVER_SQRT_2); + psi_a_p5_p5 = simde_mm256_slli_epi16(psi_a_p5_p5, 2); + psi_a_p5_p3 = simde_mm256_mulhi_epi16(psi_a_p5_p3, ONE_OVER_SQRT_2); + psi_a_p5_p3 = simde_mm256_slli_epi16(psi_a_p5_p3, 2); + psi_a_p5_p1 = simde_mm256_mulhi_epi16(psi_a_p5_p1, ONE_OVER_SQRT_2); + psi_a_p5_p1 = simde_mm256_slli_epi16(psi_a_p5_p1, 2); + psi_a_p5_m1 = simde_mm256_mulhi_epi16(psi_a_p5_m1, ONE_OVER_SQRT_2); + psi_a_p5_m1 = simde_mm256_slli_epi16(psi_a_p5_m1, 2); + psi_a_p5_m3 = simde_mm256_mulhi_epi16(psi_a_p5_m3, ONE_OVER_SQRT_2); + psi_a_p5_m3 = simde_mm256_slli_epi16(psi_a_p5_m3, 2); + psi_a_p5_m5 = simde_mm256_mulhi_epi16(psi_a_p5_m5, ONE_OVER_SQRT_2); + psi_a_p5_m5 = simde_mm256_slli_epi16(psi_a_p5_m5, 2); + psi_a_p5_m7 = simde_mm256_mulhi_epi16(psi_a_p5_m7, ONE_OVER_SQRT_2); + psi_a_p5_m7 = simde_mm256_slli_epi16(psi_a_p5_m7, 2); + psi_a_p3_p7 = simde_mm256_mulhi_epi16(psi_a_p3_p7, ONE_OVER_SQRT_2); + psi_a_p3_p7 = simde_mm256_slli_epi16(psi_a_p3_p7, 2); + psi_a_p3_p5 = simde_mm256_mulhi_epi16(psi_a_p3_p5, ONE_OVER_SQRT_2); + psi_a_p3_p5 = simde_mm256_slli_epi16(psi_a_p3_p5, 2); + psi_a_p3_p3 = simde_mm256_mulhi_epi16(psi_a_p3_p3, ONE_OVER_SQRT_2); + psi_a_p3_p3 = simde_mm256_slli_epi16(psi_a_p3_p3, 2); + psi_a_p3_p1 = simde_mm256_mulhi_epi16(psi_a_p3_p1, ONE_OVER_SQRT_2); + psi_a_p3_p1 = simde_mm256_slli_epi16(psi_a_p3_p1, 2); + psi_a_p3_m1 = simde_mm256_mulhi_epi16(psi_a_p3_m1, ONE_OVER_SQRT_2); + psi_a_p3_m1 = simde_mm256_slli_epi16(psi_a_p3_m1, 2); + psi_a_p3_m3 = simde_mm256_mulhi_epi16(psi_a_p3_m3, ONE_OVER_SQRT_2); + psi_a_p3_m3 = simde_mm256_slli_epi16(psi_a_p3_m3, 2); + psi_a_p3_m5 = simde_mm256_mulhi_epi16(psi_a_p3_m5, ONE_OVER_SQRT_2); + psi_a_p3_m5 = simde_mm256_slli_epi16(psi_a_p3_m5, 2); + psi_a_p3_m7 = simde_mm256_mulhi_epi16(psi_a_p3_m7, ONE_OVER_SQRT_2); + psi_a_p3_m7 = simde_mm256_slli_epi16(psi_a_p3_m7, 2); + psi_a_p1_p7 = simde_mm256_mulhi_epi16(psi_a_p1_p7, ONE_OVER_SQRT_2); + psi_a_p1_p7 = simde_mm256_slli_epi16(psi_a_p1_p7, 2); + psi_a_p1_p5 = simde_mm256_mulhi_epi16(psi_a_p1_p5, ONE_OVER_SQRT_2); + psi_a_p1_p5 = simde_mm256_slli_epi16(psi_a_p1_p5, 2); + psi_a_p1_p3 = simde_mm256_mulhi_epi16(psi_a_p1_p3, ONE_OVER_SQRT_2); + psi_a_p1_p3 = simde_mm256_slli_epi16(psi_a_p1_p3, 2); + psi_a_p1_p1 = simde_mm256_mulhi_epi16(psi_a_p1_p1, ONE_OVER_SQRT_2); + psi_a_p1_p1 = simde_mm256_slli_epi16(psi_a_p1_p1, 2); + psi_a_p1_m1 = simde_mm256_mulhi_epi16(psi_a_p1_m1, ONE_OVER_SQRT_2); + psi_a_p1_m1 = simde_mm256_slli_epi16(psi_a_p1_m1, 2); + psi_a_p1_m3 = simde_mm256_mulhi_epi16(psi_a_p1_m3, ONE_OVER_SQRT_2); + psi_a_p1_m3 = simde_mm256_slli_epi16(psi_a_p1_m3, 2); + psi_a_p1_m5 = simde_mm256_mulhi_epi16(psi_a_p1_m5, ONE_OVER_SQRT_2); + psi_a_p1_m5 = simde_mm256_slli_epi16(psi_a_p1_m5, 2); + psi_a_p1_m7 = simde_mm256_mulhi_epi16(psi_a_p1_m7, ONE_OVER_SQRT_2); + psi_a_p1_m7 = simde_mm256_slli_epi16(psi_a_p1_m7, 2); + psi_a_m1_p7 = simde_mm256_mulhi_epi16(psi_a_m1_p7, ONE_OVER_SQRT_2); + psi_a_m1_p7 = simde_mm256_slli_epi16(psi_a_m1_p7, 2); + psi_a_m1_p5 = simde_mm256_mulhi_epi16(psi_a_m1_p5, ONE_OVER_SQRT_2); + psi_a_m1_p5 = simde_mm256_slli_epi16(psi_a_m1_p5, 2); + psi_a_m1_p3 = simde_mm256_mulhi_epi16(psi_a_m1_p3, ONE_OVER_SQRT_2); + psi_a_m1_p3 = simde_mm256_slli_epi16(psi_a_m1_p3, 2); + psi_a_m1_p1 = simde_mm256_mulhi_epi16(psi_a_m1_p1, ONE_OVER_SQRT_2); + psi_a_m1_p1 = simde_mm256_slli_epi16(psi_a_m1_p1, 2); + psi_a_m1_m1 = simde_mm256_mulhi_epi16(psi_a_m1_m1, ONE_OVER_SQRT_2); + psi_a_m1_m1 = simde_mm256_slli_epi16(psi_a_m1_m1, 2); + psi_a_m1_m3 = simde_mm256_mulhi_epi16(psi_a_m1_m3, ONE_OVER_SQRT_2); + psi_a_m1_m3 = simde_mm256_slli_epi16(psi_a_m1_m3, 2); + psi_a_m1_m5 = simde_mm256_mulhi_epi16(psi_a_m1_m5, ONE_OVER_SQRT_2); + psi_a_m1_m5 = simde_mm256_slli_epi16(psi_a_m1_m5, 2); + psi_a_m1_m7 = simde_mm256_mulhi_epi16(psi_a_m1_m7, ONE_OVER_SQRT_2); + psi_a_m1_m7 = simde_mm256_slli_epi16(psi_a_m1_m7, 2); + psi_a_m3_p7 = simde_mm256_mulhi_epi16(psi_a_m3_p7, ONE_OVER_SQRT_2); + psi_a_m3_p7 = simde_mm256_slli_epi16(psi_a_m3_p7, 2); + psi_a_m3_p5 = simde_mm256_mulhi_epi16(psi_a_m3_p5, ONE_OVER_SQRT_2); + psi_a_m3_p5 = simde_mm256_slli_epi16(psi_a_m3_p5, 2); + psi_a_m3_p3 = simde_mm256_mulhi_epi16(psi_a_m3_p3, ONE_OVER_SQRT_2); + psi_a_m3_p3 = simde_mm256_slli_epi16(psi_a_m3_p3, 2); + psi_a_m3_p1 = simde_mm256_mulhi_epi16(psi_a_m3_p1, ONE_OVER_SQRT_2); + psi_a_m3_p1 = simde_mm256_slli_epi16(psi_a_m3_p1, 2); + psi_a_m3_m1 = simde_mm256_mulhi_epi16(psi_a_m3_m1, ONE_OVER_SQRT_2); + psi_a_m3_m1 = simde_mm256_slli_epi16(psi_a_m3_m1, 2); + psi_a_m3_m3 = simde_mm256_mulhi_epi16(psi_a_m3_m3, ONE_OVER_SQRT_2); + psi_a_m3_m3 = simde_mm256_slli_epi16(psi_a_m3_m3, 2); + psi_a_m3_m5 = simde_mm256_mulhi_epi16(psi_a_m3_m5, ONE_OVER_SQRT_2); + psi_a_m3_m5 = simde_mm256_slli_epi16(psi_a_m3_m5, 2); + psi_a_m3_m7 = simde_mm256_mulhi_epi16(psi_a_m3_m7, ONE_OVER_SQRT_2); + psi_a_m3_m7 = simde_mm256_slli_epi16(psi_a_m3_m7, 2); + psi_a_m5_p7 = simde_mm256_mulhi_epi16(psi_a_m5_p7, ONE_OVER_SQRT_2); + psi_a_m5_p7 = simde_mm256_slli_epi16(psi_a_m5_p7, 2); + psi_a_m5_p5 = simde_mm256_mulhi_epi16(psi_a_m5_p5, ONE_OVER_SQRT_2); + psi_a_m5_p5 = simde_mm256_slli_epi16(psi_a_m5_p5, 2); + psi_a_m5_p3 = simde_mm256_mulhi_epi16(psi_a_m5_p3, ONE_OVER_SQRT_2); + psi_a_m5_p3 = simde_mm256_slli_epi16(psi_a_m5_p3, 2); + psi_a_m5_p1 = simde_mm256_mulhi_epi16(psi_a_m5_p1, ONE_OVER_SQRT_2); + psi_a_m5_p1 = simde_mm256_slli_epi16(psi_a_m5_p1, 2); + psi_a_m5_m1 = simde_mm256_mulhi_epi16(psi_a_m5_m1, ONE_OVER_SQRT_2); + psi_a_m5_m1 = simde_mm256_slli_epi16(psi_a_m5_m1, 2); + psi_a_m5_m3 = simde_mm256_mulhi_epi16(psi_a_m5_m3, ONE_OVER_SQRT_2); + psi_a_m5_m3 = simde_mm256_slli_epi16(psi_a_m5_m3, 2); + psi_a_m5_m5 = simde_mm256_mulhi_epi16(psi_a_m5_m5, ONE_OVER_SQRT_2); + psi_a_m5_m5 = simde_mm256_slli_epi16(psi_a_m5_m5, 2); + psi_a_m5_m7 = simde_mm256_mulhi_epi16(psi_a_m5_m7, ONE_OVER_SQRT_2); + psi_a_m5_m7 = simde_mm256_slli_epi16(psi_a_m5_m7, 2); + psi_a_m7_p7 = simde_mm256_mulhi_epi16(psi_a_m7_p7, ONE_OVER_SQRT_2); + psi_a_m7_p7 = simde_mm256_slli_epi16(psi_a_m7_p7, 2); + psi_a_m7_p5 = simde_mm256_mulhi_epi16(psi_a_m7_p5, ONE_OVER_SQRT_2); + psi_a_m7_p5 = simde_mm256_slli_epi16(psi_a_m7_p5, 2); + psi_a_m7_p3 = simde_mm256_mulhi_epi16(psi_a_m7_p3, ONE_OVER_SQRT_2); + psi_a_m7_p3 = simde_mm256_slli_epi16(psi_a_m7_p3, 2); + psi_a_m7_p1 = simde_mm256_mulhi_epi16(psi_a_m7_p1, ONE_OVER_SQRT_2); + psi_a_m7_p1 = simde_mm256_slli_epi16(psi_a_m7_p1, 2); + psi_a_m7_m1 = simde_mm256_mulhi_epi16(psi_a_m7_m1, ONE_OVER_SQRT_2); + psi_a_m7_m1 = simde_mm256_slli_epi16(psi_a_m7_m1, 2); + psi_a_m7_m3 = simde_mm256_mulhi_epi16(psi_a_m7_m3, ONE_OVER_SQRT_2); + psi_a_m7_m3 = simde_mm256_slli_epi16(psi_a_m7_m3, 2); + psi_a_m7_m5 = simde_mm256_mulhi_epi16(psi_a_m7_m5, ONE_OVER_SQRT_2); + psi_a_m7_m5 = simde_mm256_slli_epi16(psi_a_m7_m5, 2); + psi_a_m7_m7 = simde_mm256_mulhi_epi16(psi_a_m7_m7, ONE_OVER_SQRT_2); + psi_a_m7_m7 = simde_mm256_slli_epi16(psi_a_m7_m7, 2); // Calculation of a group of two terms in the bit metric involving squares of interference square_a_64qam_epi16(a_r_p7_p7, a_i_p7_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_p7); @@ -3271,637 +3271,637 @@ void qam64_qam64_avx2(int32_t *stream0_in, // Computing different multiples of ||h0||^2 // x=1, y=1 - ch_mag_2_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42); - ch_mag_2_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_2_over_42_with_sigma2,1); + ch_mag_2_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42); + ch_mag_2_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_2_over_42_with_sigma2,1); // x=1, y=3 - ch_mag_10_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42); - ch_mag_10_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_10_over_42_with_sigma2,1); + ch_mag_10_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42); + ch_mag_10_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_10_over_42_with_sigma2,1); // x=1, x=5 - ch_mag_26_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42); - ch_mag_26_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_26_over_42_with_sigma2,1); + ch_mag_26_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42); + ch_mag_26_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_26_over_42_with_sigma2,1); // x=1, y=7 - ch_mag_50_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); - ch_mag_50_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); + ch_mag_50_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); + ch_mag_50_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); // x=3, y=3 - ch_mag_18_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42); - ch_mag_18_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_18_over_42_with_sigma2,1); + ch_mag_18_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42); + ch_mag_18_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_18_over_42_with_sigma2,1); // x=3, y=5 - ch_mag_34_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42); - ch_mag_34_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_34_over_42_with_sigma2,1); + ch_mag_34_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42); + ch_mag_34_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_34_over_42_with_sigma2,1); // x=3, y=7 - ch_mag_58_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42); - ch_mag_58_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_58_over_42_with_sigma2,2); + ch_mag_58_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42); + ch_mag_58_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_58_over_42_with_sigma2,2); // x=5, y=5 - ch_mag_50_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); - ch_mag_50_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); + ch_mag_50_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42); + ch_mag_50_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_50_over_42_with_sigma2,1); // x=5, y=7 - ch_mag_74_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42); - ch_mag_74_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_74_over_42_with_sigma2,2); + ch_mag_74_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42); + ch_mag_74_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_74_over_42_with_sigma2,2); // x=7, y=7 - ch_mag_98_over_42_with_sigma2 = _mm256_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42); - ch_mag_98_over_42_with_sigma2 = _mm256_slli_epi16(ch_mag_98_over_42_with_sigma2,2); + ch_mag_98_over_42_with_sigma2 = simde_mm256_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42); + ch_mag_98_over_42_with_sigma2 = simde_mm256_slli_epi16(ch_mag_98_over_42_with_sigma2,2); // Computing Metrics - xmm0 = _mm256_subs_epi16(psi_a_p7_p7, a_sq_p7_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_7); - bit_met_p7_p7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_p5, a_sq_p7_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_5); - bit_met_p7_p5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_p3, a_sq_p7_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_3); - bit_met_p7_p3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_p1, a_sq_p7_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_7_1); - bit_met_p7_p1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m1, a_sq_p7_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_1); - bit_met_p7_m1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m3, a_sq_p7_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_3); - bit_met_p7_m3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m5, a_sq_p7_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_5); - bit_met_p7_m5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p7_m7, a_sq_p7_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_7_7); - bit_met_p7_m7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p7, a_sq_p5_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_7); - bit_met_p5_p7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p5, a_sq_p5_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_5); - bit_met_p5_p5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p3, a_sq_p5_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_3); - bit_met_p5_p3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_p1, a_sq_p5_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_5_1); - bit_met_p5_p1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m1, a_sq_p5_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_1); - bit_met_p5_m1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m3, a_sq_p5_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_3); - bit_met_p5_m3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m5, a_sq_p5_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_5); - bit_met_p5_m5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p5_m7, a_sq_p5_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_5_7); - bit_met_p5_m7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p7, a_sq_p3_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_7); - bit_met_p3_p7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p5, a_sq_p3_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_5); - bit_met_p3_p5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p3, a_sq_p3_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_3); - bit_met_p3_p3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_p1, a_sq_p3_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_3_1); - bit_met_p3_p1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m1, a_sq_p3_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_1); - bit_met_p3_m1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m3, a_sq_p3_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_3); - bit_met_p3_m3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m5, a_sq_p3_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_5); - bit_met_p3_m5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p3_m7, a_sq_p3_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_3_7); - bit_met_p3_m7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p7, a_sq_p1_p7); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_7); - bit_met_p1_p7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p5, a_sq_p1_p5); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_5); - bit_met_p1_p5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p3, a_sq_p1_p3); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_3); - bit_met_p1_p3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_p1, a_sq_p1_p1); - xmm1 = _mm256_adds_epi16(xmm0, y0_p_1_1); - bit_met_p1_p1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m1, a_sq_p1_m1); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_1); - bit_met_p1_m1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m3, a_sq_p1_m3); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_3); - bit_met_p1_m3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m5, a_sq_p1_m5); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_5); - bit_met_p1_m5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_p1_m7, a_sq_p1_m7); - xmm1 = _mm256_adds_epi16(xmm0, y0_m_1_7); - bit_met_p1_m7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p7, a_sq_p7_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_7); + bit_met_p7_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p5, a_sq_p7_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_5); + bit_met_p7_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p3, a_sq_p7_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_3); + bit_met_p7_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_p1, a_sq_p7_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_7_1); + bit_met_p7_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m1, a_sq_p7_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_1); + bit_met_p7_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m3, a_sq_p7_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_3); + bit_met_p7_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m5, a_sq_p7_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_5); + bit_met_p7_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p7_m7, a_sq_p7_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_7_7); + bit_met_p7_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p7, a_sq_p5_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_7); + bit_met_p5_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p5, a_sq_p5_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_5); + bit_met_p5_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p3, a_sq_p5_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_3); + bit_met_p5_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_p1, a_sq_p5_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_5_1); + bit_met_p5_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m1, a_sq_p5_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_1); + bit_met_p5_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m3, a_sq_p5_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_3); + bit_met_p5_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m5, a_sq_p5_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_5); + bit_met_p5_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p5_m7, a_sq_p5_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_5_7); + bit_met_p5_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p7, a_sq_p3_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_7); + bit_met_p3_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p5, a_sq_p3_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_5); + bit_met_p3_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p3, a_sq_p3_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_3); + bit_met_p3_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_p1, a_sq_p3_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_3_1); + bit_met_p3_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m1, a_sq_p3_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_1); + bit_met_p3_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m3, a_sq_p3_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_3); + bit_met_p3_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m5, a_sq_p3_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_5); + bit_met_p3_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p3_m7, a_sq_p3_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_3_7); + bit_met_p3_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p7, a_sq_p1_p7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_7); + bit_met_p1_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p5, a_sq_p1_p5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_5); + bit_met_p1_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p3, a_sq_p1_p3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_3); + bit_met_p1_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_p1, a_sq_p1_p1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_p_1_1); + bit_met_p1_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m1, a_sq_p1_m1); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_1); + bit_met_p1_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m3, a_sq_p1_m3); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_3); + bit_met_p1_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m5, a_sq_p1_m5); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_5); + bit_met_p1_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_p1_m7, a_sq_p1_m7); + xmm1 = simde_mm256_adds_epi16(xmm0, y0_m_1_7); + bit_met_p1_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p7, a_sq_m1_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_7); - bit_met_m1_p7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p5, a_sq_m1_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_5); - bit_met_m1_p5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p3, a_sq_m1_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_3); - bit_met_m1_p3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_p1, a_sq_m1_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_1_1); - bit_met_m1_p1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m1, a_sq_m1_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_1); - bit_met_m1_m1 = _mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m3, a_sq_m1_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_3); - bit_met_m1_m3 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m5, a_sq_m1_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_5); - bit_met_m1_m5 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m1_m7, a_sq_m1_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_1_7); - bit_met_m1_m7 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p7, a_sq_m3_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_7); - bit_met_m3_p7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p5, a_sq_m3_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_5); - bit_met_m3_p5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p3, a_sq_m3_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_3); - bit_met_m3_p3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_p1, a_sq_m3_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_3_1); - bit_met_m3_p1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m1, a_sq_m3_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_1); - bit_met_m3_m1 = _mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m3, a_sq_m3_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_3); - bit_met_m3_m3 = _mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m5, a_sq_m3_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_5); - bit_met_m3_m5 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m3_m7, a_sq_m3_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_3_7); - bit_met_m3_m7 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p7, a_sq_m5_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_7); - bit_met_m5_p7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p5, a_sq_m5_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_5); - bit_met_m5_p5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p3, a_sq_m5_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_3); - bit_met_m5_p3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_p1, a_sq_m5_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_5_1); - bit_met_m5_p1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m1, a_sq_m5_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_1); - bit_met_m5_m1 = _mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m3, a_sq_m5_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_3); - bit_met_m5_m3 = _mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m5, a_sq_m5_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_5); - bit_met_m5_m5 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m5_m7, a_sq_m5_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_5_7); - bit_met_m5_m7 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p7, a_sq_m7_p7); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_7); - bit_met_m7_p7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p5, a_sq_m7_p5); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_5); - bit_met_m7_p5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p3, a_sq_m7_p3); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_3); - bit_met_m7_p3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_p1, a_sq_m7_p1); - xmm1 = _mm256_subs_epi16(xmm0, y0_m_7_1); - bit_met_m7_p1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m1, a_sq_m7_m1); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_1); - bit_met_m7_m1 = _mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m3, a_sq_m7_m3); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_3); - bit_met_m7_m3 = _mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m5, a_sq_m7_m5); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_5); - bit_met_m7_m5 = _mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); - xmm0 = _mm256_subs_epi16(psi_a_m7_m7, a_sq_m7_m7); - xmm1 = _mm256_subs_epi16(xmm0, y0_p_7_7); - bit_met_m7_m7 = _mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p7, a_sq_m1_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_7); + bit_met_m1_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p5, a_sq_m1_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_5); + bit_met_m1_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p3, a_sq_m1_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_3); + bit_met_m1_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_p1, a_sq_m1_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_1_1); + bit_met_m1_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m1, a_sq_m1_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_1); + bit_met_m1_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m3, a_sq_m1_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_3); + bit_met_m1_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m5, a_sq_m1_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_5); + bit_met_m1_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m1_m7, a_sq_m1_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_1_7); + bit_met_m1_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p7, a_sq_m3_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_7); + bit_met_m3_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p5, a_sq_m3_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_5); + bit_met_m3_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p3, a_sq_m3_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_3); + bit_met_m3_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_p1, a_sq_m3_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_3_1); + bit_met_m3_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m1, a_sq_m3_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_1); + bit_met_m3_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m3, a_sq_m3_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_3); + bit_met_m3_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m5, a_sq_m3_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_5); + bit_met_m3_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m3_m7, a_sq_m3_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_3_7); + bit_met_m3_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p7, a_sq_m5_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_7); + bit_met_m5_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p5, a_sq_m5_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_5); + bit_met_m5_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p3, a_sq_m5_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_3); + bit_met_m5_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_p1, a_sq_m5_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_5_1); + bit_met_m5_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m1, a_sq_m5_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_1); + bit_met_m5_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m3, a_sq_m5_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_3); + bit_met_m5_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m5, a_sq_m5_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_5); + bit_met_m5_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m5_m7, a_sq_m5_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_5_7); + bit_met_m5_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p7, a_sq_m7_p7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_7); + bit_met_m7_p7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p5, a_sq_m7_p5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_5); + bit_met_m7_p5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p3, a_sq_m7_p3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_3); + bit_met_m7_p3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_p1, a_sq_m7_p1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_m_7_1); + bit_met_m7_p1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m1, a_sq_m7_m1); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_1); + bit_met_m7_m1 = simde_mm256_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m3, a_sq_m7_m3); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_3); + bit_met_m7_m3 = simde_mm256_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m5, a_sq_m7_m5); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_5); + bit_met_m7_m5 = simde_mm256_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2); + xmm0 = simde_mm256_subs_epi16(psi_a_m7_m7, a_sq_m7_m7); + xmm1 = simde_mm256_subs_epi16(xmm0, y0_p_7_7); + bit_met_m7_m7 = simde_mm256_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2); // Detection for 1st bit (LTE mapping) // bit = 1 - xmm0 = _mm256_max_epi16(bit_met_m7_p7, bit_met_m7_p5); - xmm1 = _mm256_max_epi16(bit_met_m7_p3, bit_met_m7_p1); - xmm2 = _mm256_max_epi16(bit_met_m7_m1, bit_met_m7_m3); - xmm3 = _mm256_max_epi16(bit_met_m7_m5, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m5_p5); - xmm1 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m5_p1); - xmm2 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m5_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m5_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m3_p7, bit_met_m3_p5); - xmm1 = _mm256_max_epi16(bit_met_m3_p3, bit_met_m3_p1); - xmm2 = _mm256_max_epi16(bit_met_m3_m1, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m3_m5, bit_met_m3_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m1_p5); - xmm1 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m1_m3); - xmm3 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m1_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m7_p7, bit_met_m7_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m7_p3, bit_met_m7_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m7_m1, bit_met_m7_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m7_m5, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m5_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m5_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m5_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m3_p7, bit_met_m3_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m3_p3, bit_met_m3_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m3_m1, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m3_m5, bit_met_m3_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m1_p5); + xmm1 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m1_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m1_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); // bit = 0 - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p7_p5); - xmm1 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p7_p1); - xmm2 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p7_m3); - xmm3 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p5_p7, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p5_p3, bit_met_p5_p1); - xmm2 = _mm256_max_epi16(bit_met_p5_m1, bit_met_p5_m3); - xmm3 = _mm256_max_epi16(bit_met_p5_m5, bit_met_p5_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p3_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p3_p1); - xmm2 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p3_m3); - xmm3 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p3_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p1_p7, bit_met_p1_p5); - xmm1 = _mm256_max_epi16(bit_met_p1_p3, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_p1_m1, bit_met_p1_m3); - xmm3 = _mm256_max_epi16(bit_met_p1_m5, bit_met_p1_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p7_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p7_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p7_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p5_p7, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p5_p3, bit_met_p5_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p5_m1, bit_met_p5_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p5_m5, bit_met_p5_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p3_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p3_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p3_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p1_p7, bit_met_p1_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p1_p3, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_p1_m1, bit_met_p1_m3); + xmm3 = simde_mm256_max_epi16(bit_met_p1_m5, bit_met_p1_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y0r = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y0r = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 2nd bit (LTE mapping) // bit = 1 - xmm0 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); - xmm1 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); - xmm3 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); - xmm2 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); - xmm2 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); - xmm1 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); - xmm2 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); - xmm3 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); // bit = 0 - xmm0 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); - xmm1 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); - xmm3 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); - xmm2 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); - xmm2 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); - xmm1 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); - xmm2 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); - xmm3 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y1r = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y1r = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 3rd bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); - xmm1 = _mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); - xmm2 = _mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); - xmm3 = _mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); - xmm1 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); - xmm2 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); - xmm2 = _mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); - xmm3 = _mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); - xmm1 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); - xmm2 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); - xmm3 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); - xmm1 = _mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); - xmm2 = _mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); - xmm1 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); - xmm3 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); - xmm1 = _mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); - xmm3 = _mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); - xmm2 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); - xmm3 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y2r = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y2r = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 4th bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); - xmm1 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); - xmm2 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); - xmm3 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); - xmm2 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); - xmm2 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); - xmm1 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); - xmm2 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); - xmm3 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); - xmm1 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); - xmm3 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); - xmm2 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); - xmm1 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); - xmm3 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); - xmm2 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m7_p1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y0i = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y0i = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 5th bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); - xmm1 = _mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); - xmm2 = _mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); - xmm3 = _mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); - xmm1 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); - xmm3 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); - xmm1 = _mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); - xmm3 = _mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); - xmm1 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); - xmm2 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); - xmm3 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m7_m7, bit_met_m7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m7_m3, bit_met_m7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m7_p1, bit_met_m7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m7_p5, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p1_m7, bit_met_p1_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p1_m3, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p1_p1, bit_met_p1_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p1_p5, bit_met_p1_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p7_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p7_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p7_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); - xmm1 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); - xmm2 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); - xmm1 = _mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); - xmm2 = _mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); - xmm2 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); - xmm3 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); - xmm2 = _mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); - xmm3 = _mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_m3_m7, bit_met_m3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_m3_m3, bit_met_m3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m3_p1, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m3_p5, bit_met_m3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p3_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p3_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p3_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p5_m7, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p5_m3, bit_met_p5_m1); + xmm2 = simde_mm256_max_epi16(bit_met_p5_p1, bit_met_p5_p3); + xmm3 = simde_mm256_max_epi16(bit_met_p5_p5, bit_met_p5_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y1i = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y1i = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // Detection for 6th bit (LTE mapping) - xmm0 = _mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); - xmm1 = _mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); - xmm2 = _mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); - xmm3 = _mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); - xmm1 = _mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); - xmm2 = _mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); - xmm3 = _mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); - xmm1 = _mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); - xmm2 = _mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); - xmm3 = _mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); - xmm1 = _mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); - xmm2 = _mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); - xmm3 = _mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm4); - logmax_den_re0 = _mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p7, bit_met_p5_p7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p7, bit_met_p1_p7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p7, bit_met_m3_p7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p7, bit_met_m7_p7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p1, bit_met_p5_p1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p1, bit_met_p1_p1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p1, bit_met_m3_p1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p1, bit_met_m5_p1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m1, bit_met_p5_m1); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m1, bit_met_p1_m1); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m1, bit_met_m3_m1); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m1, bit_met_m7_m1); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m7, bit_met_p5_m7); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m7, bit_met_p1_m7); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m7, bit_met_m3_m7); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m7, bit_met_m7_m7); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm4); + logmax_den_re0 = simde_mm256_max_epi16(logmax_den_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); - xmm1 = _mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); - xmm2 = _mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); - xmm3 = _mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(xmm4, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); - xmm1 = _mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); - xmm2 = _mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); - xmm3 = _mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); - xmm1 = _mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); - xmm2 = _mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); - xmm3 = _mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); - xmm0 = _mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); - xmm1 = _mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); - xmm2 = _mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); - xmm3 = _mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); - xmm4 = _mm256_max_epi16(xmm0, xmm1); - xmm5 = _mm256_max_epi16(xmm2, xmm3); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm4); - logmax_num_re0 = _mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m5, bit_met_p5_m5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m5, bit_met_p1_m5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m5, bit_met_m3_m5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m5, bit_met_m7_m5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(xmm4, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_m3, bit_met_p5_m3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_m3, bit_met_p1_m3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_m3, bit_met_m3_m3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_m3, bit_met_m7_m3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p3, bit_met_p5_p3); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p3, bit_met_p1_p3); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p3, bit_met_m3_p3); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p3, bit_met_m7_p3); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); + xmm0 = simde_mm256_max_epi16(bit_met_p7_p5, bit_met_p5_p5); + xmm1 = simde_mm256_max_epi16(bit_met_p3_p5, bit_met_p1_p5); + xmm2 = simde_mm256_max_epi16(bit_met_m1_p5, bit_met_m3_p5); + xmm3 = simde_mm256_max_epi16(bit_met_m5_p5, bit_met_m7_p5); + xmm4 = simde_mm256_max_epi16(xmm0, xmm1); + xmm5 = simde_mm256_max_epi16(xmm2, xmm3); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm4); + logmax_num_re0 = simde_mm256_max_epi16(logmax_num_re0, xmm5); - y2i = _mm256_subs_epi16(logmax_num_re0, logmax_den_re0); + y2i = simde_mm256_subs_epi16(logmax_num_re0, logmax_den_re0); // map to output stream, difficult to do in SIMD since we have 6 16bit LLRs // RE 1 @@ -4019,7 +4019,7 @@ void qam64_qam64_avx2(int32_t *stream0_in, stream0_out[j + 94] = ((short *)&y1i)[15]; stream0_out[j + 95] = ((short *)&y2i)[15]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif diff --git a/openair1/PHY/LTE_UE_TRANSPORT/pbch_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/pbch_ue.c index ab65bede5e..3abd1007d6 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/pbch_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/pbch_ue.c @@ -151,7 +151,7 @@ int pbch_channel_level(int **dl_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) __m128i avg128; __m128i *dl_ch128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t avg128; int16x8_t *dl_ch128; #endif @@ -165,7 +165,7 @@ int pbch_channel_level(int **dl_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) avg128 = _mm_setzero_si128(); dl_ch128=(__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol_mod*6*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) avg128 = vdupq_n_s32(0); dl_ch128=(int16x8_t *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol_mod*6*12]; #endif @@ -175,7 +175,7 @@ int pbch_channel_level(int **dl_ch_estimates_ext, avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[0],dl_ch128[0])); avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[1],dl_ch128[1])); avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[2],dl_ch128[2])); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) // to be filled in #endif dl_ch128+=3; @@ -208,7 +208,7 @@ int pbch_channel_level(int **dl_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) __m128i mmtmpP0,mmtmpP1,mmtmpP2,mmtmpP3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t mmtmpP0,mmtmpP1,mmtmpP2,mmtmpP3; #endif void pbch_channel_compensation(int **rxdataF_ext, @@ -221,7 +221,7 @@ void pbch_channel_compensation(int **rxdataF_ext, uint8_t aatx,aarx,symbol_mod; #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128,*rxdataF128,*rxdataF_comp128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; @@ -231,7 +231,7 @@ void pbch_channel_compensation(int **rxdataF_ext, dl_ch128 = (__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol_mod*6*12]; rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol_mod*6*12]; rxdataF_comp128 = (__m128i *)&rxdataF_comp[(aatx<<1)+aarx][symbol_mod*6*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) // to be filled in #endif @@ -303,7 +303,7 @@ void pbch_channel_compensation(int **rxdataF_ext, rxdataF_comp128+=2; } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) // to be filled in #endif } @@ -322,7 +322,7 @@ void pbch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, int i, nb_rb=6; #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1; #endif symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; @@ -332,7 +332,7 @@ void pbch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0 = (__m128i *)&rxdataF_comp[(aatx<<1)][symbol_mod*6*12]; rxdataF_comp128_1 = (__m128i *)&rxdataF_comp[(aatx<<1)+1][symbol_mod*6*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[(aatx<<1)][symbol_mod*6*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[(aatx<<1)+1][symbol_mod*6*12]; #endif @@ -341,7 +341,7 @@ void pbch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, for (i=0; iN_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif if ((symbol == 2) || (symbol == 6) || (symbol == 10)) @@ -244,7 +244,7 @@ void mch_channel_level(int **dl_ch_estimates_ext, for (i=0; i<(nre>>2); i++) { #if defined(__x86_64__) || defined(__i386__) avg128 = _mm_add_epi32(avg128,_mm_srai_epi32(_mm_madd_epi16(dl_ch128[0],dl_ch128[0]),log2_approx(nre>>2)-1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -270,7 +270,7 @@ void mch_channel_level_khz_1dot25(int **dl_ch_estimates_ext, int i,aarx,nre; #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128,avg128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t avg128; #endif @@ -280,7 +280,7 @@ void mch_channel_level_khz_1dot25(int **dl_ch_estimates_ext, avg128 = _mm_setzero_si128(); // 5 is always a symbol with no pilots for both normal and extended prefix dl_ch128=(__m128i *)&dl_ch_estimates_ext[aarx][0/*symbol*frame_parms->N_RB_DL*12*/]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif /*if ((symbol == 2) || (symbol == 6) || (symbol == 10)) nre = (frame_parms->N_RB_DL*6); @@ -293,7 +293,7 @@ void mch_channel_level_khz_1dot25(int **dl_ch_estimates_ext, #if defined(__x86_64__) || defined(__i386__) //avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[0],dl_ch128[0])); avg128 = _mm_add_epi32(avg128,_mm_srai_epi32(_mm_madd_epi16(dl_ch128[0],dl_ch128[0]),log2_approx(nre>>2)-1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -329,7 +329,7 @@ void mch_channel_compensation(int **rxdataF_ext, #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128,*dl_ch_mag128,*dl_ch_mag128b,*rxdataF128,*rxdataF_comp128; __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp128={0},QAM_amp128b={0}; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif if ((symbol == 2) || (symbol == 6) || (symbol == 10)) @@ -347,7 +347,7 @@ void mch_channel_compensation(int **rxdataF_ext, QAM_amp128b = _mm_set1_epi16(QAM64_n2); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif for (aarx=0; aarxnb_antennas_rx; aarx++) { @@ -357,7 +357,7 @@ void mch_channel_compensation(int **rxdataF_ext, dl_ch_mag128b = (__m128i *)&dl_ch_magb[aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128 = (__m128i *)&rxdataF_comp[aarx][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif for (i=0; i<(nre>>2); i+=2) { @@ -382,7 +382,7 @@ void mch_channel_compensation(int **rxdataF_ext, dl_ch_mag128b[0] = _mm_slli_epi16(dl_ch_mag128b[0],1); dl_ch_mag128b[1] = _mm_mulhi_epi16(dl_ch_mag128b[1],QAM_amp128b); dl_ch_mag128b[1] = _mm_slli_epi16(dl_ch_mag128b[1],1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -430,7 +430,7 @@ void mch_channel_compensation(int **rxdataF_ext, dl_ch_mag128b+=2; rxdataF128+=2; rxdataF_comp128+=2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } } @@ -456,7 +456,7 @@ void mch_channel_compensation_khz_1dot25(int **rxdataF_ext, #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128,*dl_ch_mag128,*dl_ch_mag128b,*rxdataF128,*rxdataF_comp128; __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp128={0},QAM_amp128b={0}; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif /*if ((symbol == 2) || (symbol == 6) || (symbol == 10)) nre = frame_parms->N_RB_DL*6; @@ -473,7 +473,7 @@ void mch_channel_compensation_khz_1dot25(int **rxdataF_ext, QAM_amp128b = _mm_set1_epi16(QAM64_n2); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif for (aarx=0; aarxnb_antennas_rx; aarx++) { @@ -483,7 +483,7 @@ void mch_channel_compensation_khz_1dot25(int **rxdataF_ext, dl_ch_mag128b = (__m128i *)&dl_ch_magb[aarx][0]; rxdataF128 = (__m128i *)&rxdataF_ext[aarx][0]; rxdataF_comp128 = (__m128i *)&rxdataF_comp[aarx][0]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif for (i=0; i<(nre>>2); i+=2) { @@ -508,7 +508,7 @@ void mch_channel_compensation_khz_1dot25(int **rxdataF_ext, dl_ch_mag128b[0] = _mm_slli_epi16(dl_ch_mag128b[0],1); dl_ch_mag128b[1] = _mm_mulhi_epi16(dl_ch_mag128b[1],QAM_amp128b); dl_ch_mag128b[1] = _mm_slli_epi16(dl_ch_mag128b[1],1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -556,7 +556,7 @@ void mch_channel_compensation_khz_1dot25(int **rxdataF_ext, dl_ch_mag128b+=2; rxdataF128+=2; rxdataF_comp128+=2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } } @@ -577,7 +577,7 @@ void mch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, int i; #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1,*dl_ch_mag128_0,*dl_ch_mag128_1,*dl_ch_mag128_0b,*dl_ch_mag128_1b; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1,*dl_ch_mag128_0,*dl_ch_mag128_1,*dl_ch_mag128_0b,*dl_ch_mag128_1b; #endif @@ -589,7 +589,7 @@ void mch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, dl_ch_mag128_1 = (__m128i *)&dl_ch_mag[1][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_0b = (__m128i *)&dl_ch_magb[0][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_1b = (__m128i *)&dl_ch_magb[1][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12]; dl_ch_mag128_0 = (int16x8_t *)&dl_ch_mag[0][symbol*frame_parms->N_RB_DL*12]; @@ -604,7 +604,7 @@ void mch_detection_mrc(LTE_DL_FRAME_PARMS *frame_parms, rxdataF_comp128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_0[i],1),_mm_srai_epi16(rxdataF_comp128_1[i],1)); dl_ch_mag128_0[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_0[i],1),_mm_srai_epi16(dl_ch_mag128_1[i],1)); dl_ch_mag128_0b[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_0b[i],1),_mm_srai_epi16(dl_ch_mag128_1b[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0[i] = vhaddq_s16(rxdataF_comp128_0[i],rxdataF_comp128_1[i]); dl_ch_mag128_0[i] = vhaddq_s16(dl_ch_mag128_0[i],dl_ch_mag128_1[i]); dl_ch_mag128_0b[i] = vhaddq_s16(dl_ch_mag128_0b[i],dl_ch_mag128_1b[i]); @@ -627,7 +627,7 @@ void mch_detection_mrc_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, int i; #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1,*dl_ch_mag128_0,*dl_ch_mag128_1,*dl_ch_mag128_0b,*dl_ch_mag128_1b; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1,*dl_ch_mag128_0,*dl_ch_mag128_1,*dl_ch_mag128_0b,*dl_ch_mag128_1b; #endif @@ -639,7 +639,7 @@ void mch_detection_mrc_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, dl_ch_mag128_1 = (__m128i *)&dl_ch_mag[1][0]; dl_ch_mag128_0b = (__m128i *)&dl_ch_magb[0][0]; dl_ch_mag128_1b = (__m128i *)&dl_ch_magb[1][0]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[0][0]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[1][0]; dl_ch_mag128_0 = (int16x8_t *)&dl_ch_mag[0][0]; @@ -654,7 +654,7 @@ void mch_detection_mrc_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, rxdataF_comp128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_0[i],1),_mm_srai_epi16(rxdataF_comp128_1[i],1)); dl_ch_mag128_0[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_0[i],1),_mm_srai_epi16(dl_ch_mag128_1[i],1)); dl_ch_mag128_0b[i] = _mm_adds_epi16(_mm_srai_epi16(dl_ch_mag128_0b[i],1),_mm_srai_epi16(dl_ch_mag128_1b[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0[i] = vhaddq_s16(rxdataF_comp128_0[i],rxdataF_comp128_1[i]); dl_ch_mag128_0[i] = vhaddq_s16(dl_ch_mag128_0[i],dl_ch_mag128_1[i]); dl_ch_mag128_0b[i] = vhaddq_s16(dl_ch_mag128_0b[i],dl_ch_mag128_1b[i]); @@ -760,7 +760,7 @@ void mch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, __m128i *ch_mag; __m128i llr128[2],xmm0; uint32_t *llr32; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF = (int16x8_t *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; int16x8_t *ch_mag; int16x8_t llr128[2],xmm0; @@ -776,7 +776,7 @@ void mch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr32 = (uint32_t *)*llr32p; } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) if (symbol==2) { llr16 = (int16_t *)dlsch_llr; @@ -787,7 +787,7 @@ void mch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, #endif #if defined(__x86_64__) || defined(__i386__) ch_mag = (__m128i *)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t *)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; #endif @@ -823,7 +823,7 @@ void mch_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr32[6] = ((uint32_t *)&llr128[1])[2]; llr32[7] = ((uint32_t *)&llr128[1])[3]; llr32+=8; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm0 = vabsq_s16(rxF[i]); xmm0 = vsubq_s16(ch_mag[i],xmm0); // lambda_1=y_R, lambda_2=|y_R|-|h|^2, lamda_3=y_I, lambda_4=|y_I|-|h|^2 @@ -865,7 +865,7 @@ void mch_16qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, __m128i *ch_mag; __m128i llr128[2],xmm0; uint32_t *llr32; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF = (int16x8_t *)&rxdataF_comp[0][0]; int16x8_t *ch_mag; int16x8_t llr128[2],xmm0; @@ -879,7 +879,7 @@ void mch_16qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, //} else { //llr32 = (uint32_t*)*llr32p; //} -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) //if (symbol==2) { llr16 = (int16_t *)dlsch_llr; //} else { @@ -888,7 +888,7 @@ void mch_16qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, #endif #if defined(__x86_64__) || defined(__i386__) ch_mag = (__m128i *)&dl_ch_mag[0][0]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t *)&dl_ch_mag[0][0]; #endif len = frame_parms->N_RB_DL*12*10; @@ -917,7 +917,7 @@ void mch_16qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, llr32[6] = ((uint32_t *)&llr128[1])[2]; llr32[7] = ((uint32_t *)&llr128[1])[3]; llr32+=8; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm0 = vabsq_s16(rxF[i]); xmm0 = vsubq_s16(ch_mag[i],xmm0); // lambda_1=y_R, lambda_2=|y_R|-|h|^2, lamda_3=y_I, lambda_4=|y_I|-|h|^2 @@ -962,7 +962,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i xmm1,xmm2,*ch_mag,*ch_magb; __m128i *rxF = (__m128i *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t xmm1,xmm2,*ch_mag,*ch_magb; int16x8_t *rxF = (int16x8_t *)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)]; #endif @@ -980,7 +980,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) ch_mag = (__m128i *)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; ch_magb = (__m128i *)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t *)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)]; ch_magb = (int16x8_t *)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)]; #endif @@ -1003,7 +1003,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, xmm1 = _mm_subs_epi16(ch_mag[i],xmm1); xmm2 = _mm_abs_epi16(xmm1); xmm2 = _mm_subs_epi16(ch_magb[i],xmm2); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm1 = vabsq_s16(rxF[i]); xmm1 = vsubq_s16(ch_mag[i],xmm1); xmm2 = vabsq_s16(xmm1); @@ -1029,7 +1029,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,1);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,0);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,1);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,0); llr2[3] = vgetq_lane_s16(xmm1,1);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,0);//((short *)&xmm2)[j]; @@ -1043,7 +1043,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,3);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,2);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,3);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,2); llr2[3] = vgetq_lane_s16(xmm1,3);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,2);//((short *)&xmm2)[j]; @@ -1057,7 +1057,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,5);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,4);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,5);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,4); llr2[3] = vgetq_lane_s16(xmm1,5);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,4);//((short *)&xmm2)[j]; @@ -1071,7 +1071,7 @@ void mch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,7);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,6);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,7);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,6); llr2[3] = vgetq_lane_s16(xmm1,7);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,6);//((short *)&xmm2)[j]; @@ -1097,7 +1097,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i xmm1,xmm2,*ch_mag,*ch_magb; __m128i *rxF = (__m128i *)&rxdataF_comp[0][0]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t xmm1,xmm2,*ch_mag,*ch_magb; int16x8_t *rxF = (int16x8_t *)&rxdataF_comp[0][0]; #endif @@ -1113,7 +1113,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) ch_mag = (__m128i *)&dl_ch_mag[0][0]; ch_magb = (__m128i *)&dl_ch_magb[0][0]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t *)&dl_ch_mag[0][0]; ch_magb = (int16x8_t *)&dl_ch_magb[0][0]; #endif @@ -1130,7 +1130,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, xmm1 = _mm_subs_epi16(ch_mag[i],xmm1); xmm2 = _mm_abs_epi16(xmm1); xmm2 = _mm_subs_epi16(ch_magb[i],xmm2); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm1 = vabsq_s16(rxF[i]); xmm1 = vsubq_s16(ch_mag[i],xmm1); xmm2 = vabsq_s16(xmm1); @@ -1156,7 +1156,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,1);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,0);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,1);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,0); llr2[3] = vgetq_lane_s16(xmm1,1);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,0);//((short *)&xmm2)[j]; @@ -1170,7 +1170,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,3);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,2);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,3);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,2); llr2[3] = vgetq_lane_s16(xmm1,3);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,2);//((short *)&xmm2)[j]; @@ -1184,7 +1184,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,5);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,4);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,5);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,4); llr2[3] = vgetq_lane_s16(xmm1,5);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,4);//((short *)&xmm2)[j]; @@ -1198,7 +1198,7 @@ void mch_64qam_llr_khz_1dot25(LTE_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,7);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,6);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,7);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,6); llr2[3] = vgetq_lane_s16(xmm1,7);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,6);//((short *)&xmm2)[j]; diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c index 6a663e8940..341e1e90b6 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c @@ -47,7 +47,7 @@ void dft_lte(int32_t *z,struct complex16 *input, int32_t Msc_PUSCH, uint8_t Nsym #if defined(__x86_64__) || defined(__i386__) __m128i dft_in128[4][1200],dft_out128[4][1200]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t dft_in128[4][1200],dft_out128[4][1200]; #endif uint32_t *dft_in0=(uint32_t*)dft_in128[0],*dft_out0=(uint32_t*)dft_out128[0]; @@ -61,7 +61,7 @@ void dft_lte(int32_t *z,struct complex16 *input, int32_t Msc_PUSCH, uint8_t Nsym uint32_t i,ip; #if defined(__x86_64__) || defined(__i386__) __m128i norm128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t norm128; #endif // printf("Doing lte_dft for Msc_PUSCH %d\n",Msc_PUSCH); @@ -119,7 +119,7 @@ void dft_lte(int32_t *z,struct complex16 *input, int32_t Msc_PUSCH, uint8_t Nsym */ #if defined(__x86_64__) || defined(__i386__) norm128 = _mm_set1_epi16(9459); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) norm128 = vdupq_n_s16(9459); #endif for (i=0; i<12; i++) { @@ -127,7 +127,7 @@ void dft_lte(int32_t *z,struct complex16 *input, int32_t Msc_PUSCH, uint8_t Nsym ((__m128i*)dft_out0)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i*)dft_out0)[i],norm128),1); ((__m128i*)dft_out1)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i*)dft_out1)[i],norm128),1); ((__m128i*)dft_out2)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i*)dft_out2)[i],norm128),1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ((int16x8_t*)dft_out0)[i] = vqdmulhq_s16(((int16x8_t*)dft_out0)[i],norm128); ((int16x8_t*)dft_out1)[i] = vqdmulhq_s16(((int16x8_t*)dft_out1)[i],norm128); ((int16x8_t*)dft_out2)[i] = vqdmulhq_s16(((int16x8_t*)dft_out2)[i],norm128); diff --git a/openair1/PHY/MODULATION/nr_modulation.c b/openair1/PHY/MODULATION/nr_modulation.c index 2522e146e2..5d55cb142d 100644 --- a/openair1/PHY/MODULATION/nr_modulation.c +++ b/openair1/PHY/MODULATION/nr_modulation.c @@ -339,7 +339,7 @@ void nr_dft(int32_t *z, int32_t *d, uint32_t Msc_PUSCH) { #if defined(__x86_64__) || +defined(__i386__) __m128i dft_in128[1][3240], dft_out128[1][3240]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t dft_in128[1][3240], dft_out128[1][3240]; #endif uint32_t *dft_in0 = (uint32_t*)dft_in128[0], *dft_out0 = (uint32_t*)dft_out128[0]; @@ -348,7 +348,7 @@ void nr_dft(int32_t *z, int32_t *d, uint32_t Msc_PUSCH) #if defined(__x86_64__) || defined(__i386__) __m128i norm128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t norm128; #endif @@ -364,13 +364,13 @@ void nr_dft(int32_t *z, int32_t *d, uint32_t Msc_PUSCH) #if defined(__x86_64__) || defined(__i386__) norm128 = _mm_set1_epi16(9459); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) norm128 = vdupq_n_s16(9459); #endif for (i=0; i<12; i++) { #if defined(__x86_64__) || defined(__i386__) ((__m128i*)dft_out0)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i*)dft_out0)[i], norm128), 1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ((int16x8_t*)dft_out0)[i] = vqdmulhq_s16(((int16x8_t*)dft_out0)[i], norm128); #endif } diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c index 0f79c4532b..9bc083c808 100644 --- a/openair1/PHY/MODULATION/ofdm_mod.c +++ b/openair1/PHY/MODULATION/ofdm_mod.c @@ -203,19 +203,11 @@ void PHY_ofdm_mod(int *input, /// pointer to complex input printf("[PHY] symbol %d/%d offset %d (%p,%p -> %p)\n",i,nb_symbols,i*fftsize+(i*nb_prefix_samples),input,&input[i*fftsize],&output[(i*fftsize) + ((i)*nb_prefix_samples)]); #endif -#ifndef __AVX2__ - // handle 128-bit alignment for 128-bit SIMD (SSE4,NEON,AltiVEC) - idft(idftsize,(int16_t *)&input[i*fftsize], - (fftsize==128) ? (int16_t *)temp : (int16_t *)&output[(i*fftsize) + ((1+i)*nb_prefix_samples)], - 1); -#else // on AVX2 need 256-bit alignment idft(idftsize,(int16_t *)&input[i*fftsize], (int16_t *)temp, 1); -#endif - // Copy to frame buffer with Cyclic Extension // Note: will have to adjust for synchronization offset! @@ -227,9 +219,6 @@ void PHY_ofdm_mod(int *input, /// pointer to complex input // msg("Doing cyclic prefix method\n"); -#ifndef __AVX2__ - if (fftsize==128) -#endif { memcpy((void*)output_ptr,(void*)temp_ptr,fftsize<<2); } diff --git a/openair1/PHY/MODULATION/ul_7_5_kHz.c b/openair1/PHY/MODULATION/ul_7_5_kHz.c index 384b9d621c..a5e6122071 100644 --- a/openair1/PHY/MODULATION/ul_7_5_kHz.c +++ b/openair1/PHY/MODULATION/ul_7_5_kHz.c @@ -34,7 +34,7 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot) uint32_t *kHz7_5ptr; #if defined(__x86_64__) || defined(__i386__) __m128i *rxptr128,*rxptr128_7_5kHz,*kHz7_5ptr128,kHz7_5_2,mmtmp_re,mmtmp_im,mmtmp_re2,mmtmp_im2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxptr128,*kHz7_5ptr128,*rxptr128_7_5kHz; int32x4_t mmtmp_re,mmtmp_im; int32x4_t mmtmp0,mmtmp1; @@ -88,7 +88,7 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot) rxptr128 = (__m128i *)&rxdata[aa][slot_offset]; rxptr128_7_5kHz = (__m128i *)&rxdata_7_5kHz[aa][slot_offset2]; kHz7_5ptr128 = (__m128i *)kHz7_5ptr; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxptr128 = (int16x8_t *)&rxdata[aa][slot_offset]; rxptr128_7_5kHz = (int16x8_t *)&rxdata_7_5kHz[aa][slot_offset2]; kHz7_5ptr128 = (int16x8_t *)kHz7_5ptr; @@ -116,7 +116,7 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot) rxptr128_7_5kHz++; kHz7_5ptr128++; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) kHz7_5ptr128[0] = vmulq_s16(kHz7_5ptr128[0],((int16x8_t*)conjugate75_2)[0]); mmtmp0 = vmull_s16(((int16x4_t*)rxptr128)[0],((int16x4_t*)kHz7_5ptr128)[0]); diff --git a/openair1/PHY/MODULATION/ul_7_5_kHz_ue.c b/openair1/PHY/MODULATION/ul_7_5_kHz_ue.c index 3e3a839521..ff00d25198 100644 --- a/openair1/PHY/MODULATION/ul_7_5_kHz_ue.c +++ b/openair1/PHY/MODULATION/ul_7_5_kHz_ue.c @@ -37,7 +37,7 @@ void apply_7_5_kHz(PHY_VARS_UE *ue,int32_t*txdata,uint8_t slot) uint32_t *kHz7_5ptr; #if defined(__x86_64__) || defined(__i386__) __m128i *txptr128,*kHz7_5ptr128,mmtmp_re,mmtmp_im,mmtmp_re2,mmtmp_im2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *txptr128,*kHz7_5ptr128; int32x4_t mmtmp_re,mmtmp_im; int32x4_t mmtmp0,mmtmp1; @@ -84,7 +84,7 @@ void apply_7_5_kHz(PHY_VARS_UE *ue,int32_t*txdata,uint8_t slot) #if defined(__x86_64__) || defined(__i386__) txptr128 = (__m128i *)&txdata[slot_offset]; kHz7_5ptr128 = (__m128i *)kHz7_5ptr; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) txptr128 = (int16x8_t*)&txdata[slot_offset]; kHz7_5ptr128 = (int16x8_t*)kHz7_5ptr; #endif @@ -106,7 +106,7 @@ void apply_7_5_kHz(PHY_VARS_UE *ue,int32_t*txdata,uint8_t slot) txptr128[0] = _mm_packs_epi32(mmtmp_re2,mmtmp_im2); txptr128++; kHz7_5ptr128++; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) mmtmp0 = vmull_s16(((int16x4_t*)txptr128)[0],((int16x4_t*)kHz7_5ptr128)[0]); //mmtmp0 = [Re(ch[0])Re(rx[0]) Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1]) Im(ch[1])Im(ch[1])] diff --git a/openair1/PHY/NR_TRANSPORT/nr_scrambling.c b/openair1/PHY/NR_TRANSPORT/nr_scrambling.c index 8a49a7ffe0..202e058014 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_scrambling.c +++ b/openair1/PHY/NR_TRANSPORT/nr_scrambling.c @@ -34,45 +34,14 @@ void nr_codeword_scrambling(uint8_t *in, uint32_t x2 = (n_RNTI<<15) + (q<<14) + Nid; uint32_t s = 0; -#if defined(__AVX2__) s=lte_gold_generic(&x1, &x2, 1); for (int i=0; i<((size>>5)+((size&0x1f) > 0 ? 1 : 0)); i++) { __m256i c = ((__m256i*)in)[i]; - uint32_t in32 = _mm256_movemask_epi8(_mm256_slli_epi16(c,7)); + uint32_t in32 = simde_mm256_movemask_epi8(simde_mm256_slli_epi16(c,7)); out[i]=(in32^s); LOG_D(PHY,"in[%d] %x => %x\n",i,in32,out[i]); s=lte_gold_generic(&x1, &x2, 0); } -#elif defined(__SSE4__) - s=lte_gold_generic(&x1, &x2, 1); - __m128i *in128; - for (int i=0; i<((size>>5)+((size&0x1f) > 0 ? 1 : 0)); i++) { - in128=&((__m128i*)in)[i<<1]; - uint32_t in32; - ((uint16_t*)&in32)[0] = _mm_movemask_epi8(_mm_slli_epi16(in128[0],7)); - ((uint16_t*)&in32)[1] = _mm_movemask_epi8(_mm_slli_epi16(in128[1],7)); - out[i]=(in32^s); - LOG_D(PHY,"in[%d] %x => %x\n",i,in32,out[i]); - s=lte_gold_generic(&x1, &x2, 0); - } -//#elsif defined(__arm__) || defined(__aarch64) -#else - uint8_t reset = 1; - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PDSCH_CODEWORD_SCRAMBLING, 1); - for (int i = 0; i < size; i++) { - const uint8_t b_idx = i&0x1f; - if (b_idx==0) { - s = lte_gold_generic(&x1, &x2, reset); - reset = 0; - if (i) - out++; - } - *out ^= (((in[i])&1) ^ ((s>>b_idx)&1))<>2); i++) { #if defined(__x86_64__)||defined(__i386__) *&(((__m128i*)z)[i]) = _mm_sign_epi16(*&(((__m128i*)z)[i]), *(__m128i*)&conjugate2[0]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) *&(((int16x8_t*)z)[i]) = vmulq_s16(*&(((int16x8_t*)z)[i]), *(int16x8_t*)&conjugate2[0]); #endif } @@ -50,14 +50,14 @@ void nr_idft(int32_t *z, uint32_t Msc_PUSCH) #if defined(__x86_64__)||defined(__i386__) norm128 = _mm_set1_epi16(9459); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) norm128 = vdupq_n_s16(9459); #endif for (i = 0; i < 12; i++) { #if defined(__x86_64__)||defined(__i386__) ((__m128i*)idft_out0)[i] = _mm_slli_epi16(_mm_mulhi_epi16(((__m128i*)idft_out0)[i], norm128), 1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ((int16x8_t*)idft_out0)[i] = vqdmulhq_s16(((int16x8_t*)idft_out0)[i], norm128); #endif } @@ -288,7 +288,7 @@ void nr_idft(int32_t *z, uint32_t Msc_PUSCH) for (i = 0; i < (Msc_PUSCH>>2); i++) { #if defined(__x86_64__) || defined(__i386__) ((__m128i*)z)[i] = _mm_sign_epi16(((__m128i*)z)[i], *(__m128i*)&conjugate2[0]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) *&(((int16x8_t*)z)[i]) = vmulq_s16(*&(((int16x8_t*)z)[i]), *(int16x8_t*)&conjugate2[0]); #endif } @@ -328,11 +328,7 @@ void nr_ulsch_extract_rbs(int32_t **rxdataF, start_re = (frame_parms->first_carrier_offset + (pusch_pdu->rb_start + pusch_pdu->bwp_start) * NR_NB_SC_PER_RB)%frame_parms->ofdm_symbol_size; nb_re_pusch = NR_NB_SC_PER_RB * pusch_pdu->rb_size; -#ifdef __AVX2__ int nb_re_pusch2 = nb_re_pusch + (nb_re_pusch&7); -#else - int nb_re_pusch2 = nb_re_pusch; -#endif for (aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) { @@ -426,11 +422,7 @@ void nr_ulsch_scale_channel(int **ul_ch_estimates_ext, ch_amp128 = _mm_set1_epi16(ch_amp); // Q3.13 -#ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; -#else - int off = 0; -#endif for (aatx = 0; aatx < nrOfLayers; aatx++) { for (aarx=0; aarx < frame_parms->nb_antennas_rx; aarx++) { @@ -472,11 +464,7 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext, uint32_t nb_rb_0 = len/12 + ((len%12)?1:0); -#ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; -#else - int off = 0; -#endif for (aatx = 0; aatx < nrOfLayers; aatx++) { for (aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) { @@ -502,7 +490,7 @@ void nr_ulsch_channel_level(int **ul_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) short rb; unsigned char aatx, aarx, nre = 12, symbol_mod; @@ -578,11 +566,7 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext, unsigned short nb_rb, unsigned char output_shift) { -#ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; -#else - int off = 0; -#endif #ifdef DEBUG_CH_COMP int16_t *rxF, *ul_ch; @@ -899,7 +883,7 @@ void nr_ulsch_channel_compensation(int **rxdataF_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) unsigned short rb; unsigned char aatx,aarx,symbol_mod,is_dmrs_symbol=0; @@ -1141,18 +1125,14 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, int n_rx = frame_parms->nb_antennas_rx; #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128[2],*ul_ch_mag128[2],*ul_ch_mag128b[2]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*ul_ch_mag128_0,*ul_ch_mag128_0b; int16x8_t *rxdataF_comp128_1,*ul_ch_mag128_1,*ul_ch_mag128_1b; #endif int32_t i; uint32_t nb_rb_0 = length/12 + ((length%12)?1:0); -#ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; -#else - int off = 0; -#endif if (n_rx > 1) { #if defined(__x86_64__) || defined(__i386__) @@ -1177,7 +1157,7 @@ void nr_ulsch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, } } } - #elif defined(__arm__) + #elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128_0 = (int16x8_t *)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12]; @@ -1548,11 +1528,7 @@ uint8_t nr_ulsch_zero_forcing_rx_2layers(int **rxdataF_comp, int *ch20, *ch30, *ch21, *ch31; uint32_t nb_rb_0 = length/12 + ((length%12)?1:0); - #ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; - #else - int off = 0; - #endif /* we need at least alignment to 16 bytes, let's put 32 to be sure * (maybe not necessary but doesn't hurt) @@ -1976,11 +1952,7 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB, } stop_meas(&gNB->ulsch_channel_estimation_stats); -#ifdef __AVX2__ int off = ((rel15_ul->rb_size&1) == 1)? 4:0; -#else - int off = 0; -#endif uint32_t rxdataF_ext_offset = 0; for(uint8_t symbol = rel15_ul->start_symbol_index; symbol < (rel15_ul->start_symbol_index + rel15_ul->nr_of_symbols); symbol++) { @@ -2099,12 +2071,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB, stop_meas(&gNB->ulsch_mrc_stats); if (rel15_ul->transform_precoding == transformPrecoder_enabled) { - #ifdef __AVX2__ // For odd number of resource blocks need byte alignment to multiple of 8 int nb_re_pusch2 = nb_re_pusch + (nb_re_pusch&7); - #else - int nb_re_pusch2 = nb_re_pusch; - #endif // perform IDFT operation on the compensated rxdata if transform precoding is enabled nr_idft(&gNB->pusch_vars[ulsch_id]->rxdataF_comp[0][symbol * nb_re_pusch2], nb_re_pusch); diff --git a/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c b/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c index f6eefe846a..42fc1820ac 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c +++ b/openair1/PHY/NR_TRANSPORT/nr_ulsch_llr_computation.c @@ -72,20 +72,12 @@ void nr_ulsch_16qam_llr(int32_t *rxdataF_comp, { #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ __m256i *rxF = (__m256i*)rxdataF_comp; __m256i *ch_mag; __m256i llr256[2]; register __m256i xmm0; -#else - __m128i *rxF = (__m128i*)rxdataF_comp; - __m128i *ch_mag; - __m128i llr128[2]; - register __m128i xmm0; -#endif uint32_t *llr32; - -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF = (int16x8_t*)&rxdataF_comp; int16x8_t *ch_mag; int16x8_t xmm0; @@ -95,107 +87,65 @@ void nr_ulsch_16qam_llr(int32_t *rxdataF_comp, int i; -#ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; -#else - int off = 0; -#endif - #if defined(__x86_64__) || defined(__i386__) llr32 = (uint32_t*)ulsch_llr; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr16 = (int16_t*)ulsch_llr; #endif #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ ch_mag = (__m256i*)&ul_ch_mag[(symbol*(off+(nb_rb*12)))]; -#else - ch_mag = (__m128i*)&ul_ch_mag[(symbol*(off+(nb_rb*12)))]; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t*)&ul_ch_mag[(symbol*nb_rb*12)]; #endif - -#ifdef __AVX2__ unsigned char len_mod8 = nb_re&7; nb_re >>= 3; // length in quad words (4 REs) nb_re += (len_mod8 == 0 ? 0 : 1); -#else - unsigned char len_mod4 = nb_re&3; - nb_re >>= 2; // length in quad words (4 REs) - nb_re += (len_mod4 == 0 ? 0 : 1); -#endif for (i=0; i |y_R|, registers of odd index in xmm0-> |y_I| - xmm0 = _mm256_subs_epi16(ch_mag[i],xmm0); // registers of even index in xmm0-> |y_R|-|h|^2, registers of odd index in xmm0-> |y_I|-|h|^2 + xmm0 = simde_mm256_abs_epi16(rxF[i]); // registers of even index in xmm0-> |y_R|, registers of odd index in xmm0-> |y_I| + xmm0 = simde_mm256_subs_epi16(ch_mag[i],xmm0); // registers of even index in xmm0-> |y_R|-|h|^2, registers of odd index in xmm0-> |y_I|-|h|^2 - llr256[0] = _mm256_unpacklo_epi32(rxF[i],xmm0); // llr128[0] contains the llrs of the 1st,2nd,5th and 6th REs - llr256[1] = _mm256_unpackhi_epi32(rxF[i],xmm0); // llr128[1] contains the llrs of the 3rd, 4th, 7th and 8th REs + llr256[0] = simde_mm256_unpacklo_epi32(rxF[i],xmm0); // llr128[0] contains the llrs of the 1st,2nd,5th and 6th REs + llr256[1] = simde_mm256_unpackhi_epi32(rxF[i],xmm0); // llr128[1] contains the llrs of the 3rd, 4th, 7th and 8th REs // 1st RE - llr32[0] = _mm256_extract_epi32(llr256[0],0); // llr32[0] low 16 bits-> y_R , high 16 bits-> y_I - llr32[1] = _mm256_extract_epi32(llr256[0],1); // llr32[1] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[0] = simde_mm256_extract_epi32(llr256[0],0); // llr32[0] low 16 bits-> y_R , high 16 bits-> y_I + llr32[1] = simde_mm256_extract_epi32(llr256[0],1); // llr32[1] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 2nd RE - llr32[2] = _mm256_extract_epi32(llr256[0],2); // llr32[2] low 16 bits-> y_R , high 16 bits-> y_I - llr32[3] = _mm256_extract_epi32(llr256[0],3); // llr32[3] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[2] = simde_mm256_extract_epi32(llr256[0],2); // llr32[2] low 16 bits-> y_R , high 16 bits-> y_I + llr32[3] = simde_mm256_extract_epi32(llr256[0],3); // llr32[3] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 3rd RE - llr32[4] = _mm256_extract_epi32(llr256[1],0); // llr32[4] low 16 bits-> y_R , high 16 bits-> y_I - llr32[5] = _mm256_extract_epi32(llr256[1],1); // llr32[5] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[4] = simde_mm256_extract_epi32(llr256[1],0); // llr32[4] low 16 bits-> y_R , high 16 bits-> y_I + llr32[5] = simde_mm256_extract_epi32(llr256[1],1); // llr32[5] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 4th RE - llr32[6] = _mm256_extract_epi32(llr256[1],2); // llr32[6] low 16 bits-> y_R , high 16 bits-> y_I - llr32[7] = _mm256_extract_epi32(llr256[1],3); // llr32[7] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[6] = simde_mm256_extract_epi32(llr256[1],2); // llr32[6] low 16 bits-> y_R , high 16 bits-> y_I + llr32[7] = simde_mm256_extract_epi32(llr256[1],3); // llr32[7] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 5th RE - llr32[8] = _mm256_extract_epi32(llr256[0],4); // llr32[8] low 16 bits-> y_R , high 16 bits-> y_I - llr32[9] = _mm256_extract_epi32(llr256[0],5); // llr32[9] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[8] = simde_mm256_extract_epi32(llr256[0],4); // llr32[8] low 16 bits-> y_R , high 16 bits-> y_I + llr32[9] = simde_mm256_extract_epi32(llr256[0],5); // llr32[9] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 6th RE - llr32[10] = _mm256_extract_epi32(llr256[0],6); // llr32[10] low 16 bits-> y_R , high 16 bits-> y_I - llr32[11] = _mm256_extract_epi32(llr256[0],7); // llr32[11] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[10] = simde_mm256_extract_epi32(llr256[0],6); // llr32[10] low 16 bits-> y_R , high 16 bits-> y_I + llr32[11] = simde_mm256_extract_epi32(llr256[0],7); // llr32[11] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 7th RE - llr32[12] = _mm256_extract_epi32(llr256[1],4); // llr32[12] low 16 bits-> y_R , high 16 bits-> y_I - llr32[13] = _mm256_extract_epi32(llr256[1],5); // llr32[13] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[12] = simde_mm256_extract_epi32(llr256[1],4); // llr32[12] low 16 bits-> y_R , high 16 bits-> y_I + llr32[13] = simde_mm256_extract_epi32(llr256[1],5); // llr32[13] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 // 8th RE - llr32[14] = _mm256_extract_epi32(llr256[1],6); // llr32[14] low 16 bits-> y_R , high 16 bits-> y_I - llr32[15] = _mm256_extract_epi32(llr256[1],7); // llr32[15] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 + llr32[14] = simde_mm256_extract_epi32(llr256[1],6); // llr32[14] low 16 bits-> y_R , high 16 bits-> y_I + llr32[15] = simde_mm256_extract_epi32(llr256[1],7); // llr32[15] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 llr32+=16; -#else - xmm0 = _mm_abs_epi16(rxF[i]); // registers of even index in xmm0-> |y_R|, registers of odd index in xmm0-> |y_I| - xmm0 = _mm_subs_epi16(ch_mag[i],xmm0); // registers of even index in xmm0-> |y_R|-|h|^2, registers of odd index in xmm0-> |y_I|-|h|^2 - - llr128[0] = _mm_unpacklo_epi32(rxF[i],xmm0); // llr128[0] contains the llrs of the 1st and 2nd REs - llr128[1] = _mm_unpackhi_epi32(rxF[i],xmm0); // llr128[1] contains the llrs of the 3rd and 4th REs - - // 1st RE - llr32[0] = _mm_extract_epi32(llr128[0],0); // llr32[0] low 16 bits-> y_R , high 16 bits-> y_I - llr32[1] = _mm_extract_epi32(llr128[0],1); // llr32[1] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 - - // 2nd RE - llr32[2] = _mm_extract_epi32(llr128[0],2); // llr32[2] low 16 bits-> y_R , high 16 bits-> y_I - llr32[3] = _mm_extract_epi32(llr128[0],3); // llr32[3] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 - - // 3rd RE - llr32[4] = _mm_extract_epi32(llr128[1],0); // llr32[4] low 16 bits-> y_R , high 16 bits-> y_I - llr32[5] = _mm_extract_epi32(llr128[1],1); // llr32[5] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 - - // 4th RE - llr32[6] = _mm_extract_epi32(llr128[1],2); // llr32[6] low 16 bits-> y_R , high 16 bits-> y_I - llr32[7] = _mm_extract_epi32(llr128[1],3); // llr32[7] low 16 bits-> |h|-|y_R|^2, high 16 bits-> |h|-|y_I|^2 - - llr32+=8; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm0 = vabsq_s16(rxF[i]); xmm0 = vqsubq_s16((*(__m128i*)&ones[0]),xmm0); @@ -238,24 +188,13 @@ void nr_ulsch_64qam_llr(int32_t *rxdataF_comp, uint32_t nb_re, uint8_t symbol) { - -#ifdef __AVX2__ int off = ((nb_rb&1) == 1)? 4:0; -#else - int off = 0; -#endif #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ __m256i *rxF = (__m256i*)rxdataF_comp; __m256i *ch_mag,*ch_magb; register __m256i xmm0,xmm1,xmm2; -#else - __m128i *rxF = (__m128i*)rxdataF_comp; - __m128i *ch_mag,*ch_magb; - register __m128i xmm0,xmm1,xmm2; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF = (int16x8_t*)&rxdataF_comp; int16x8_t *ch_mag,*ch_magb; // [hna] This should be uncommented once channel estimation is implemented int16x8_t xmm0,xmm1,xmm2; @@ -264,43 +203,25 @@ void nr_ulsch_64qam_llr(int32_t *rxdataF_comp, int i; #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ ch_mag = (__m256i*)&ul_ch_mag[(symbol*(off+(nb_rb*12)))]; ch_magb = (__m256i*)&ul_ch_magb[(symbol*(off+(nb_rb*12)))]; -#else - ch_mag = (__m128i*)&ul_ch_mag[(symbol*nb_rb*12)]; - ch_magb = (__m128i*)&ul_ch_magb[(symbol*nb_rb*12)]; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t*)&ul_ch_mag[(symbol*nb_rb*12)]; ch_magb = (int16x8_t*)&ul_ch_magb[(symbol*nb_rb*12)]; #endif -#ifdef __AVX2__ int len_mod8 = nb_re&7; nb_re = nb_re>>3; // length in quad words (4 REs) nb_re += ((len_mod8 == 0) ? 0 : 1); -#else - int len_mod4 = nb_re&3; - nb_re = nb_re>>2; // length in quad words (4 REs) - nb_re += ((len_mod4 == 0) ? 0 : 1); -#endif for (i=0; i 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,0); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,0); bit = (out&0x2) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,0); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,0); bit = (out&0x4) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,1); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,1); bit = (out&0x8) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,1); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,1); bit = (out&0x10) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,2); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,2); bit = (out&0x20) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,2); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,2); bit = (out&0x40) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,3); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,3); bit = (out&0x80) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,3); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,3); bit = (out&0x100) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,4); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,4); bit = (out&0x200) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,4); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,4); bit = (out&0x400) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,5); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,5); bit = (out&0x800) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,5); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,5); bit = (out&0x1000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,6); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,6); bit = (out&0x2000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,6); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,6); bit = (out&0x4000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,7); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,7); bit = (out&0x8000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,7); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,7); bit = (out&0x10000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,8); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,8); bit = (out&0x20000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,8); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,8); bit = (out&0x40000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,9); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,9); bit = (out&0x80000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,9); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,9); bit = (out&0x100000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,10); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,10); bit = (out&0x200000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,10); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,10); bit = (out&0x400000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,11); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,11); bit = (out&0x800000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,11); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,11); bit = (out&0x1000000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,12); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,12); bit = (out&0x2000000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,12); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,12); bit = (out&0x4000000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,13); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,13); bit = (out&0x8000000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,13); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,13); bit = (out&0x10000000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,14); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,14); bit = (out&0x20000000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,14); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,14); bit = (out&0x40000000) > 0 ? -1 : 1; - *lut_i = _mm256_insert_epi16(*lut_i,bit,15); + *lut_i = simde_mm256_insert_epi16(*lut_i,bit,15); bit = (out&0x80000000) > 0 ? -1 : 1; - *lut_ip1 = _mm256_insert_epi16(*lut_ip1,bit,15); + *lut_ip1 = simde_mm256_insert_epi16(*lut_ip1,bit,15); } } for (uint16_t i=0;i<16;i++) { @@ -1497,10 +1497,10 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB, for (int group=0;group (%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)\n",aa, ((int16_t*)&prod_re[aa])[0],((int16_t*)&prod_re[aa])[1],((int16_t*)&prod_re[aa])[2],((int16_t*)&prod_re[aa])[3], @@ -1514,14 +1514,14 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB, ((int16_t*)&prod_im[aa])[12],((int16_t*)&prod_im[aa])[13],((int16_t*)&prod_im[aa])[14],((int16_t*)&prod_im[aa])[15]); #endif - prod_re[aa] = _mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1 - prod_im[aa] = _mm256_hadds_epi16(prod_im[aa],prod_im[aa]); - prod_re[aa] = _mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1+2+3 - prod_im[aa] = _mm256_hadds_epi16(prod_im[aa],prod_im[aa]); - prod_re[aa] = _mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1+2+3+4+5+6+7 - prod_im[aa] = _mm256_hadds_epi16(prod_im[aa],prod_im[aa]); - prod_re[aa] = _mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15 - prod_im[aa] = _mm256_hadds_epi16(prod_im[aa],prod_im[aa]); + prod_re[aa] = simde_mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1 + prod_im[aa] = simde_mm256_hadds_epi16(prod_im[aa],prod_im[aa]); + prod_re[aa] = simde_mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1+2+3 + prod_im[aa] = simde_mm256_hadds_epi16(prod_im[aa],prod_im[aa]); + prod_re[aa] = simde_mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1+2+3+4+5+6+7 + prod_im[aa] = simde_mm256_hadds_epi16(prod_im[aa],prod_im[aa]); + prod_re[aa] = simde_mm256_hadds_epi16(prod_re[aa],prod_re[aa]);// 0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15 + prod_im[aa] = simde_mm256_hadds_epi16(prod_im[aa],prod_im[aa]); } int64_t corr_re=0,corr_im=0; diff --git a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c index 68a0ec56d8..54019188f6 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c +++ b/openair1/PHY/NR_UE_TRANSPORT/dci_nr.c @@ -283,7 +283,7 @@ void nr_pdcch_channel_level(int32_t rx_size, #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128; __m128i avg128P; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *dl_ch128; int32x4_t *avg128P; #endif @@ -293,7 +293,7 @@ void nr_pdcch_channel_level(int32_t rx_size, #if defined(__x86_64__) || defined(__i386__) avg128P = _mm_setzero_si128(); dl_ch128=(__m128i *)&dl_ch_estimates_ext[aarx][symbol*nb_rb*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) dl_ch128=(int16x8_t *)&dl_ch_estimates_ext[aarx][symbol*nb_rb*12]; #endif @@ -302,7 +302,7 @@ void nr_pdcch_channel_level(int32_t rx_size, avg128P = _mm_add_epi32(avg128P,_mm_madd_epi16(dl_ch128[0],dl_ch128[0])); avg128P = _mm_add_epi32(avg128P,_mm_madd_epi16(dl_ch128[1],dl_ch128[1])); avg128P = _mm_add_epi32(avg128P,_mm_madd_epi16(dl_ch128[2],dl_ch128[2])); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif // for (int i=0;i<24;i+=2) printf("pdcch channel re %d (%d,%d)\n",(rb*12)+(i>>1),((int16_t*)dl_ch128)[i],((int16_t*)dl_ch128)[i+1]); dl_ch128+=3; @@ -331,7 +331,7 @@ void nr_pdcch_channel_level(int32_t rx_size, #if defined(__x86_64) || defined(__i386__) __m128i mmtmpPD0,mmtmpPD1,mmtmpPD2,mmtmpPD3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -529,12 +529,12 @@ void nr_pdcch_channel_compensation(int32_t rx_size, int32_t rxdataF_ext[][rx_siz uint8_t aarx; #if defined(__x86_64__) || defined(__i386__) __m128i mmtmpP0,mmtmpP1,mmtmpP2,mmtmpP3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t mmtmpP0,mmtmpP1,mmtmpP2,mmtmpP3; #endif #if defined(__x86_64__) || defined(__i386__) __m128i *dl_ch128,*rxdataF128,*rxdataF_comp128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif for (aarx=0; aarxnb_antennas_rx; aarx++) { @@ -545,7 +545,7 @@ void nr_pdcch_channel_compensation(int32_t rx_size, int32_t rxdataF_ext[][rx_siz //printf("ch compensation dl_ch ext addr %p \n", &dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*20*12]); //printf("rxdataf ext addr %p symbol %d\n", &rxdataF_ext[aarx][symbol*20*12], symbol); //printf("rxdataf_comp addr %p\n",&rxdataF_comp[(aatx<<1)+aarx][symbol*20*12]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) // to be filled in #endif @@ -616,7 +616,7 @@ void nr_pdcch_channel_compensation(int32_t rx_size, int32_t rxdataF_ext[][rx_siz dl_ch128+=3; rxdataF128+=3; rxdataF_comp128+=3; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) // to be filled in #endif } @@ -635,7 +635,7 @@ void nr_pdcch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, uint8_t symbol) { #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1; #endif int32_t i; @@ -644,7 +644,7 @@ void nr_pdcch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0 = (__m128i *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (__m128i *)&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[0][symbol*frame_parms->N_RB_DL*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[1][symbol*frame_parms->N_RB_DL*12]; #endif @@ -653,7 +653,7 @@ void nr_pdcch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, for (i=0; iN_RB_DL*3; i++) { #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0[i] = _mm_adds_epi16(_mm_srai_epi16(rxdataF_comp128_0[i],1),_mm_srai_epi16(rxdataF_comp128_1[i],1)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0[i] = vhaddq_s16(rxdataF_comp128_0[i],rxdataF_comp128_1[i]); #endif } diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c index 93bbfd1737..79bd56f1c2 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c @@ -951,7 +951,7 @@ void nr_dlsch_channel_compensation(int **rxdataF_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) unsigned short rb; unsigned char aatx,aarx,symbol_mod; @@ -1388,7 +1388,7 @@ void nr_dlsch_scale_channel(int **dl_ch_estimates_ext, } } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -1443,7 +1443,7 @@ void nr_dlsch_channel_level(int **dl_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) short rb; unsigned char aatx,aarx,nre=12,symbol_mod; @@ -1553,7 +1553,7 @@ void nr_dlsch_channel_level_median(int **dl_ch_estimates_ext, _mm_empty(); _m_empty(); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) short rb; unsigned char aatx,aarx,nre=12,symbol_mod; diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c index ca15a5b5be..eb7d6dad20 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c @@ -616,7 +616,7 @@ __m128i tmp_result4 __attribute__ ((aligned(16))); // calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor for 64-QAM #define square_a_64qam_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm_mulhi_epi16(a_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm_slli_epi16(tmp_result,3); tmp_result = _mm_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(a_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm_slli_epi16(tmp_result2,3); tmp_result2 = _mm_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm_slli_epi16(tmp_result2,1); a_sq = _mm_adds_epi16(tmp_result,tmp_result2); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -686,7 +686,7 @@ void nr_dlsch_16qam_llr(NR_DL_FRAME_PARMS *frame_parms, __m128i *ch_mag; __m128i llr128[2]; uint32_t *llr32; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF = (int16x8_t*)&rxdataF_comp[(symbol*nb_rb*12)]; int16x8_t *ch_mag; int16x8_t xmm0; @@ -700,13 +700,13 @@ void nr_dlsch_16qam_llr(NR_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) llr32 = (uint32_t*)dlsch_llr; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr16 = (int16_t*)dlsch_llr; #endif #if defined(__x86_64__) || defined(__i386__) ch_mag = (__m128i*)&dl_ch_mag[(symbol*nb_rb*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t*)&dl_ch_mag[(symbol*nb_rb*12)]; #endif @@ -736,7 +736,7 @@ void nr_dlsch_16qam_llr(NR_DL_FRAME_PARMS *frame_parms, llr32[6] = _mm_extract_epi32(llr128[1],2); //((uint32_t *)&llr128[1])[2]; llr32[7] = _mm_extract_epi32(llr128[1],3); //((uint32_t *)&llr128[1])[3]; llr32+=8; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm0 = vabsq_s16(rxF[i]); xmm0 = vqsubq_s16(ch_mag[i],xmm0); // lambda_1=y_R, lambda_2=|y_R|-|h|^2, lamda_3=y_I, lambda_4=|y_I|-|h|^2 @@ -786,7 +786,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) __m128i *rxF = (__m128i*)&rxdataF_comp[(symbol*nb_rb*12)]; __m128i *ch_mag,*ch_magb; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxF = (int16x8_t*)&rxdataF_comp[(symbol*nb_rb*12)]; int16x8_t *ch_mag,*ch_magb,xmm1,xmm2; #endif @@ -799,7 +799,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) ch_mag = (__m128i*)&dl_ch_mag[(symbol*nb_rb*12)]; ch_magb = (__m128i*)&dl_ch_magb[(symbol*nb_rb*12)]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ch_mag = (int16x8_t*)&dl_ch_mag[(symbol*nb_rb*12)]; ch_magb = (int16x8_t*)&dl_ch_magb[(symbol*nb_rb*12)]; #endif @@ -824,7 +824,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, xmm1 = _mm_subs_epi16(ch_mag[i],xmm1); xmm2 = _mm_abs_epi16(xmm1); xmm2 = _mm_subs_epi16(ch_magb[i],xmm2); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) xmm1 = vabsq_s16(rxF[i]); xmm1 = vsubq_s16(ch_mag[i],xmm1); xmm2 = vabsq_s16(xmm1); @@ -850,7 +850,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,1);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,0);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,1);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,0); llr2[3] = vgetq_lane_s16(xmm1,1);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,0);//((short *)&xmm2)[j]; @@ -865,7 +865,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,3);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,2);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,3);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,2); llr2[3] = vgetq_lane_s16(xmm1,3);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,2);//((short *)&xmm2)[j]; @@ -880,7 +880,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,5);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,4);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,5);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,4); llr2[3] = vgetq_lane_s16(xmm1,5);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,4);//((short *)&xmm2)[j]; @@ -894,7 +894,7 @@ void nr_dlsch_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, llr2[3] = _mm_extract_epi16(xmm1,7);//((short *)&xmm1)[j+1]; llr2[4] = _mm_extract_epi16(xmm2,6);//((short *)&xmm2)[j]; llr2[5] = _mm_extract_epi16(xmm2,7);//((short *)&xmm2)[j+1]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) llr2[2] = vgetq_lane_s16(xmm1,6); llr2[3] = vgetq_lane_s16(xmm1,7);//((short *)&xmm1)[j+1]; llr2[4] = vgetq_lane_s16(xmm2,6);//((short *)&xmm2)[j]; @@ -1241,7 +1241,7 @@ void nr_qpsk_qpsk(short *stream0_in, __m128i *stream1_128i_in = (__m128i *)stream1_in; __m128i *stream0_128i_out = (__m128i *)stream0_out; __m128i ONE_OVER_SQRT_8 = _mm_set1_epi16(23170); //round(2^16/sqrt(8)) -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rho01_128i = (int16x8_t *)rho01; int16x8_t *stream0_128i_in = (int16x8_t *)stream0_in; int16x8_t *stream1_128i_in = (int16x8_t *)stream1_in; @@ -1277,7 +1277,7 @@ void nr_qpsk_qpsk(short *stream0_in, // divide by sqrt(8), no shift needed ONE_OVER_SQRT_8 = Q1.16 rho_rpi = _mm_mulhi_epi16(rho_rpi,ONE_OVER_SQRT_8); rho_rmi = _mm_mulhi_epi16(rho_rmi,ONE_OVER_SQRT_8); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -1301,7 +1301,7 @@ void nr_qpsk_qpsk(short *stream0_in, y0r_over2 = _mm_srai_epi16(y0r,1); // divide by 2 y0i_over2 = _mm_srai_epi16(y0i,1); // divide by 2 -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -1503,7 +1503,7 @@ void nr_qpsk_qam16(int16_t *stream0_in, __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15) __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15) __m128i ch_mag_int __attribute__((aligned(16))); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rho01_128i = (int16x8_t *)rho01; int16x8_t *stream0_128i_in = (int16x8_t *)stream0_in; int16x8_t *stream1_128i_in = (int16x8_t *)stream1_in; @@ -1678,7 +1678,7 @@ void nr_qpsk_qam16(int16_t *stream0_in, if (i<((length>>1) - 1)) // false if only 2 REs remain stream0_128i_out[i+1] = _mm_unpackhi_epi16(y0r,y0i); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -1791,7 +1791,7 @@ void nr_qpsk_qam64(short *stream0_in, __m128i ch_mag_int_with_sigma2; __m128i two_ch_mag_int_with_sigma2; __m128i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -1976,7 +1976,7 @@ void nr_qpsk_qam64(short *stream0_in, if (i<((length>>1) - 1)) // false if only 2 REs remain stream0_128i_out[i+1] = _mm_unpackhi_epi16(y0r,y0i); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -2052,7 +2052,7 @@ void nr_qam16_qpsk(short *stream0_in, __m128i ch_mag_over_10; __m128i ch_mag_over_2; __m128i ch_mag_9_over_10; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -2443,7 +2443,7 @@ void nr_qam16_qpsk(short *stream0_in, stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3); stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -2561,7 +2561,7 @@ void nr_qam16_qam16(short *stream0_in, __m128i ch_mag_over_10; __m128i ch_mag_over_2; __m128i ch_mag_9_over_10; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -2995,7 +2995,7 @@ void nr_qam16_qam16(short *stream0_in, stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2); stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3); stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -3112,7 +3112,7 @@ void nr_qam16_qam64(int16_t *stream0_in, __m128i two_ch_mag_int_with_sigma2; __m128i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif int i; @@ -3614,7 +3614,7 @@ void nr_qam16_qam64(int16_t *stream0_in, stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2); stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3); stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -3795,7 +3795,7 @@ void nr_qam64_qpsk(int16_t *stream0_in, __m128i y0i_three_over_sqrt_21; __m128i y0i_five_over_sqrt_21; __m128i y0i_seven_over_sqrt_21; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -5180,7 +5180,7 @@ void nr_qam64_qpsk(int16_t *stream0_in, stream0_out[j + 45] = ((short *)&y0i)[7]; stream0_out[j + 46] = ((short *)&y1i)[7]; stream0_out[j + 47] = ((short *)&y2i)[7]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -5320,7 +5320,7 @@ void nr_qam64_qam16(short *stream0_in, __m128i y0i_five_over_sqrt_21; __m128i y0i_seven_over_sqrt_21; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif int i,j; @@ -6720,7 +6720,7 @@ void nr_qam64_qam16(short *stream0_in, stream0_out[j + 46] = ((short *)&y1i)[7]; stream0_out[j + 47] = ((short *)&y2i)[7]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif } @@ -6867,7 +6867,7 @@ void qam64_qam64(short *stream0_in, __m128i ch_mag_int_with_sigma2; __m128i two_ch_mag_int_with_sigma2; __m128i three_ch_mag_int_with_sigma2; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -8531,7 +8531,7 @@ void qam64_qam64(short *stream0_in, stream0_out[j + 46] = ((short *)&y1i)[7]; stream0_out[j + 47] = ((short *)&y2i)[7]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #endif @@ -8593,8 +8593,6 @@ int nr_dlsch_64qam_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, llr16, pllr_symbol);*/ -#ifdef __AVX2__ - // Round length up to multiple of 16 words uint32_t len256i = ((len+16)>>4)*16; int32_t *rxF_256i = (int32_t*) malloc16_clear(len256i*4); @@ -8633,16 +8631,6 @@ int nr_dlsch_64qam_64qam_llr(NR_DL_FRAME_PARMS *frame_parms, free16(ch_mag_i_256i, sizeof(ch_mag_i_256i)); free16(rho_256i, sizeof(rho_256i)); -#else - qam64_qam64((short *)rxF, - (short *)rxF_i, - (short *)ch_mag, - (short *)ch_mag_i, - (short *)llr16, - (short *)rho, - len); -#endif - llr16 += (6*len); //*llr16p = (short *)llr16; diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c index d7b1c93e1d..040a21d76c 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c @@ -197,7 +197,7 @@ int nr_pbch_channel_level(struct complex16 dl_ch_estimates_ext[][PBCH_MAX_RE_PER #if defined(__x86_64__) || defined(__i386__) __m128i avg128; __m128i *dl_ch128; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t avg128; int16x8_t *dl_ch128; #endif @@ -208,7 +208,7 @@ int nr_pbch_channel_level(struct complex16 dl_ch_estimates_ext[][PBCH_MAX_RE_PER #if defined(__x86_64__) || defined(__i386__) avg128 = _mm_setzero_si128(); dl_ch128=(__m128i *)dl_ch_estimates_ext[aarx]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) avg128 = vdupq_n_s32(0); dl_ch128=(int16x8_t *)dl_ch_estimates_ext[aarx]; #endif @@ -218,7 +218,7 @@ int nr_pbch_channel_level(struct complex16 dl_ch_estimates_ext[][PBCH_MAX_RE_PER avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[0],dl_ch128[0])); avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[1],dl_ch128[1])); avg128 = _mm_add_epi32(avg128,_mm_madd_epi16(dl_ch128[2],dl_ch128[2])); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) abort(); // to be filled in #endif @@ -271,7 +271,7 @@ void nr_pbch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, int i, nb_rb=6; #if defined(__x86_64__) || defined(__i386__) __m128i *rxdataF_comp128_0,*rxdataF_comp128_1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *rxdataF_comp128_0,*rxdataF_comp128_1; #endif symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol; @@ -280,7 +280,7 @@ void nr_pbch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, #if defined(__x86_64__) || defined(__i386__) rxdataF_comp128_0 = (__m128i *)&rxdataF_comp[0][symbol_mod*6*12]; rxdataF_comp128_1 = (__m128i *)&rxdataF_comp[1][symbol_mod*6*12]; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[0][symbol_mod*6*12]; rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[1][symbol_mod*6*12]; #endif @@ -289,7 +289,7 @@ void nr_pbch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms, for (i=0; ir, -alpha->i}; - __m256i const alpha_for_real = _mm256_set1_epi32(*(uint32_t*)&for_re); + __m256i const alpha_for_real = simde_mm256_set1_epi32(*(uint32_t*)&for_re); const c16_t for_im={alpha->i, alpha->r}; - __m256i const alpha_for_im= _mm256_set1_epi32(*(uint32_t*)&for_im); + __m256i const alpha_for_im= simde_mm256_set1_epi32(*(uint32_t*)&for_im); __m256i const perm_mask = - _mm256_set_epi8(31,30,23,22,29,28,21,20,27,26,19,18,25,24,17,16, - 15,14,7,6,13,12,5,4,11,10,3,2,9,8,1,0); + simde_mm256_set_epi8(31,30,23,22,29,28,21,20,27,26,19,18,25,24,17,16, + 15,14,7,6,13,12,5,4,11,10,3,2,9,8,1,0); __m256i* xd= (__m256i*)x; const __m256i *end=xd+N/8; for( __m256i* yd = (__m256i *)y; xdi; ((int16_t *)&alpha_128)[6] = alpha->i; ((int16_t *)&alpha_128)[7] = alpha->r; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t shift; int32x4_t ab_re0,ab_re1,ab_im0,ab_im1,re32,im32; int16_t reflip[8] __attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1}; @@ -196,7 +192,7 @@ void rotate_cpx_vector(c16_t *x, y_128[0] = _mm_packs_epi32(m2,m3); // pack in 16bit integers with saturation [re im re im re im re im] //print_ints("y_128[0]=", &y_128[0]); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) ab_re0 = vmull_s16(((int16x4_t*)xd)[0],((int16x4_t*)&bconj)[0]); ab_re1 = vmull_s16(((int16x4_t*)xd)[1],((int16x4_t*)&bconj)[1]); @@ -214,7 +210,6 @@ void rotate_cpx_vector(c16_t *x, y_128[0] = vcombine_s16(vmovn_s32(xtmp.val[0]),vmovn_s32(xtmp.val[1])); #endif - xd+=4; y_128+=1; } diff --git a/openair1/PHY/TOOLS/cmult_vv.c b/openair1/PHY/TOOLS/cmult_vv.c index ce3ebec65f..41ed9c2e6c 100644 --- a/openair1/PHY/TOOLS/cmult_vv.c +++ b/openair1/PHY/TOOLS/cmult_vv.c @@ -31,7 +31,7 @@ int16_t conjug2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1} ; #define simdshort_q15_t __m64 #define set1_int16(a) _mm_set1_epi16(a) #define setr_int16(a0, a1, a2, a3, a4, a5, a6, a7) _mm_setr_epi16(a0, a1, a2, a3, a4, a5, a6, a7 ) -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16_t conjug[4]__attribute__((aligned(16))) = {-1,1,-1,1} ; #define simd_q15_t int16x8_t #define simdshort_q15_t int16x4_t @@ -70,7 +70,7 @@ int mult_cpx_conj_vector(int16_t *x1, simd_q15_t tmp_re,tmp_im; simd_q15_t tmpy0,tmpy1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t tmp_re,tmp_im; int32x4_t tmp_re1,tmp_im1; int16x4x2_t tmpy; @@ -99,7 +99,7 @@ int mult_cpx_conj_vector(int16_t *x1, else *y_128 += _mm_packs_epi32(tmpy0,tmpy1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) tmp_re = vmull_s16(((simdshort_q15_t *)x1_128)[0], ((simdshort_q15_t*)x2_128)[0]); //tmp_re = [Re(x1[0])Re(x2[0]) Im(x1[0])Im(x2[0]) Re(x1[1])Re(x2[1]) Im(x1[1])Im(x2[1])] @@ -227,7 +227,7 @@ int multadd_cpx_vector(int16_t *x1, #if defined(__x86_64__) || defined(__i386__) simd_q15_t tmp_re,tmp_im; simd_q15_t tmpy0,tmpy1; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int32x4_t tmp_re,tmp_im; int32x4_t tmp_re1,tmp_im1; int16x4x2_t tmpy; @@ -255,8 +255,8 @@ int multadd_cpx_vector(int16_t *x1, else *y_128 = _mm_adds_epi16(*y_128,_mm_packs_epi32(tmpy0,tmpy1)); //print_shorts("*y_128:",&y_128[i]); -#elif defined(__arm__) - msg("mult_cpx_vector not implemented for __arm__"); +#elif defined(__arm__) || defined(__aarch64__) + msg("mult_cpx_vector not implemented for __arm__ nor __aarch64__"); #endif x1_128++; x2_128++; diff --git a/openair1/PHY/TOOLS/oai_dfts.c b/openair1/PHY/TOOLS/oai_dfts.c index cbedfd815a..126ba0f34c 100644 --- a/openair1/PHY/TOOLS/oai_dfts.c +++ b/openair1/PHY/TOOLS/oai_dfts.c @@ -108,22 +108,21 @@ static inline void cmacc(__m128i a,__m128i b, __m128i *re32, __m128i *im32) *im32 = _mm_add_epi32(*im32,cmac_tmp_im32); } -#ifdef __AVX2__ static inline void cmac_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) __attribute__((always_inline)); static inline void cmac_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) { __m256i cmac_tmp,cmac_tmp_re32,cmac_tmp_im32; - __m256i imshuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + __m256i imshuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); - cmac_tmp = _mm256_sign_epi16(b,*(__m256i*)reflip); - cmac_tmp_re32 = _mm256_madd_epi16(a,cmac_tmp); + cmac_tmp = simde_mm256_sign_epi16(b,*(__m256i*)reflip); + cmac_tmp_re32 = simde_mm256_madd_epi16(a,cmac_tmp); - cmac_tmp = _mm256_shuffle_epi8(b,imshuffle); - cmac_tmp_im32 = _mm256_madd_epi16(cmac_tmp,a); + cmac_tmp = simde_mm256_shuffle_epi8(b,imshuffle); + cmac_tmp_im32 = simde_mm256_madd_epi16(cmac_tmp,a); - *re32 = _mm256_add_epi32(*re32,cmac_tmp_re32); - *im32 = _mm256_add_epi32(*im32,cmac_tmp_im32); + *re32 = simde_mm256_add_epi32(*re32,cmac_tmp_re32); + *im32 = simde_mm256_add_epi32(*im32,cmac_tmp_im32); } static inline void cmacc_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) __attribute__((always_inline)); @@ -131,21 +130,19 @@ static inline void cmacc_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) { __m256i cmac_tmp,cmac_tmp_re32,cmac_tmp_im32; - __m256i imshuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + __m256i imshuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); - cmac_tmp_re32 = _mm256_madd_epi16(a,b); + cmac_tmp_re32 = simde_mm256_madd_epi16(a,b); - cmac_tmp = _mm256_sign_epi16(b,*(__m256i*)reflip); - cmac_tmp = _mm256_shuffle_epi8(b,imshuffle); - cmac_tmp_im32 = _mm256_madd_epi16(cmac_tmp,a); + cmac_tmp = simde_mm256_sign_epi16(b,*(__m256i*)reflip); + cmac_tmp = simde_mm256_shuffle_epi8(b,imshuffle); + cmac_tmp_im32 = simde_mm256_madd_epi16(cmac_tmp,a); - *re32 = _mm256_add_epi32(*re32,cmac_tmp_re32); - *im32 = _mm256_add_epi32(*im32,cmac_tmp_im32); + *re32 = simde_mm256_add_epi32(*re32,cmac_tmp_re32); + *im32 = simde_mm256_add_epi32(*im32,cmac_tmp_im32); } -#endif - static inline void cmult(__m128i a,__m128i b, __m128i *re32, __m128i *im32) __attribute__((always_inline)); static inline void cmult(__m128i a,__m128i b, __m128i *re32, __m128i *im32) @@ -162,24 +159,21 @@ static inline void cmult(__m128i a,__m128i b, __m128i *re32, __m128i *im32) } -#ifdef __AVX2__ static inline void cmult_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) __attribute__((always_inline)); static inline void cmult_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) { register __m256i mmtmpb; - __m256i const perm_mask = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + __m256i const perm_mask = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); - mmtmpb = _mm256_sign_epi16(b,*(__m256i*)reflip); - *re32 = _mm256_madd_epi16(a,mmtmpb); - mmtmpb = _mm256_shuffle_epi8(b,perm_mask); - *im32 = _mm256_madd_epi16(a,mmtmpb); + mmtmpb = simde_mm256_sign_epi16(b,*(__m256i*)reflip); + *re32 = simde_mm256_madd_epi16(a,mmtmpb); + mmtmpb = simde_mm256_shuffle_epi8(b,perm_mask); + *im32 = simde_mm256_madd_epi16(a,mmtmpb); } -#endif - static inline void cmultc(__m128i a,__m128i b, __m128i *re32, __m128i *im32) __attribute__((always_inline)); static inline void cmultc(__m128i a,__m128i b, __m128i *re32, __m128i *im32) @@ -194,24 +188,21 @@ static inline void cmultc(__m128i a,__m128i b, __m128i *re32, __m128i *im32) } -#ifdef __AVX2__ static inline void cmultc_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) __attribute__((always_inline)); static inline void cmultc_256(__m256i a,__m256i b, __m256i *re32, __m256i *im32) { register __m256i mmtmpb; - __m256i const perm_mask = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + __m256i const perm_mask = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); - *re32 = _mm256_madd_epi16(a,b); - mmtmpb = _mm256_sign_epi16(b,*(__m256i*)reflip); - mmtmpb = _mm256_shuffle_epi8(mmtmpb,perm_mask); - *im32 = _mm256_madd_epi16(a,mmtmpb); + *re32 = simde_mm256_madd_epi16(a,b); + mmtmpb = simde_mm256_sign_epi16(b,*(__m256i*)reflip); + mmtmpb = simde_mm256_shuffle_epi8(mmtmpb,perm_mask); + *im32 = simde_mm256_madd_epi16(a,mmtmpb); } -#endif - static inline __m128i cpack(__m128i xre,__m128i xim) __attribute__((always_inline)); static inline __m128i cpack(__m128i xre,__m128i xim) @@ -225,7 +216,6 @@ static inline __m128i cpack(__m128i xre,__m128i xim) } -#ifdef __AVX2__ static inline __m256i cpack_256(__m256i xre,__m256i xim) __attribute__((always_inline)); static inline __m256i cpack_256(__m256i xre,__m256i xim) @@ -233,14 +223,12 @@ static inline __m256i cpack_256(__m256i xre,__m256i xim) register __m256i cpack_tmp1,cpack_tmp2; - cpack_tmp1 = _mm256_unpacklo_epi32(xre,xim); - cpack_tmp2 = _mm256_unpackhi_epi32(xre,xim); - return(_mm256_packs_epi32(_mm256_srai_epi32(cpack_tmp1,15),_mm256_srai_epi32(cpack_tmp2,15))); + cpack_tmp1 = simde_mm256_unpacklo_epi32(xre,xim); + cpack_tmp2 = simde_mm256_unpackhi_epi32(xre,xim); + return(simde_mm256_packs_epi32(simde_mm256_srai_epi32(cpack_tmp1,15),simde_mm256_srai_epi32(cpack_tmp2,15))); } -#endif - static inline void packed_cmult(__m128i a,__m128i b, __m128i *c) __attribute__((always_inline)); static inline void packed_cmult(__m128i a,__m128i b, __m128i *c) @@ -252,7 +240,6 @@ static inline void packed_cmult(__m128i a,__m128i b, __m128i *c) } -#ifdef __AVX2__ static inline void packed_cmult_256(__m256i a,__m256i b, __m256i *c) __attribute__((always_inline)); static inline void packed_cmult_256(__m256i a,__m256i b, __m256i *c) @@ -263,7 +250,6 @@ static inline void packed_cmult_256(__m256i a,__m256i b, __m256i *c) *c = cpack_256(cre,cim); } -#endif static inline void packed_cmultc(__m128i a,__m128i b, __m128i *c) __attribute__((always_inline)); @@ -277,7 +263,6 @@ static inline void packed_cmultc(__m128i a,__m128i b, __m128i *c) } -#ifdef __AVX2__ static inline void packed_cmultc_256(__m256i a,__m256i b, __m256i *c) __attribute__((always_inline)); static inline void packed_cmultc_256(__m256i a,__m256i b, __m256i *c) @@ -289,7 +274,6 @@ static inline void packed_cmultc_256(__m256i a,__m256i b, __m256i *c) *c = cpack_256(cre,cim); } -#endif static inline __m128i packed_cmult2(__m128i a,__m128i b,__m128i b2) __attribute__((always_inline)); @@ -306,7 +290,6 @@ static inline __m128i packed_cmult2(__m128i a,__m128i b,__m128i b2) } -#ifdef __AVX2__ static inline __m256i packed_cmult2_256(__m256i a,__m256i b,__m256i b2) __attribute__((always_inline)); static inline __m256i packed_cmult2_256(__m256i a,__m256i b,__m256i b2) @@ -315,15 +298,14 @@ static inline __m256i packed_cmult2_256(__m256i a,__m256i b,__m256i b2) register __m256i cre,cim; - cre = _mm256_madd_epi16(a,b); - cim = _mm256_madd_epi16(a,b2); + cre = simde_mm256_madd_epi16(a,b); + cim = simde_mm256_madd_epi16(a,b2); return(cpack_256(cre,cim)); } -#endif -#elif defined (__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void cmac(int16x8_t a,int16x8_t b, int32x4_t *re32, int32x4_t *im32) __attribute__((always_inline)); static inline void cmac(int16x8_t a,int16x8_t b, int32x4_t *re32, int32x4_t *im32) { @@ -477,7 +459,7 @@ static inline int16x8_t packed_cmult2(int16x8_t a,int16x8_t b, int16x8_t b2) } -#endif +#endif // defined(__x86_64__) || defined(__i386__) const static int16_t W0s[16]__attribute__((aligned(32))) = {32767,0,32767,0,32767,0,32767,0,32767,0,32767,0,32767,0,32767,0}; @@ -498,7 +480,6 @@ const __m128i *W25 = (__m128i *)W25s; const __m128i *W35 = (__m128i *)W35s; const __m128i *W45 = (__m128i *)W45s; -#ifdef __AVX2__ const __m256i *W0_256 = (__m256i *)W0s; const __m256i *W13_256 = (__m256i *)W13s; const __m256i *W23_256 = (__m256i *)W23s; @@ -506,9 +487,8 @@ const __m256i *W15_256 = (__m256i *)W15s; const __m256i *W25_256 = (__m256i *)W25s; const __m256i *W35_256 = (__m256i *)W35s; const __m256i *W45_256 = (__m256i *)W45s; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *W0 = (int16x8_t *)W0s; int16x8_t *W13 = (int16x8_t *)W13s; int16x8_t *W23 = (int16x8_t *)W23s; @@ -516,7 +496,8 @@ int16x8_t *W15 = (int16x8_t *)W15s; int16x8_t *W25 = (int16x8_t *)W25s; int16x8_t *W35 = (int16x8_t *)W35s; int16x8_t *W45 = (int16x8_t *)W45s; -#endif +#endif // defined(__x86_64__) || defined(__i386__) + const static int16_t dft_norm_table[16] = {9459, //12 6689,//24 5461,//36 @@ -563,8 +544,6 @@ static inline void bfly2(__m128i *x0, __m128i *x1,__m128i *y0, __m128i *y1,__m12 *y1 = _mm_packs_epi32(bfly2_tmp1,bfly2_tmp2); } -#ifdef __AVX2__ - static inline void bfly2_256(__m256i *x0, __m256i *x1,__m256i *y0, __m256i *y1,__m256i *tw)__attribute__((always_inline)); static inline void bfly2_256(__m256i *x0, __m256i *x1,__m256i *y0, __m256i *y1,__m256i *tw) @@ -576,24 +555,22 @@ static inline void bfly2_256(__m256i *x0, __m256i *x1,__m256i *y0, __m256i *y1,_ cmult_256(*(x0),*(W0_256),&x0r_2,&x0i_2); cmult_256(*(x1),*(tw),&x1r_2,&x1i_2); - dy0r = _mm256_srai_epi32(_mm256_add_epi32(x0r_2,x1r_2),15); - dy1r = _mm256_srai_epi32(_mm256_sub_epi32(x0r_2,x1r_2),15); - dy0i = _mm256_srai_epi32(_mm256_add_epi32(x0i_2,x1i_2),15); + dy0r = simde_mm256_srai_epi32(simde_mm256_add_epi32(x0r_2,x1r_2),15); + dy1r = simde_mm256_srai_epi32(simde_mm256_sub_epi32(x0r_2,x1r_2),15); + dy0i = simde_mm256_srai_epi32(simde_mm256_add_epi32(x0i_2,x1i_2),15); // printf("y0i %d\n",((int16_t *)y0i)[0]); - dy1i = _mm256_srai_epi32(_mm256_sub_epi32(x0i_2,x1i_2),15); + dy1i = simde_mm256_srai_epi32(simde_mm256_sub_epi32(x0i_2,x1i_2),15); - bfly2_tmp1 = _mm256_unpacklo_epi32(dy0r,dy0i); - bfly2_tmp2 = _mm256_unpackhi_epi32(dy0r,dy0i); - *y0 = _mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); + bfly2_tmp1 = simde_mm256_unpacklo_epi32(dy0r,dy0i); + bfly2_tmp2 = simde_mm256_unpackhi_epi32(dy0r,dy0i); + *y0 = simde_mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); - bfly2_tmp1 = _mm256_unpacklo_epi32(dy1r,dy1i); - bfly2_tmp2 = _mm256_unpackhi_epi32(dy1r,dy1i); - *y1 = _mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); + bfly2_tmp1 = simde_mm256_unpacklo_epi32(dy1r,dy1i); + bfly2_tmp2 = simde_mm256_unpackhi_epi32(dy1r,dy1i); + *y1 = simde_mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); } -#endif - -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly2(int16x8_t *x0, int16x8_t *x1,int16x8_t *y0, int16x8_t *y1,int16x8_t *tw)__attribute__((always_inline)); @@ -615,7 +592,7 @@ static inline void bfly2(int16x8_t *x0, int16x8_t *x1,int16x8_t *y0, int16x8_t * } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void bfly2_tw1(__m128i *x0, __m128i *x1, __m128i *y0, __m128i *y1)__attribute__((always_inline)); @@ -628,7 +605,7 @@ static inline void bfly2_tw1(__m128i *x0, __m128i *x1, __m128i *y0, __m128i *y1) } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly2_tw1(int16x8_t *x0, int16x8_t *x1, int16x8_t *y0, int16x8_t *y1)__attribute__((always_inline)); @@ -639,12 +616,10 @@ static inline void bfly2_tw1(int16x8_t *x0, int16x8_t *x1, int16x8_t *y0, int16x *y1 = vqsubq_s16(*x0,*x1); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) - - static inline void bfly2_16(__m128i *x0, __m128i *x1, __m128i *y0, __m128i *y1, __m128i *tw, __m128i *twb)__attribute__((always_inline)); static inline void bfly2_16(__m128i *x0, __m128i *x1, __m128i *y0, __m128i *y1, __m128i *tw, __m128i *twb) @@ -666,8 +641,6 @@ static inline void bfly2_16(__m128i *x0, __m128i *x1, __m128i *y0, __m128i *y1, print_shorts("y1",(int16_t*)y1);*/ } -#ifdef __AVX2__ - static inline void bfly2_16_256(__m256i *x0, __m256i *x1, __m256i *y0, __m256i *y1, __m256i *tw, __m256i *twb)__attribute__((always_inline)); static inline void bfly2_16_256(__m256i *x0, __m256i *x1, __m256i *y0, __m256i *y1, __m256i *tw, __m256i *twb) @@ -683,16 +656,14 @@ static inline void bfly2_16_256(__m256i *x0, __m256i *x1, __m256i *y0, __m256i * print_shorts256("tw",(int16_t*)tw); print_shorts256("twb",(int16_t*)twb); print_shorts256("x1t",(int16_t*)&x1t);*/ - *y0 = _mm256_adds_epi16(*x0,x1t); - *y1 = _mm256_subs_epi16(*x0,x1t); + *y0 = simde_mm256_adds_epi16(*x0,x1t); + *y1 = simde_mm256_subs_epi16(*x0,x1t); /*print_shorts256("y0",(int16_t*)y0); print_shorts256("y1",(int16_t*)y1);*/ } -#endif - -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly2_16(int16x8_t *x0, int16x8_t *x1, int16x8_t *y0, int16x8_t *y1, int16x8_t *tw, int16x8_t *twb)__attribute__((always_inline)); @@ -703,7 +674,7 @@ static inline void bfly2_16(int16x8_t *x0, int16x8_t *x1, int16x8_t *y0, int16x8 *y1 = vqsubq_s16(*x0,*x1); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void ibfly2(__m128i *x0, __m128i *x1,__m128i *y0, __m128i *y1,__m128i *tw)__attribute__((always_inline)); @@ -732,7 +703,6 @@ static inline void ibfly2(__m128i *x0, __m128i *x1,__m128i *y0, __m128i *y1,__m1 *y1 = _mm_packs_epi32(bfly2_tmp1,bfly2_tmp2); } -#ifdef __AVX2__ static inline void ibfly2_256(__m256i *x0, __m256i *x1,__m256i *y0, __m256i *y1,__m256i *tw)__attribute__((always_inline)); static inline void ibfly2_256(__m256i *x0, __m256i *x1,__m256i *y0, __m256i *y1,__m256i *tw) @@ -744,23 +714,22 @@ static inline void ibfly2_256(__m256i *x0, __m256i *x1,__m256i *y0, __m256i *y1, cmultc_256(*(x0),*(W0_256),&x0r_2,&x0i_2); cmultc_256(*(x1),*(tw),&x1r_2,&x1i_2); - dy0r = _mm256_srai_epi32(_mm256_add_epi32(x0r_2,x1r_2),15); - dy1r = _mm256_srai_epi32(_mm256_sub_epi32(x0r_2,x1r_2),15); - dy0i = _mm256_srai_epi32(_mm256_add_epi32(x0i_2,x1i_2),15); + dy0r = simde_mm256_srai_epi32(simde_mm256_add_epi32(x0r_2,x1r_2),15); + dy1r = simde_mm256_srai_epi32(simde_mm256_sub_epi32(x0r_2,x1r_2),15); + dy0i = simde_mm256_srai_epi32(simde_mm256_add_epi32(x0i_2,x1i_2),15); // printf("y0i %d\n",((int16_t *)y0i)[0]); - dy1i = _mm256_srai_epi32(_mm256_sub_epi32(x0i_2,x1i_2),15); + dy1i = simde_mm256_srai_epi32(simde_mm256_sub_epi32(x0i_2,x1i_2),15); - bfly2_tmp1 = _mm256_unpacklo_epi32(dy0r,dy0i); - bfly2_tmp2 = _mm256_unpackhi_epi32(dy0r,dy0i); - *y0 = _mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); + bfly2_tmp1 = simde_mm256_unpacklo_epi32(dy0r,dy0i); + bfly2_tmp2 = simde_mm256_unpackhi_epi32(dy0r,dy0i); + *y0 = simde_mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); - bfly2_tmp1 = _mm256_unpacklo_epi32(dy1r,dy1i); - bfly2_tmp2 = _mm256_unpackhi_epi32(dy1r,dy1i); - *y1 = _mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); + bfly2_tmp1 = simde_mm256_unpacklo_epi32(dy1r,dy1i); + bfly2_tmp2 = simde_mm256_unpackhi_epi32(dy1r,dy1i); + *y1 = simde_mm256_packs_epi32(bfly2_tmp1,bfly2_tmp2); } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void ibfly2(int16x8_t *x0, int16x8_t *x1,int16x8_t *y0, int16x8_t *y1,int16x8_t *tw) { @@ -779,9 +748,7 @@ static inline void ibfly2(int16x8_t *x0, int16x8_t *x1,int16x8_t *y0, int16x8_t } -#endif - - +#endif // defined(__x86_64__) || defined(__i386__) // This is the radix-3 butterfly (fft) @@ -812,8 +779,6 @@ static inline void bfly3(__m128i *x0,__m128i *x1,__m128i *x2, *(y2) = _mm_adds_epi16(*(x0),*(y2)); } -#ifdef __AVX2__ - static inline void bfly3_256(__m256i *x0,__m256i *x1,__m256i *x2, __m256i *y0,__m256i *y1,__m256i *y2, __m256i *tw1,__m256i *tw2) __attribute__((always_inline)); @@ -827,19 +792,18 @@ static inline void bfly3_256(__m256i *x0,__m256i *x1,__m256i *x2, packed_cmult_256(*(x1),*(tw1),&x1_2); packed_cmult_256(*(x2),*(tw2),&x2_2); - *(y0) = _mm256_adds_epi16(*(x0),_mm256_adds_epi16(x1_2,x2_2)); + *(y0) = simde_mm256_adds_epi16(*(x0),simde_mm256_adds_epi16(x1_2,x2_2)); cmult_256(x1_2,*(W13_256),&tmpre,&tmpim); cmac_256(x2_2,*(W23_256),&tmpre,&tmpim); *(y1) = cpack_256(tmpre,tmpim); - *(y1) = _mm256_adds_epi16(*(x0),*(y1)); + *(y1) = simde_mm256_adds_epi16(*(x0),*(y1)); cmult_256(x1_2,*(W23_256),&tmpre,&tmpim); cmac_256(x2_2,*(W13_256),&tmpre,&tmpim); *(y2) = cpack_256(tmpre,tmpim); - *(y2) = _mm256_adds_epi16(*(x0),*(y2)); + *(y2) = simde_mm256_adds_epi16(*(x0),*(y2)); } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly3(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2, int16x8_t *tw1,int16x8_t *tw2) __attribute__((always_inline)); @@ -865,7 +829,7 @@ static inline void bfly3(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2, *(y2) = vqaddq_s16(*(x0),*(y2)); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void ibfly3(__m128i *x0,__m128i *x1,__m128i *x2, @@ -892,8 +856,6 @@ static inline void ibfly3(__m128i *x0,__m128i *x1,__m128i *x2, *(y2) = _mm_adds_epi16(*(x0),*(y2)); } -#ifdef __AVX2__ - static inline void ibfly3_256(__m256i *x0,__m256i *x1,__m256i *x2, __m256i *y0,__m256i *y1,__m256i *y2, __m256i *tw1,__m256i *tw2) __attribute__((always_inline)); @@ -907,19 +869,18 @@ static inline void ibfly3_256(__m256i *x0,__m256i *x1,__m256i *x2, packed_cmultc_256(*(x1),*(tw1),&x1_2); packed_cmultc_256(*(x2),*(tw2),&x2_2); - *(y0) = _mm256_adds_epi16(*(x0),_mm256_adds_epi16(x1_2,x2_2)); + *(y0) = simde_mm256_adds_epi16(*(x0),simde_mm256_adds_epi16(x1_2,x2_2)); cmultc_256(x1_2,*(W13_256),&tmpre,&tmpim); cmacc_256(x2_2,*(W23_256),&tmpre,&tmpim); *(y1) = cpack_256(tmpre,tmpim); - *(y1) = _mm256_adds_epi16(*(x0),*(y1)); + *(y1) = simde_mm256_adds_epi16(*(x0),*(y1)); cmultc_256(x1_2,*(W23_256),&tmpre,&tmpim); cmacc_256(x2_2,*(W13_256),&tmpre,&tmpim); *(y2) = cpack_256(tmpre,tmpim); - *(y2) = _mm256_adds_epi16(*(x0),*(y2)); + *(y2) = simde_mm256_adds_epi16(*(x0),*(y2)); } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void ibfly3(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2, int16x8_t *tw1,int16x8_t *tw2) __attribute__((always_inline)); @@ -944,7 +905,7 @@ static inline void ibfly3(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2, *(y2) = cpack(tmpre,tmpim); *(y2) = vqaddq_s16(*(x0),*(y2)); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void bfly3_tw1(__m128i *x0,__m128i *x1,__m128i *x2, @@ -967,8 +928,6 @@ static inline void bfly3_tw1(__m128i *x0,__m128i *x1,__m128i *x2, *(y2) = _mm_adds_epi16(*(x0),*(y2)); } -#ifdef __AVX2__ - static inline void bfly3_tw1_256(__m256i *x0,__m256i *x1,__m256i *x2, __m256i *y0,__m256i *y1,__m256i *y2) __attribute__((always_inline)); @@ -978,19 +937,18 @@ static inline void bfly3_tw1_256(__m256i *x0,__m256i *x1,__m256i *x2, __m256i tmpre,tmpim; - *(y0) = _mm256_adds_epi16(*(x0),_mm256_adds_epi16(*(x1),*(x2))); + *(y0) = simde_mm256_adds_epi16(*(x0),simde_mm256_adds_epi16(*(x1),*(x2))); cmult_256(*(x1),*(W13_256),&tmpre,&tmpim); cmac_256(*(x2),*(W23_256),&tmpre,&tmpim); *(y1) = cpack_256(tmpre,tmpim); - *(y1) = _mm256_adds_epi16(*(x0),*(y1)); + *(y1) = simde_mm256_adds_epi16(*(x0),*(y1)); cmult_256(*(x1),*(W23_256),&tmpre,&tmpim); cmac_256(*(x2),*(W13_256),&tmpre,&tmpim); *(y2) = cpack_256(tmpre,tmpim); - *(y2) = _mm256_adds_epi16(*(x0),*(y2)); + *(y2) = simde_mm256_adds_epi16(*(x0),*(y2)); } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly3_tw1(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2) __attribute__((always_inline)); @@ -1012,7 +970,7 @@ static inline void bfly3_tw1(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2, } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void bfly4(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, @@ -1056,7 +1014,6 @@ static inline void bfly4(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, *(y3) = _mm_add_epi16(*(x0),cpack(dy3r,dy3i)); } -#ifdef __AVX2__ static inline void bfly4_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, __m256i *y0,__m256i *y1,__m256i *y2,__m256i *y3, __m256i *tw1,__m256i *tw2,__m256i *tw3)__attribute__((always_inline)); @@ -1075,30 +1032,30 @@ static inline void bfly4_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, // dy0r = _mm_add_epi32(x0r_2,_mm_add_epi32(x1r_2,_mm_add_epi32(x2r_2,x3r_2))); // dy0i = _mm_add_epi32(x0i_2,_mm_add_epi32(x1i_2,_mm_add_epi32(x2i_2,x3i_2))); // *(y0) = cpack(dy0r,dy0i); - dy0r = _mm256_add_epi32(x1r_2,_mm256_add_epi32(x2r_2,x3r_2)); - dy0i = _mm256_add_epi32(x1i_2,_mm256_add_epi32(x2i_2,x3i_2)); - *(y0) = _mm256_add_epi16(*(x0),cpack_256(dy0r,dy0i)); + dy0r = simde_mm256_add_epi32(x1r_2,simde_mm256_add_epi32(x2r_2,x3r_2)); + dy0i = simde_mm256_add_epi32(x1i_2,simde_mm256_add_epi32(x2i_2,x3i_2)); + *(y0) = simde_mm256_add_epi16(*(x0),cpack_256(dy0r,dy0i)); // dy1r = _mm_add_epi32(x0r_2,_mm_sub_epi32(x1i_2,_mm_add_epi32(x2r_2,x3i_2))); // dy1i = _mm_sub_epi32(x0i_2,_mm_add_epi32(x1r_2,_mm_sub_epi32(x2i_2,x3r_2))); // *(y1) = cpack(dy1r,dy1i); - dy1r = _mm256_sub_epi32(x1i_2,_mm256_add_epi32(x2r_2,x3i_2)); - dy1i = _mm256_sub_epi32(_mm256_sub_epi32(x3r_2,x2i_2),x1r_2); - *(y1) = _mm256_add_epi16(*(x0),cpack_256(dy1r,dy1i)); + dy1r = simde_mm256_sub_epi32(x1i_2,simde_mm256_add_epi32(x2r_2,x3i_2)); + dy1i = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x3r_2,x2i_2),x1r_2); + *(y1) = simde_mm256_add_epi16(*(x0),cpack_256(dy1r,dy1i)); // dy2r = _mm_sub_epi32(x0r_2,_mm_sub_epi32(x1r_2,_mm_sub_epi32(x2r_2,x3r_2))); // dy2i = _mm_sub_epi32(x0i_2,_mm_sub_epi32(x1i_2,_mm_sub_epi32(x2i_2,x3i_2))); // *(y2) = cpack(dy2r,dy2i); - dy2r = _mm256_sub_epi32(_mm256_sub_epi32(x2r_2,x3r_2),x1r_2); - dy2i = _mm256_sub_epi32(_mm256_sub_epi32(x2i_2,x3i_2),x1i_2); - *(y2) = _mm256_add_epi16(*(x0),cpack_256(dy2r,dy2i)); + dy2r = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x2r_2,x3r_2),x1r_2); + dy2i = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x2i_2,x3i_2),x1i_2); + *(y2) = simde_mm256_add_epi16(*(x0),cpack_256(dy2r,dy2i)); // dy3r = _mm_sub_epi32(x0r_2,_mm_add_epi32(x1i_2,_mm_sub_epi32(x2r_2,x3i_2))); // dy3i = _mm_add_epi32(x0i_2,_mm_sub_epi32(x1r_2,_mm_add_epi32(x2i_2,x3r_2))); // *(y3) = cpack(dy3r,dy3i); - dy3r = _mm256_sub_epi32(_mm256_sub_epi32(x3i_2,x2r_2),x1i_2); - dy3i = _mm256_sub_epi32(x1r_2,_mm256_add_epi32(x2i_2,x3r_2)); - *(y3) = _mm256_add_epi16(*(x0),cpack_256(dy3r,dy3i)); + dy3r = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x3i_2,x2r_2),x1i_2); + dy3i = simde_mm256_sub_epi32(x1r_2,simde_mm256_add_epi32(x2i_2,x3r_2)); + *(y3) = simde_mm256_add_epi16(*(x0),cpack_256(dy3r,dy3i)); } -#endif -#elif defined(__arm__) + +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly4(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2,int16x8_t *y3, int16x8_t *tw1,int16x8_t *tw2,int16x8_t *tw3)__attribute__((always_inline)); @@ -1140,7 +1097,7 @@ static inline void bfly4(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3 *(y3) = vqaddq_s16(*(x0),cpack(dy3r,dy3i)); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void ibfly4(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, @@ -1173,8 +1130,6 @@ static inline void ibfly4(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, *(y1) = _mm_add_epi16(*(x0),cpack(dy1r,dy1i)); } -#ifdef __AVX2__ - static inline void ibfly4_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, __m256i *y0,__m256i *y1,__m256i *y2,__m256i *y3, __m256i *tw1,__m256i *tw2,__m256i *tw3)__attribute__((always_inline)); @@ -1191,22 +1146,21 @@ static inline void ibfly4_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, cmultc_256(*(x2),*(tw2),&x2r_2,&x2i_2); cmultc_256(*(x3),*(tw3),&x3r_2,&x3i_2); - dy0r = _mm256_add_epi32(x1r_2,_mm256_add_epi32(x2r_2,x3r_2)); - dy0i = _mm256_add_epi32(x1i_2,_mm256_add_epi32(x2i_2,x3i_2)); - *(y0) = _mm256_add_epi16(*(x0),cpack_256(dy0r,dy0i)); - dy3r = _mm256_sub_epi32(x1i_2,_mm256_add_epi32(x2r_2,x3i_2)); - dy3i = _mm256_sub_epi32(_mm256_sub_epi32(x3r_2,x2i_2),x1r_2); - *(y3) = _mm256_add_epi16(*(x0),cpack_256(dy3r,dy3i)); - dy2r = _mm256_sub_epi32(_mm256_sub_epi32(x2r_2,x3r_2),x1r_2); - dy2i = _mm256_sub_epi32(_mm256_sub_epi32(x2i_2,x3i_2),x1i_2); - *(y2) = _mm256_add_epi16(*(x0),cpack_256(dy2r,dy2i)); - dy1r = _mm256_sub_epi32(_mm256_sub_epi32(x3i_2,x2r_2),x1i_2); - dy1i = _mm256_sub_epi32(x1r_2,_mm256_add_epi32(x2i_2,x3r_2)); - *(y1) = _mm256_add_epi16(*(x0),cpack_256(dy1r,dy1i)); + dy0r = simde_mm256_add_epi32(x1r_2,simde_mm256_add_epi32(x2r_2,x3r_2)); + dy0i = simde_mm256_add_epi32(x1i_2,simde_mm256_add_epi32(x2i_2,x3i_2)); + *(y0) = simde_mm256_add_epi16(*(x0),cpack_256(dy0r,dy0i)); + dy3r = simde_mm256_sub_epi32(x1i_2,simde_mm256_add_epi32(x2r_2,x3i_2)); + dy3i = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x3r_2,x2i_2),x1r_2); + *(y3) = simde_mm256_add_epi16(*(x0),cpack_256(dy3r,dy3i)); + dy2r = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x2r_2,x3r_2),x1r_2); + dy2i = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x2i_2,x3i_2),x1i_2); + *(y2) = simde_mm256_add_epi16(*(x0),cpack_256(dy2r,dy2i)); + dy1r = simde_mm256_sub_epi32(simde_mm256_sub_epi32(x3i_2,x2r_2),x1i_2); + dy1i = simde_mm256_sub_epi32(x1r_2,simde_mm256_add_epi32(x2i_2,x3r_2)); + *(y1) = simde_mm256_add_epi16(*(x0),cpack_256(dy1r,dy1i)); } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void ibfly4(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2,int16x8_t *y3, @@ -1238,7 +1192,7 @@ static inline void ibfly4(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x *(y1) = vqaddq_s16(*(x0),cpack(dy1r,dy1i)); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) @@ -1276,8 +1230,6 @@ static inline void bfly4_tw1(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, */ } -#ifdef __AVX2__ - static inline void bfly4_tw1_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, __m256i *y0,__m256i *y1,__m256i *y2,__m256i *y3)__attribute__((always_inline)); @@ -1285,24 +1237,23 @@ static inline void bfly4_tw1_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3 __m256i *y0,__m256i *y1,__m256i *y2,__m256i *y3) { register __m256i x1_flip,x3_flip,x02t,x13t; - register __m256i complex_shuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + register __m256i complex_shuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); - x02t = _mm256_adds_epi16(*(x0),*(x2)); - x13t = _mm256_adds_epi16(*(x1),*(x3)); - *(y0) = _mm256_adds_epi16(x02t,x13t); - *(y2) = _mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(*(x1),*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(*(x3),*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(*(x0),*(x2)); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - *(y1) = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - *(y3) = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x02t = simde_mm256_adds_epi16(*(x0),*(x2)); + x13t = simde_mm256_adds_epi16(*(x1),*(x3)); + *(y0) = simde_mm256_adds_epi16(x02t,x13t); + *(y2) = simde_mm256_subs_epi16(x02t,x13t); + x1_flip = simde_mm256_sign_epi16(*(x1),*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(*(x3),*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(*(x0),*(x2)); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + *(y1) = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + *(y3) = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly4_tw1(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2,int16x8_t *y3)__attribute__((always_inline)); @@ -1321,7 +1272,7 @@ static inline void bfly4_tw1(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *(y3) = vqsubq_s16(*(x0),vqaddq_s16(x1_flip,vqsubq_s16(*(x2),x3_flip))); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) @@ -1350,7 +1301,7 @@ static inline void ibfly4_tw1(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void ibfly4_tw1(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2,int16x8_t *y3)__attribute__((always_inline)); @@ -1368,7 +1319,7 @@ static inline void ibfly4_tw1(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_ *(y3) = vqaddq_s16(*(x0),vqsubq_s16(x1_flip,vqaddq_s16(*(x2),x3_flip))); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void bfly4_16(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, @@ -1419,7 +1370,6 @@ static inline void bfly4_16(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, } -#ifdef __AVX2__ static inline void bfly4_16_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, __m256i *y0,__m256i *y1,__m256i *y2,__m256i *y3, __m256i *tw1,__m256i *tw2,__m256i *tw3, @@ -1433,7 +1383,7 @@ static inline void bfly4_16_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, register __m256i x1t,x2t,x3t,x02t,x13t; register __m256i x1_flip,x3_flip; - register __m256i complex_shuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + register __m256i complex_shuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); // each input xi is assumed to be to consecutive vectors xi0 xi1 on which to perform the 8 butterflies // [xi00 xi01 xi02 xi03 xi10 xi20 xi30 xi40] @@ -1443,25 +1393,23 @@ static inline void bfly4_16_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, x2t = packed_cmult2_256(*(x2),*(tw2),*(tw2b)); x3t = packed_cmult2_256(*(x3),*(tw3),*(tw3b)); - x02t = _mm256_adds_epi16(*(x0),x2t); - x13t = _mm256_adds_epi16(x1t,x3t); - *(y0) = _mm256_adds_epi16(x02t,x13t); - *(y2) = _mm256_subs_epi16(x02t,x13t); + x02t = simde_mm256_adds_epi16(*(x0),x2t); + x13t = simde_mm256_adds_epi16(x1t,x3t); + *(y0) = simde_mm256_adds_epi16(x02t,x13t); + *(y2) = simde_mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(x1t,*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(x3t,*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(*(x0),x2t); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - *(y1) = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - *(y3) = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x1_flip = simde_mm256_sign_epi16(x1t,*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(x3t,*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(*(x0),x2t); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + *(y1) = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + *(y3) = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f } -#endif - -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly4_16(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2,int16x8_t *y3, @@ -1494,7 +1442,7 @@ static inline void bfly4_16(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *(y1) = vqaddq_s16(x02t,x13t); // x0 + x1f - x2 - x3f *(y3) = vqsubq_s16(x02t,x13t); // x0 - x1f - x2 + x3f } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void ibfly4_16(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, @@ -1545,7 +1493,6 @@ static inline void ibfly4_16(__m128i *x0,__m128i *x1,__m128i *x2,__m128i *x3, } -#ifdef __AVX2__ static inline void ibfly4_16_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3, __m256i *y0,__m256i *y1,__m256i *y2,__m256i *y3, __m256i *tw1,__m256i *tw2,__m256i *tw3, @@ -1559,7 +1506,7 @@ static inline void ibfly4_16_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3 register __m256i x1t,x2t,x3t,x02t,x13t; register __m256i x1_flip,x3_flip; - register __m256i complex_shuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + register __m256i complex_shuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); // each input xi is assumed to be to consecutive vectors xi0 xi1 on which to perform the 8 butterflies // [xi00 xi01 xi02 xi03 xi10 xi20 xi30 xi40] @@ -1569,24 +1516,23 @@ static inline void ibfly4_16_256(__m256i *x0,__m256i *x1,__m256i *x2,__m256i *x3 x2t = packed_cmult2_256(*(x2),*(tw2),*(tw2b)); x3t = packed_cmult2_256(*(x3),*(tw3),*(tw3b)); - x02t = _mm256_adds_epi16(*(x0),x2t); - x13t = _mm256_adds_epi16(x1t,x3t); - *(y0) = _mm256_adds_epi16(x02t,x13t); - *(y2) = _mm256_subs_epi16(x02t,x13t); + x02t = simde_mm256_adds_epi16(*(x0),x2t); + x13t = simde_mm256_adds_epi16(x1t,x3t); + *(y0) = simde_mm256_adds_epi16(x02t,x13t); + *(y2) = simde_mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(x1t,*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(x3t,*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(*(x0),x2t); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - *(y3) = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - *(y1) = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x1_flip = simde_mm256_sign_epi16(x1t,*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(x3t,*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(*(x0),x2t); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + *(y3) = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + *(y1) = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void ibfly4_16(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *x3, int16x8_t *y0,int16x8_t *y1,int16x8_t *y2,int16x8_t *y3, int16x8_t *tw1,int16x8_t *tw2,int16x8_t *tw3, @@ -1617,7 +1563,7 @@ static inline void ibfly4_16(int16x8_t *x0,int16x8_t *x1,int16x8_t *x2,int16x8_t *(y1) = vqsubq_s16(x02t,x13t); // x0 + x1f - x2 - x3f } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void bfly5(__m128i *x0, __m128i *x1, __m128i *x2, __m128i *x3,__m128i *x4, @@ -1670,8 +1616,6 @@ static inline void bfly5(__m128i *x0, __m128i *x1, __m128i *x2, __m128i *x3,__m1 } -#ifdef __AVX2__ - static inline void bfly5_256(__m256i *x0, __m256i *x1, __m256i *x2, __m256i *x3,__m256i *x4, __m256i *y0, __m256i *y1, __m256i *y2, __m256i *y3,__m256i *y4, __m256i *tw1,__m256i *tw2,__m256i *tw3,__m256i *tw4)__attribute__((always_inline)); @@ -1690,40 +1634,39 @@ static inline void bfly5_256(__m256i *x0, __m256i *x1, __m256i *x2, __m256i *x3, packed_cmult_256(*(x3),*(tw3),&x3_2); packed_cmult_256(*(x4),*(tw4),&x4_2); - *(y0) = _mm256_adds_epi16(*(x0),_mm256_adds_epi16(x1_2,_mm256_adds_epi16(x2_2,_mm256_adds_epi16(x3_2,x4_2)))); + *(y0) = simde_mm256_adds_epi16(*(x0),simde_mm256_adds_epi16(x1_2,simde_mm256_adds_epi16(x2_2,simde_mm256_adds_epi16(x3_2,x4_2)))); cmult_256(x1_2,*(W15_256),&tmpre,&tmpim); cmac_256(x2_2,*(W25_256),&tmpre,&tmpim); cmac_256(x3_2,*(W35_256),&tmpre,&tmpim); cmac_256(x4_2,*(W45_256),&tmpre,&tmpim); *(y1) = cpack_256(tmpre,tmpim); - *(y1) = _mm256_adds_epi16(*(x0),*(y1)); + *(y1) = simde_mm256_adds_epi16(*(x0),*(y1)); cmult_256(x1_2,*(W25_256),&tmpre,&tmpim); cmac_256(x2_2,*(W45_256),&tmpre,&tmpim); cmac_256(x3_2,*(W15_256),&tmpre,&tmpim); cmac_256(x4_2,*(W35_256),&tmpre,&tmpim); *(y2) = cpack_256(tmpre,tmpim); - *(y2) = _mm256_adds_epi16(*(x0),*(y2)); + *(y2) = simde_mm256_adds_epi16(*(x0),*(y2)); cmult_256(x1_2,*(W35_256),&tmpre,&tmpim); cmac_256(x2_2,*(W15_256),&tmpre,&tmpim); cmac_256(x3_2,*(W45_256),&tmpre,&tmpim); cmac_256(x4_2,*(W25_256),&tmpre,&tmpim); *(y3) = cpack_256(tmpre,tmpim); - *(y3) = _mm256_adds_epi16(*(x0),*(y3)); + *(y3) = simde_mm256_adds_epi16(*(x0),*(y3)); cmult_256(x1_2,*(W45_256),&tmpre,&tmpim); cmac_256(x2_2,*(W35_256),&tmpre,&tmpim); cmac_256(x3_2,*(W25_256),&tmpre,&tmpim); cmac_256(x4_2,*(W15_256),&tmpre,&tmpim); *(y4) = cpack_256(tmpre,tmpim); - *(y4) = _mm256_adds_epi16(*(x0),*(y4)); + *(y4) = simde_mm256_adds_epi16(*(x0),*(y4)); } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly5(int16x8_t *x0, int16x8_t *x1, int16x8_t *x2, int16x8_t *x3,int16x8_t *x4, int16x8_t *y0, int16x8_t *y1, int16x8_t *y2, int16x8_t *y3,int16x8_t *y4, int16x8_t *tw1,int16x8_t *tw2,int16x8_t *tw3,int16x8_t *tw4)__attribute__((always_inline)); @@ -1776,7 +1719,7 @@ static inline void bfly5(int16x8_t *x0, int16x8_t *x1, int16x8_t *x2, int16x8_t } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) static inline void bfly5_tw1(__m128i *x0, __m128i *x1, __m128i *x2, __m128i *x3,__m128i *x4, @@ -1815,7 +1758,6 @@ static inline void bfly5_tw1(__m128i *x0, __m128i *x1, __m128i *x2, __m128i *x3, *(y4) = _mm_adds_epi16(*(x0),*(y4)); } -#ifdef __AVX2__ static inline void bfly5_tw1_256(__m256i *x0, __m256i *x1, __m256i *x2, __m256i *x3,__m256i *x4, __m256i *y0, __m256i *y1, __m256i *y2, __m256i *y3,__m256i *y4) __attribute__((always_inline)); @@ -1825,34 +1767,34 @@ static inline void bfly5_tw1_256(__m256i *x0, __m256i *x1, __m256i *x2, __m256i __m256i tmpre,tmpim; - *(y0) = _mm256_adds_epi16(*(x0),_mm256_adds_epi16(*(x1),_mm256_adds_epi16(*(x2),_mm256_adds_epi16(*(x3),*(x4))))); + *(y0) = simde_mm256_adds_epi16(*(x0),simde_mm256_adds_epi16(*(x1),simde_mm256_adds_epi16(*(x2),simde_mm256_adds_epi16(*(x3),*(x4))))); cmult_256(*(x1),*(W15_256),&tmpre,&tmpim); cmac_256(*(x2),*(W25_256),&tmpre,&tmpim); cmac_256(*(x3),*(W35_256),&tmpre,&tmpim); cmac_256(*(x4),*(W45_256),&tmpre,&tmpim); *(y1) = cpack_256(tmpre,tmpim); - *(y1) = _mm256_adds_epi16(*(x0),*(y1)); + *(y1) = simde_mm256_adds_epi16(*(x0),*(y1)); cmult_256(*(x1),*(W25_256),&tmpre,&tmpim); cmac_256(*(x2),*(W45_256),&tmpre,&tmpim); cmac_256(*(x3),*(W15_256),&tmpre,&tmpim); cmac_256(*(x4),*(W35_256),&tmpre,&tmpim); *(y2) = cpack_256(tmpre,tmpim); - *(y2) = _mm256_adds_epi16(*(x0),*(y2)); + *(y2) = simde_mm256_adds_epi16(*(x0),*(y2)); cmult_256(*(x1),*(W35_256),&tmpre,&tmpim); cmac_256(*(x2),*(W15_256),&tmpre,&tmpim); cmac_256(*(x3),*(W45_256),&tmpre,&tmpim); cmac_256(*(x4),*(W25_256),&tmpre,&tmpim); *(y3) = cpack_256(tmpre,tmpim); - *(y3) = _mm256_adds_epi16(*(x0),*(y3)); + *(y3) = simde_mm256_adds_epi16(*(x0),*(y3)); cmult_256(*(x1),*(W45_256),&tmpre,&tmpim); cmac_256(*(x2),*(W35_256),&tmpre,&tmpim); cmac_256(*(x3),*(W25_256),&tmpre,&tmpim); cmac_256(*(x4),*(W15_256),&tmpre,&tmpim); *(y4) = cpack_256(tmpre,tmpim); - *(y4) = _mm256_adds_epi16(*(x0),*(y4)); + *(y4) = simde_mm256_adds_epi16(*(x0),*(y4)); } -#endif -#elif defined(__arm__) + +#elif defined(__arm__) || defined(__aarch64__) static inline void bfly5_tw1(int16x8_t *x0, int16x8_t *x1, int16x8_t *x2, int16x8_t *x3,int16x8_t *x4, int16x8_t *y0, int16x8_t *y1, int16x8_t *y2, int16x8_t *y3,int16x8_t *y4) __attribute__((always_inline)); @@ -1889,7 +1831,8 @@ static inline void bfly5_tw1(int16x8_t *x0, int16x8_t *x1, int16x8_t *x2, int16x *(y4) = vqaddq_s16(*(x0),*(y4)); } -#endif +#endif // defined(__x86_64__) || defined(__i386__) + // performs 4x4 transpose of input x (complex interleaved) using 128bit SIMD intrinsics // i.e. x = [x0r x0i x1r x1i ... x15r x15i], y = [x0r x0i x4r x4i x8r x8i x12r x12i x1r x1i x5r x5i x9r x9i x13r x13i x2r x2i ... x15r x15i] @@ -1909,7 +1852,7 @@ static inline void transpose16(__m128i *x,__m128i *y) y[3] = _mm_unpackhi_epi64(ytmp1,ytmp3); } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void transpose16(int16x8_t *x,int16x8_t *y) __attribute__((always_inline)); static inline void transpose16(int16x8_t *x,int16x8_t *y) { @@ -1924,7 +1867,8 @@ static inline void transpose16(int16x8_t *x,int16x8_t *y) y[3] = vcombine_s16(vget_high_s16((int16x8_t)ytmp0.val[1]),vget_high_s16((int16x8_t)ytmp1.val[1])); } -# endif +#endif // defined(__x86_64__) || defined(__i386__) + // same as above but output is offset by off #if defined(__x86_64__) || defined(__i386__) static inline void transpose16_ooff(__m128i *x,__m128i *y,int off) __attribute__((always_inline)); @@ -1947,35 +1891,32 @@ static inline void transpose16_ooff(__m128i *x,__m128i *y,int off) *y2 = _mm_unpackhi_epi64(ytmp1,ytmp3); // x03 x13 x23 x33 } -#ifdef __AVX2__ - static inline void transpose16_ooff_simd256(__m256i *x,__m256i *y,int off) __attribute__((always_inline)); static inline void transpose16_ooff_simd256(__m256i *x,__m256i *y,int off) { register __m256i ytmp0,ytmp1,ytmp2,ytmp3,ytmp4,ytmp5,ytmp6,ytmp7; __m256i *y2=y; - __m256i const perm_mask = _mm256_set_epi32(7, 3, 5, 1, 6, 2, 4, 0); + __m256i const perm_mask = simde_mm256_set_epi32(7, 3, 5, 1, 6, 2, 4, 0); - ytmp0 = _mm256_permutevar8x32_epi32(x[0],perm_mask); // x00 x10 x01 x11 x02 x12 x03 x13 - ytmp1 = _mm256_permutevar8x32_epi32(x[1],perm_mask); // x20 x30 x21 x31 x22 x32 x23 x33 - ytmp2 = _mm256_permutevar8x32_epi32(x[2],perm_mask); // x40 x50 x41 x51 x42 x52 x43 x53 - ytmp3 = _mm256_permutevar8x32_epi32(x[3],perm_mask); // x60 x70 x61 x71 x62 x72 x63 x73 - ytmp4 = _mm256_unpacklo_epi64(ytmp0,ytmp1); // x00 x10 x20 x30 x01 x11 x21 x31 - ytmp5 = _mm256_unpackhi_epi64(ytmp0,ytmp1); // x02 x12 x22 x32 x03 x13 x23 x33 - ytmp6 = _mm256_unpacklo_epi64(ytmp2,ytmp3); // x40 x50 x60 x70 x41 x51 x61 x71 - ytmp7 = _mm256_unpackhi_epi64(ytmp2,ytmp3); // x42 x52 x62 x72 x43 x53 x63 x73 + ytmp0 = simde_mm256_permutevar8x32_epi32(x[0],perm_mask); // x00 x10 x01 x11 x02 x12 x03 x13 + ytmp1 = simde_mm256_permutevar8x32_epi32(x[1],perm_mask); // x20 x30 x21 x31 x22 x32 x23 x33 + ytmp2 = simde_mm256_permutevar8x32_epi32(x[2],perm_mask); // x40 x50 x41 x51 x42 x52 x43 x53 + ytmp3 = simde_mm256_permutevar8x32_epi32(x[3],perm_mask); // x60 x70 x61 x71 x62 x72 x63 x73 + ytmp4 = simde_mm256_unpacklo_epi64(ytmp0,ytmp1); // x00 x10 x20 x30 x01 x11 x21 x31 + ytmp5 = simde_mm256_unpackhi_epi64(ytmp0,ytmp1); // x02 x12 x22 x32 x03 x13 x23 x33 + ytmp6 = simde_mm256_unpacklo_epi64(ytmp2,ytmp3); // x40 x50 x60 x70 x41 x51 x61 x71 + ytmp7 = simde_mm256_unpackhi_epi64(ytmp2,ytmp3); // x42 x52 x62 x72 x43 x53 x63 x73 - *y2 = _mm256_insertf128_si256(ytmp4,_mm256_extracti128_si256(ytmp6,0),1); //x00 x10 x20 x30 x40 x50 x60 x70 + *y2 = simde_mm256_insertf128_si256(ytmp4,simde_mm256_extracti128_si256(ytmp6,0),1); //x00 x10 x20 x30 x40 x50 x60 x70 y2+=off; - *y2 = _mm256_insertf128_si256(ytmp6,_mm256_extracti128_si256(ytmp4,1),0); //x01 x11 x21 x31 x41 x51 x61 x71 + *y2 = simde_mm256_insertf128_si256(ytmp6,simde_mm256_extracti128_si256(ytmp4,1),0); //x01 x11 x21 x31 x41 x51 x61 x71 y2+=off; - *y2 = _mm256_insertf128_si256(ytmp5,_mm256_extracti128_si256(ytmp7,0),1); //x00 x10 x20 x30 x40 x50 x60 x70 + *y2 = simde_mm256_insertf128_si256(ytmp5,simde_mm256_extracti128_si256(ytmp7,0),1); //x00 x10 x20 x30 x40 x50 x60 x70 y2+=off; - *y2 = _mm256_insertf128_si256(ytmp7,_mm256_extracti128_si256(ytmp5,1),0); //x01 x11 x21 x31 x41 x51 x61 x71 + *y2 = simde_mm256_insertf128_si256(ytmp7,simde_mm256_extracti128_si256(ytmp5,1),0); //x01 x11 x21 x31 x41 x51 x61 x71 } -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) static inline void transpose16_ooff(int16x8_t *x,int16x8_t *y,int off) __attribute__((always_inline)); static inline void transpose16_ooff(int16x8_t *x,int16x8_t *y,int off) @@ -1994,7 +1935,7 @@ static inline void transpose16_ooff(int16x8_t *x,int16x8_t *y,int off) } -#endif +#endif // defined(__x86_64__) || defined(__i386__) #if defined(__x86_64__) || defined(__i386__) @@ -2009,24 +1950,24 @@ static inline void transpose4_ooff(__m64 *x,__m64 *y,int off) // y[0] = [x0 x2] // y[off] = [x1 x3] } -#ifdef __AVX2__ + static inline void transpose4_ooff_simd256(__m256i *x,__m256i *y,int off)__attribute__((always_inline)); static inline void transpose4_ooff_simd256(__m256i *x,__m256i *y,int off) { - __m256i const perm_mask = _mm256_set_epi32(7, 5, 3, 1, 6, 4, 2, 0); + __m256i const perm_mask = simde_mm256_set_epi32(7, 5, 3, 1, 6, 4, 2, 0); __m256i perm_tmp0,perm_tmp1; // x[0] = [x0 x1 x2 x3 x4 x5 x6 x7] // x[1] = [x8 x9 x10 x11 x12 x13 x14] // y[0] = [x0 x2 x4 x6 x8 x10 x12 x14] // y[off] = [x1 x3 x5 x7 x9 x11 x13 x15] - perm_tmp0 = _mm256_permutevar8x32_epi32(x[0],perm_mask); - perm_tmp1 = _mm256_permutevar8x32_epi32(x[1],perm_mask); - y[0] = _mm256_insertf128_si256(perm_tmp0,_mm256_extracti128_si256(perm_tmp1,0),1); - y[off] = _mm256_insertf128_si256(perm_tmp1,_mm256_extracti128_si256(perm_tmp0,1),0); + perm_tmp0 = simde_mm256_permutevar8x32_epi32(x[0],perm_mask); + perm_tmp1 = simde_mm256_permutevar8x32_epi32(x[1],perm_mask); + y[0] = simde_mm256_insertf128_si256(perm_tmp0,simde_mm256_extracti128_si256(perm_tmp1,0),1); + y[off] = simde_mm256_insertf128_si256(perm_tmp1,simde_mm256_extracti128_si256(perm_tmp0,1),0); } -#endif -#elif (__arm__) + +#elif defined(__arm__) || defined(__aarch64__) static inline void transpose4_ooff(int16x4_t *x,int16x4_t *y,int off)__attribute__((always_inline)); static inline void transpose4_ooff(int16x4_t *x,int16x4_t *y,int off) @@ -2037,7 +1978,7 @@ static inline void transpose4_ooff(int16x4_t *x,int16x4_t *y,int off) y[off] = (int16x4_t)ytmp.val[1]; } -#endif +#endif // defined(__x86_64__) || defined(__i386__) // 16-point optimized DFT kernel @@ -2061,8 +2002,6 @@ const static int16_t tw16c[24] __attribute__((aligned(32))) = { 0,32767,12540,30 0,32767,30273,12539,23170,-23170,-12539,-30273 }; -#ifdef __AVX2__ - const static int16_t tw16rep[48] __attribute__((aligned(32))) = { 32767,0,30272,-12540,23169 ,-23170,12539 ,-30273,32767,0,30272,-12540,23169 ,-23170,12539 ,-30273, 32767,0,23169,-23170,0 ,-32767,-23170,-23170,32767,0,23169,-23170,0 ,-32767,-23170,-23170, 32767,0,12539,-30273,-23170,-23170,-30273,12539,32767,0,12539,-30273,-23170,-23170,-30273,12539 @@ -2083,10 +2022,6 @@ const static int16_t tw16crep[48] __attribute__((aligned(32))) = { 0,32767,12540 0,32767,30273,12539,23170,-23170,-12539,-30273,0,32767,30273,12539,23170,-23170,-12539,-30273 }; -#endif /* __AVX2__ */ - - - static inline void dft16(int16_t *x,int16_t *y) __attribute__((always_inline)); static inline void dft16(int16_t *x,int16_t *y) @@ -2156,7 +2091,7 @@ static inline void dft16(int16_t *x,int16_t *y) y128[1] = _mm_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f y128[3] = _mm_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *tw16a_128=(int16x8_t *)tw16a,*tw16b_128=(int16x8_t *)tw16b,*x128=(int16x8_t *)x,*y128=(int16x8_t *)y; @@ -2223,11 +2158,11 @@ static inline void dft16(int16_t *x,int16_t *y) y128[3] = vqsubq_s16(x02t,x13t); // x0 - x1f - x2 + x3f -#endif +#endif // defined(__x86_64__) || defined(__i386__) } #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ + // Does two 16-point DFTS (x[0 .. 15] is 128 LSBs of input vector, x[16..31] is in 128 MSBs) static inline void dft16_simd256(int16_t *x,int16_t *y) __attribute__((always_inline)); static inline void dft16_simd256(int16_t *x,int16_t *y) @@ -2237,36 +2172,36 @@ static inline void dft16_simd256(int16_t *x,int16_t *y) __m256i x1_flip,x3_flip,x02t,x13t; __m256i ytmp0,ytmp1,ytmp2,ytmp3,xtmp0,xtmp1,xtmp2,xtmp3; - register __m256i complex_shuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + register __m256i complex_shuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); // First stage : 4 Radix-4 butterflies without input twiddles - x02t = _mm256_adds_epi16(x256[0],x256[2]); - x13t = _mm256_adds_epi16(x256[1],x256[3]); - xtmp0 = _mm256_adds_epi16(x02t,x13t); - xtmp2 = _mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(x256[1],*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(x256[3],*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(x256[0],x256[2]); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - xtmp1 = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - xtmp3 = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x02t = simde_mm256_adds_epi16(x256[0],x256[2]); + x13t = simde_mm256_adds_epi16(x256[1],x256[3]); + xtmp0 = simde_mm256_adds_epi16(x02t,x13t); + xtmp2 = simde_mm256_subs_epi16(x02t,x13t); + x1_flip = simde_mm256_sign_epi16(x256[1],*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(x256[3],*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(x256[0],x256[2]); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + xtmp1 = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + xtmp3 = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f /* print_shorts256("xtmp0",(int16_t*)&xtmp0); print_shorts256("xtmp1",(int16_t*)&xtmp1); print_shorts256("xtmp2",(int16_t*)&xtmp2); print_shorts256("xtmp3",(int16_t*)&xtmp3);*/ - ytmp0 = _mm256_unpacklo_epi32(xtmp0,xtmp1); - ytmp1 = _mm256_unpackhi_epi32(xtmp0,xtmp1); - ytmp2 = _mm256_unpacklo_epi32(xtmp2,xtmp3); - ytmp3 = _mm256_unpackhi_epi32(xtmp2,xtmp3); - xtmp0 = _mm256_unpacklo_epi64(ytmp0,ytmp2); - xtmp1 = _mm256_unpackhi_epi64(ytmp0,ytmp2); - xtmp2 = _mm256_unpacklo_epi64(ytmp1,ytmp3); - xtmp3 = _mm256_unpackhi_epi64(ytmp1,ytmp3); + ytmp0 = simde_mm256_unpacklo_epi32(xtmp0,xtmp1); + ytmp1 = simde_mm256_unpackhi_epi32(xtmp0,xtmp1); + ytmp2 = simde_mm256_unpacklo_epi32(xtmp2,xtmp3); + ytmp3 = simde_mm256_unpackhi_epi32(xtmp2,xtmp3); + xtmp0 = simde_mm256_unpacklo_epi64(ytmp0,ytmp2); + xtmp1 = simde_mm256_unpackhi_epi64(ytmp0,ytmp2); + xtmp2 = simde_mm256_unpacklo_epi64(ytmp1,ytmp3); + xtmp3 = simde_mm256_unpackhi_epi64(ytmp1,ytmp3); // Second stage : 4 Radix-4 butterflies with input twiddles xtmp1 = packed_cmult2_256(xtmp1,tw16a_256[0],tw16b_256[0]); @@ -2278,18 +2213,18 @@ static inline void dft16_simd256(int16_t *x,int16_t *y) print_shorts256("xtmp2",(int16_t*)&xtmp2); print_shorts256("xtmp3",(int16_t*)&xtmp3);*/ - x02t = _mm256_adds_epi16(xtmp0,xtmp2); - x13t = _mm256_adds_epi16(xtmp1,xtmp3); - ytmp0 = _mm256_adds_epi16(x02t,x13t); - ytmp2 = _mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(xtmp1,*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(xtmp3,*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(xtmp0,xtmp2); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - ytmp1 = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - ytmp3 = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x02t = simde_mm256_adds_epi16(xtmp0,xtmp2); + x13t = simde_mm256_adds_epi16(xtmp1,xtmp3); + ytmp0 = simde_mm256_adds_epi16(x02t,x13t); + ytmp2 = simde_mm256_subs_epi16(x02t,x13t); + x1_flip = simde_mm256_sign_epi16(xtmp1,*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(xtmp3,*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(xtmp0,xtmp2); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + ytmp1 = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + ytmp3 = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f // [y0 y1 y2 y3 y16 y17 y18 y19] @@ -2297,10 +2232,10 @@ static inline void dft16_simd256(int16_t *x,int16_t *y) // [y8 y9 y10 y11 y24 y25 y26 y27] // [y12 y13 y14 y15 y28 y29 y30 y31] - y256[0] = _mm256_insertf128_si256(ytmp0,_mm256_extracti128_si256(ytmp1,0),1); - y256[1] = _mm256_insertf128_si256(ytmp2,_mm256_extracti128_si256(ytmp3,0),1); - y256[2] = _mm256_insertf128_si256(ytmp1,_mm256_extracti128_si256(ytmp0,1),0); - y256[3] = _mm256_insertf128_si256(ytmp3,_mm256_extracti128_si256(ytmp2,1),0); + y256[0] = simde_mm256_insertf128_si256(ytmp0,simde_mm256_extracti128_si256(ytmp1,0),1); + y256[1] = simde_mm256_insertf128_si256(ytmp2,simde_mm256_extracti128_si256(ytmp3,0),1); + y256[2] = simde_mm256_insertf128_si256(ytmp1,simde_mm256_extracti128_si256(ytmp0,1),0); + y256[3] = simde_mm256_insertf128_si256(ytmp3,simde_mm256_extracti128_si256(ytmp2,1),0); // [y0 y1 y2 y3 y4 y5 y6 y7] // [y8 y9 y10 y11 y12 y13 y14 y15] @@ -2308,8 +2243,8 @@ static inline void dft16_simd256(int16_t *x,int16_t *y) // [y24 y25 y26 y27 y28 y29 y30 y31] } -#endif -#endif +#endif // defined(__x86_64__) || defined(__i386__) + static inline void idft16(int16_t *x,int16_t *y) __attribute__((always_inline)); static inline void idft16(int16_t *x,int16_t *y) @@ -2374,7 +2309,7 @@ static inline void idft16(int16_t *x,int16_t *y) y128[3] = _mm_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f y128[1] = _mm_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) int16x8_t *tw16a_128=(int16x8_t *)tw16,*tw16b_128=(int16x8_t *)tw16c,*x128=(int16x8_t *)x,*y128=(int16x8_t *)y; /* This is the original version before unrolling @@ -2438,7 +2373,7 @@ static inline void idft16(int16_t *x,int16_t *y) y128[3] = vqaddq_s16(x02t,x13t); // x0 + x1f - x2 - x3f y128[1] = vqsubq_s16(x02t,x13t); // x0 - x1f - x2 + x3f -#endif +#endif // defined(__x86_64__) || defined(__i386__) } void idft16f(int16_t *x,int16_t *y) { @@ -2446,7 +2381,7 @@ void idft16f(int16_t *x,int16_t *y) { } #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ + // Does two 16-point IDFTS (x[0 .. 15] is 128 LSBs of input vector, x[16..31] is in 128 MSBs) static inline void idft16_simd256(int16_t *x,int16_t *y) __attribute__((always_inline)); static inline void idft16_simd256(int16_t *x,int16_t *y) @@ -2455,63 +2390,62 @@ static inline void idft16_simd256(int16_t *x,int16_t *y) __m256i *tw16a_256=(__m256i *)tw16rep,*tw16b_256=(__m256i *)tw16crep,*x256=(__m256i *)x,*y256=(__m256i *)y; register __m256i x1_flip,x3_flip,x02t,x13t; register __m256i ytmp0,ytmp1,ytmp2,ytmp3,xtmp0,xtmp1,xtmp2,xtmp3; - register __m256i complex_shuffle = _mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); + register __m256i complex_shuffle = simde_mm256_set_epi8(29,28,31,30,25,24,27,26,21,20,23,22,17,16,19,18,13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2); // First stage : 4 Radix-4 butterflies without input twiddles - x02t = _mm256_adds_epi16(x256[0],x256[2]); - x13t = _mm256_adds_epi16(x256[1],x256[3]); - xtmp0 = _mm256_adds_epi16(x02t,x13t); - xtmp2 = _mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(x256[1],*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(x256[3],*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(x256[0],x256[2]); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - xtmp3 = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - xtmp1 = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x02t = simde_mm256_adds_epi16(x256[0],x256[2]); + x13t = simde_mm256_adds_epi16(x256[1],x256[3]); + xtmp0 = simde_mm256_adds_epi16(x02t,x13t); + xtmp2 = simde_mm256_subs_epi16(x02t,x13t); + x1_flip = simde_mm256_sign_epi16(x256[1],*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(x256[3],*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(x256[0],x256[2]); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + xtmp3 = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + xtmp1 = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f - ytmp0 = _mm256_unpacklo_epi32(xtmp0,xtmp1); - ytmp1 = _mm256_unpackhi_epi32(xtmp0,xtmp1); - ytmp2 = _mm256_unpacklo_epi32(xtmp2,xtmp3); - ytmp3 = _mm256_unpackhi_epi32(xtmp2,xtmp3); - xtmp0 = _mm256_unpacklo_epi64(ytmp0,ytmp2); - xtmp1 = _mm256_unpackhi_epi64(ytmp0,ytmp2); - xtmp2 = _mm256_unpacklo_epi64(ytmp1,ytmp3); - xtmp3 = _mm256_unpackhi_epi64(ytmp1,ytmp3); + ytmp0 = simde_mm256_unpacklo_epi32(xtmp0,xtmp1); + ytmp1 = simde_mm256_unpackhi_epi32(xtmp0,xtmp1); + ytmp2 = simde_mm256_unpacklo_epi32(xtmp2,xtmp3); + ytmp3 = simde_mm256_unpackhi_epi32(xtmp2,xtmp3); + xtmp0 = simde_mm256_unpacklo_epi64(ytmp0,ytmp2); + xtmp1 = simde_mm256_unpackhi_epi64(ytmp0,ytmp2); + xtmp2 = simde_mm256_unpacklo_epi64(ytmp1,ytmp3); + xtmp3 = simde_mm256_unpackhi_epi64(ytmp1,ytmp3); // Second stage : 4 Radix-4 butterflies with input twiddles xtmp1 = packed_cmult2_256(xtmp1,tw16a_256[0],tw16b_256[0]); xtmp2 = packed_cmult2_256(xtmp2,tw16a_256[1],tw16b_256[1]); xtmp3 = packed_cmult2_256(xtmp3,tw16a_256[2],tw16b_256[2]); - x02t = _mm256_adds_epi16(xtmp0,xtmp2); - x13t = _mm256_adds_epi16(xtmp1,xtmp3); - ytmp0 = _mm256_adds_epi16(x02t,x13t); - ytmp2 = _mm256_subs_epi16(x02t,x13t); - x1_flip = _mm256_sign_epi16(xtmp1,*(__m256i*)conjugatedft); - x1_flip = _mm256_shuffle_epi8(x1_flip,complex_shuffle); - x3_flip = _mm256_sign_epi16(xtmp3,*(__m256i*)conjugatedft); - x3_flip = _mm256_shuffle_epi8(x3_flip,complex_shuffle); - x02t = _mm256_subs_epi16(xtmp0,xtmp2); - x13t = _mm256_subs_epi16(x1_flip,x3_flip); - ytmp3 = _mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f - ytmp1 = _mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f + x02t = simde_mm256_adds_epi16(xtmp0,xtmp2); + x13t = simde_mm256_adds_epi16(xtmp1,xtmp3); + ytmp0 = simde_mm256_adds_epi16(x02t,x13t); + ytmp2 = simde_mm256_subs_epi16(x02t,x13t); + x1_flip = simde_mm256_sign_epi16(xtmp1,*(__m256i*)conjugatedft); + x1_flip = simde_mm256_shuffle_epi8(x1_flip,complex_shuffle); + x3_flip = simde_mm256_sign_epi16(xtmp3,*(__m256i*)conjugatedft); + x3_flip = simde_mm256_shuffle_epi8(x3_flip,complex_shuffle); + x02t = simde_mm256_subs_epi16(xtmp0,xtmp2); + x13t = simde_mm256_subs_epi16(x1_flip,x3_flip); + ytmp3 = simde_mm256_adds_epi16(x02t,x13t); // x0 + x1f - x2 - x3f + ytmp1 = simde_mm256_subs_epi16(x02t,x13t); // x0 - x1f - x2 + x3f // [y0 y1 y2 y3 y16 y17 y18 y19] // [y4 y5 y6 y7 y20 y21 y22 y23] // [y8 y9 y10 y11 y24 y25 y26 y27] // [y12 y13 y14 y15 y28 y29 y30 y31] - y256[0] = _mm256_insertf128_si256(ytmp0,_mm256_extracti128_si256(ytmp1,0),1); - y256[1] = _mm256_insertf128_si256(ytmp2,_mm256_extracti128_si256(ytmp3,0),1); - y256[2] = _mm256_insertf128_si256(ytmp1,_mm256_extracti128_si256(ytmp0,1),0); - y256[3] = _mm256_insertf128_si256(ytmp3,_mm256_extracti128_si256(ytmp2,1),0); + y256[0] = simde_mm256_insertf128_si256(ytmp0,simde_mm256_extracti128_si256(ytmp1,0),1); + y256[1] = simde_mm256_insertf128_si256(ytmp2,simde_mm256_extracti128_si256(ytmp3,0),1); + y256[2] = simde_mm256_insertf128_si256(ytmp1,simde_mm256_extracti128_si256(ytmp0,1),0); + y256[3] = simde_mm256_insertf128_si256(ytmp3,simde_mm256_extracti128_si256(ytmp2,1),0); } -#endif -#endif +#endif // defined(__x86_64__) || defined(__i386__) // 64-point optimized DFT @@ -2576,14 +2510,12 @@ const static int16_t tw64c[96] __attribute__((aligned(32))) = { #define simdshort_q15_t __m64 #define shiftright_int16(a,shift) _mm_srai_epi16(a,shift) #define mulhi_int16(a,b) _mm_mulhrs_epi16 (a,b) -#ifdef __AVX2__ #define simd256_q15_t __m256i -#define shiftright_int16_simd256(a,shift) _mm256_srai_epi16(a,shift) -#define set1_int16_simd256(a) _mm256_set1_epi16(a); -#define mulhi_int16_simd256(a,b) _mm256_mulhrs_epi16(a,b); //_mm256_slli_epi16(_mm256_mulhi_epi16(a,b),1); -#endif +#define shiftright_int16_simd256(a,shift) simde_mm256_srai_epi16(a,shift) +#define set1_int16_simd256(a) simde_mm256_set1_epi16(a); +#define mulhi_int16_simd256(a,b) simde_mm256_mulhrs_epi16(a,b); //simde_mm256_slli_epi16(simde_mm256_mulhi_epi16(a,b),1); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #define simd_q15_t int16x8_t #define simdshort_q15_t int16x4_t #define shiftright_int16(a,shift) vshrq_n_s16(a,shift) @@ -2592,129 +2524,14 @@ const static int16_t tw64c[96] __attribute__((aligned(32))) = { #define _mm_empty() #define _m_empty() -#endif +#endif // defined(__x86_64__) || defined(__i386__) -#ifndef __AVX2__ -void dft64(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[16],ytmp[16],*tw64a_128=(simd_q15_t *)tw64a,*tw64b_128=(simd_q15_t *)tw64b,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y; - - -#ifdef D64STATS - time_stats_t ts_t,ts_d,ts_b; - - reset_meas(&ts_t); - reset_meas(&ts_d); - reset_meas(&ts_b); - start_meas(&ts_t); -#endif - - - transpose16_ooff(x128,xtmp,4); - // xtmp0 = x00 x10 x20 x30 - // xtmp4 = x01 x11 x21 x31 - // xtmp8 = x02 x12 x22 x32 - // xtmp12 = x03 x13 x23 x33 - transpose16_ooff(x128+4,xtmp+1,4); - // xtmp1 = x40 x50 x60 x70 - // xtmp5 = x41 x51 x61 x71 - // xtmp9 = x42 x52 x62 x72 - // xtmp13 = x43 x53 x63 x73 - transpose16_ooff(x128+8,xtmp+2,4); - // xtmp2 = x80 x90 xa0 xb0 - // xtmp6 = x41 x51 x61 x71 - // xtmp10 = x82 x92 xa2 xb2 - // xtmp14 = x83 x93 xa3 xb3 - transpose16_ooff(x128+12,xtmp+3,4); - // xtmp3 = xc0 xd0 xe0 xf0 - // xtmp7 = xc1 xd1 xe1 xf1 - // xtmp11 = xc2 xd2 xe2 xf2 - // xtmp15 = xc3 xd3 xe3 xf3 - -#ifdef D64STATS - stop_meas(&ts_t); - start_meas(&ts_d); -#endif - - // xtmp0 = x00 x10 x20 x30 - // xtmp1 = x40 x50 x60 x70 - // xtmp2 = x80 x90 xa0 xb0 - // xtmp3 = xc0 xd0 xe0 xf0 - dft16((int16_t*)(xtmp),(int16_t*)ytmp); - - // xtmp4 = x01 x11 x21 x31 - // xtmp5 = x41 x51 x61 x71 - // xtmp6 = x81 x91 xa1 xb1 - // xtmp7 = xc1 xd1 xe1 xf1 - dft16((int16_t*)(xtmp+4),(int16_t*)(ytmp+4)); - dft16((int16_t*)(xtmp+8),(int16_t*)(ytmp+8)); - dft16((int16_t*)(xtmp+12),(int16_t*)(ytmp+12)); - - -#ifdef D64STATS - stop_meas(&ts_d); - start_meas(&ts_b); -#endif - - - bfly4_16(ytmp,ytmp+4,ytmp+8,ytmp+12, - y128,y128+4,y128+8,y128+12, - tw64a_128,tw64a_128+4,tw64a_128+8, - tw64b_128,tw64b_128+4,tw64b_128+8); - - bfly4_16(ytmp+1,ytmp+5,ytmp+9,ytmp+13, - y128+1,y128+5,y128+9,y128+13, - tw64a_128+1,tw64a_128+5,tw64a_128+9, - tw64b_128+1,tw64b_128+5,tw64b_128+9); - - bfly4_16(ytmp+2,ytmp+6,ytmp+10,ytmp+14, - y128+2,y128+6,y128+10,y128+14, - tw64a_128+2,tw64a_128+6,tw64a_128+10, - tw64b_128+2,tw64b_128+6,tw64b_128+10); - - bfly4_16(ytmp+3,ytmp+7,ytmp+11,ytmp+15, - y128+3,y128+7,y128+11,y128+15, - tw64a_128+3,tw64a_128+7,tw64a_128+11, - tw64b_128+3,tw64b_128+7,tw64b_128+11); - -#ifdef D64STATS - stop_meas(&ts_b); - printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff); -#endif - - - if (scale>0) { - y128[0] = shiftright_int16(y128[0],3); - y128[1] = shiftright_int16(y128[1],3); - y128[2] = shiftright_int16(y128[2],3); - y128[3] = shiftright_int16(y128[3],3); - y128[4] = shiftright_int16(y128[4],3); - y128[5] = shiftright_int16(y128[5],3); - y128[6] = shiftright_int16(y128[6],3); - y128[7] = shiftright_int16(y128[7],3); - y128[8] = shiftright_int16(y128[8],3); - y128[9] = shiftright_int16(y128[9],3); - y128[10] = shiftright_int16(y128[10],3); - y128[11] = shiftright_int16(y128[11],3); - y128[12] = shiftright_int16(y128[12],3); - y128[13] = shiftright_int16(y128[13],3); - y128[14] = shiftright_int16(y128[14],3); - y128[15] = shiftright_int16(y128[15],3); - } - - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ void dft64(int16_t *x,int16_t *y,unsigned char scale) { simd256_q15_t xtmp[16],ytmp[16],*tw64a_256=(simd256_q15_t *)tw64a,*tw64b_256=(simd256_q15_t *)tw64b,*x256=(simd256_q15_t *)x,*y256=(simd256_q15_t *)y; simd256_q15_t xintl0,xintl1,xintl2,xintl3,xintl4,xintl5,xintl6,xintl7; - simd256_q15_t const perm_mask = _mm256_set_epi32(7, 3, 5, 1, 6, 2, 4, 0); + simd256_q15_t const perm_mask = simde_mm256_set_epi32(7, 3, 5, 1, 6, 2, 4, 0); #ifdef D64STATS @@ -2740,14 +2557,14 @@ void dft64(int16_t *x,int16_t *y,unsigned char scale) print_shorts256("x2566",(int16_t*)(x256+6)); print_shorts256("x2567",(int16_t*)(x256+7)); */ - xintl0 = _mm256_permutevar8x32_epi32(x256[0],perm_mask); // x0 x4 x1 x5 x2 x6 x3 x7 - xintl1 = _mm256_permutevar8x32_epi32(x256[1],perm_mask); // x8 x12 x9 x13 x10 x14 x11 x15 - xintl2 = _mm256_permutevar8x32_epi32(x256[2],perm_mask); // x16 x20 x17 x21 x18 x22 x19 x23 - xintl3 = _mm256_permutevar8x32_epi32(x256[3],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 - xintl4 = _mm256_permutevar8x32_epi32(x256[4],perm_mask); // x32 x28 x25 x29 x26 x30 x27 x31 - xintl5 = _mm256_permutevar8x32_epi32(x256[5],perm_mask); // x40 x28 x25 x29 x26 x30 x27 x31 - xintl6 = _mm256_permutevar8x32_epi32(x256[6],perm_mask); // x48 x28 x25 x29 x26 x30 x27 x31 - xintl7 = _mm256_permutevar8x32_epi32(x256[7],perm_mask); // x56 x28 x25 x29 x26 x30 x27 x31 + xintl0 = simde_mm256_permutevar8x32_epi32(x256[0],perm_mask); // x0 x4 x1 x5 x2 x6 x3 x7 + xintl1 = simde_mm256_permutevar8x32_epi32(x256[1],perm_mask); // x8 x12 x9 x13 x10 x14 x11 x15 + xintl2 = simde_mm256_permutevar8x32_epi32(x256[2],perm_mask); // x16 x20 x17 x21 x18 x22 x19 x23 + xintl3 = simde_mm256_permutevar8x32_epi32(x256[3],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 + xintl4 = simde_mm256_permutevar8x32_epi32(x256[4],perm_mask); // x32 x28 x25 x29 x26 x30 x27 x31 + xintl5 = simde_mm256_permutevar8x32_epi32(x256[5],perm_mask); // x40 x28 x25 x29 x26 x30 x27 x31 + xintl6 = simde_mm256_permutevar8x32_epi32(x256[6],perm_mask); // x48 x28 x25 x29 x26 x30 x27 x31 + xintl7 = simde_mm256_permutevar8x32_epi32(x256[7],perm_mask); // x56 x28 x25 x29 x26 x30 x27 x31 /* print_shorts256("xintl0",(int16_t*)&xintl0); print_shorts256("xintl1",(int16_t*)&xintl1); @@ -2758,14 +2575,14 @@ void dft64(int16_t *x,int16_t *y,unsigned char scale) print_shorts256("xintl6",(int16_t*)&xintl6); print_shorts256("xintl7",(int16_t*)&xintl7); */ - xtmp[0] = _mm256_unpacklo_epi64(xintl0,xintl1); // x0 x4 x8 x12 x1 x5 x9 x13 - xtmp[4] = _mm256_unpackhi_epi64(xintl0,xintl1); // x2 x6 x10 x14 x3 x7 x11 x15 - xtmp[1] = _mm256_unpacklo_epi64(xintl2,xintl3); // x16 x20 x24 x28 x17 x21 x25 x29 - xtmp[5] = _mm256_unpackhi_epi64(xintl2,xintl3); // x18 x22 x26 x30 x19 x23 x27 x31 - xtmp[2] = _mm256_unpacklo_epi64(xintl4,xintl5); // x32 x36 x40 x44 x33 x37 x41 x45 - xtmp[6] = _mm256_unpackhi_epi64(xintl4,xintl5); // x34 x38 x42 x46 x35 x39 x43 x47 - xtmp[3] = _mm256_unpacklo_epi64(xintl6,xintl7); // x48 x52 x56 x60 x49 x53 x57 x61 - xtmp[7] = _mm256_unpackhi_epi64(xintl6,xintl7); // x50 x54 x58 x62 x51 x55 x59 x63 + xtmp[0] = simde_mm256_unpacklo_epi64(xintl0,xintl1); // x0 x4 x8 x12 x1 x5 x9 x13 + xtmp[4] = simde_mm256_unpackhi_epi64(xintl0,xintl1); // x2 x6 x10 x14 x3 x7 x11 x15 + xtmp[1] = simde_mm256_unpacklo_epi64(xintl2,xintl3); // x16 x20 x24 x28 x17 x21 x25 x29 + xtmp[5] = simde_mm256_unpackhi_epi64(xintl2,xintl3); // x18 x22 x26 x30 x19 x23 x27 x31 + xtmp[2] = simde_mm256_unpacklo_epi64(xintl4,xintl5); // x32 x36 x40 x44 x33 x37 x41 x45 + xtmp[6] = simde_mm256_unpackhi_epi64(xintl4,xintl5); // x34 x38 x42 x46 x35 x39 x43 x47 + xtmp[3] = simde_mm256_unpacklo_epi64(xintl6,xintl7); // x48 x52 x56 x60 x49 x53 x57 x61 + xtmp[7] = simde_mm256_unpackhi_epi64(xintl6,xintl7); // x50 x54 x58 x62 x51 x55 x59 x63 /* print_shorts256("xtmp0",(int16_t*)xtmp); print_shorts256("xtmp1",(int16_t*)(xtmp+1)); @@ -2854,107 +2671,13 @@ void dft64(int16_t *x,int16_t *y,unsigned char scale) } -#endif -#ifndef __AVX2__ -void idft64(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[16],ytmp[16],*tw64a_128=(simd_q15_t *)tw64,*tw64b_128=(simd_q15_t *)tw64c,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y; - - -#ifdef D64STATS - time_stats_t ts_t,ts_d,ts_b; - - reset_meas(&ts_t); - reset_meas(&ts_d); - reset_meas(&ts_b); - start_meas(&ts_t); -#endif - - - transpose16_ooff(x128,xtmp,4); - transpose16_ooff(x128+4,xtmp+1,4); - transpose16_ooff(x128+8,xtmp+2,4); - transpose16_ooff(x128+12,xtmp+3,4); - - -#ifdef D64STATS - stop_meas(&ts_t); - start_meas(&ts_d); -#endif - - - idft16((int16_t*)(xtmp),(int16_t*)ytmp); - idft16((int16_t*)(xtmp+4),(int16_t*)(ytmp+4)); - idft16((int16_t*)(xtmp+8),(int16_t*)(ytmp+8)); - idft16((int16_t*)(xtmp+12),(int16_t*)(ytmp+12)); - - -#ifdef D64STATS - stop_meas(&ts_d); - start_meas(&ts_b); -#endif - - - ibfly4_16(ytmp,ytmp+4,ytmp+8,ytmp+12, - y128,y128+4,y128+8,y128+12, - tw64a_128,tw64a_128+4,tw64a_128+8, - tw64b_128,tw64b_128+4,tw64b_128+8); - ibfly4_16(ytmp+1,ytmp+5,ytmp+9,ytmp+13, - y128+1,y128+5,y128+9,y128+13, - tw64a_128+1,tw64a_128+5,tw64a_128+9, - tw64b_128+1,tw64b_128+5,tw64b_128+9); - - ibfly4_16(ytmp+2,ytmp+6,ytmp+10,ytmp+14, - y128+2,y128+6,y128+10,y128+14, - tw64a_128+2,tw64a_128+6,tw64a_128+10, - tw64b_128+2,tw64b_128+6,tw64b_128+10); - - ibfly4_16(ytmp+3,ytmp+7,ytmp+11,ytmp+15, - y128+3,y128+7,y128+11,y128+15, - tw64a_128+3,tw64a_128+7,tw64a_128+11, - tw64b_128+3,tw64b_128+7,tw64b_128+11); - -#ifdef D64STATS - stop_meas(&ts_b); - printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff); -#endif - - - if (scale>0) { - - y128[0] = shiftright_int16(y128[0],3); - y128[1] = shiftright_int16(y128[1],3); - y128[2] = shiftright_int16(y128[2],3); - y128[3] = shiftright_int16(y128[3],3); - y128[4] = shiftright_int16(y128[4],3); - y128[5] = shiftright_int16(y128[5],3); - y128[6] = shiftright_int16(y128[6],3); - y128[7] = shiftright_int16(y128[7],3); - y128[8] = shiftright_int16(y128[8],3); - y128[9] = shiftright_int16(y128[9],3); - y128[10] = shiftright_int16(y128[10],3); - y128[11] = shiftright_int16(y128[11],3); - y128[12] = shiftright_int16(y128[12],3); - y128[13] = shiftright_int16(y128[13],3); - y128[14] = shiftright_int16(y128[14],3); - y128[15] = shiftright_int16(y128[15],3); - - } - - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ void idft64(int16_t *x,int16_t *y,unsigned char scale) { simd256_q15_t xtmp[16],ytmp[16],*tw64a_256=(simd256_q15_t *)tw64,*tw64b_256=(simd256_q15_t *)tw64c,*x256=(simd256_q15_t *)x,*y256=(simd256_q15_t *)y; register simd256_q15_t xintl0,xintl1,xintl2,xintl3,xintl4,xintl5,xintl6,xintl7; - simd256_q15_t const perm_mask = _mm256_set_epi32(7, 3, 5, 1, 6, 2, 4, 0); + simd256_q15_t const perm_mask = simde_mm256_set_epi32(7, 3, 5, 1, 6, 2, 4, 0); #ifdef D64STATS @@ -2971,23 +2694,23 @@ void idft64(int16_t *x,int16_t *y,unsigned char scale) start_meas(&ts_d); #endif - xintl0 = _mm256_permutevar8x32_epi32(x256[0],perm_mask); // x0 x4 x1 x5 x2 x6 x3 x7 - xintl1 = _mm256_permutevar8x32_epi32(x256[1],perm_mask); // x8 x12 x9 x13 x10 x14 x11 x15 - xintl2 = _mm256_permutevar8x32_epi32(x256[2],perm_mask); // x16 x20 x17 x21 x18 x22 x19 x23 - xintl3 = _mm256_permutevar8x32_epi32(x256[3],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 - xintl4 = _mm256_permutevar8x32_epi32(x256[4],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 - xintl5 = _mm256_permutevar8x32_epi32(x256[5],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 - xintl6 = _mm256_permutevar8x32_epi32(x256[6],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 - xintl7 = _mm256_permutevar8x32_epi32(x256[7],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 + xintl0 = simde_mm256_permutevar8x32_epi32(x256[0],perm_mask); // x0 x4 x1 x5 x2 x6 x3 x7 + xintl1 = simde_mm256_permutevar8x32_epi32(x256[1],perm_mask); // x8 x12 x9 x13 x10 x14 x11 x15 + xintl2 = simde_mm256_permutevar8x32_epi32(x256[2],perm_mask); // x16 x20 x17 x21 x18 x22 x19 x23 + xintl3 = simde_mm256_permutevar8x32_epi32(x256[3],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 + xintl4 = simde_mm256_permutevar8x32_epi32(x256[4],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 + xintl5 = simde_mm256_permutevar8x32_epi32(x256[5],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 + xintl6 = simde_mm256_permutevar8x32_epi32(x256[6],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 + xintl7 = simde_mm256_permutevar8x32_epi32(x256[7],perm_mask); // x24 x28 x25 x29 x26 x30 x27 x31 - xtmp[0] = _mm256_unpacklo_epi64(xintl0,xintl1); // x0 x4 x8 x12 x1 x5 x9 x13 - xtmp[4] = _mm256_unpackhi_epi64(xintl0,xintl1); // x2 x6 x10 x14 x3 x7 x11 x15 - xtmp[1] = _mm256_unpacklo_epi64(xintl2,xintl3); // x16 x20 x24 x28 x17 x21 x25 x29 - xtmp[5] = _mm256_unpackhi_epi64(xintl2,xintl3); // x18 x22 x26 x30 x19 x23 x27 x31 - xtmp[2] = _mm256_unpacklo_epi64(xintl4,xintl5); // x32 x36 x40 x44 x33 x37 x41 x45 - xtmp[6] = _mm256_unpackhi_epi64(xintl4,xintl5); // x34 x38 x42 x46 x35 x39 x43 x47 - xtmp[3] = _mm256_unpacklo_epi64(xintl6,xintl7); // x48 x52 x56 x60 x49 x53 x57 x61 - xtmp[7] = _mm256_unpackhi_epi64(xintl6,xintl7); // x50 x54 x58 x62 x51 x55 x59 x63 + xtmp[0] = simde_mm256_unpacklo_epi64(xintl0,xintl1); // x0 x4 x8 x12 x1 x5 x9 x13 + xtmp[4] = simde_mm256_unpackhi_epi64(xintl0,xintl1); // x2 x6 x10 x14 x3 x7 x11 x15 + xtmp[1] = simde_mm256_unpacklo_epi64(xintl2,xintl3); // x16 x20 x24 x28 x17 x21 x25 x29 + xtmp[5] = simde_mm256_unpackhi_epi64(xintl2,xintl3); // x18 x22 x26 x30 x19 x23 x27 x31 + xtmp[2] = simde_mm256_unpacklo_epi64(xintl4,xintl5); // x32 x36 x40 x44 x33 x37 x41 x45 + xtmp[6] = simde_mm256_unpackhi_epi64(xintl4,xintl5); // x34 x38 x42 x46 x35 x39 x43 x47 + xtmp[3] = simde_mm256_unpacklo_epi64(xintl6,xintl7); // x48 x52 x56 x60 x49 x53 x57 x61 + xtmp[7] = simde_mm256_unpackhi_epi64(xintl6,xintl7); // x50 x54 x58 x62 x51 x55 x59 x63 idft16_simd256((int16_t*)(xtmp),(int16_t*)ytmp); @@ -3048,7 +2771,6 @@ void idft64(int16_t *x,int16_t *y,unsigned char scale) _m_empty(); } -#endif int16_t tw128[128] __attribute__((aligned(32))) = { 32767,0,32727,-1608,32609,-3212,32412,-4808,32137,-6393,31785,-7962,31356,-9512,30851,-11039,30272,-12540,29621,-14010,28897,-15447,28105,-16846,27244,-18205,26318,-19520,25329,-20788,24278,-22005,23169,-23170,22004,-24279,20787,-25330,19519,-26319,18204,-27245,16845,-28106,15446,-28898,14009,-29622,12539,-30273,11038,-30852,9511,-31357,7961,-31786,6392,-32138,4807,-32413,3211,-32610,1607,-32728,0,-32767,-1608,-32728,-3212,-32610,-4808,-32413,-6393,-32138,-7962,-31786,-9512,-31357,-11039,-30852,-12540,-30273,-14010,-29622,-15447,-28898,-16846,-28106,-18205,-27245,-19520,-26319,-20788,-25330,-22005,-24279,-23170,-23170,-24279,-22005,-25330,-20788,-26319,-19520,-27245,-18205,-28106,-16846,-28898,-15447,-29622,-14010,-30273,-12540,-30852,-11039,-31357,-9512,-31786,-7962,-32138,-6393,-32413,-4808,-32610,-3212,-32728,-1608}; @@ -3058,118 +2780,6 @@ int16_t tw128b[128] __attribute__((aligned(32))) = {0,32767,-1608,32727,-3212,32 int16_t tw128c[128] __attribute__((aligned(32))) = {0,32767,1608,32727,3212,32609,4808,32412,6393,32137,7962,31785,9512,31356,11039,30851,12540,30272,14010,29621,15447,28897,16846,28105,18205,27244,19520,26318,20788,25329,22005,24278,23170,23169,24279,22004,25330,20787,26319,19519,27245,18204,28106,16845,28898,15446,29622,14009,30273,12539,30852,11038,31357,9511,31786,7961,32138,6392,32413,4807,32610,3211,32728,1607,32767,0,32728,-1608,32610,-3212,32413,-4808,32138,-6393,31786,-7962,31357,-9512,30852,-11039,30273,-12540,29622,-14010,28898,-15447,28106,-16846,27245,-18205,26319,-19520,25330,-20788,24279,-22005,23170,-23170,22005,-24279,20788,-25330,19520,-26319,18205,-27245,16846,-28106,15447,-28898,14010,-29622,12540,-30273,11039,-30852,9512,-31357,7962,-31786,6393,-32138,4808,-32413,3212,-32610,1608,-32728}; -#ifndef __AVX2__ -void dft128(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[64],*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[32],*tw128a_128p=(simd_q15_t *)tw128a,*tw128b_128p=(simd_q15_t *)tw128b,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - - transpose4_ooff(x64 ,xtmp,32); - transpose4_ooff(x64+2,xtmp+1,32); - transpose4_ooff(x64+4,xtmp+2,32); - transpose4_ooff(x64+6,xtmp+3,32); - transpose4_ooff(x64+8,xtmp+4,32); - transpose4_ooff(x64+10,xtmp+5,32); - transpose4_ooff(x64+12,xtmp+6,32); - transpose4_ooff(x64+14,xtmp+7,32); - transpose4_ooff(x64+16,xtmp+8,32); - transpose4_ooff(x64+18,xtmp+9,32); - transpose4_ooff(x64+20,xtmp+10,32); - transpose4_ooff(x64+22,xtmp+11,32); - transpose4_ooff(x64+24,xtmp+12,32); - transpose4_ooff(x64+26,xtmp+13,32); - transpose4_ooff(x64+28,xtmp+14,32); - transpose4_ooff(x64+30,xtmp+15,32); - transpose4_ooff(x64+32,xtmp+16,32); - transpose4_ooff(x64+34,xtmp+17,32); - transpose4_ooff(x64+36,xtmp+18,32); - transpose4_ooff(x64+38,xtmp+19,32); - transpose4_ooff(x64+40,xtmp+20,32); - transpose4_ooff(x64+42,xtmp+21,32); - transpose4_ooff(x64+44,xtmp+22,32); - transpose4_ooff(x64+46,xtmp+23,32); - transpose4_ooff(x64+48,xtmp+24,32); - transpose4_ooff(x64+50,xtmp+25,32); - transpose4_ooff(x64+52,xtmp+26,32); - transpose4_ooff(x64+54,xtmp+27,32); - transpose4_ooff(x64+56,xtmp+28,32); - transpose4_ooff(x64+58,xtmp+29,32); - transpose4_ooff(x64+60,xtmp+30,32); - transpose4_ooff(x64+62,xtmp+31,32); - - dft64((int16_t*)(xtmp),(int16_t*)ytmp,1); - dft64((int16_t*)(xtmp+32),(int16_t*)(ytmp+16),1); -#ifndef MR_MAIN - if (LOG_DUMPFLAG(DEBUG_DFT)) { - LOG_M("dft128a.m","dfta",ytmp,64,1,1); - LOG_M("dft128b.m","dftb",ytmp+16,64,1,1); - } -#endif - for (i=0; i<16; i++) { - bfly2_16(ytmpp,ytmpp+16, - y128p,y128p+16, - tw128a_128p, - tw128b_128p); - tw128a_128p++; - tw128b_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - y128[0] = mulhi_int16(y128[0],ONE_OVER_SQRT2_Q15_128); - y128[1] = mulhi_int16(y128[1],ONE_OVER_SQRT2_Q15_128); - y128[2] = mulhi_int16(y128[2],ONE_OVER_SQRT2_Q15_128); - y128[3] = mulhi_int16(y128[3],ONE_OVER_SQRT2_Q15_128); - y128[4] = mulhi_int16(y128[4],ONE_OVER_SQRT2_Q15_128); - y128[5] = mulhi_int16(y128[5],ONE_OVER_SQRT2_Q15_128); - y128[6] = mulhi_int16(y128[6],ONE_OVER_SQRT2_Q15_128); - y128[7] = mulhi_int16(y128[7],ONE_OVER_SQRT2_Q15_128); - y128[8] = mulhi_int16(y128[8],ONE_OVER_SQRT2_Q15_128); - y128[9] = mulhi_int16(y128[9],ONE_OVER_SQRT2_Q15_128); - y128[10] = mulhi_int16(y128[10],ONE_OVER_SQRT2_Q15_128); - y128[11] = mulhi_int16(y128[11],ONE_OVER_SQRT2_Q15_128); - y128[12] = mulhi_int16(y128[12],ONE_OVER_SQRT2_Q15_128); - y128[13] = mulhi_int16(y128[13],ONE_OVER_SQRT2_Q15_128); - y128[14] = mulhi_int16(y128[14],ONE_OVER_SQRT2_Q15_128); - y128[15] = mulhi_int16(y128[15],ONE_OVER_SQRT2_Q15_128); - y128[16] = mulhi_int16(y128[16],ONE_OVER_SQRT2_Q15_128); - y128[17] = mulhi_int16(y128[17],ONE_OVER_SQRT2_Q15_128); - y128[18] = mulhi_int16(y128[18],ONE_OVER_SQRT2_Q15_128); - y128[19] = mulhi_int16(y128[19],ONE_OVER_SQRT2_Q15_128); - y128[20] = mulhi_int16(y128[20],ONE_OVER_SQRT2_Q15_128); - y128[21] = mulhi_int16(y128[21],ONE_OVER_SQRT2_Q15_128); - y128[22] = mulhi_int16(y128[22],ONE_OVER_SQRT2_Q15_128); - y128[23] = mulhi_int16(y128[23],ONE_OVER_SQRT2_Q15_128); - y128[24] = mulhi_int16(y128[24],ONE_OVER_SQRT2_Q15_128); - y128[25] = mulhi_int16(y128[25],ONE_OVER_SQRT2_Q15_128); - y128[26] = mulhi_int16(y128[26],ONE_OVER_SQRT2_Q15_128); - y128[27] = mulhi_int16(y128[27],ONE_OVER_SQRT2_Q15_128); - y128[28] = mulhi_int16(y128[28],ONE_OVER_SQRT2_Q15_128); - y128[29] = mulhi_int16(y128[29],ONE_OVER_SQRT2_Q15_128); - y128[30] = mulhi_int16(y128[30],ONE_OVER_SQRT2_Q15_128); - y128[31] = mulhi_int16(y128[31],ONE_OVER_SQRT2_Q15_128); - - - } -#ifndef MR_MAIN - if (LOG_DUMPFLAG(DEBUG_DFT)) { - LOG_M("dft128out.m","dft128",y,128,1,1); - exit(-1); - } -#endif - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ void dft128(int16_t *x,int16_t *y,unsigned char scale) { @@ -3241,108 +2851,6 @@ void dft128(int16_t *x,int16_t *y,unsigned char scale) #endif } -#endif - -#ifndef __AVX2__ -void idft128(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[64],*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[32],*tw128_128p=(simd_q15_t *)tw128,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - - transpose4_ooff(x64 ,xtmp,32); - transpose4_ooff(x64+2,xtmp+1,32); - transpose4_ooff(x64+4,xtmp+2,32); - transpose4_ooff(x64+6,xtmp+3,32); - transpose4_ooff(x64+8,xtmp+4,32); - transpose4_ooff(x64+10,xtmp+5,32); - transpose4_ooff(x64+12,xtmp+6,32); - transpose4_ooff(x64+14,xtmp+7,32); - transpose4_ooff(x64+16,xtmp+8,32); - transpose4_ooff(x64+18,xtmp+9,32); - transpose4_ooff(x64+20,xtmp+10,32); - transpose4_ooff(x64+22,xtmp+11,32); - transpose4_ooff(x64+24,xtmp+12,32); - transpose4_ooff(x64+26,xtmp+13,32); - transpose4_ooff(x64+28,xtmp+14,32); - transpose4_ooff(x64+30,xtmp+15,32); - transpose4_ooff(x64+32,xtmp+16,32); - transpose4_ooff(x64+34,xtmp+17,32); - transpose4_ooff(x64+36,xtmp+18,32); - transpose4_ooff(x64+38,xtmp+19,32); - transpose4_ooff(x64+40,xtmp+20,32); - transpose4_ooff(x64+42,xtmp+21,32); - transpose4_ooff(x64+44,xtmp+22,32); - transpose4_ooff(x64+46,xtmp+23,32); - transpose4_ooff(x64+48,xtmp+24,32); - transpose4_ooff(x64+50,xtmp+25,32); - transpose4_ooff(x64+52,xtmp+26,32); - transpose4_ooff(x64+54,xtmp+27,32); - transpose4_ooff(x64+56,xtmp+28,32); - transpose4_ooff(x64+58,xtmp+29,32); - transpose4_ooff(x64+60,xtmp+30,32); - transpose4_ooff(x64+62,xtmp+31,32); - - idft64((int16_t*)(xtmp),(int16_t*)ytmp,1); - idft64((int16_t*)(xtmp+32),(int16_t*)(ytmp+16),1); - - - for (i=0; i<16; i++) { - ibfly2(ytmpp,ytmpp+16, - y128p,y128p+16, - tw128_128p); - tw128_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - y128[0] = mulhi_int16(y128[0],ONE_OVER_SQRT2_Q15_128); - y128[1] = mulhi_int16(y128[1],ONE_OVER_SQRT2_Q15_128); - y128[2] = mulhi_int16(y128[2],ONE_OVER_SQRT2_Q15_128); - y128[3] = mulhi_int16(y128[3],ONE_OVER_SQRT2_Q15_128); - y128[4] = mulhi_int16(y128[4],ONE_OVER_SQRT2_Q15_128); - y128[5] = mulhi_int16(y128[5],ONE_OVER_SQRT2_Q15_128); - y128[6] = mulhi_int16(y128[6],ONE_OVER_SQRT2_Q15_128); - y128[7] = mulhi_int16(y128[7],ONE_OVER_SQRT2_Q15_128); - y128[8] = mulhi_int16(y128[8],ONE_OVER_SQRT2_Q15_128); - y128[9] = mulhi_int16(y128[9],ONE_OVER_SQRT2_Q15_128); - y128[10] = mulhi_int16(y128[10],ONE_OVER_SQRT2_Q15_128); - y128[11] = mulhi_int16(y128[11],ONE_OVER_SQRT2_Q15_128); - y128[12] = mulhi_int16(y128[12],ONE_OVER_SQRT2_Q15_128); - y128[13] = mulhi_int16(y128[13],ONE_OVER_SQRT2_Q15_128); - y128[14] = mulhi_int16(y128[14],ONE_OVER_SQRT2_Q15_128); - y128[15] = mulhi_int16(y128[15],ONE_OVER_SQRT2_Q15_128); - y128[16] = mulhi_int16(y128[16],ONE_OVER_SQRT2_Q15_128); - y128[17] = mulhi_int16(y128[17],ONE_OVER_SQRT2_Q15_128); - y128[18] = mulhi_int16(y128[18],ONE_OVER_SQRT2_Q15_128); - y128[19] = mulhi_int16(y128[19],ONE_OVER_SQRT2_Q15_128); - y128[20] = mulhi_int16(y128[20],ONE_OVER_SQRT2_Q15_128); - y128[21] = mulhi_int16(y128[21],ONE_OVER_SQRT2_Q15_128); - y128[22] = mulhi_int16(y128[22],ONE_OVER_SQRT2_Q15_128); - y128[23] = mulhi_int16(y128[23],ONE_OVER_SQRT2_Q15_128); - y128[24] = mulhi_int16(y128[24],ONE_OVER_SQRT2_Q15_128); - y128[25] = mulhi_int16(y128[25],ONE_OVER_SQRT2_Q15_128); - y128[26] = mulhi_int16(y128[26],ONE_OVER_SQRT2_Q15_128); - y128[27] = mulhi_int16(y128[27],ONE_OVER_SQRT2_Q15_128); - y128[28] = mulhi_int16(y128[28],ONE_OVER_SQRT2_Q15_128); - y128[29] = mulhi_int16(y128[29],ONE_OVER_SQRT2_Q15_128); - y128[30] = mulhi_int16(y128[30],ONE_OVER_SQRT2_Q15_128); - y128[31] = mulhi_int16(y128[31],ONE_OVER_SQRT2_Q15_128); - - } - - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ void idft128(int16_t *x,int16_t *y,unsigned char scale) { @@ -3399,8 +2907,6 @@ void idft128(int16_t *x,int16_t *y,unsigned char scale) } -#endif - int16_t tw256[384] __attribute__((aligned(32))) = { 32767,0,32757,-805,32727,-1608,32678,-2411,32609,-3212,32520,-4012,32412,-4808,32284,-5602,32137,-6393,31970,-7180,31785,-7962,31580,-8740,31356,-9512,31113,-10279,30851,-11039,30571,-11793,30272,-12540,29955,-13279,29621,-14010,29268,-14733,28897,-15447,28510,-16151,28105,-16846,27683,-17531,27244,-18205,26789,-18868,26318,-19520,25831,-20160,25329,-20788,24811,-21403,24278,-22005,23731,-22595,23169,-23170,22594,-23732,22004,-24279,21402,-24812,20787,-25330,20159,-25832,19519,-26319,18867,-26790,18204,-27245,17530,-27684,16845,-28106,16150,-28511,15446,-28898,14732,-29269,14009,-29622,13278,-29956,12539,-30273,11792,-30572,11038,-30852,10278,-31114,9511,-31357,8739,-31581,7961,-31786,7179,-31971,6392,-32138,5601,-32285,4807,-32413,4011,-32521,3211,-32610,2410,-32679,1607,-32728,804,-32758, 32767,0,32727,-1608,32609,-3212,32412,-4808,32137,-6393,31785,-7962,31356,-9512,30851,-11039,30272,-12540,29621,-14010,28897,-15447,28105,-16846,27244,-18205,26318,-19520,25329,-20788,24278,-22005,23169,-23170,22004,-24279,20787,-25330,19519,-26319,18204,-27245,16845,-28106,15446,-28898,14009,-29622,12539,-30273,11038,-30852,9511,-31357,7961,-31786,6392,-32138,4807,-32413,3211,-32610,1607,-32728,0,-32767,-1608,-32728,-3212,-32610,-4808,-32413,-6393,-32138,-7962,-31786,-9512,-31357,-11039,-30852,-12540,-30273,-14010,-29622,-15447,-28898,-16846,-28106,-18205,-27245,-19520,-26319,-20788,-25330,-22005,-24279,-23170,-23170,-24279,-22005,-25330,-20788,-26319,-19520,-27245,-18205,-28106,-16846,-28898,-15447,-29622,-14010,-30273,-12540,-30852,-11039,-31357,-9512,-31786,-7962,-32138,-6393,-32413,-4808,-32610,-3212,-32728,-1608, 32767,0,32678,-2411,32412,-4808,31970,-7180,31356,-9512,30571,-11793,29621,-14010,28510,-16151,27244,-18205,25831,-20160,24278,-22005,22594,-23732,20787,-25330,18867,-26790,16845,-28106,14732,-29269,12539,-30273,10278,-31114,7961,-31786,5601,-32285,3211,-32610,804,-32758,-1608,-32728,-4012,-32521,-6393,-32138,-8740,-31581,-11039,-30852,-13279,-29956,-15447,-28898,-17531,-27684,-19520,-26319,-21403,-24812,-23170,-23170,-24812,-21403,-26319,-19520,-27684,-17531,-28898,-15447,-29956,-13279,-30852,-11039,-31581,-8740,-32138,-6393,-32521,-4012,-32728,-1608,-32758,804,-32610,3211,-32285,5601,-31786,7961,-31114,10278,-30273,12539,-29269,14732,-28106,16845,-26790,18867,-25330,20787,-23732,22594,-22005,24278,-20160,25831,-18205,27244,-16151,28510,-14010,29621,-11793,30571,-9512,31356,-7180,31970,-4808,32412,-2411,32678 @@ -3415,177 +2921,6 @@ int16_t tw256b[384] __attribute__((aligned(32))) = {0,32767,-805,32757,-1608,327 0,32767,-1608,32727,-3212,32609,-4808,32412,-6393,32137,-7962,31785,-9512,31356,-11039,30851,-12540,30272,-14010,29621,-15447,28897,-16846,28105,-18205,27244,-19520,26318,-20788,25329,-22005,24278,-23170,23169,-24279,22004,-25330,20787,-26319,19519,-27245,18204,-28106,16845,-28898,15446,-29622,14009,-30273,12539,-30852,11038,-31357,9511,-31786,7961,-32138,6392,-32413,4807,-32610,3211,-32728,1607,-32767,0,-32728,-1608,-32610,-3212,-32413,-4808,-32138,-6393,-31786,-7962,-31357,-9512,-30852,-11039,-30273,-12540,-29622,-14010,-28898,-15447,-28106,-16846,-27245,-18205,-26319,-19520,-25330,-20788,-24279,-22005,-23170,-23170,-22005,-24279,-20788,-25330,-19520,-26319,-18205,-27245,-16846,-28106,-15447,-28898,-14010,-29622,-12540,-30273,-11039,-30852,-9512,-31357,-7962,-31786,-6393,-32138,-4808,-32413,-3212,-32610,-1608,-32728, 0,32767,-2411,32678,-4808,32412,-7180,31970,-9512,31356,-11793,30571,-14010,29621,-16151,28510,-18205,27244,-20160,25831,-22005,24278,-23732,22594,-25330,20787,-26790,18867,-28106,16845,-29269,14732,-30273,12539,-31114,10278,-31786,7961,-32285,5601,-32610,3211,-32758,804,-32728,-1608,-32521,-4012,-32138,-6393,-31581,-8740,-30852,-11039,-29956,-13279,-28898,-15447,-27684,-17531,-26319,-19520,-24812,-21403,-23170,-23170,-21403,-24812,-19520,-26319,-17531,-27684,-15447,-28898,-13279,-29956,-11039,-30852,-8740,-31581,-6393,-32138,-4012,-32521,-1608,-32728,804,-32758,3211,-32610,5601,-32285,7961,-31786,10278,-31114,12539,-30273,14732,-29269,16845,-28106,18867,-26790,20787,-25330,22594,-23732,24278,-22005,25831,-20160,27244,-18205,28510,-16151,29621,-14010,30571,-11793,31356,-9512,31970,-7180,32412,-4808,32678,-2411 }; -#ifndef __AVX2__ -void dft256(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[64],ytmp[64],*tw256a_128p=(simd_q15_t *)tw256a,*tw256b_128p=(simd_q15_t *)tw256b,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - -#ifdef D256STATS - time_stats_t ts_t,ts_d,ts_b; - - reset_meas(&ts_t); - reset_meas(&ts_d); - reset_meas(&ts_b); - start_meas(&ts_t); -#endif - /* - for (i=0,j=0;i<64;i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,16); - } - */ - transpose16_ooff(x128+0,xtmp+0,16); - transpose16_ooff(x128+4,xtmp+1,16); - transpose16_ooff(x128+8,xtmp+2,16); - transpose16_ooff(x128+12,xtmp+3,16); - transpose16_ooff(x128+16,xtmp+4,16); - transpose16_ooff(x128+20,xtmp+5,16); - transpose16_ooff(x128+24,xtmp+6,16); - transpose16_ooff(x128+28,xtmp+7,16); - transpose16_ooff(x128+32,xtmp+8,16); - transpose16_ooff(x128+36,xtmp+9,16); - transpose16_ooff(x128+40,xtmp+10,16); - transpose16_ooff(x128+44,xtmp+11,16); - transpose16_ooff(x128+48,xtmp+12,16); - transpose16_ooff(x128+52,xtmp+13,16); - transpose16_ooff(x128+56,xtmp+14,16); - transpose16_ooff(x128+60,xtmp+15,16); - -#ifdef D256STATS - stop_meas(&ts_t); - start_meas(&ts_d); -#endif - - dft64((int16_t*)(xtmp),(int16_t*)(ytmp),1); - dft64((int16_t*)(xtmp+16),(int16_t*)(ytmp+16),1); - dft64((int16_t*)(xtmp+32),(int16_t*)(ytmp+32),1); - dft64((int16_t*)(xtmp+48),(int16_t*)(ytmp+48),1); - -#ifdef D256STATS - stop_meas(&ts_d); - start_meas(&ts_b); -#endif - - for (i=0; i<16; i+=4) { - bfly4_16(ytmpp,ytmpp+16,ytmpp+32,ytmpp+48, - y128p,y128p+16,y128p+32,y128p+48, - tw256a_128p,tw256a_128p+16,tw256a_128p+32, - tw256b_128p,tw256b_128p+16,tw256b_128p+32); - bfly4_16(ytmpp+1,ytmpp+17,ytmpp+33,ytmpp+49, - y128p+1,y128p+17,y128p+33,y128p+49, - tw256a_128p+1,tw256a_128p+17,tw256a_128p+33, - tw256b_128p+1,tw256b_128p+17,tw256b_128p+33); - bfly4_16(ytmpp+2,ytmpp+18,ytmpp+34,ytmpp+50, - y128p+2,y128p+18,y128p+34,y128p+50, - tw256a_128p+2,tw256a_128p+18,tw256a_128p+34, - tw256b_128p+2,tw256b_128p+18,tw256b_128p+34); - bfly4_16(ytmpp+3,ytmpp+19,ytmpp+35,ytmpp+51, - y128p+3,y128p+19,y128p+35,y128p+51, - tw256a_128p+3,tw256a_128p+19,tw256a_128p+35, - tw256b_128p+3,tw256b_128p+19,tw256b_128p+35); - tw256a_128p+=4; - tw256b_128p+=4; - y128p+=4; - ytmpp+=4; - } - -#ifdef D256STATS - stop_meas(&ts_b); - printf("t: %llu cycles, d: %llu cycles, b: %llu cycles\n",ts_t.diff,ts_d.diff,ts_b.diff); -#endif - - if (scale>0) { - - for (i=0; i<4; i++) { - y128[0] = shiftright_int16(y128[0],1); - y128[1] = shiftright_int16(y128[1],1); - y128[2] = shiftright_int16(y128[2],1); - y128[3] = shiftright_int16(y128[3],1); - y128[4] = shiftright_int16(y128[4],1); - y128[5] = shiftright_int16(y128[5],1); - y128[6] = shiftright_int16(y128[6],1); - y128[7] = shiftright_int16(y128[7],1); - y128[8] = shiftright_int16(y128[8],1); - y128[9] = shiftright_int16(y128[9],1); - y128[10] = shiftright_int16(y128[10],1); - y128[11] = shiftright_int16(y128[11],1); - y128[12] = shiftright_int16(y128[12],1); - y128[13] = shiftright_int16(y128[13],1); - y128[14] = shiftright_int16(y128[14],1); - y128[15] = shiftright_int16(y128[15],1); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - - - -void idft256(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[64],ytmp[64],*tw256_128p=(simd_q15_t *)tw256,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<64; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,16); - } - - - idft64((int16_t*)(xtmp),(int16_t*)(ytmp),1); - idft64((int16_t*)(xtmp+16),(int16_t*)(ytmp+16),1); - idft64((int16_t*)(xtmp+32),(int16_t*)(ytmp+32),1); - idft64((int16_t*)(xtmp+48),(int16_t*)(ytmp+48),1); - - for (i=0; i<16; i++) { - ibfly4(ytmpp,ytmpp+16,ytmpp+32,ytmpp+48, - y128p,y128p+16,y128p+32,y128p+48, - tw256_128p,tw256_128p+16,tw256_128p+32); - tw256_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<4; i++) { - y128[0] = shiftright_int16(y128[0],1); - y128[1] = shiftright_int16(y128[1],1); - y128[2] = shiftright_int16(y128[2],1); - y128[3] = shiftright_int16(y128[3],1); - y128[4] = shiftright_int16(y128[4],1); - y128[5] = shiftright_int16(y128[5],1); - y128[6] = shiftright_int16(y128[6],1); - y128[7] = shiftright_int16(y128[7],1); - y128[8] = shiftright_int16(y128[8],1); - y128[9] = shiftright_int16(y128[9],1); - y128[10] = shiftright_int16(y128[10],1); - y128[11] = shiftright_int16(y128[11],1); - y128[12] = shiftright_int16(y128[12],1); - y128[13] = shiftright_int16(y128[13],1); - y128[14] = shiftright_int16(y128[14],1); - y128[15] = shiftright_int16(y128[15],1); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - -#else //__AVX2__ - void dft256(int16_t *x,int16_t *y,unsigned char scale) { @@ -3763,7 +3098,6 @@ void idft256(int16_t *x,int16_t *y,unsigned char scale) } -#endif int16_t tw512[512] __attribute__((aligned(32))) = { 32767,0,32764,-403,32757,-805,32744,-1207,32727,-1608,32705,-2010,32678,-2411,32646,-2812,32609,-3212,32567,-3612,32520,-4012,32468,-4410,32412,-4808,32350,-5206,32284,-5602,32213,-5998,32137,-6393,32056,-6787,31970,-7180,31880,-7572,31785,-7962,31684,-8352,31580,-8740,31470,-9127,31356,-9512,31236,-9896,31113,-10279,30984,-10660,30851,-11039,30713,-11417,30571,-11793,30424,-12167,30272,-12540,30116,-12910,29955,-13279,29790,-13646,29621,-14010,29446,-14373,29268,-14733,29085,-15091,28897,-15447,28706,-15800,28510,-16151,28309,-16500,28105,-16846,27896,-17190,27683,-17531,27466,-17869,27244,-18205,27019,-18538,26789,-18868,26556,-19195,26318,-19520,26077,-19841,25831,-20160,25582,-20475,25329,-20788,25072,-21097,24811,-21403,24546,-21706,24278,-22005,24006,-22302,23731,-22595,23452,-22884,23169,-23170,22883,-23453,22594,-23732,22301,-24007,22004,-24279,21705,-24547,21402,-24812,21096,-25073,20787,-25330,20474,-25583,20159,-25832,19840,-26078,19519,-26319,19194,-26557,18867,-26790,18537,-27020,18204,-27245,17868,-27467,17530,-27684,17189,-27897,16845,-28106,16499,-28310,16150,-28511,15799,-28707,15446,-28898,15090,-29086,14732,-29269,14372,-29447,14009,-29622,13645,-29791,13278,-29956,12909,-30117,12539,-30273,12166,-30425,11792,-30572,11416,-30714,11038,-30852,10659,-30985,10278,-31114,9895,-31237,9511,-31357,9126,-31471,8739,-31581,8351,-31685,7961,-31786,7571,-31881,7179,-31971,6786,-32057,6392,-32138,5997,-32214,5601,-32285,5205,-32351,4807,-32413,4409,-32469,4011,-32521,3611,-32568,3211,-32610,2811,-32647,2410,-32679,2009,-32706,1607,-32728,1206,-32745,804,-32758,402,-32765,0,-32767,-403,-32765,-805,-32758,-1207,-32745,-1608,-32728,-2010,-32706,-2411,-32679,-2812,-32647,-3212,-32610,-3612,-32568,-4012,-32521,-4410,-32469,-4808,-32413,-5206,-32351,-5602,-32285,-5998,-32214,-6393,-32138,-6787,-32057,-7180,-31971,-7572,-31881,-7962,-31786,-8352,-31685,-8740,-31581,-9127,-31471,-9512,-31357,-9896,-31237,-10279,-31114,-10660,-30985,-11039,-30852,-11417,-30714,-11793,-30572,-12167,-30425,-12540,-30273,-12910,-30117,-13279,-29956,-13646,-29791,-14010,-29622,-14373,-29447,-14733,-29269,-15091,-29086,-15447,-28898,-15800,-28707,-16151,-28511,-16500,-28310,-16846,-28106,-17190,-27897,-17531,-27684,-17869,-27467,-18205,-27245,-18538,-27020,-18868,-26790,-19195,-26557,-19520,-26319,-19841,-26078,-20160,-25832,-20475,-25583,-20788,-25330,-21097,-25073,-21403,-24812,-21706,-24547,-22005,-24279,-22302,-24007,-22595,-23732,-22884,-23453,-23170,-23170,-23453,-22884,-23732,-22595,-24007,-22302,-24279,-22005,-24547,-21706,-24812,-21403,-25073,-21097,-25330,-20788,-25583,-20475,-25832,-20160,-26078,-19841,-26319,-19520,-26557,-19195,-26790,-18868,-27020,-18538,-27245,-18205,-27467,-17869,-27684,-17531,-27897,-17190,-28106,-16846,-28310,-16500,-28511,-16151,-28707,-15800,-28898,-15447,-29086,-15091,-29269,-14733,-29447,-14373,-29622,-14010,-29791,-13646,-29956,-13279,-30117,-12910,-30273,-12540,-30425,-12167,-30572,-11793,-30714,-11417,-30852,-11039,-30985,-10660,-31114,-10279,-31237,-9896,-31357,-9512,-31471,-9127,-31581,-8740,-31685,-8352,-31786,-7962,-31881,-7572,-31971,-7180,-32057,-6787,-32138,-6393,-32214,-5998,-32285,-5602,-32351,-5206,-32413,-4808,-32469,-4410,-32521,-4012,-32568,-3612,-32610,-3212,-32647,-2812,-32679,-2411,-32706,-2010,-32728,-1608,-32745,-1207,-32758,-805,-32765,-403 }; @@ -3782,219 +3116,6 @@ int16_t tw512c[512] __attribute__((aligned(32))) = { 0,32767,403,32764,805,32757,1207,32744,1608,32727,2010,32705,2411,32678,2812,32646,3212,32609,3612,32567,4012,32520,4410,32468,4808,32412,5206,32350,5602,32284,5998,32213,6393,32137,6787,32056,7180,31970,7572,31880,7962,31785,8352,31684,8740,31580,9127,31470,9512,31356,9896,31236,10279,31113,10660,30984,11039,30851,11417,30713,11793,30571,12167,30424,12540,30272,12910,30116,13279,29955,13646,29790,14010,29621,14373,29446,14733,29268,15091,29085,15447,28897,15800,28706,16151,28510,16500,28309,16846,28105,17190,27896,17531,27683,17869,27466,18205,27244,18538,27019,18868,26789,19195,26556,19520,26318,19841,26077,20160,25831,20475,25582,20788,25329,21097,25072,21403,24811,21706,24546,22005,24278,22302,24006,22595,23731,22884,23452,23170,23169,23453,22883,23732,22594,24007,22301,24279,22004,24547,21705,24812,21402,25073,21096,25330,20787,25583,20474,25832,20159,26078,19840,26319,19519,26557,19194,26790,18867,27020,18537,27245,18204,27467,17868,27684,17530,27897,17189,28106,16845,28310,16499,28511,16150,28707,15799,28898,15446,29086,15090,29269,14732,29447,14372,29622,14009,29791,13645,29956,13278,30117,12909,30273,12539,30425,12166,30572,11792,30714,11416,30852,11038,30985,10659,31114,10278,31237,9895,31357,9511,31471,9126,31581,8739,31685,8351,31786,7961,31881,7571,31971,7179,32057,6786,32138,6392,32214,5997,32285,5601,32351,5205,32413,4807,32469,4409,32521,4011,32568,3611,32610,3211,32647,2811,32679,2410,32706,2009,32728,1607,32745,1206,32758,804,32765,402,32767,0,32765,-403,32758,-805,32745,-1207,32728,-1608,32706,-2010,32679,-2411,32647,-2812,32610,-3212,32568,-3612,32521,-4012,32469,-4410,32413,-4808,32351,-5206,32285,-5602,32214,-5998,32138,-6393,32057,-6787,31971,-7180,31881,-7572,31786,-7962,31685,-8352,31581,-8740,31471,-9127,31357,-9512,31237,-9896,31114,-10279,30985,-10660,30852,-11039,30714,-11417,30572,-11793,30425,-12167,30273,-12540,30117,-12910,29956,-13279,29791,-13646,29622,-14010,29447,-14373,29269,-14733,29086,-15091,28898,-15447,28707,-15800,28511,-16151,28310,-16500,28106,-16846,27897,-17190,27684,-17531,27467,-17869,27245,-18205,27020,-18538,26790,-18868,26557,-19195,26319,-19520,26078,-19841,25832,-20160,25583,-20475,25330,-20788,25073,-21097,24812,-21403,24547,-21706,24279,-22005,24007,-22302,23732,-22595,23453,-22884,23170,-23170,22884,-23453,22595,-23732,22302,-24007,22005,-24279,21706,-24547,21403,-24812,21097,-25073,20788,-25330,20475,-25583,20160,-25832,19841,-26078,19520,-26319,19195,-26557,18868,-26790,18538,-27020,18205,-27245,17869,-27467,17531,-27684,17190,-27897,16846,-28106,16500,-28310,16151,-28511,15800,-28707,15447,-28898,15091,-29086,14733,-29269,14373,-29447,14010,-29622,13646,-29791,13279,-29956,12910,-30117,12540,-30273,12167,-30425,11793,-30572,11417,-30714,11039,-30852,10660,-30985,10279,-31114,9896,-31237,9512,-31357,9127,-31471,8740,-31581,8352,-31685,7962,-31786,7572,-31881,7180,-31971,6787,-32057,6393,-32138,5998,-32214,5602,-32285,5206,-32351,4808,-32413,4410,-32469,4012,-32521,3612,-32568,3212,-32610,2812,-32647,2411,-32679,2010,-32706,1608,-32728,1207,-32745,805,-32758,403,-32765 }; -#ifndef __AVX2__ -void dft512(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[256],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[128],*tw512a_128p=(simd_q15_t *)tw512a,*tw512b_128p=(simd_q15_t *)tw512b,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<4; i++) { - transpose4_ooff(x64 ,xtmpp,128); - transpose4_ooff(x64+2,xtmpp+1,128); - transpose4_ooff(x64+4,xtmpp+2,128); - transpose4_ooff(x64+6,xtmpp+3,128); - transpose4_ooff(x64+8,xtmpp+4,128); - transpose4_ooff(x64+10,xtmpp+5,128); - transpose4_ooff(x64+12,xtmpp+6,128); - transpose4_ooff(x64+14,xtmpp+7,128); - transpose4_ooff(x64+16,xtmpp+8,128); - transpose4_ooff(x64+18,xtmpp+9,128); - transpose4_ooff(x64+20,xtmpp+10,128); - transpose4_ooff(x64+22,xtmpp+11,128); - transpose4_ooff(x64+24,xtmpp+12,128); - transpose4_ooff(x64+26,xtmpp+13,128); - transpose4_ooff(x64+28,xtmpp+14,128); - transpose4_ooff(x64+30,xtmpp+15,128); - transpose4_ooff(x64+32,xtmpp+16,128); - transpose4_ooff(x64+34,xtmpp+17,128); - transpose4_ooff(x64+36,xtmpp+18,128); - transpose4_ooff(x64+38,xtmpp+19,128); - transpose4_ooff(x64+40,xtmpp+20,128); - transpose4_ooff(x64+42,xtmpp+21,128); - transpose4_ooff(x64+44,xtmpp+22,128); - transpose4_ooff(x64+46,xtmpp+23,128); - transpose4_ooff(x64+48,xtmpp+24,128); - transpose4_ooff(x64+50,xtmpp+25,128); - transpose4_ooff(x64+52,xtmpp+26,128); - transpose4_ooff(x64+54,xtmpp+27,128); - transpose4_ooff(x64+56,xtmpp+28,128); - transpose4_ooff(x64+58,xtmpp+29,128); - transpose4_ooff(x64+60,xtmpp+30,128); - transpose4_ooff(x64+62,xtmpp+31,128); - x64+=64; - xtmpp+=32; - } - - dft256((int16_t*)(xtmp),(int16_t*)ytmp,1); - dft256((int16_t*)(xtmp+128),(int16_t*)(ytmp+64),1); - - - for (i=0; i<64; i+=8) { - bfly2_16(ytmpp,ytmpp+64, - y128p,y128p+64, - tw512a_128p, - tw512b_128p); - bfly2_16(ytmpp+1,ytmpp+65, - y128p+1,y128p+65, - tw512a_128p+1, - tw512b_128p+1); - bfly2_16(ytmpp+2,ytmpp+66, - y128p+2,y128p+66, - tw512a_128p+2, - tw512b_128p+2); - bfly2_16(ytmpp+3,ytmpp+67, - y128p+3,y128p+67, - tw512a_128p+3, - tw512b_128p+3); - bfly2_16(ytmpp+4,ytmpp+68, - y128p+4,y128p+68, - tw512a_128p+4, - tw512b_128p+4); - bfly2_16(ytmpp+5,ytmpp+69, - y128p+5,y128p+69, - tw512a_128p+5, - tw512b_128p+5); - bfly2_16(ytmpp+6,ytmpp+70, - y128p+6,y128p+70, - tw512a_128p+6, - tw512b_128p+6); - bfly2_16(ytmpp+7,ytmpp+71, - y128p+7,y128p+71, - tw512a_128p+7, - tw512b_128p+7); - tw512a_128p+=8; - tw512b_128p+=8; - y128p+=8; - ytmpp+=8; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<8; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -void idft512(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[256],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[128],*tw512_128p=(simd_q15_t *)tw512,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<4; i++) { - transpose4_ooff(x64 ,xtmpp,128); - transpose4_ooff(x64+2,xtmpp+1,128); - transpose4_ooff(x64+4,xtmpp+2,128); - transpose4_ooff(x64+6,xtmpp+3,128); - transpose4_ooff(x64+8,xtmpp+4,128); - transpose4_ooff(x64+10,xtmpp+5,128); - transpose4_ooff(x64+12,xtmpp+6,128); - transpose4_ooff(x64+14,xtmpp+7,128); - transpose4_ooff(x64+16,xtmpp+8,128); - transpose4_ooff(x64+18,xtmpp+9,128); - transpose4_ooff(x64+20,xtmpp+10,128); - transpose4_ooff(x64+22,xtmpp+11,128); - transpose4_ooff(x64+24,xtmpp+12,128); - transpose4_ooff(x64+26,xtmpp+13,128); - transpose4_ooff(x64+28,xtmpp+14,128); - transpose4_ooff(x64+30,xtmpp+15,128); - transpose4_ooff(x64+32,xtmpp+16,128); - transpose4_ooff(x64+34,xtmpp+17,128); - transpose4_ooff(x64+36,xtmpp+18,128); - transpose4_ooff(x64+38,xtmpp+19,128); - transpose4_ooff(x64+40,xtmpp+20,128); - transpose4_ooff(x64+42,xtmpp+21,128); - transpose4_ooff(x64+44,xtmpp+22,128); - transpose4_ooff(x64+46,xtmpp+23,128); - transpose4_ooff(x64+48,xtmpp+24,128); - transpose4_ooff(x64+50,xtmpp+25,128); - transpose4_ooff(x64+52,xtmpp+26,128); - transpose4_ooff(x64+54,xtmpp+27,128); - transpose4_ooff(x64+56,xtmpp+28,128); - transpose4_ooff(x64+58,xtmpp+29,128); - transpose4_ooff(x64+60,xtmpp+30,128); - transpose4_ooff(x64+62,xtmpp+31,128); - x64+=64; - xtmpp+=32; - } - - idft256((int16_t*)(xtmp),(int16_t*)ytmp,1); - idft256((int16_t*)(xtmp+128),(int16_t*)(ytmp+64),1); - - - for (i=0; i<64; i++) { - ibfly2(ytmpp,ytmpp+64, - y128p,y128p+64, - tw512_128p); - tw512_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<8; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -#else //__AVX2__ - void dft512(int16_t *x,int16_t *y,unsigned char scale) { @@ -4159,124 +3280,8 @@ void idft512(int16_t *x,int16_t *y,unsigned char scale) } -#endif - int16_t tw1024[1536] __attribute__((aligned(32))); -#ifndef __AVX2__ -void dft1024(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[256],ytmp[256],*tw1024_128p=(simd_q15_t *)tw1024,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<256; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,64); - } - - - dft256((int16_t*)(xtmp),(int16_t*)(ytmp),1); - dft256((int16_t*)(xtmp+64),(int16_t*)(ytmp+64),1); - dft256((int16_t*)(xtmp+128),(int16_t*)(ytmp+128),1); - dft256((int16_t*)(xtmp+192),(int16_t*)(ytmp+192),1); - - for (i=0; i<64; i++) { - bfly4(ytmpp,ytmpp+64,ytmpp+128,ytmpp+192, - y128p,y128p+64,y128p+128,y128p+192, - tw1024_128p,tw1024_128p+64,tw1024_128p+128); - tw1024_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<16; i++) { - y128[0] = shiftright_int16(y128[0],1); - y128[1] = shiftright_int16(y128[1],1); - y128[2] = shiftright_int16(y128[2],1); - y128[3] = shiftright_int16(y128[3],1); - y128[4] = shiftright_int16(y128[4],1); - y128[5] = shiftright_int16(y128[5],1); - y128[6] = shiftright_int16(y128[6],1); - y128[7] = shiftright_int16(y128[7],1); - y128[8] = shiftright_int16(y128[8],1); - y128[9] = shiftright_int16(y128[9],1); - y128[10] = shiftright_int16(y128[10],1); - y128[11] = shiftright_int16(y128[11],1); - y128[12] = shiftright_int16(y128[12],1); - y128[13] = shiftright_int16(y128[13],1); - y128[14] = shiftright_int16(y128[14],1); - y128[15] = shiftright_int16(y128[15],1); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - -void idft1024(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[256],ytmp[256],*tw1024_128p=(simd_q15_t *)tw1024,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<256; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,64); - } - - - idft256((int16_t*)(xtmp),(int16_t*)(ytmp),1); - idft256((int16_t*)(xtmp+64),(int16_t*)(ytmp+64),1); - idft256((int16_t*)(xtmp+128),(int16_t*)(ytmp+128),1); - idft256((int16_t*)(xtmp+192),(int16_t*)(ytmp+192),1); - - for (i=0; i<64; i++) { - ibfly4(ytmpp,ytmpp+64,ytmpp+128,ytmpp+192, - y128p,y128p+64,y128p+128,y128p+192, - tw1024_128p,tw1024_128p+64,tw1024_128p+128); - tw1024_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<16; i++) { - y128[0] = shiftright_int16(y128[0],1); - y128[1] = shiftright_int16(y128[1],1); - y128[2] = shiftright_int16(y128[2],1); - y128[3] = shiftright_int16(y128[3],1); - y128[4] = shiftright_int16(y128[4],1); - y128[5] = shiftright_int16(y128[5],1); - y128[6] = shiftright_int16(y128[6],1); - y128[7] = shiftright_int16(y128[7],1); - y128[8] = shiftright_int16(y128[8],1); - y128[9] = shiftright_int16(y128[9],1); - y128[10] = shiftright_int16(y128[10],1); - y128[11] = shiftright_int16(y128[11],1); - y128[12] = shiftright_int16(y128[12],1); - y128[13] = shiftright_int16(y128[13],1); - y128[14] = shiftright_int16(y128[14],1); - y128[15] = shiftright_int16(y128[15],1); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - -#else //__AVX2__ void dft1024(int16_t *x,int16_t *y,unsigned char scale) { @@ -4388,194 +3393,9 @@ void idft1024(int16_t *x,int16_t *y,unsigned char scale) _m_empty(); } -#endif int16_t tw2048[2048] __attribute__((aligned(32))); -#ifndef __AVX2__ -void dft2048(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[1024],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[512],*tw2048_128p=(simd_q15_t *)tw2048,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<16; i++) { - transpose4_ooff(x64 ,xtmpp,512); - transpose4_ooff(x64+2,xtmpp+1,512); - transpose4_ooff(x64+4,xtmpp+2,512); - transpose4_ooff(x64+6,xtmpp+3,512); - transpose4_ooff(x64+8,xtmpp+4,512); - transpose4_ooff(x64+10,xtmpp+5,512); - transpose4_ooff(x64+12,xtmpp+6,512); - transpose4_ooff(x64+14,xtmpp+7,512); - transpose4_ooff(x64+16,xtmpp+8,512); - transpose4_ooff(x64+18,xtmpp+9,512); - transpose4_ooff(x64+20,xtmpp+10,512); - transpose4_ooff(x64+22,xtmpp+11,512); - transpose4_ooff(x64+24,xtmpp+12,512); - transpose4_ooff(x64+26,xtmpp+13,512); - transpose4_ooff(x64+28,xtmpp+14,512); - transpose4_ooff(x64+30,xtmpp+15,512); - transpose4_ooff(x64+32,xtmpp+16,512); - transpose4_ooff(x64+34,xtmpp+17,512); - transpose4_ooff(x64+36,xtmpp+18,512); - transpose4_ooff(x64+38,xtmpp+19,512); - transpose4_ooff(x64+40,xtmpp+20,512); - transpose4_ooff(x64+42,xtmpp+21,512); - transpose4_ooff(x64+44,xtmpp+22,512); - transpose4_ooff(x64+46,xtmpp+23,512); - transpose4_ooff(x64+48,xtmpp+24,512); - transpose4_ooff(x64+50,xtmpp+25,512); - transpose4_ooff(x64+52,xtmpp+26,512); - transpose4_ooff(x64+54,xtmpp+27,512); - transpose4_ooff(x64+56,xtmpp+28,512); - transpose4_ooff(x64+58,xtmpp+29,512); - transpose4_ooff(x64+60,xtmpp+30,512); - transpose4_ooff(x64+62,xtmpp+31,512); - x64+=64; - xtmpp+=32; - } - - dft1024((int16_t*)(xtmp),(int16_t*)ytmp,1); - dft1024((int16_t*)(xtmp+512),(int16_t*)(ytmp+256),1); - - - for (i=0; i<256; i++) { - bfly2(ytmpp,ytmpp+256, - y128p,y128p+256, - tw2048_128p); - tw2048_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<32; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - - -} - -void idft2048(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[1024],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[512],*tw2048_128p=(simd_q15_t *)tw2048,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<16; i++) { - transpose4_ooff(x64 ,xtmpp,512); - transpose4_ooff(x64+2,xtmpp+1,512); - transpose4_ooff(x64+4,xtmpp+2,512); - transpose4_ooff(x64+6,xtmpp+3,512); - transpose4_ooff(x64+8,xtmpp+4,512); - transpose4_ooff(x64+10,xtmpp+5,512); - transpose4_ooff(x64+12,xtmpp+6,512); - transpose4_ooff(x64+14,xtmpp+7,512); - transpose4_ooff(x64+16,xtmpp+8,512); - transpose4_ooff(x64+18,xtmpp+9,512); - transpose4_ooff(x64+20,xtmpp+10,512); - transpose4_ooff(x64+22,xtmpp+11,512); - transpose4_ooff(x64+24,xtmpp+12,512); - transpose4_ooff(x64+26,xtmpp+13,512); - transpose4_ooff(x64+28,xtmpp+14,512); - transpose4_ooff(x64+30,xtmpp+15,512); - transpose4_ooff(x64+32,xtmpp+16,512); - transpose4_ooff(x64+34,xtmpp+17,512); - transpose4_ooff(x64+36,xtmpp+18,512); - transpose4_ooff(x64+38,xtmpp+19,512); - transpose4_ooff(x64+40,xtmpp+20,512); - transpose4_ooff(x64+42,xtmpp+21,512); - transpose4_ooff(x64+44,xtmpp+22,512); - transpose4_ooff(x64+46,xtmpp+23,512); - transpose4_ooff(x64+48,xtmpp+24,512); - transpose4_ooff(x64+50,xtmpp+25,512); - transpose4_ooff(x64+52,xtmpp+26,512); - transpose4_ooff(x64+54,xtmpp+27,512); - transpose4_ooff(x64+56,xtmpp+28,512); - transpose4_ooff(x64+58,xtmpp+29,512); - transpose4_ooff(x64+60,xtmpp+30,512); - transpose4_ooff(x64+62,xtmpp+31,512); - x64+=64; - xtmpp+=32; - } - - idft1024((int16_t*)(xtmp),(int16_t*)ytmp,1); - idft1024((int16_t*)(xtmp+512),(int16_t*)(ytmp+256),1); - - - for (i=0; i<256; i++) { - ibfly2(ytmpp,ytmpp+256, - y128p,y128p+256, - tw2048_128p); - tw2048_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<32; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ - void dft2048(int16_t *x,int16_t *y,unsigned char scale) { @@ -4757,128 +3577,8 @@ void idft2048(int16_t *x,int16_t *y,unsigned char scale) } -#endif - - - int16_t tw4096[3*2*1024]; -#ifndef __AVX2__ -void dft4096(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[1024],ytmp[1024],*tw4096_128p=(simd_q15_t *)tw4096,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<1024; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,256); - } - - - dft1024((int16_t*)(xtmp),(int16_t*)(ytmp),1); - dft1024((int16_t*)(xtmp+256),(int16_t*)(ytmp+256),1); - dft1024((int16_t*)(xtmp+512),(int16_t*)(ytmp+512),1); - dft1024((int16_t*)(xtmp+768),(int16_t*)(ytmp+768),1); - - for (i=0; i<256; i++) { - bfly4(ytmpp,ytmpp+256,ytmpp+512,ytmpp+768, - y128p,y128p+256,y128p+512,y128p+768, - tw4096_128p,tw4096_128p+256,tw4096_128p+512); - tw4096_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<64; i++) { - y128[0] = shiftright_int16(y128[0],1); - y128[1] = shiftright_int16(y128[1],1); - y128[2] = shiftright_int16(y128[2],1); - y128[3] = shiftright_int16(y128[3],1); - y128[4] = shiftright_int16(y128[4],1); - y128[5] = shiftright_int16(y128[5],1); - y128[6] = shiftright_int16(y128[6],1); - y128[7] = shiftright_int16(y128[7],1); - y128[8] = shiftright_int16(y128[8],1); - y128[9] = shiftright_int16(y128[9],1); - y128[10] = shiftright_int16(y128[10],1); - y128[11] = shiftright_int16(y128[11],1); - y128[12] = shiftright_int16(y128[12],1); - y128[13] = shiftright_int16(y128[13],1); - y128[14] = shiftright_int16(y128[14],1); - y128[15] = shiftright_int16(y128[15],1); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - - - -void idft4096(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[1024],ytmp[1024],*tw4096_128p=(simd_q15_t *)tw4096,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<1024; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,256); - } - - - idft1024((int16_t*)(xtmp),(int16_t*)(ytmp),1); - idft1024((int16_t*)(xtmp+256),(int16_t*)(ytmp+256),1); - idft1024((int16_t*)(xtmp+512),(int16_t*)(ytmp+512),1); - idft1024((int16_t*)(xtmp+768),(int16_t*)(ytmp+768),1); - - for (i=0; i<256; i++) { - ibfly4(ytmpp,ytmpp+256,ytmpp+512,ytmpp+768, - y128p,y128p+256,y128p+512,y128p+768, - tw4096_128p,tw4096_128p+256,tw4096_128p+512); - tw4096_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<64; i++) { - y128[0] = shiftright_int16(y128[0],scale); - y128[1] = shiftright_int16(y128[1],scale); - y128[2] = shiftright_int16(y128[2],scale); - y128[3] = shiftright_int16(y128[3],scale); - y128[4] = shiftright_int16(y128[4],scale); - y128[5] = shiftright_int16(y128[5],scale); - y128[6] = shiftright_int16(y128[6],scale); - y128[7] = shiftright_int16(y128[7],scale); - y128[8] = shiftright_int16(y128[8],scale); - y128[9] = shiftright_int16(y128[9],scale); - y128[10] = shiftright_int16(y128[10],scale); - y128[11] = shiftright_int16(y128[11],scale); - y128[12] = shiftright_int16(y128[12],scale); - y128[13] = shiftright_int16(y128[13],scale); - y128[14] = shiftright_int16(y128[14],scale); - y128[15] = shiftright_int16(y128[15],scale); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - -#else //__AVX2__ void dft4096(int16_t *x,int16_t *y,unsigned char scale) { @@ -4991,193 +3691,8 @@ void idft4096(int16_t *x,int16_t *y,unsigned char scale) } -#endif //__AVX2__ - - int16_t tw8192[2*4096] __attribute__((aligned(32))); -#ifndef __AVX2__ -void dft8192(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[4096],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[1024],*tw8192_128p=(simd_q15_t *)tw8192,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<64; i++) { - transpose4_ooff(x64 ,xtmpp,2048); - transpose4_ooff(x64+2,xtmpp+1,2048); - transpose4_ooff(x64+4,xtmpp+2,2048); - transpose4_ooff(x64+6,xtmpp+3,2048); - transpose4_ooff(x64+8,xtmpp+4,2048); - transpose4_ooff(x64+10,xtmpp+5,2048); - transpose4_ooff(x64+12,xtmpp+6,2048); - transpose4_ooff(x64+14,xtmpp+7,2048); - transpose4_ooff(x64+16,xtmpp+8,2048); - transpose4_ooff(x64+18,xtmpp+9,2048); - transpose4_ooff(x64+20,xtmpp+10,2048); - transpose4_ooff(x64+22,xtmpp+11,2048); - transpose4_ooff(x64+24,xtmpp+12,2048); - transpose4_ooff(x64+26,xtmpp+13,2048); - transpose4_ooff(x64+28,xtmpp+14,2048); - transpose4_ooff(x64+30,xtmpp+15,2048); - transpose4_ooff(x64+32,xtmpp+16,2048); - transpose4_ooff(x64+34,xtmpp+17,2048); - transpose4_ooff(x64+36,xtmpp+18,2048); - transpose4_ooff(x64+38,xtmpp+19,2048); - transpose4_ooff(x64+40,xtmpp+20,2048); - transpose4_ooff(x64+42,xtmpp+21,2048); - transpose4_ooff(x64+44,xtmpp+22,2048); - transpose4_ooff(x64+46,xtmpp+23,2048); - transpose4_ooff(x64+48,xtmpp+24,2048); - transpose4_ooff(x64+50,xtmpp+25,2048); - transpose4_ooff(x64+52,xtmpp+26,2048); - transpose4_ooff(x64+54,xtmpp+27,2048); - transpose4_ooff(x64+56,xtmpp+28,2048); - transpose4_ooff(x64+58,xtmpp+29,2048); - transpose4_ooff(x64+60,xtmpp+30,2048); - transpose4_ooff(x64+62,xtmpp+31,2048); - x64+=64; - xtmpp+=32; - } - - dft4096((int16_t*)(xtmp),(int16_t*)ytmp,1); - dft4096((int16_t*)(xtmp+2048),(int16_t*)(ytmp+1024),1); - - - for (i=0; i<1024; i++) { - bfly2(ytmpp,ytmpp+1024, - y128p,y128p+1024, - tw8192_128p); - tw8192_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<128; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -void idft8192(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[4096],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[2048],*tw8192_128p=(simd_q15_t *)tw8192,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<64; i++) { - transpose4_ooff(x64 ,xtmpp,2048); - transpose4_ooff(x64+2,xtmpp+1,2048); - transpose4_ooff(x64+4,xtmpp+2,2048); - transpose4_ooff(x64+6,xtmpp+3,2048); - transpose4_ooff(x64+8,xtmpp+4,2048); - transpose4_ooff(x64+10,xtmpp+5,2048); - transpose4_ooff(x64+12,xtmpp+6,2048); - transpose4_ooff(x64+14,xtmpp+7,2048); - transpose4_ooff(x64+16,xtmpp+8,2048); - transpose4_ooff(x64+18,xtmpp+9,2048); - transpose4_ooff(x64+20,xtmpp+10,2048); - transpose4_ooff(x64+22,xtmpp+11,2048); - transpose4_ooff(x64+24,xtmpp+12,2048); - transpose4_ooff(x64+26,xtmpp+13,2048); - transpose4_ooff(x64+28,xtmpp+14,2048); - transpose4_ooff(x64+30,xtmpp+15,2048); - transpose4_ooff(x64+32,xtmpp+16,2048); - transpose4_ooff(x64+34,xtmpp+17,2048); - transpose4_ooff(x64+36,xtmpp+18,2048); - transpose4_ooff(x64+38,xtmpp+19,2048); - transpose4_ooff(x64+40,xtmpp+20,2048); - transpose4_ooff(x64+42,xtmpp+21,2048); - transpose4_ooff(x64+44,xtmpp+22,2048); - transpose4_ooff(x64+46,xtmpp+23,2048); - transpose4_ooff(x64+48,xtmpp+24,2048); - transpose4_ooff(x64+50,xtmpp+25,2048); - transpose4_ooff(x64+52,xtmpp+26,2048); - transpose4_ooff(x64+54,xtmpp+27,2048); - transpose4_ooff(x64+56,xtmpp+28,2048); - transpose4_ooff(x64+58,xtmpp+29,2048); - transpose4_ooff(x64+60,xtmpp+30,2048); - transpose4_ooff(x64+62,xtmpp+31,2048); - x64+=64; - xtmpp+=32; - } - - idft4096((int16_t*)(xtmp),(int16_t*)ytmp,1); - idft4096((int16_t*)(xtmp+2048),(int16_t*)(ytmp+1024),1); - - - for (i=0; i<1024; i++) { - ibfly2(ytmpp,ytmpp+1024, - y128p,y128p+1024, - tw8192_128p); - tw8192_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<128; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ void dft8192(int16_t *x,int16_t *y,unsigned char scale) { @@ -5359,127 +3874,8 @@ void idft8192(int16_t *x,int16_t *y,unsigned char scale) } - -#endif - int16_t tw16384[3*2*4096]; -#ifndef __AVX2__ -void dft16384(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[4096],ytmp[4096],*tw16384_128p=(simd_q15_t *)tw16384,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<4096; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,1024); - } - - - dft4096((int16_t*)(xtmp),(int16_t*)(ytmp),1); - dft4096((int16_t*)(xtmp+1024),(int16_t*)(ytmp+1024),1); - dft4096((int16_t*)(xtmp+2048),(int16_t*)(ytmp+2048),1); - dft4096((int16_t*)(xtmp+3072),(int16_t*)(ytmp+3072),1); - - for (i=0; i<1024; i++) { - bfly4(ytmpp,ytmpp+1024,ytmpp+2048,ytmpp+3072, - y128p,y128p+1024,y128p+2048,y128p+3072, - tw16384_128p,tw16384_128p+1024,tw16384_128p+2048); - tw16384_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<256; i++) { - y128[0] = shiftright_int16(y128[0],1); - y128[1] = shiftright_int16(y128[1],1); - y128[2] = shiftright_int16(y128[2],1); - y128[3] = shiftright_int16(y128[3],1); - y128[4] = shiftright_int16(y128[4],1); - y128[5] = shiftright_int16(y128[5],1); - y128[6] = shiftright_int16(y128[6],1); - y128[7] = shiftright_int16(y128[7],1); - y128[8] = shiftright_int16(y128[8],1); - y128[9] = shiftright_int16(y128[9],1); - y128[10] = shiftright_int16(y128[10],1); - y128[11] = shiftright_int16(y128[11],1); - y128[12] = shiftright_int16(y128[12],1); - y128[13] = shiftright_int16(y128[13],1); - y128[14] = shiftright_int16(y128[14],1); - y128[15] = shiftright_int16(y128[15],1); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - - - -void idft16384(int16_t *x,int16_t *y,unsigned char scale) -{ - - simd_q15_t xtmp[4096],ytmp[4096],*tw16384_128p=(simd_q15_t *)tw16384,*x128=(simd_q15_t *)x,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i,j; - - for (i=0,j=0; i<4096; i+=4,j++) { - transpose16_ooff(x128+i,xtmp+j,1024); - } - - - idft4096((int16_t*)(xtmp),(int16_t*)(ytmp),1); - idft4096((int16_t*)(xtmp+1024),(int16_t*)(ytmp+1024),1); - idft4096((int16_t*)(xtmp+2048),(int16_t*)(ytmp+2048),1); - idft4096((int16_t*)(xtmp+3072),(int16_t*)(ytmp+3072),1); - - for (i=0; i<1024; i++) { - ibfly4(ytmpp,ytmpp+1024,ytmpp+2048,ytmpp+3072, - y128p,y128p+1024,y128p+2048,y128p+3072, - tw16384_128p,tw16384_128p+1024,tw16384_128p+2048); - tw16384_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - - for (i=0; i<256; i++) { - y128[0] = shiftright_int16(y128[0],scale); - y128[1] = shiftright_int16(y128[1],scale); - y128[2] = shiftright_int16(y128[2],scale); - y128[3] = shiftright_int16(y128[3],scale); - y128[4] = shiftright_int16(y128[4],scale); - y128[5] = shiftright_int16(y128[5],scale); - y128[6] = shiftright_int16(y128[6],scale); - y128[7] = shiftright_int16(y128[7],scale); - y128[8] = shiftright_int16(y128[8],scale); - y128[9] = shiftright_int16(y128[9],scale); - y128[10] = shiftright_int16(y128[10],scale); - y128[11] = shiftright_int16(y128[11],scale); - y128[12] = shiftright_int16(y128[12],scale); - y128[13] = shiftright_int16(y128[13],scale); - y128[14] = shiftright_int16(y128[14],scale); - y128[15] = shiftright_int16(y128[15],scale); - - y128+=16; - } - - } - - _mm_empty(); - _m_empty(); - -} - -#else //__AVX2__ void dft16384(int16_t *x,int16_t *y,unsigned char scale) { @@ -5592,192 +3988,8 @@ void idft16384(int16_t *x,int16_t *y,unsigned char scale) } -#endif //__AVX2__ - int16_t tw32768[2*16384] __attribute__((aligned(32))); -#ifndef __AVX2__ -void dft32768(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[16384],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[8192],*tw32768_128p=(simd_q15_t *)tw32768,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<256; i++) { - transpose4_ooff(x64 ,xtmpp,8192); - transpose4_ooff(x64+2,xtmpp+1,8192); - transpose4_ooff(x64+4,xtmpp+2,8192); - transpose4_ooff(x64+6,xtmpp+3,8192); - transpose4_ooff(x64+8,xtmpp+4,8192); - transpose4_ooff(x64+10,xtmpp+5,8192); - transpose4_ooff(x64+12,xtmpp+6,8192); - transpose4_ooff(x64+14,xtmpp+7,8192); - transpose4_ooff(x64+16,xtmpp+8,8192); - transpose4_ooff(x64+18,xtmpp+9,8192); - transpose4_ooff(x64+20,xtmpp+10,8192); - transpose4_ooff(x64+22,xtmpp+11,8192); - transpose4_ooff(x64+24,xtmpp+12,8192); - transpose4_ooff(x64+26,xtmpp+13,8192); - transpose4_ooff(x64+28,xtmpp+14,8192); - transpose4_ooff(x64+30,xtmpp+15,8192); - transpose4_ooff(x64+32,xtmpp+16,8192); - transpose4_ooff(x64+34,xtmpp+17,8192); - transpose4_ooff(x64+36,xtmpp+18,8192); - transpose4_ooff(x64+38,xtmpp+19,8192); - transpose4_ooff(x64+40,xtmpp+20,8192); - transpose4_ooff(x64+42,xtmpp+21,8192); - transpose4_ooff(x64+44,xtmpp+22,8192); - transpose4_ooff(x64+46,xtmpp+23,8192); - transpose4_ooff(x64+48,xtmpp+24,8192); - transpose4_ooff(x64+50,xtmpp+25,8192); - transpose4_ooff(x64+52,xtmpp+26,8192); - transpose4_ooff(x64+54,xtmpp+27,8192); - transpose4_ooff(x64+56,xtmpp+28,8192); - transpose4_ooff(x64+58,xtmpp+29,8192); - transpose4_ooff(x64+60,xtmpp+30,8192); - transpose4_ooff(x64+62,xtmpp+31,8192); - x64+=64; - xtmpp+=32; - } - - dft16384((int16_t*)(xtmp),(int16_t*)ytmp,1); - dft16384((int16_t*)(xtmp+8192),(int16_t*)(ytmp+4096),1); - - - for (i=0; i<4096; i++) { - bfly2(ytmpp,ytmpp+4096, - y128p,y128p+4096, - tw32768_128p); - tw32768_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<512; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -void idft32768(int16_t *x,int16_t *y,unsigned char scale) -{ - - simdshort_q15_t xtmp[16384],*xtmpp,*x64 = (simdshort_q15_t *)x; - simd_q15_t ytmp[8192],*tw32768_128p=(simd_q15_t *)tw32768,*y128=(simd_q15_t *)y,*y128p=(simd_q15_t *)y; - simd_q15_t *ytmpp = &ytmp[0]; - int i; - simd_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16(ONE_OVER_SQRT2_Q15); - - xtmpp = xtmp; - - for (i=0; i<256; i++) { - transpose4_ooff(x64 ,xtmpp,8192); - transpose4_ooff(x64+2,xtmpp+1,8192); - transpose4_ooff(x64+4,xtmpp+2,8192); - transpose4_ooff(x64+6,xtmpp+3,8192); - transpose4_ooff(x64+8,xtmpp+4,8192); - transpose4_ooff(x64+10,xtmpp+5,8192); - transpose4_ooff(x64+12,xtmpp+6,8192); - transpose4_ooff(x64+14,xtmpp+7,8192); - transpose4_ooff(x64+16,xtmpp+8,8192); - transpose4_ooff(x64+18,xtmpp+9,8192); - transpose4_ooff(x64+20,xtmpp+10,8192); - transpose4_ooff(x64+22,xtmpp+11,8192); - transpose4_ooff(x64+24,xtmpp+12,8192); - transpose4_ooff(x64+26,xtmpp+13,8192); - transpose4_ooff(x64+28,xtmpp+14,8192); - transpose4_ooff(x64+30,xtmpp+15,8192); - transpose4_ooff(x64+32,xtmpp+16,8192); - transpose4_ooff(x64+34,xtmpp+17,8192); - transpose4_ooff(x64+36,xtmpp+18,8192); - transpose4_ooff(x64+38,xtmpp+19,8192); - transpose4_ooff(x64+40,xtmpp+20,8192); - transpose4_ooff(x64+42,xtmpp+21,8192); - transpose4_ooff(x64+44,xtmpp+22,8192); - transpose4_ooff(x64+46,xtmpp+23,8192); - transpose4_ooff(x64+48,xtmpp+24,8192); - transpose4_ooff(x64+50,xtmpp+25,8192); - transpose4_ooff(x64+52,xtmpp+26,8192); - transpose4_ooff(x64+54,xtmpp+27,8192); - transpose4_ooff(x64+56,xtmpp+28,8192); - transpose4_ooff(x64+58,xtmpp+29,8192); - transpose4_ooff(x64+60,xtmpp+30,8192); - transpose4_ooff(x64+62,xtmpp+31,8192); - x64+=64; - xtmpp+=32; - } - - idft16384((int16_t*)(xtmp),(int16_t*)ytmp,1); - idft16384((int16_t*)(xtmp+8192),(int16_t*)(ytmp+4096),1); - - - for (i=0; i<4096; i++) { - ibfly2(ytmpp,ytmpp+4096, - y128p,y128p+4096, - tw32768_128p); - tw32768_128p++; - y128p++; - ytmpp++; - } - - if (scale>0) { - y128p = y128; - - for (i=0; i<512; i++) { - y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT2_Q15_128); - y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT2_Q15_128); - y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT2_Q15_128); - y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT2_Q15_128); - y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT2_Q15_128); - y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT2_Q15_128); - y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT2_Q15_128); - y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT2_Q15_128); - y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT2_Q15_128); - y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT2_Q15_128); - y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT2_Q15_128); - y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT2_Q15_128); - y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT2_Q15_128); - y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT2_Q15_128); - y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT2_Q15_128); - y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT2_Q15_128); - y128p+=16; - } - } - - _mm_empty(); - _m_empty(); - -} - -#else // __AVX2__ void dft32768(int16_t *x,int16_t *y,unsigned char scale) { @@ -5959,8 +4171,6 @@ void idft32768(int16_t *x,int16_t *y,unsigned char scale) } - -#endif int16_t twa1536[1024],twb1536[1024]; // 512 x 3 @@ -7192,8 +5402,6 @@ void dft12(int16_t *x,int16_t *y ,unsigned char scale_flag) } -#ifdef __AVX2__ - static int16_t W1_12s_256[16]__attribute__((aligned(32))) = {28377,-16383,28377,-16383,28377,-16383,28377,-16383,28377,-16383,28377,-16383,28377,-16383,28377,-16383}; static int16_t W2_12s_256[16]__attribute__((aligned(32))) = {16383,-28377,16383,-28377,16383,-28377,16383,-28377,16383,-28377,16383,-28377,16383,-28377,16383,-28377}; static int16_t W3_12s_256[16]__attribute__((aligned(32))) = {0,-32767,0,-32767,0,-32767,0,-32767,0,-32767,0,-32767,0,-32767,0,-32767}; @@ -7376,8 +5584,6 @@ void dft12_simd256(int16_t *x,int16_t *y) } -#endif - static int16_t tw24[88]__attribute__((aligned(32))); void dft24(int16_t *x,int16_t *y,unsigned char scale_flag) @@ -10605,10 +8811,8 @@ int dfts_autoinit(void) void dft(uint8_t sizeidx, int16_t *input,int16_t *output,unsigned char scale_flag){ AssertFatal((sizeidx >= 0 && sizeidx=0 && sizeidx> 14 // y.i += (x * alpha.i) >> 14 // See regular C implementation at the end - __attribute__((always_inline)) inline void c16multaddVectRealComplex(const int16_t *x, + static __attribute__((always_inline)) inline void c16multaddVectRealComplex(const int16_t *x, const c16_t *alpha, c16_t *y, const int N) { -#ifdef __AVX2__ +#if defined(__x86_64__) || defined(__i386__) + // Default implementation for x86 const int8_t makePairs[32] __attribute__((aligned(32)))={ 0,1,0+16,1+16, 2,3,2+16,3+16, @@ -154,24 +155,25 @@ extern "C" { 12,13,12+16,13+16, 14,15,14+16,15+16}; - __m256i alpha256= _mm256_set1_epi32(*(int32_t *)alpha); + __m256i alpha256= simde_mm256_set1_epi32(*(int32_t *)alpha); __m128i *x128=(__m128i *)x; __m128i *y128=(__m128i *)y; AssertFatal(N%8==0,"Not implemented\n"); for (int i=0; ir)>>14); if (tmpr>INT16_MAX) @@ -219,7 +214,6 @@ extern "C" { y[i].r=(int16_t)tmpr; y[i].i=(int16_t)tmpi; } - #endif } //cmult_sv.h diff --git a/openair1/PHY/defs_L1_NB_IoT.h b/openair1/PHY/defs_L1_NB_IoT.h index 4e7b2c7bb7..cdf696d2a6 100644 --- a/openair1/PHY/defs_L1_NB_IoT.h +++ b/openair1/PHY/defs_L1_NB_IoT.h @@ -60,11 +60,7 @@ #define msg_nrt printf //use msg_nrt in the non real-time context (for initialization, ...) #ifndef malloc16 - #ifdef __AVX2__ #define malloc16(x) memalign(32,x) - #else - #define malloc16(x) memalign(16,x) - #endif #endif #define free16(y,x) free(y) #define bigmalloc malloc @@ -85,11 +81,7 @@ /* static inline void* malloc16_clear( size_t size ) { -#ifdef __AVX2__ void* ptr = memalign(32, size); -#else - void* ptr = memalign(16, size); -#endif DevAssert(ptr); memset( ptr, 0, size ); return ptr; diff --git a/openair1/PHY/defs_nr_UE.h b/openair1/PHY/defs_nr_UE.h index d43c222a24..4b2d21dca6 100644 --- a/openair1/PHY/defs_nr_UE.h +++ b/openair1/PHY/defs_nr_UE.h @@ -61,11 +61,7 @@ #define msg_nrt printf //use msg_nrt in the non real-time context (for initialization, ...) #ifndef malloc16 - #ifdef __AVX2__ #define malloc16(x) memalign(32,x) - #else - #define malloc16(x) memalign(16,x) - #endif #endif #define free16(y,x) free(y) #define bigmalloc malloc diff --git a/openair1/PHY/sse_intrin.h b/openair1/PHY/sse_intrin.h index 9995909acc..fc6836fd30 100644 --- a/openair1/PHY/sse_intrin.h +++ b/openair1/PHY/sse_intrin.h @@ -26,6 +26,18 @@ * The host CPU needs to have support for SSE2 at least. SSE3 and SSE4.1 functions are emulated if the CPU lacks support for them. * This will slow down the softmodem, but may be valuable if only offline signal processing is required. * + * + * Has been changed in August 2022 to rely on SIMD Everywhere (SIMDE) from MIT + * by bruno.mongazon-cazavet@nokia-bell-labs.com + * + * All AVX22 code is mapped to SIMDE which transparently relies on AVX2 HW (avx2-capable host) or SIMDE emulation + * (non-avx2-capable host). + * To force using SIMDE emulation on avx2-capable host use the --noavx2 flag. + * avx512 code is not mapped to SIMDE. It depends on --noavx512 flag. + * If the --noavx512 is set the OAI AVX512 emulation using AVX2 is used. + * If the --noavx512 is not set, AVX512 HW is used on avx512-capable host while OAI AVX512 emulation using AVX2 + * is used on non-avx512-capable host. + * * \author S. Held, Laurent THOMAS * \email sebastian.held@imst.de, laurent.thomas@open-cells.com * \company IMST GmbH, Open Cells Project @@ -39,306 +51,37 @@ #if defined(__x86_64) || defined(__i386__) -#ifndef __SSE2__ - # error SSE2 processor intrinsics disabled +/* x86 processors */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(__AVX512BW__) || defined(__AVX512F__) +#include #endif -#include -#include +#elif defined(__arm__) || defined(__aarch64__) -#ifdef __SSE3__ - #include - #include -#endif +/* ARM processors */ -#ifdef __SSE4_1__ - #include -#endif - -#ifdef __AVX2__ - #include -#endif - -// ------------------------------------------------ -// compatibility functions if SSE3 or SSE4 is not available -// ------------------------------------------------ -#if !defined(__SSE3__) || !defined(__SSE4_1__) -/*! \brief SSE vector type. - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -typedef union { - __m128 f; - __m128d d; - __m128i i; - __m64 m64[ 2]; - signed char s8[16]; -} ssp_m128; -#endif - - -// ------------------------------------------------ -// compatibility functions if SSE3 is not available -// ------------------------------------------------ -#ifndef __SSE3__ -#warning SSE3 instruction set not preset -#define _mm_abs_epi16(xmmx) _mm_xor_si128((xmmx),_mm_cmpgt_epi16(_mm_setzero_si128(),(xmmx))) -#define _mm_sign_epi16(xmmx,xmmy) _mm_xor_si128((xmmx),_mm_cmpgt_epi16(_mm_setzero_si128(),(xmmy))) -#define _mm_hadd_epi32(xmmx,xmmy) _mm_unpacklo_epi64(_mm_add_epi32(_mm_shuffle_epi32((xmmx),_MM_SHUFFLE(0,2,0,2)),_mm_shuffle_epi32((xmmx),_MM_SHUFFLE(1,3,1,3))),_mm_add_epi32(_mm_shuffle_epi32((xmmy),_MM_SHUFFLE(0,2,0,2)),_mm_shuffle_epi32((xmmy),_MM_SHUFFLE(1,3,1,3)))) - -// variant from lte_ul_channel_estimation.c and dlsch_demodulation.c and pmch.c -//#define _mm_abs_epi16(xmmx) _mm_add_epi16(_mm_xor_si128((xmmx),_mm_cmpgt_epi16(_mm_setzero_si128(),(xmmx))),_mm_srli_epi16(_mm_cmpgt_epi16(_mm_setzero_si128(),(xmmx)),15)) - -// variant from cdot_prod.c -//#define _mm_abs_epi16(xmmx) xmmx=_mm_xor_si128((xmmx),_mm_cmpgt_epi16(_mm_setzero_si128(),(xmmx))) - -#define _mm_shuffle_epi8(xmmx,xmmy) ssp_shuffle_epi8_SSE2(xmmx,xmmy) - -/*! \brief Helper function. - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_comge_epi8_SSE2(__m128i a, __m128i b) { - __m128i c; - c = _mm_cmpgt_epi8( a, b ); - a = _mm_cmpeq_epi8( a, b ); - a = _mm_or_si128 ( a, c ); - return a; -} - -/*! \brief SSE2 emulation of SSE3 _mm_shuffle_epi8(). - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_shuffle_epi8_SSE2 (__m128i a, __m128i mask) { - ssp_m128 A,B, MASK, maskZero; - A.i = a; - maskZero.i = ssp_comge_epi8_SSE2( mask, _mm_setzero_si128() ); - MASK.i = _mm_and_si128 ( mask, _mm_set1_epi8( (char)0x0F) ); - B.s8[ 0] = A.s8[ (MASK.s8[ 0]) ]; - B.s8[ 1] = A.s8[ (MASK.s8[ 1]) ]; - B.s8[ 2] = A.s8[ (MASK.s8[ 2]) ]; - B.s8[ 3] = A.s8[ (MASK.s8[ 3]) ]; - B.s8[ 4] = A.s8[ (MASK.s8[ 4]) ]; - B.s8[ 5] = A.s8[ (MASK.s8[ 5]) ]; - B.s8[ 6] = A.s8[ (MASK.s8[ 6]) ]; - B.s8[ 7] = A.s8[ (MASK.s8[ 7]) ]; - B.s8[ 8] = A.s8[ (MASK.s8[ 8]) ]; - B.s8[ 9] = A.s8[ (MASK.s8[ 9]) ]; - B.s8[10] = A.s8[ (MASK.s8[10]) ]; - B.s8[11] = A.s8[ (MASK.s8[11]) ]; - B.s8[12] = A.s8[ (MASK.s8[12]) ]; - B.s8[13] = A.s8[ (MASK.s8[13]) ]; - B.s8[14] = A.s8[ (MASK.s8[14]) ]; - B.s8[15] = A.s8[ (MASK.s8[15]) ]; - B.i = _mm_and_si128( B.i, maskZero.i ); - return B.i; -} -#endif // __SSE3__ - - - - - -// ------------------------------------------------ -// compatibility functions if SSE4 is not available -// ------------------------------------------------ -#ifndef __SSE4_1__ -#warning SSE4_1 instruction set not preset - -// https://gitorious.org/vc/vc/commit/ee49857ffe5b74c74bc57d501b05519443fc609a license LGPL3 -#define _mm_extract_epi32(xmmx,index) _mm_cvtsi128_si32(_mm_srli_si128(xmmx, (index) * 4)) - -#define _mm_insert_epi8(x,y,z) ssp_insert_epi8_SSE2(x,y,z) -#define _mm_cvtepi8_epi16(x) ssp_cvtepi8_epi16_SSE2(x) -#define _mm_max_epi8(x,y) ssp_max_epi8_SSE2(x,y) -#define _mm_cvtepi16_epi32(x) ssp_cvtepi16_epi32_SSE2(x) - -/*! \brief SSE2 emulation of SSE4 _mm_insert_epi8(). - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_insert_epi8_SSE2( __m128i a, int b, const int ndx ) { - ssp_m128 Ahi, Alo; - b = b & 0xFF; /* Convert to 8-bit integer */ - Ahi.i = _mm_unpackhi_epi8( a, _mm_setzero_si128() ); /* Ahi = a_8[8:15] Simulate 8bit integers as 16-bit integers */ - Alo.i = _mm_unpacklo_epi8( a, _mm_setzero_si128() ); /* Alo = a_8[0:7] Simulate 8bit integers as 16-bit integers */ - - /* Insert b as a 16-bit integer to upper or lower half of a */ - switch( ndx & 0xF ) { - case 0: - Alo.i = _mm_insert_epi16( Alo.i, b, 0 ); - break; - - case 1: - Alo.i = _mm_insert_epi16( Alo.i, b, 1 ); - break; - - case 2: - Alo.i = _mm_insert_epi16( Alo.i, b, 2 ); - break; - - case 3: - Alo.i = _mm_insert_epi16( Alo.i, b, 3 ); - break; - - case 4: - Alo.i = _mm_insert_epi16( Alo.i, b, 4 ); - break; - - case 5: - Alo.i = _mm_insert_epi16( Alo.i, b, 5 ); - break; - - case 6: - Alo.i = _mm_insert_epi16( Alo.i, b, 6 ); - break; - - case 7: - Alo.i = _mm_insert_epi16( Alo.i, b, 7 ); - break; - - case 8: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 0 ); - break; - - case 9: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 1 ); - break; - - case 10: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 2 ); - break; - - case 11: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 3 ); - break; - - case 12: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 4 ); - break; - - case 13: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 5 ); - break; - - case 14: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 6 ); - break; - - default: - Ahi.i = _mm_insert_epi16( Ahi.i, b, 7 ); - } - - return _mm_packus_epi16( Alo.i, Ahi.i ); // Pack the 16-bit integers to 8bit again. - ///* Another implementation, but slower: */ - //ssp_m128 A, B, mask; - //mask.i = _mm_setzero_si128(); - //mask.s8[ ndx & 0x0F ] = (ssp_s8)0xFF; - //B.i = _mm_set1_epi8( (ssp_s8)b ); - //A.i = _mm_andnot_si128( mask.i, a ); - //mask.i = _mm_and_si128( mask.i, B.i ); - //A.i = _mm_or_si128( A.i, mask.i ); - //return A.i; -} - -/*! \brief SSE2 emulation of SSE4 _mm_cvtepi8_epi16(). - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_cvtepi8_epi16_SSE2 ( __m128i a) { - __m128i b = _mm_setzero_si128 (); - __m128i c = _mm_unpacklo_epi8(a, b); - __m128i d = _mm_set1_epi16 (128); - b = _mm_and_si128(d, c); - d = _mm_set1_epi16(0x1FE); - b = _mm_mullo_epi16(b, d); - return _mm_add_epi16(c, b); -} - -/*! \brief Helper function. - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_logical_bitwise_select_SSE2( __m128i a, __m128i b, __m128i mask ) { // Bitwise (mask ? a : b) - a = _mm_and_si128 ( a, mask ); // clear a where mask = 0 - b = _mm_andnot_si128( mask, b ); // clear b where mask = 1 - a = _mm_or_si128 ( a, b ); // a = a OR b - return a; -} - -/*! \brief SSE2 emulation of SSE4 _mm_max_epi8(). - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_max_epi8_SSE2( __m128i a, __m128i b ) { - __m128i mask = _mm_cmpgt_epi8( a, b ); // FFFFFFFF where a > b - a = ssp_logical_bitwise_select_SSE2( a, b, mask ); - return a; -} - -/*! \brief SSE2 emulation of SSE4 _mm_cvtepi16_epi32(). - * - * this source code fragment is Copyright (c) 2006-2008 Advanced Micro Devices, Inc. - * It is licensed under Apache License 2.0 (compatible to our GPL3). - * see http://sourceforge.net/projects/sseplus - * \author Advanced Micro Devices, Inc. - * \date 2006-2008 - * \copyright Apache License 2.0 - */ -static inline __m128i ssp_cvtepi16_epi32_SSE2 ( __m128i a) { - __m128i b = _mm_set1_epi32 (-1); //0xFFFFFFFF - __m128i c = _mm_unpacklo_epi16(a, b); //FFFFa0**FFFFa1**.... - __m128i d = _mm_set1_epi32 (0x8000); //0x8000 - b = _mm_andnot_si128(c, d); // 0x80 for positive, 0x00 for negative - d = _mm_slli_epi32(b, 1); // 0x100 for positive, 0x000 for negative - return _mm_add_epi32(c, d); -} -#endif // __SSE4_1__ - -#elif defined(__arm__) -#include +#include #endif // x86_64 || i386 +/* + * OAI specific + */ + #if defined(__x86_64__) || defined(__i386__) #define vect128 __m128i -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #define vect128 int16x8_t #endif @@ -356,7 +99,7 @@ static inline vect128 mulByConjugate128(vect128 *a, vect128 *b, int8_t output_sh vect128 lowPart = _mm_unpacklo_epi32(realPart,imagPart); vect128 highPart = _mm_unpackhi_epi32(realPart,imagPart); return ( _mm_packs_epi32(lowPart,highPart)); -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) AssertFatal(false, "not developped\n"); #endif } @@ -374,7 +117,7 @@ static inline vect128 mulByConjugate128(vect128 *a, vect128 *b, int8_t output_sh _mm_extract_epi16(x,6),\ _mm_extract_epi16(x,7));\ } -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) displaySamples128(vect) {} //TBD #endif diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index d0270ba9a0..5db8bc2ac3 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -248,11 +248,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) { } /* if (ulsch_harq->ulsch_pdu.mcs_index == 0 && dumpsig==1) { -#ifdef __AVX2__ int off = ((ulsch_harq->ulsch_pdu.rb_size&1) == 1)? 4:0; -#else - int off = 0; -#endif LOG_M("rxsigF0.m","rxsF0",&gNB->common_vars.rxdataF[0][(ulsch_harq->slot&3)*gNB->frame_parms.ofdm_symbol_size*gNB->frame_parms.symbols_per_slot],gNB->frame_parms.ofdm_symbol_size*gNB->frame_parms.symbols_per_slot,1,1); LOG_M("rxsigF0_ext.m","rxsF0_ext", @@ -422,11 +418,8 @@ void nr_fill_indication(PHY_VARS_gNB *gNB, int frame, int slot_rx, int ULSCH_id, if (0/*pusch_pdu->mcs_index == 9*/) { __attribute__((unused)) -#ifdef __AVX2__ int off = ((pusch_pdu->rb_size&1) == 1)? 4:0; -#else - int off = 0; -#endif + LOG_M("rxsigF0.m","rxsF0",&gNB->common_vars.rxdataF[0][(slot_rx&3)*gNB->frame_parms.ofdm_symbol_size*gNB->frame_parms.symbols_per_slot],gNB->frame_parms.ofdm_symbol_size*gNB->frame_parms.symbols_per_slot,1,1); LOG_M("rxsigF0_ext.m","rxsF0_ext", &gNB->pusch_vars[0]->rxdataF_ext[0][pusch_pdu->start_symbol_index*NR_NB_SC_PER_RB * pusch_pdu->rb_size],pusch_pdu->nr_of_symbols*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1); diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c index fef67c3b92..e2f78e9036 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim.c @@ -604,7 +604,7 @@ int main(int argc, char **argv) { nfapi_tx_request_t TX_req; Sched_Rsp_t sched_resp; int pa=dB0; -#if defined(__arm__) +#if defined(__arm__) || defined(__aarch64__) FILE *proc_fd = NULL; char buf[64]; memset(buf,0,sizeof(buf)); diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c index 57c06e3b13..d6a248059c 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c @@ -310,7 +310,7 @@ int main(int argc, char **argv) opp_enabled=1; // to enable the time meas -#if defined(__arm__) +#if defined(__arm__) || defined(__aarch64__) FILE *proc_fd = NULL; char buf[64]; diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c index bd164150c5..2f254ea3d2 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c @@ -194,7 +194,7 @@ int main(int argc, char **argv) { int CCE_table[800]; int threequarter_fs=0; opp_enabled=1; // to enable the time meas -#if defined(__arm__) +#if defined(__arm__) || defined(__aarch64__) FILE *proc_fd = NULL; char buf[64]; proc_fd = fopen("/sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_cur_freq", "r"); diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c index 5aad30405b..0f7a1375ff 100644 --- a/openair1/SIMULATION/LTE_PHY/mbmssim.c +++ b/openair1/SIMULATION/LTE_PHY/mbmssim.c @@ -679,7 +679,7 @@ int main(int argc, char **argv) { nfapi_tx_request_t TX_req; Sched_Rsp_t sched_resp; int pa=dB0; -#if defined(__arm__) +#if defined(__arm__) || defined(__aarch64__) FILE *proc_fd = NULL; char buf[64]; memset(buf,0,sizeof(buf)); diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c index fb15cc1c87..01edb1145d 100644 --- a/openair1/SIMULATION/NR_PHY/ulsim.c +++ b/openair1/SIMULATION/NR_PHY/ulsim.c @@ -1409,13 +1409,8 @@ int main(int argc, char **argv) if (n_trials == 1 && round==0) { -#ifdef __AVX2__ __attribute__((unused)) int off = ((nb_rb&1) == 1)? 4:0; -#else - __attribute__((unused)) - int off = 0; -#endif LOG_M("rxsigF0_ext.m","rxsF0_ext", &gNB->pusch_vars[0]->rxdataF_ext[0][start_symbol*NR_NB_SC_PER_RB * pusch_pdu->rb_size],nb_symb_sch*(off+(NR_NB_SC_PER_RB * pusch_pdu->rb_size)),1,1); diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c index 507cdb2661..00117ec4ad 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c @@ -503,28 +503,28 @@ void ra_preambles_config(NR_PRACH_RESOURCES_t *prach_resources, NR_UE_MAC_INST_t if(ra->ra_PreambleIndex < 0 || ra->ra_PreambleIndex > 63) { if (noGroupB) { // use Group A preamble - ra->ra_PreambleIndex = ra->starting_preamble_nb + (nrand48(seed) % ra->cb_preambles_per_ssb); + ra->ra_PreambleIndex = ra->starting_preamble_nb + (rand_r((unsigned int *)seed) % ra->cb_preambles_per_ssb); ra->RA_usedGroupA = 1; } else if ((ra->Msg3_size < messageSizeGroupA) && (dl_pathloss > PLThreshold)) { // Group B is configured and RA preamble Group A is used // - todo add condition on CCCH_sdu_size for initiation by CCCH - ra->ra_PreambleIndex = ra->starting_preamble_nb + (nrand48(seed) % sizeOfRA_PreamblesGroupA); + ra->ra_PreambleIndex = ra->starting_preamble_nb + (rand_r((unsigned int *)seed) % sizeOfRA_PreamblesGroupA); ra->RA_usedGroupA = 1; } else { // Group B preamble is configured and used // the first sizeOfRA_PreamblesGroupA RA preambles belong to RA Preambles Group A // the remaining belong to RA Preambles Group B - ra->ra_PreambleIndex = ra->starting_preamble_nb + sizeOfRA_PreamblesGroupA + (nrand48(seed) % (ra->cb_preambles_per_ssb - sizeOfRA_PreamblesGroupA)); + ra->ra_PreambleIndex = ra->starting_preamble_nb + sizeOfRA_PreamblesGroupA + (rand_r((unsigned int *)seed) % (ra->cb_preambles_per_ssb - sizeOfRA_PreamblesGroupA)); ra->RA_usedGroupA = 0; } } } else { // Msg3 is being retransmitted if (ra->RA_usedGroupA && noGroupB) { - ra->ra_PreambleIndex = ra->starting_preamble_nb + (nrand48(seed) % ra->cb_preambles_per_ssb); + ra->ra_PreambleIndex = ra->starting_preamble_nb + (rand_r((unsigned int *)seed) % ra->cb_preambles_per_ssb); } else if (ra->RA_usedGroupA && !noGroupB){ - ra->ra_PreambleIndex = ra->starting_preamble_nb + (nrand48(seed) % sizeOfRA_PreamblesGroupA); + ra->ra_PreambleIndex = ra->starting_preamble_nb + (rand_r((unsigned int *)seed) % sizeOfRA_PreamblesGroupA); } else { - ra->ra_PreambleIndex = ra->starting_preamble_nb + sizeOfRA_PreamblesGroupA + (nrand48(seed) % (ra->cb_preambles_per_ssb - sizeOfRA_PreamblesGroupA)); + ra->ra_PreambleIndex = ra->starting_preamble_nb + sizeOfRA_PreamblesGroupA + (rand_r((unsigned int *)seed) % (ra->cb_preambles_per_ssb - sizeOfRA_PreamblesGroupA)); } } prach_resources->ra_PreambleIndex = ra->ra_PreambleIndex; @@ -754,7 +754,7 @@ uint8_t nr_ue_get_rach(NR_PRACH_RESOURCES_t *prach_resources, // fill ulsch_buffer with random data for (int i = 0; i < TBS_bytes; i++){ - mac_sdus[i] = (unsigned char) (lrand48()&0xff); + mac_sdus[i] = (unsigned char) (rand()&0xff); } //Sending SDUs with size 1 //Initialize elements of sdu_lengths @@ -1009,7 +1009,7 @@ void nr_ra_failed(uint8_t mod_id, uint8_t CC_id, NR_PRACH_RESOURCES_t *prach_res LOG_D(MAC, "In %s: [UE %d][%d.%d] Maximum number of RACH attempts (%d) reached, selecting backoff time...\n", __FUNCTION__, mod_id, frame, slot, ra->preambleTransMax); - ra->RA_backoff_cnt = nrand48(seed) % (prach_resources->RA_PREAMBLE_BACKOFF + 1); + ra->RA_backoff_cnt = rand_r((unsigned int *)seed) % (prach_resources->RA_PREAMBLE_BACKOFF + 1); prach_resources->RA_PREAMBLE_TRANSMISSION_COUNTER = 1; prach_resources->RA_PREAMBLE_POWER_RAMPING_STEP += 2; // 2 dB increment prach_resources->ra_PREAMBLE_RECEIVED_TARGET_POWER = nr_get_Po_NOMINAL_PUSCH(prach_resources, mod_id, CC_id); diff --git a/openair2/NETWORK_DRIVER/UE_IP/device.c b/openair2/NETWORK_DRIVER/UE_IP/device.c index bf858a0005..84c7a0b714 100644 --- a/openair2/NETWORK_DRIVER/UE_IP/device.c +++ b/openair2/NETWORK_DRIVER/UE_IP/device.c @@ -304,7 +304,7 @@ void ue_ip_change_rx_flags(struct net_device *dev_pP, int flagsP) { //--------------------------------------------------------------------------- -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) || (defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE == 2055) void ue_ip_tx_timeout(struct net_device *dev_pP, unsigned int txqueue) #else void ue_ip_tx_timeout(struct net_device *dev_pP) @@ -335,7 +335,7 @@ static const struct net_device_ops ue_ip_netdev_ops = { .ndo_set_mac_address = ue_ip_set_mac_address, .ndo_set_config = ue_ip_set_config, .ndo_do_ioctl = NULL, -#if defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1797 && RHEL_RELEASE_CODE != 2403 +#if defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= 1797 && RHEL_RELEASE_CODE != 2403 && RHEL_RELEASE_CODE != 2055 .extended.ndo_change_mtu = ue_ip_change_mtu, #else .ndo_change_mtu = ue_ip_change_mtu, diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 8be30175e1..fb72899458 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -979,7 +979,7 @@ rrc_eNB_free_UE( void put_UE_in_freelist(module_id_t mod_id, rnti_t rnti, bool removeFlag) { eNB_MAC_INST *eNB_MAC = RC.mac[mod_id]; pthread_mutex_lock(&lock_ue_freelist); - LOG_I(PHY,"add ue %d in fre list, context flag: %d\n", rnti, removeFlag); + LOG_I(PHY,"add ue %d in free list, context flag: %d\n", rnti, removeFlag); int i; for (i=0; i < sizeofArray(eNB_MAC->UE_free_ctrl); i++) if (eNB_MAC->UE_free_ctrl[i].rnti == 0) diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c index a1a5665a01..c6935136c3 100644 --- a/openair2/RRC/NR_UE/rrc_UE.c +++ b/openair2/RRC/NR_UE/rrc_UE.c @@ -1159,7 +1159,7 @@ int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(module_id_t module_id, dec_rval.consumed ); log_dump(NR_RRC, Sdu, Sdu_len, LOG_DUMP_CHAR," Received bytes:\n" ); // free the memory - SEQUENCE_free( &asn_DEF_LTE_BCCH_DL_SCH_Message, (void *)bcch_message, 1 ); + SEQUENCE_free( &asn_DEF_NR_BCCH_DL_SCH_Message, (void *)bcch_message, 1 ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_BCCH, VCD_FUNCTION_OUT ); return -1; } @@ -1227,7 +1227,7 @@ int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(module_id_t module_id, } if (nr_rrc_get_sub_state(module_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE_NR) { - //if ( (NR_UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data != NULL) || (!AMF_MODE_ENABLED)) { + //if ( (NR_UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data != NULL) || (!get_softmodem_params()->sa)) { nr_rrc_ue_generate_RRCSetupRequest(module_id, 0); nr_rrc_set_sub_state( module_id, RRC_SUB_STATE_IDLE_CONNECTING ); //} @@ -2791,13 +2791,13 @@ void process_lte_nsa_msg(nsa_msg_t *msg, int msg_len) LTE_MeasObjectToAddMod_t *nr_meas_obj = NULL; asn_dec_rval_t dec_rval = uper_decode_complete(NULL, - &asn_DEF_LTE_MeasObjectToAddMod, + &asn_DEF_NR_MeasObjectToAddMod, (void **)&nr_meas_obj, msg_buffer, msg_len); if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) { - SEQUENCE_free(&asn_DEF_LTE_MeasObjectToAddMod, nr_meas_obj, ASFM_FREE_EVERYTHING); + SEQUENCE_free(&asn_DEF_NR_MeasObjectToAddMod, nr_meas_obj, ASFM_FREE_EVERYTHING); LOG_E(RRC, "Failed to decode measurement object (%zu bits) %d\n", dec_rval.consumed, dec_rval.code); break; } diff --git a/sdr/BLADERF/USERSPACE/LIB/bladerf_lib.c b/sdr/BLADERF/USERSPACE/LIB/bladerf_lib.c index af5ab5ad6d..eb1873cc66 100644 --- a/sdr/BLADERF/USERSPACE/LIB/bladerf_lib.c +++ b/sdr/BLADERF/USERSPACE/LIB/bladerf_lib.c @@ -30,20 +30,13 @@ #include #include "bladerf_lib.h" #include "math.h" +#include "PHY/sse_intrin.h" /** @addtogroup _BLADERF_PHY_RF_INTERFACE_ * @{ */ //! Number of BladeRF devices -#ifdef __SSE4_1__ -# include -#endif - -#ifdef __AVX2__ -# include -#endif - int num_devices=0; /*These items configure the underlying asynch stream used by the the sync interface. diff --git a/sdr/COMMON/record_player.h b/sdr/COMMON/record_player.h index cd715eecf1..3418d16a22 100644 --- a/sdr/COMMON/record_player.h +++ b/sdr/COMMON/record_player.h @@ -44,7 +44,7 @@ extern "C" #define RECPLAY_REPLAYMODE 2 #define BELL_LABS_IQ_HEADER 0xabababababababab -#define BELL_LABS_IQ_PER_SF 7680 // Up to 5MHz bw for now +#define BELL_LABS_IQ_PER_SF 46080 // 7680 => 5MHz bw for now; 46080 => 3/4 40MHz (106 PRBs) #define BELL_LABS_IQ_BYTES_PER_SF (BELL_LABS_IQ_PER_SF * 4) #define MAX_BELL_LABS_IQ_BYTES_PER_SF BELL_LABS_IQ_BYTES_PER_SF*10 diff --git a/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c b/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c index dd9414a44c..d3b7771007 100644 --- a/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c +++ b/sdr/ETHERNET/USERSPACE/LIB/eth_udp.c @@ -50,6 +50,7 @@ #include "common_lib.h" #include "ethernet_lib.h" +#include "openair1/PHY/sse_intrin.h" #include "common/utils/threadPool/thread-pool.h" //#define DEBUG 1 @@ -317,15 +318,9 @@ void *trx_eth_write_udp_cmd(udpTXelem_t *udpTXelem) { if (TS_advance < (nsamps/2)) LOG_W(PHY,"Starting TX FH for TS %llu absslot %llu(%llu) last_rxTS %llu TS_advance %llu samples\n",(unsigned long long)timestamp,(unsigned long long)timestamp/nsamps,((unsigned long long)timestamp/nsamps)%20,(unsigned long long)last_rxTS,(unsigned long long)TS_advance); void *buff2; #if defined(__x86_64) || defined(__i386__) -#ifdef __AVX2__ int nsamps2 = 256>>3; __m256i buff_tx[nsamps2+1]; buff2=(void*)&buff_tx[1] - APP_HEADER_SIZE_BYTES; -#else - int nsamps2 = 256>>2; - __m128i buff_tx[nsamps2+2]; - buff2=(void*)&buff_tx[2] - APP_HEADER_SIZE_BYTES; -#endif #elif defined(__arm__) || defined(__aarch64__) int nsamps2 = 256>>2; int16x8_t buff_tx[nsamps2+2]; @@ -362,7 +357,6 @@ void *trx_eth_write_udp_cmd(udpTXelem_t *udpTXelem) { *(uint16_t *)(buff2 + 4) = aid; // bring TX data into 12 MSBs #if defined(__x86_64__) || defined(__i386__) -#ifdef __AVX2__ __m256i *buff256 = (__m256i *)&(((int32_t*)buff[aid])[offset]); for (int j=0; j<32; j+=8) { buff_tx[1+j] = _mm256_slli_epi16(buff256[j],4); @@ -374,10 +368,6 @@ void *trx_eth_write_udp_cmd(udpTXelem_t *udpTXelem) { buff_tx[7+j] = _mm256_slli_epi16(buff256[j+6],4); buff_tx[8+j] = _mm256_slli_epi16(buff256[j+7],4); } -#else - __m128i *buff128 = (__m128i *)&buff[aid][offset]; - for (int j=0; j<64; j++) buff_tx[2+j] = _mm_slli_epi16(buff128[j],4); -#endif #elif defined(__arm__) int16x8_t *buff128 = (__int16x8_t*)&buff[aid][offset]; for (int j=0; j<64; j++) buff_tx[2+j] = vshlq_n_s16(((int16x8_t *)buff128)[j],4); diff --git a/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp b/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp index 47bbadfe28..488876a4bc 100644 --- a/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp +++ b/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp @@ -23,13 +23,7 @@ #include "common_lib.h" #include -#ifdef __SSE4_1__ -# include -#endif - -#ifdef __AVX2__ -# include -#endif +#include "openair1/PHY/sse_intrin.h" #define MOVE_DC #define SAMPLE_RATE_DOWN 1 @@ -152,13 +146,8 @@ trx_iris_write(openair0_device *device, openair0_timestamp timestamp, void **buf iris_state_t *s = (iris_state_t *) device->priv; int nsamps2; // aligned to upper 32 or 16 byte boundary #if defined(__x86_64) || defined(__i386__) - #ifdef __AVX2__ nsamps2 = (nsamps+7)>>3; __m256i buff_tx[2][nsamps2]; - #else - nsamps2 = (nsamps+3)>>2; - __m128i buff_tx[2][nsamps2]; - #endif #else #error unsupported CPU architecture, iris device cannot be built #endif @@ -167,11 +156,7 @@ trx_iris_write(openair0_device *device, openair0_timestamp timestamp, void **buf for (int i=0; irx_num_channels; int nsamps2; // aligned to upper 32 or 16 byte boundary #if defined(__x86_64) || defined(__i386__) -#ifdef __AVX2__ nsamps2 = (nsamps+7)>>3; __m256i buff_tmp[2][nsamps2]; -#else - nsamps2 = (nsamps+3)>>2; - __m128i buff_tmp[2][nsamps2]; -#endif #endif for (r = 0; r < s->device_num; r++) { @@ -331,11 +311,7 @@ static int trx_iris_read(openair0_device *device, openair0_timestamp *ptimestamp for (int i=0; i -#endif - -#ifdef __AVX2__ -# include -#endif +#include "openair1/PHY/sse_intrin.h" using namespace std; diff --git a/sdr/USRP/USERSPACE/LIB/usrp_lib.cpp b/sdr/USRP/USERSPACE/LIB/usrp_lib.cpp index f9cc4a111a..497f799be1 100644 --- a/sdr/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/sdr/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -54,17 +54,7 @@ #include -#ifdef __SSE4_1__ - #include -#endif - -#ifdef __AVX2__ - #include -#endif - -#ifdef __arm__ - #include -#endif +#include "openair1/PHY/sse_intrin.h" /** @addtogroup _USRP_PHY_RF_INTERFACE_ * @{ @@ -421,14 +411,9 @@ static int trx_usrp_write(openair0_device *device, if(usrp_tx_thread == 0){ #if defined(__x86_64) || defined(__i386__) - #ifdef __AVX2__ nsamps2 = (nsamps+7)>>3; __m256i buff_tx[cc<2?2:cc][nsamps2]; - #else - nsamps2 = (nsamps+3)>>2; - __m128i buff_tx[cc<2?2:cc][nsamps2]; - #endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) nsamps2 = (nsamps+3)>>2; int16x8_t buff_tx[cc<2?2:cc][nsamps2]; #else @@ -439,12 +424,8 @@ static int trx_usrp_write(openair0_device *device, for (int i=0; i>3; __m256i buff_tx[cc<2?2:cc][nsamps2]; - #else - nsamps2 = (nsamps+3)>>2; - __m128i buff_tx[cc<2?2:cc][nsamps2]; - #endif - #elif defined(__arm__) + #elif defined(__arm__) || defined(__aarch64__) nsamps2 = (nsamps+3)>>2; int16x8_t buff_tx[cc<2?2:cc][nsamps2]; #else @@ -579,12 +555,8 @@ void *trx_usrp_write_thread(void * arg){ for (int i=0; i>3; __m256i buff_tmp[cc<2 ? 2 : cc][nsamps2]; -#else - nsamps2 = (nsamps+3)>>2; - __m128i buff_tmp[cc<2 ? 2 : cc][nsamps2]; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) nsamps2 = (nsamps+3)>>2; int16x8_t buff_tmp[cc<2 ? 2 : cc][nsamps2]; #endif @@ -729,20 +696,14 @@ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp for (int i=0; icurrentPtr+=sizeof(iqrec_t)+nsamps*4; recPlay->nbSamplesBlocks++; +#if 0 // BMC: this is too verbose LOG_D(HW,"recorded %d samples, for TS %lu, shift in buffer %ld\n", nsamps, hdr->ts, recPlay->currentPtr-(uint8_t *)recPlay->ms_sample); +#endif } else exit_function(__FILE__, __FUNCTION__, __LINE__,"Recording reaches max iq limit\n"); } diff --git a/sdr/iqplayer/iqplayer_lib.c b/sdr/iqplayer/iqplayer_lib.c index f6578d6e9a..8fd3da5ed1 100644 --- a/sdr/iqplayer/iqplayer_lib.c +++ b/sdr/iqplayer/iqplayer_lib.c @@ -88,7 +88,7 @@ static int iqplayer_loadfile(openair0_device *device, openair0_config_t *openair size_t hs = read(s->fd,&fh,sizeof(fh)); if (hs == sizeof(fh)) { - parse_iqfile_header(device, &fh); + parse_iqfile_header(device, &fh); fstat(s->fd, &sb); s->mapsize=sb.st_size; LOG_I(HW, "Loading %u subframes from %s,size=%lu bytes ...\n",s->nbSamplesBlocks, c->u_sf_filename,(uint64_t)sb.st_size); @@ -181,10 +181,12 @@ static int trx_iqplayer_write(openair0_device *device, openair0_timestamp timest */ static int trx_iqplayer_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) { recplay_state_t *s = device->recplay_state; - - if (s->curSamplesBlock==0 && s->wrap_count==0 ) - s->currentTs=s->ms_sample->ts; + if (s->curSamplesBlock==0 && s->wrap_count==0) { + s->currentTs=s->ms_sample->ts; + LOG_I(HW, "First timestamp=%lu s->nbSamplesBlocks=%u\n", s->currentTs, s->nbSamplesBlocks); + } + if (s->curSamplesBlock == s->nbSamplesBlocks) { LOG_I(HW, "wrapping on iq file (%ld)\n", s->wrap_count); s->curSamplesBlock = 0; @@ -202,8 +204,6 @@ static int trx_iqplayer_read(openair0_device *device, openair0_timestamp *ptimes if (!(device->openair0_cfg->recplay_conf->use_mmap) ) { close(device->recplay_state->fd); iqplayer_loadfile(device, device->openair0_cfg); - // LOG_E(HW, "Problem seeking at the beginning of IQ file %s\n",strerror(errno)); - } } @@ -223,10 +223,6 @@ static int trx_iqplayer_read(openair0_device *device, openair0_timestamp *ptimes iqrec_t *curHeader=(iqrec_t *)s->currentPtr; AssertFatal(curHeader->header==BELL_LABS_IQ_HEADER,"" ); // the current timestamp is the stored timestamp until we wrap on input - // USRP shifts 1 sample time to time - if (s->wrap_count !=0 && device->openair0_cfg->recplay_conf->use_mmap) - AssertFatal( abs(curHeader->ts-s->currentTs) < 5 , - "wrap_count=%li, ts %lu %lu",s->wrap_count,curHeader->ts,s->currentTs); AssertFatal(nsamps*4==curHeader->nbBytes,""); *ptimestamp = s->currentTs; memcpy(buff[0], curHeader+1, nsamps*4); @@ -237,6 +233,7 @@ static int trx_iqplayer_read(openair0_device *device, openair0_timestamp *ptimes if (device->openair0_cfg->recplay_conf->use_mmap) s->currentPtr+=sizeof(iqrec_t)+s->ms_sample->nbBytes; + // BMC TODO: support 1 second or more subframe read delay struct timespec req; req.tv_sec = 0; req.tv_nsec = (device->openair0_cfg[0].recplay_conf->u_sf_read_delay) * 1000; diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index 10e1c177d0..5a103cf886 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -768,12 +768,8 @@ void tx_rf(RU_t *ru, } #if defined(__x86_64) || defined(__i386__) -#ifdef __AVX2__ sf_extension = (sf_extension)&0xfffffff8; -#else - sf_extension = (sf_extension)&0xfffffffc; -#endif -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) sf_extension = (sf_extension)&0xfffffffc; #endif