

/* this file was generated by volk template utils, do not edit! */

/* -*- c++ -*- */
/*
 * Copyright 2011-2012 Free Software Foundation, Inc.
 *
 * This file is part of VOLK
 *
 * SPDX-License-Identifier: LGPL-3.0-or-later
 */




#define LV_HAVE_GENERIC 1
#define LV_HAVE_64 1
#define LV_HAVE_MMX 1
#define LV_HAVE_SSE 1
#define LV_HAVE_SSE2 1
#define LV_HAVE_SSE3 1
#define LV_HAVE_SSSE3 1
#define LV_HAVE_SSE4_1 1
#define LV_HAVE_SSE4_2 1
#define LV_HAVE_POPCOUNT 1
#define LV_HAVE_AVX 1
#define LV_HAVE_FMA 1
#define LV_HAVE_AVX2 1
#define LV_HAVE_AVX512F 1
#define LV_HAVE_ORC 1

#include <volk/volk_common.h>
#include "volk_machines.h"
#include <volk/volk_config_fixed.h>

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <volk/volk_16i_32fc_dot_prod_32fc.h>
#include <volk/volk_16i_branch_4_state_8.h>
#include <volk/volk_16i_convert_8i.h>
#include <volk/volk_16i_max_star_16i.h>
#include <volk/volk_16i_max_star_horizontal_16i.h>
#include <volk/volk_16i_permute_and_scalar_add.h>
#include <volk/volk_16i_s32f_convert_32f.h>
#include <volk/volk_16i_x2_add_saturated_16i.h>
#include <volk/volk_16i_x4_quad_max_star_16i.h>
#include <volk/volk_16i_x5_add_quad_16i_x4.h>
#include <volk/volk_16ic_convert_32fc.h>
#include <volk/volk_16ic_deinterleave_16i_x2.h>
#include <volk/volk_16ic_deinterleave_real_16i.h>
#include <volk/volk_16ic_deinterleave_real_8i.h>
#include <volk/volk_16ic_magnitude_16i.h>
#include <volk/volk_16ic_s32f_deinterleave_32f_x2.h>
#include <volk/volk_16ic_s32f_deinterleave_real_32f.h>
#include <volk/volk_16ic_s32f_magnitude_32f.h>
#include <volk/volk_16ic_x2_dot_prod_16ic.h>
#include <volk/volk_16ic_x2_multiply_16ic.h>
#include <volk/volk_16u_byteswap.h>
#include <volk/volk_16u_byteswappuppet_16u.h>
#include <volk/volk_16u_x2_add_saturated_16u.h>
#include <volk/volk_32f_64f_add_64f.h>
#include <volk/volk_32f_64f_multiply_64f.h>
#include <volk/volk_32f_8u_polarbutterfly_32f.h>
#include <volk/volk_32f_8u_polarbutterflypuppet_32f.h>
#include <volk/volk_32f_accumulator_s32f.h>
#include <volk/volk_32f_acos_32f.h>
#include <volk/volk_32f_asin_32f.h>
#include <volk/volk_32f_atan_32f.h>
#include <volk/volk_32f_binary_slicer_32i.h>
#include <volk/volk_32f_binary_slicer_8i.h>
#include <volk/volk_32f_convert_64f.h>
#include <volk/volk_32f_cos_32f.h>
#include <volk/volk_32f_exp_32f.h>
#include <volk/volk_32f_expfast_32f.h>
#include <volk/volk_32f_index_max_16u.h>
#include <volk/volk_32f_index_max_32u.h>
#include <volk/volk_32f_index_min_16u.h>
#include <volk/volk_32f_index_min_32u.h>
#include <volk/volk_32f_invsqrt_32f.h>
#include <volk/volk_32f_log2_32f.h>
#include <volk/volk_32f_null_32f.h>
#include <volk/volk_32f_reciprocal_32f.h>
#include <volk/volk_32f_s32f_32f_fm_detect_32f.h>
#include <volk/volk_32f_s32f_add_32f.h>
#include <volk/volk_32f_s32f_calc_spectral_noise_floor_32f.h>
#include <volk/volk_32f_s32f_clamppuppet_32f.h>
#include <volk/volk_32f_s32f_convert_16i.h>
#include <volk/volk_32f_s32f_convert_32i.h>
#include <volk/volk_32f_s32f_convert_8i.h>
#include <volk/volk_32f_s32f_convertpuppet_8u.h>
#include <volk/volk_32f_s32f_mod_rangepuppet_32f.h>
#include <volk/volk_32f_s32f_multiply_32f.h>
#include <volk/volk_32f_s32f_normalize.h>
#include <volk/volk_32f_s32f_power_32f.h>
#include <volk/volk_32f_s32f_s32f_mod_range_32f.h>
#include <volk/volk_32f_s32f_stddev_32f.h>
#include <volk/volk_32f_s32f_x2_clamp_32f.h>
#include <volk/volk_32f_s32f_x2_convert_8u.h>
#include <volk/volk_32f_sin_32f.h>
#include <volk/volk_32f_sincos_32f_x2.h>
#include <volk/volk_32f_sqrt_32f.h>
#include <volk/volk_32f_stddev_and_mean_32f_x2.h>
#include <volk/volk_32f_tan_32f.h>
#include <volk/volk_32f_tanh_32f.h>
#include <volk/volk_32f_x2_add_32f.h>
#include <volk/volk_32f_x2_divide_32f.h>
#include <volk/volk_32f_x2_dot_prod_16i.h>
#include <volk/volk_32f_x2_dot_prod_32f.h>
#include <volk/volk_32f_x2_fm_detectpuppet_32f.h>
#include <volk/volk_32f_x2_interleave_32fc.h>
#include <volk/volk_32f_x2_max_32f.h>
#include <volk/volk_32f_x2_min_32f.h>
#include <volk/volk_32f_x2_multiply_32f.h>
#include <volk/volk_32f_x2_pow_32f.h>
#include <volk/volk_32f_x2_powpuppet_32f.h>
#include <volk/volk_32f_x2_s32f_interleave_16ic.h>
#include <volk/volk_32f_x2_subtract_32f.h>
#include <volk/volk_32f_x3_sum_of_poly_32f.h>
#include <volk/volk_32fc_32f_add_32fc.h>
#include <volk/volk_32fc_32f_dot_prod_32fc.h>
#include <volk/volk_32fc_32f_multiply_32fc.h>
#include <volk/volk_32fc_accumulator_s32fc.h>
#include <volk/volk_32fc_conjugate_32fc.h>
#include <volk/volk_32fc_convert_16ic.h>
#include <volk/volk_32fc_deinterleave_32f_x2.h>
#include <volk/volk_32fc_deinterleave_64f_x2.h>
#include <volk/volk_32fc_deinterleave_imag_32f.h>
#include <volk/volk_32fc_deinterleave_real_32f.h>
#include <volk/volk_32fc_deinterleave_real_64f.h>
#include <volk/volk_32fc_index_max_16u.h>
#include <volk/volk_32fc_index_max_32u.h>
#include <volk/volk_32fc_index_min_16u.h>
#include <volk/volk_32fc_index_min_32u.h>
#include <volk/volk_32fc_magnitude_32f.h>
#include <volk/volk_32fc_magnitude_squared_32f.h>
#include <volk/volk_32fc_s32f_atan2_32f.h>
#include <volk/volk_32fc_s32f_deinterleave_real_16i.h>
#include <volk/volk_32fc_s32f_magnitude_16i.h>
#include <volk/volk_32fc_s32f_power_32fc.h>
#include <volk/volk_32fc_s32f_power_spectral_densitypuppet_32f.h>
#include <volk/volk_32fc_s32f_power_spectrum_32f.h>
#include <volk/volk_32fc_s32f_x2_power_spectral_density_32f.h>
#include <volk/volk_32fc_s32fc_multiply2_32fc.h>
#include <volk/volk_32fc_s32fc_multiply_32fc.h>
#include <volk/volk_32fc_s32fc_rotator2puppet_32fc.h>
#include <volk/volk_32fc_s32fc_x2_rotator2_32fc.h>
#include <volk/volk_32fc_s32fc_x2_rotator_32fc.h>
#include <volk/volk_32fc_x2_add_32fc.h>
#include <volk/volk_32fc_x2_conjugate_dot_prod_32fc.h>
#include <volk/volk_32fc_x2_divide_32fc.h>
#include <volk/volk_32fc_x2_dot_prod_32fc.h>
#include <volk/volk_32fc_x2_multiply_32fc.h>
#include <volk/volk_32fc_x2_multiply_conjugate_32fc.h>
#include <volk/volk_32fc_x2_s32f_square_dist_scalar_mult_32f.h>
#include <volk/volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc.h>
#include <volk/volk_32fc_x2_s32fc_multiply_conjugate_add_32fc.h>
#include <volk/volk_32fc_x2_square_dist_32f.h>
#include <volk/volk_32i_s32f_convert_32f.h>
#include <volk/volk_32i_x2_and_32i.h>
#include <volk/volk_32i_x2_or_32i.h>
#include <volk/volk_32u_byteswap.h>
#include <volk/volk_32u_byteswappuppet_32u.h>
#include <volk/volk_32u_popcnt.h>
#include <volk/volk_32u_popcntpuppet_32u.h>
#include <volk/volk_32u_reverse_32u.h>
#include <volk/volk_64f_convert_32f.h>
#include <volk/volk_64f_x2_add_64f.h>
#include <volk/volk_64f_x2_dot_prod_64f.h>
#include <volk/volk_64f_x2_max_64f.h>
#include <volk/volk_64f_x2_min_64f.h>
#include <volk/volk_64f_x2_multiply_64f.h>
#include <volk/volk_64u_byteswap.h>
#include <volk/volk_64u_byteswappuppet_64u.h>
#include <volk/volk_64u_popcnt.h>
#include <volk/volk_64u_popcntpuppet_64u.h>
#include <volk/volk_8i_convert_16i.h>
#include <volk/volk_8i_s32f_convert_32f.h>
#include <volk/volk_8i_x2_add_saturated_8i.h>
#include <volk/volk_8ic_deinterleave_16i_x2.h>
#include <volk/volk_8ic_deinterleave_real_16i.h>
#include <volk/volk_8ic_deinterleave_real_8i.h>
#include <volk/volk_8ic_s32f_deinterleave_32f_x2.h>
#include <volk/volk_8ic_s32f_deinterleave_real_32f.h>
#include <volk/volk_8ic_x2_multiply_conjugate_16ic.h>
#include <volk/volk_8ic_x2_s32f_multiply_conjugate_32fc.h>
#include <volk/volk_8u_conv_k7_r2puppet_8u.h>
#include <volk/volk_8u_x2_add_saturated_8u.h>
#include <volk/volk_8u_x2_encodeframepolar_8u.h>
#include <volk/volk_8u_x3_encodepolar_8u_x2.h>
#include <volk/volk_8u_x3_encodepolarpuppet_8u.h>
#include <volk/volk_8u_x4_conv_k7_r2_8u.h>

struct volk_machine volk_machine_avx512f_64_mmx_orc = {
    (1 << LV_GENERIC) | (1 << LV_64) | (1 << LV_MMX) | (1 << LV_SSE) | (1 << LV_SSE2) | (1 << LV_SSE3) | (1 << LV_SSSE3) | (1 << LV_SSE4_1) | (1 << LV_SSE4_2) | (1 << LV_POPCOUNT) | (1 << LV_AVX) | (1 << LV_FMA) | (1 << LV_AVX2) | (1 << LV_AVX512F) | (1 << LV_ORC),
    "avx512f_64_mmx_orc",
    64,

    "volk_16i_32fc_dot_prod_32fc",
    {"generic", "u_sse", "u_avx2_fma", "u_avx2", "a_sse", "a_avx2", "a_avx2_fma"},
    {(1 << LV_GENERIC), (1 << LV_SSE) | (1 << LV_MMX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE) | (1 << LV_MMX), (1 << LV_AVX2), (1 << LV_FMA) | (1 << LV_AVX2)},
    {false, false, false, false, true, true, true},
    {volk_16i_32fc_dot_prod_32fc_generic, volk_16i_32fc_dot_prod_32fc_u_sse, volk_16i_32fc_dot_prod_32fc_u_avx2_fma, volk_16i_32fc_dot_prod_32fc_u_avx2, volk_16i_32fc_dot_prod_32fc_a_sse, volk_16i_32fc_dot_prod_32fc_a_avx2, volk_16i_32fc_dot_prod_32fc_a_avx2_fma},
    7,

    "volk_16i_branch_4_state_8",
    {"a_ssse3", "generic"},
    {(1 << LV_SSSE3), (1 << LV_GENERIC)},
    {true, false},
    {volk_16i_branch_4_state_8_a_ssse3, volk_16i_branch_4_state_8_generic},
    2,

    "volk_16i_convert_8i",
    {"u_avx2", "u_sse2", "generic", "a_avx2", "a_sse2"},
    {(1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSE2)},
    {false, false, false, true, true},
    {volk_16i_convert_8i_u_avx2, volk_16i_convert_8i_u_sse2, volk_16i_convert_8i_generic, volk_16i_convert_8i_a_avx2, volk_16i_convert_8i_a_sse2},
    5,

    "volk_16i_max_star_16i",
    {"a_ssse3", "generic"},
    {(1 << LV_SSSE3), (1 << LV_GENERIC)},
    {true, false},
    {volk_16i_max_star_16i_a_ssse3, volk_16i_max_star_16i_generic},
    2,

    "volk_16i_max_star_horizontal_16i",
    {"a_ssse3", "generic"},
    {(1 << LV_SSSE3), (1 << LV_GENERIC)},
    {true, false},
    {volk_16i_max_star_horizontal_16i_a_ssse3, volk_16i_max_star_horizontal_16i_generic},
    2,

    "volk_16i_permute_and_scalar_add",
    {"a_sse2", "generic"},
    {(1 << LV_SSE2), (1 << LV_GENERIC)},
    {true, false},
    {volk_16i_permute_and_scalar_add_a_sse2, volk_16i_permute_and_scalar_add_generic},
    2,

    "volk_16i_s32f_convert_32f",
    {"u_avx2", "u_avx512", "u_avx", "u_sse4_1", "u_sse", "generic", "a_avx2", "a_avx512", "a_avx", "a_sse4_1", "a_sse"},
    {(1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_SSE)},
    {false, false, false, false, false, false, true, true, true, true, true},
    {volk_16i_s32f_convert_32f_u_avx2, volk_16i_s32f_convert_32f_u_avx512, volk_16i_s32f_convert_32f_u_avx, volk_16i_s32f_convert_32f_u_sse4_1, volk_16i_s32f_convert_32f_u_sse, volk_16i_s32f_convert_32f_generic, volk_16i_s32f_convert_32f_a_avx2, volk_16i_s32f_convert_32f_a_avx512, volk_16i_s32f_convert_32f_a_avx, volk_16i_s32f_convert_32f_a_sse4_1, volk_16i_s32f_convert_32f_a_sse},
    11,

    "volk_16i_x2_add_saturated_16i",
    {"generic", "u_sse2", "u_avx2", "a_sse2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_16i_x2_add_saturated_16i_generic, volk_16i_x2_add_saturated_16i_u_sse2, volk_16i_x2_add_saturated_16i_u_avx2, volk_16i_x2_add_saturated_16i_a_sse2, volk_16i_x2_add_saturated_16i_a_avx2},
    5,

    "volk_16i_x4_quad_max_star_16i",
    {"a_sse2", "generic"},
    {(1 << LV_SSE2), (1 << LV_GENERIC)},
    {true, false},
    {volk_16i_x4_quad_max_star_16i_a_sse2, volk_16i_x4_quad_max_star_16i_generic},
    2,

    "volk_16i_x5_add_quad_16i_x4",
    {"a_sse2", "generic"},
    {(1 << LV_SSE2), (1 << LV_GENERIC)},
    {true, false},
    {volk_16i_x5_add_quad_16i_x4_a_sse2, volk_16i_x5_add_quad_16i_x4_generic},
    2,

    "volk_16ic_convert_32fc",
    {"a_avx2", "a_avx512", "generic", "a_sse2", "a_avx", "u_avx2", "u_avx512", "u_sse2", "u_avx"},
    {(1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE2), (1 << LV_AVX)},
    {true, true, false, true, true, false, false, false, false},
    {volk_16ic_convert_32fc_a_avx2, volk_16ic_convert_32fc_a_avx512, volk_16ic_convert_32fc_generic, volk_16ic_convert_32fc_a_sse2, volk_16ic_convert_32fc_a_avx, volk_16ic_convert_32fc_u_avx2, volk_16ic_convert_32fc_u_avx512, volk_16ic_convert_32fc_u_sse2, volk_16ic_convert_32fc_u_avx},
    9,

    "volk_16ic_deinterleave_16i_x2",
    {"a_avx2", "a_ssse3", "a_sse2", "generic", "u_orc", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX2)},
    {true, true, true, false, false, false},
    {volk_16ic_deinterleave_16i_x2_a_avx2, volk_16ic_deinterleave_16i_x2_a_ssse3, volk_16ic_deinterleave_16i_x2_a_sse2, volk_16ic_deinterleave_16i_x2_generic, volk_16ic_deinterleave_16i_x2_u_orc, volk_16ic_deinterleave_16i_x2_u_avx2},
    6,

    "volk_16ic_deinterleave_real_16i",
    {"a_avx2", "a_ssse3", "a_sse2", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_16ic_deinterleave_real_16i_a_avx2, volk_16ic_deinterleave_real_16i_a_ssse3, volk_16ic_deinterleave_real_16i_a_sse2, volk_16ic_deinterleave_real_16i_generic, volk_16ic_deinterleave_real_16i_u_avx2},
    5,

    "volk_16ic_deinterleave_real_8i",
    {"a_avx2", "a_ssse3", "generic", "u_orc", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX2)},
    {true, true, false, false, false},
    {volk_16ic_deinterleave_real_8i_a_avx2, volk_16ic_deinterleave_real_8i_a_ssse3, volk_16ic_deinterleave_real_8i_generic, volk_16ic_deinterleave_real_8i_u_orc, volk_16ic_deinterleave_real_8i_u_avx2},
    5,

    "volk_16ic_magnitude_16i",
    {"a_avx2", "a_sse3", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_16ic_magnitude_16i_a_avx2, volk_16ic_magnitude_16i_a_sse3, volk_16ic_magnitude_16i_a_sse, volk_16ic_magnitude_16i_generic, volk_16ic_magnitude_16i_u_avx2},
    5,

    "volk_16ic_s32f_deinterleave_32f_x2",
    {"a_avx2", "a_sse", "generic", "u_orc", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX2)},
    {true, true, false, false, false},
    {volk_16ic_s32f_deinterleave_32f_x2_a_avx2, volk_16ic_s32f_deinterleave_32f_x2_a_sse, volk_16ic_s32f_deinterleave_32f_x2_generic, volk_16ic_s32f_deinterleave_32f_x2_u_orc, volk_16ic_s32f_deinterleave_32f_x2_u_avx2},
    5,

    "volk_16ic_s32f_deinterleave_real_32f",
    {"a_avx2", "a_sse4_1", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_16ic_s32f_deinterleave_real_32f_a_avx2, volk_16ic_s32f_deinterleave_real_32f_a_sse4_1, volk_16ic_s32f_deinterleave_real_32f_a_sse, volk_16ic_s32f_deinterleave_real_32f_generic, volk_16ic_s32f_deinterleave_real_32f_u_avx2},
    5,

    "volk_16ic_s32f_magnitude_32f",
    {"a_avx2", "a_sse3", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_16ic_s32f_magnitude_32f_a_avx2, volk_16ic_s32f_magnitude_32f_a_sse3, volk_16ic_s32f_magnitude_32f_a_sse, volk_16ic_s32f_magnitude_32f_generic, volk_16ic_s32f_magnitude_32f_u_avx2},
    5,

    "volk_16ic_x2_dot_prod_16ic",
    {"generic", "a_sse2", "u_sse2", "u_avx2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_AVX2)},
    {false, true, false, false, true},
    {volk_16ic_x2_dot_prod_16ic_generic, volk_16ic_x2_dot_prod_16ic_a_sse2, volk_16ic_x2_dot_prod_16ic_u_sse2, volk_16ic_x2_dot_prod_16ic_u_avx2, volk_16ic_x2_dot_prod_16ic_a_avx2},
    5,

    "volk_16ic_x2_multiply_16ic",
    {"generic", "a_sse2", "u_sse2", "u_avx2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_AVX2)},
    {false, true, false, false, true},
    {volk_16ic_x2_multiply_16ic_generic, volk_16ic_x2_multiply_16ic_a_sse2, volk_16ic_x2_multiply_16ic_u_sse2, volk_16ic_x2_multiply_16ic_u_avx2, volk_16ic_x2_multiply_16ic_a_avx2},
    5,

    "volk_16u_byteswap",
    {"generic", "a_avx2", "u_avx2", "u_sse2", "a_sse2", "u_orc"},
    {(1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_ORC)},
    {false, true, false, false, true, false},
    {volk_16u_byteswap_generic, volk_16u_byteswap_a_avx2, volk_16u_byteswap_u_avx2, volk_16u_byteswap_u_sse2, volk_16u_byteswap_a_sse2, volk_16u_byteswap_u_orc},
    6,

    "volk_16u_byteswappuppet_16u",
    {"generic", "u_sse2", "a_sse2", "u_avx2", "a_avx2", "u_orc"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_ORC)},
    {false, false, true, false, true, false},
    {volk_16u_byteswappuppet_16u_generic, volk_16u_byteswappuppet_16u_u_sse2, volk_16u_byteswappuppet_16u_a_sse2, volk_16u_byteswappuppet_16u_u_avx2, volk_16u_byteswappuppet_16u_a_avx2, volk_16u_byteswappuppet_16u_u_orc},
    6,

    "volk_16u_x2_add_saturated_16u",
    {"generic", "u_sse2", "u_avx2", "a_sse2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_16u_x2_add_saturated_16u_generic, volk_16u_x2_add_saturated_16u_u_sse2, volk_16u_x2_add_saturated_16u_u_avx2, volk_16u_x2_add_saturated_16u_a_sse2, volk_16u_x2_add_saturated_16u_a_avx2},
    5,

    "volk_32f_64f_add_64f",
    {"generic", "u_avx", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX)},
    {false, false, true},
    {volk_32f_64f_add_64f_generic, volk_32f_64f_add_64f_u_avx, volk_32f_64f_add_64f_a_avx},
    3,

    "volk_32f_64f_multiply_64f",
    {"generic", "u_avx", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX)},
    {false, false, true},
    {volk_32f_64f_multiply_64f_generic, volk_32f_64f_multiply_64f_u_avx, volk_32f_64f_multiply_64f_a_avx},
    3,

    "volk_32f_8u_polarbutterfly_32f",
    {"generic", "u_avx", "u_avx2"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX2)},
    {false, false, false},
    {volk_32f_8u_polarbutterfly_32f_generic, volk_32f_8u_polarbutterfly_32f_u_avx, volk_32f_8u_polarbutterfly_32f_u_avx2},
    3,

    "volk_32f_8u_polarbutterflypuppet_32f",
    {"generic", "u_avx", "u_avx2"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX2)},
    {false, false, false},
    {volk_32f_8u_polarbutterflypuppet_32f_generic, volk_32f_8u_polarbutterflypuppet_32f_u_avx, volk_32f_8u_polarbutterflypuppet_32f_u_avx2},
    3,

    "volk_32f_accumulator_s32f",
    {"a_avx512f", "a_avx", "u_avx512f", "u_avx", "a_sse", "u_sse", "generic"},
    {(1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_SSE), (1 << LV_GENERIC)},
    {true, true, false, false, true, false, false},
    {volk_32f_accumulator_s32f_a_avx512f, volk_32f_accumulator_s32f_a_avx, volk_32f_accumulator_s32f_u_avx512f, volk_32f_accumulator_s32f_u_avx, volk_32f_accumulator_s32f_a_sse, volk_32f_accumulator_s32f_u_sse, volk_32f_accumulator_s32f_generic},
    7,

    "volk_32f_acos_32f",
    {"generic", "a_sse4_1", "a_avx", "a_avx2_fma", "a_avx512", "u_sse4_1", "u_avx", "u_avx2_fma", "u_avx512"},
    {(1 << LV_GENERIC), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {false, true, true, true, true, false, false, false, false},
    {volk_32f_acos_32f_generic, volk_32f_acos_32f_a_sse4_1, volk_32f_acos_32f_a_avx, volk_32f_acos_32f_a_avx2_fma, volk_32f_acos_32f_a_avx512, volk_32f_acos_32f_u_sse4_1, volk_32f_acos_32f_u_avx, volk_32f_acos_32f_u_avx2_fma, volk_32f_acos_32f_u_avx512},
    9,

    "volk_32f_asin_32f",
    {"generic", "a_sse4_1", "a_avx", "a_avx2_fma", "a_avx512", "u_sse4_1", "u_avx", "u_avx2_fma", "u_avx512"},
    {(1 << LV_GENERIC), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {false, true, true, true, true, false, false, false, false},
    {volk_32f_asin_32f_generic, volk_32f_asin_32f_a_sse4_1, volk_32f_asin_32f_a_avx, volk_32f_asin_32f_a_avx2_fma, volk_32f_asin_32f_a_avx512, volk_32f_asin_32f_u_sse4_1, volk_32f_asin_32f_u_avx, volk_32f_asin_32f_u_avx2_fma, volk_32f_asin_32f_u_avx512},
    9,

    "volk_32f_atan_32f",
    {"generic", "polynomial", "a_avx2_fma", "a_avx2", "a_sse4_1", "u_avx2_fma", "u_avx2", "u_sse4_1"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE4_1)},
    {false, false, true, true, true, false, false, false},
    {volk_32f_atan_32f_generic, volk_32f_atan_32f_polynomial, volk_32f_atan_32f_a_avx2_fma, volk_32f_atan_32f_a_avx2, volk_32f_atan_32f_a_sse4_1, volk_32f_atan_32f_u_avx2_fma, volk_32f_atan_32f_u_avx2, volk_32f_atan_32f_u_sse4_1},
    8,

    "volk_32f_binary_slicer_32i",
    {"generic", "generic_branchless", "a_sse2", "a_avx", "u_sse2", "u_avx"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_AVX)},
    {false, false, true, true, false, false},
    {volk_32f_binary_slicer_32i_generic, volk_32f_binary_slicer_32i_generic_branchless, volk_32f_binary_slicer_32i_a_sse2, volk_32f_binary_slicer_32i_a_avx, volk_32f_binary_slicer_32i_u_sse2, volk_32f_binary_slicer_32i_u_avx},
    6,

    "volk_32f_binary_slicer_8i",
    {"generic", "generic_branchless", "a_avx2", "u_avx2", "a_sse2", "u_sse2"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_SSE2)},
    {false, false, true, false, true, false},
    {volk_32f_binary_slicer_8i_generic, volk_32f_binary_slicer_8i_generic_branchless, volk_32f_binary_slicer_8i_a_avx2, volk_32f_binary_slicer_8i_u_avx2, volk_32f_binary_slicer_8i_a_sse2, volk_32f_binary_slicer_8i_u_sse2},
    6,

    "volk_32f_convert_64f",
    {"u_avx", "u_sse2", "generic", "a_avx", "a_sse2"},
    {(1 << LV_AVX), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE2)},
    {false, false, false, true, true},
    {volk_32f_convert_64f_u_avx, volk_32f_convert_64f_u_sse2, volk_32f_convert_64f_generic, volk_32f_convert_64f_a_avx, volk_32f_convert_64f_a_sse2},
    5,

    "volk_32f_cos_32f",
    {"generic", "polynomial", "a_avx512f", "a_avx2_fma", "a_avx2", "a_sse4_1", "u_avx512f", "u_avx2_fma", "u_avx2", "u_sse4_1"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1)},
    {false, false, true, true, true, true, false, false, false, false},
    {volk_32f_cos_32f_generic, volk_32f_cos_32f_polynomial, volk_32f_cos_32f_a_avx512f, volk_32f_cos_32f_a_avx2_fma, volk_32f_cos_32f_a_avx2, volk_32f_cos_32f_a_sse4_1, volk_32f_cos_32f_u_avx512f, volk_32f_cos_32f_u_avx2_fma, volk_32f_cos_32f_u_avx2, volk_32f_cos_32f_u_sse4_1},
    10,

    "volk_32f_exp_32f",
    {"a_sse2", "u_sse2", "generic"},
    {(1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_GENERIC)},
    {true, false, false},
    {volk_32f_exp_32f_a_sse2, volk_32f_exp_32f_u_sse2, volk_32f_exp_32f_generic},
    3,

    "volk_32f_expfast_32f",
    {"a_avx_fma", "a_avx", "a_sse4_1", "u_avx_fma", "u_avx", "u_sse4_1", "generic"},
    {(1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_GENERIC)},
    {true, true, true, false, false, false, false},
    {volk_32f_expfast_32f_a_avx_fma, volk_32f_expfast_32f_a_avx, volk_32f_expfast_32f_a_sse4_1, volk_32f_expfast_32f_u_avx_fma, volk_32f_expfast_32f_u_avx, volk_32f_expfast_32f_u_sse4_1, volk_32f_expfast_32f_generic},
    7,

    "volk_32f_index_max_16u",
    {"a_avx", "a_sse4_1", "a_sse", "generic", "a_avx512f", "u_avx", "u_avx512f"},
    {(1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false},
    {volk_32f_index_max_16u_a_avx, volk_32f_index_max_16u_a_sse4_1, volk_32f_index_max_16u_a_sse, volk_32f_index_max_16u_generic, volk_32f_index_max_16u_a_avx512f, volk_32f_index_max_16u_u_avx, volk_32f_index_max_16u_u_avx512f},
    7,

    "volk_32f_index_max_32u",
    {"a_sse4_1", "a_sse", "a_avx", "generic", "a_avx512f", "u_avx", "u_sse4_1", "u_sse", "u_avx512f"},
    {(1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false, false, false},
    {volk_32f_index_max_32u_a_sse4_1, volk_32f_index_max_32u_a_sse, volk_32f_index_max_32u_a_avx, volk_32f_index_max_32u_generic, volk_32f_index_max_32u_a_avx512f, volk_32f_index_max_32u_u_avx, volk_32f_index_max_32u_u_sse4_1, volk_32f_index_max_32u_u_sse, volk_32f_index_max_32u_u_avx512f},
    9,

    "volk_32f_index_min_16u",
    {"a_avx", "a_sse4_1", "a_sse", "generic", "a_avx512f", "u_avx", "u_avx512f"},
    {(1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false},
    {volk_32f_index_min_16u_a_avx, volk_32f_index_min_16u_a_sse4_1, volk_32f_index_min_16u_a_sse, volk_32f_index_min_16u_generic, volk_32f_index_min_16u_a_avx512f, volk_32f_index_min_16u_u_avx, volk_32f_index_min_16u_u_avx512f},
    7,

    "volk_32f_index_min_32u",
    {"a_sse4_1", "a_sse", "a_avx", "generic", "a_avx512f", "u_avx", "u_sse4_1", "u_sse", "u_avx512f"},
    {(1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false, false, false},
    {volk_32f_index_min_32u_a_sse4_1, volk_32f_index_min_32u_a_sse, volk_32f_index_min_32u_a_avx, volk_32f_index_min_32u_generic, volk_32f_index_min_32u_a_avx512f, volk_32f_index_min_32u_u_avx, volk_32f_index_min_32u_u_sse4_1, volk_32f_index_min_32u_u_sse, volk_32f_index_min_32u_u_avx512f},
    9,

    "volk_32f_invsqrt_32f",
    {"generic", "recip_sqrt", "Q_rsqrt", "a_sse", "a_avx", "a_avx2", "a_avx512f", "u_sse", "u_avx", "u_avx2", "u_avx512f"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {false, false, false, true, true, true, true, false, false, false, false},
    {volk_32f_invsqrt_32f_generic, volk_32f_invsqrt_32f_recip_sqrt, volk_32f_invsqrt_32f_Q_rsqrt, volk_32f_invsqrt_32f_a_sse, volk_32f_invsqrt_32f_a_avx, volk_32f_invsqrt_32f_a_avx2, volk_32f_invsqrt_32f_a_avx512f, volk_32f_invsqrt_32f_u_sse, volk_32f_invsqrt_32f_u_avx, volk_32f_invsqrt_32f_u_avx2, volk_32f_invsqrt_32f_u_avx512f},
    11,

    "volk_32f_log2_32f",
    {"generic", "u_sse4_1", "a_sse4_1", "u_avx2", "a_avx2", "u_avx2_fma", "a_avx2_fma", "u_avx512", "a_avx512"},
    {(1 << LV_GENERIC), (1 << LV_SSE4_1), (1 << LV_SSE4_1), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_AVX512F)},
    {false, false, true, false, true, false, true, false, true},
    {volk_32f_log2_32f_generic, volk_32f_log2_32f_u_sse4_1, volk_32f_log2_32f_a_sse4_1, volk_32f_log2_32f_u_avx2, volk_32f_log2_32f_a_avx2, volk_32f_log2_32f_u_avx2_fma, volk_32f_log2_32f_a_avx2_fma, volk_32f_log2_32f_u_avx512, volk_32f_log2_32f_a_avx512},
    9,

    "volk_32f_null_32f",
    {"generic"},
    {(1 << LV_GENERIC)},
    {false},
    {volk_32f_null_32f_generic},
    1,

    "volk_32f_reciprocal_32f",
    {"generic", "a_sse", "a_avx", "a_avx512", "u_sse", "u_avx", "u_avx512"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_AVX512F), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_AVX512F)},
    {false, true, true, true, false, false, false},
    {volk_32f_reciprocal_32f_generic, volk_32f_reciprocal_32f_a_sse, volk_32f_reciprocal_32f_a_avx, volk_32f_reciprocal_32f_a_avx512, volk_32f_reciprocal_32f_u_sse, volk_32f_reciprocal_32f_u_avx, volk_32f_reciprocal_32f_u_avx512},
    7,

    "volk_32f_s32f_32f_fm_detect_32f",
    {"a_avx", "a_sse", "generic", "u_avx"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX)},
    {true, true, false, false},
    {volk_32f_s32f_32f_fm_detect_32f_a_avx, volk_32f_s32f_32f_fm_detect_32f_a_sse, volk_32f_s32f_32f_fm_detect_32f_generic, volk_32f_s32f_32f_fm_detect_32f_u_avx},
    4,

    "volk_32f_s32f_add_32f",
    {"generic", "u_sse", "u_avx", "a_sse", "a_avx", "u_orc"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_ORC)},
    {false, false, false, true, true, false},
    {volk_32f_s32f_add_32f_generic, volk_32f_s32f_add_32f_u_sse, volk_32f_s32f_add_32f_u_avx, volk_32f_s32f_add_32f_a_sse, volk_32f_s32f_add_32f_a_avx, volk_32f_s32f_add_32f_u_orc},
    6,

    "volk_32f_s32f_calc_spectral_noise_floor_32f",
    {"a_avx", "a_sse", "generic", "u_avx"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX)},
    {true, true, false, false},
    {volk_32f_s32f_calc_spectral_noise_floor_32f_a_avx, volk_32f_s32f_calc_spectral_noise_floor_32f_a_sse, volk_32f_s32f_calc_spectral_noise_floor_32f_generic, volk_32f_s32f_calc_spectral_noise_floor_32f_u_avx},
    4,

    "volk_32f_s32f_clamppuppet_32f",
    {"generic", "a_avx2", "a_sse4_1", "u_avx2", "u_sse4_1"},
    {(1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX2), (1 << LV_SSE4_1)},
    {false, true, true, false, false},
    {volk_32f_s32f_clamppuppet_32f_generic, volk_32f_s32f_clamppuppet_32f_a_avx2, volk_32f_s32f_clamppuppet_32f_a_sse4_1, volk_32f_s32f_clamppuppet_32f_u_avx2, volk_32f_s32f_clamppuppet_32f_u_sse4_1},
    5,

    "volk_32f_s32f_convert_16i",
    {"u_avx2", "u_avx512", "u_avx", "u_sse2", "u_sse", "generic", "a_avx2", "a_avx512", "a_avx", "a_sse2", "a_sse"},
    {(1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_SSE)},
    {false, false, false, false, false, false, true, true, true, true, true},
    {volk_32f_s32f_convert_16i_u_avx2, volk_32f_s32f_convert_16i_u_avx512, volk_32f_s32f_convert_16i_u_avx, volk_32f_s32f_convert_16i_u_sse2, volk_32f_s32f_convert_16i_u_sse, volk_32f_s32f_convert_16i_generic, volk_32f_s32f_convert_16i_a_avx2, volk_32f_s32f_convert_16i_a_avx512, volk_32f_s32f_convert_16i_a_avx, volk_32f_s32f_convert_16i_a_sse2, volk_32f_s32f_convert_16i_a_sse},
    11,

    "volk_32f_s32f_convert_32i",
    {"u_avx", "u_sse2", "u_sse", "generic", "a_avx", "a_sse2", "a_sse"},
    {(1 << LV_AVX), (1 << LV_SSE2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_SSE)},
    {false, false, false, false, true, true, true},
    {volk_32f_s32f_convert_32i_u_avx, volk_32f_s32f_convert_32i_u_sse2, volk_32f_s32f_convert_32i_u_sse, volk_32f_s32f_convert_32i_generic, volk_32f_s32f_convert_32i_a_avx, volk_32f_s32f_convert_32i_a_sse2, volk_32f_s32f_convert_32i_a_sse},
    7,

    "volk_32f_s32f_convert_8i",
    {"generic", "u_avx2", "u_avx512", "u_sse2", "u_sse", "a_avx2", "a_avx512", "a_sse2", "a_sse"},
    {(1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE2), (1 << LV_SSE), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE2), (1 << LV_SSE)},
    {false, false, false, false, false, true, true, true, true},
    {volk_32f_s32f_convert_8i_generic, volk_32f_s32f_convert_8i_u_avx2, volk_32f_s32f_convert_8i_u_avx512, volk_32f_s32f_convert_8i_u_sse2, volk_32f_s32f_convert_8i_u_sse, volk_32f_s32f_convert_8i_a_avx2, volk_32f_s32f_convert_8i_a_avx512, volk_32f_s32f_convert_8i_a_sse2, volk_32f_s32f_convert_8i_a_sse},
    9,

    "volk_32f_s32f_convertpuppet_8u",
    {"generic", "u_avx2_fma", "a_avx2_fma", "u_avx2", "a_avx2", "u_sse2", "a_sse2", "u_sse", "a_sse"},
    {(1 << LV_GENERIC), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_SSE), (1 << LV_SSE)},
    {false, false, true, false, true, false, true, false, true},
    {volk_32f_s32f_convertpuppet_8u_generic, volk_32f_s32f_convertpuppet_8u_u_avx2_fma, volk_32f_s32f_convertpuppet_8u_a_avx2_fma, volk_32f_s32f_convertpuppet_8u_u_avx2, volk_32f_s32f_convertpuppet_8u_a_avx2, volk_32f_s32f_convertpuppet_8u_u_sse2, volk_32f_s32f_convertpuppet_8u_a_sse2, volk_32f_s32f_convertpuppet_8u_u_sse, volk_32f_s32f_convertpuppet_8u_a_sse},
    9,

    "volk_32f_s32f_mod_rangepuppet_32f",
    {"generic", "u_sse", "a_sse", "u_sse2", "a_sse2", "u_avx", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_SSE), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_AVX)},
    {false, false, true, false, true, false, true},
    {volk_32f_s32f_mod_rangepuppet_32f_generic, volk_32f_s32f_mod_rangepuppet_32f_u_sse, volk_32f_s32f_mod_rangepuppet_32f_a_sse, volk_32f_s32f_mod_rangepuppet_32f_u_sse2, volk_32f_s32f_mod_rangepuppet_32f_a_sse2, volk_32f_s32f_mod_rangepuppet_32f_u_avx, volk_32f_s32f_mod_rangepuppet_32f_a_avx},
    7,

    "volk_32f_s32f_multiply_32f",
    {"generic", "u_sse", "u_avx", "a_sse", "a_avx", "u_orc"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_ORC)},
    {false, false, false, true, true, false},
    {volk_32f_s32f_multiply_32f_generic, volk_32f_s32f_multiply_32f_u_sse, volk_32f_s32f_multiply_32f_u_avx, volk_32f_s32f_multiply_32f_a_sse, volk_32f_s32f_multiply_32f_a_avx, volk_32f_s32f_multiply_32f_u_orc},
    6,

    "volk_32f_s32f_normalize",
    {"a_avx", "a_sse", "generic", "u_orc", "u_avx"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX)},
    {true, true, false, false, false},
    {volk_32f_s32f_normalize_a_avx, volk_32f_s32f_normalize_a_sse, volk_32f_s32f_normalize_generic, volk_32f_s32f_normalize_u_orc, volk_32f_s32f_normalize_u_avx},
    5,

    "volk_32f_s32f_power_32f",
    {"generic"},
    {(1 << LV_GENERIC)},
    {false},
    {volk_32f_s32f_power_32f_generic},
    1,

    "volk_32f_s32f_s32f_mod_range_32f",
    {"generic", "u_avx", "u_sse2", "u_sse"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_SSE)},
    {false, false, false, false},
    {volk_32f_s32f_s32f_mod_range_32f_generic, volk_32f_s32f_s32f_mod_range_32f_u_avx, volk_32f_s32f_s32f_mod_range_32f_u_sse2, volk_32f_s32f_s32f_mod_range_32f_u_sse},
    4,

    "volk_32f_s32f_stddev_32f",
    {"a_sse4_1", "a_sse", "a_avx", "generic", "u_avx"},
    {(1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX)},
    {true, true, true, false, false},
    {volk_32f_s32f_stddev_32f_a_sse4_1, volk_32f_s32f_stddev_32f_a_sse, volk_32f_s32f_stddev_32f_a_avx, volk_32f_s32f_stddev_32f_generic, volk_32f_s32f_stddev_32f_u_avx},
    5,

    "volk_32f_s32f_x2_clamp_32f",
    {"generic", "a_avx2", "a_sse4_1", "u_avx2", "u_sse4_1"},
    {(1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX2), (1 << LV_SSE4_1)},
    {false, true, true, false, false},
    {volk_32f_s32f_x2_clamp_32f_generic, volk_32f_s32f_x2_clamp_32f_a_avx2, volk_32f_s32f_x2_clamp_32f_a_sse4_1, volk_32f_s32f_x2_clamp_32f_u_avx2, volk_32f_s32f_x2_clamp_32f_u_sse4_1},
    5,

    "volk_32f_s32f_x2_convert_8u",
    {"generic", "u_avx2_fma", "u_avx2", "u_sse2", "u_sse", "a_avx2_fma", "a_avx2", "a_sse2", "a_sse"},
    {(1 << LV_GENERIC), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_SSE), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_SSE)},
    {false, false, false, false, false, true, true, true, true},
    {volk_32f_s32f_x2_convert_8u_generic, volk_32f_s32f_x2_convert_8u_u_avx2_fma, volk_32f_s32f_x2_convert_8u_u_avx2, volk_32f_s32f_x2_convert_8u_u_sse2, volk_32f_s32f_x2_convert_8u_u_sse, volk_32f_s32f_x2_convert_8u_a_avx2_fma, volk_32f_s32f_x2_convert_8u_a_avx2, volk_32f_s32f_x2_convert_8u_a_sse2, volk_32f_s32f_x2_convert_8u_a_sse},
    9,

    "volk_32f_sin_32f",
    {"polynomial", "a_avx512f", "a_avx2_fma", "a_avx2", "a_sse4_1", "u_avx512f", "u_avx2_fma", "u_avx2", "u_sse4_1", "generic"},
    {(1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC)},
    {false, true, true, true, true, false, false, false, false, false},
    {volk_32f_sin_32f_polynomial, volk_32f_sin_32f_a_avx512f, volk_32f_sin_32f_a_avx2_fma, volk_32f_sin_32f_a_avx2, volk_32f_sin_32f_a_sse4_1, volk_32f_sin_32f_u_avx512f, volk_32f_sin_32f_u_avx2_fma, volk_32f_sin_32f_u_avx2, volk_32f_sin_32f_u_sse4_1, volk_32f_sin_32f_generic},
    10,

    "volk_32f_sincos_32f_x2",
    {"generic", "polynomial", "a_avx512f", "a_avx2_fma", "a_avx2", "a_sse4_1", "u_avx512f", "u_avx2_fma", "u_avx2", "u_sse4_1"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1)},
    {false, false, true, true, true, true, false, false, false, false},
    {volk_32f_sincos_32f_x2_generic, volk_32f_sincos_32f_x2_polynomial, volk_32f_sincos_32f_x2_a_avx512f, volk_32f_sincos_32f_x2_a_avx2_fma, volk_32f_sincos_32f_x2_a_avx2, volk_32f_sincos_32f_x2_a_sse4_1, volk_32f_sincos_32f_x2_u_avx512f, volk_32f_sincos_32f_x2_u_avx2_fma, volk_32f_sincos_32f_x2_u_avx2, volk_32f_sincos_32f_x2_u_sse4_1},
    10,

    "volk_32f_sqrt_32f",
    {"generic", "a_sse", "a_avx512", "a_avx2", "a_avx", "u_sse", "u_avx512", "u_avx2", "u_avx"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_AVX)},
    {false, true, true, true, true, false, false, false, false},
    {volk_32f_sqrt_32f_generic, volk_32f_sqrt_32f_a_sse, volk_32f_sqrt_32f_a_avx512, volk_32f_sqrt_32f_a_avx2, volk_32f_sqrt_32f_a_avx, volk_32f_sqrt_32f_u_sse, volk_32f_sqrt_32f_u_avx512, volk_32f_sqrt_32f_u_avx2, volk_32f_sqrt_32f_u_avx},
    9,

    "volk_32f_stddev_and_mean_32f_x2",
    {"generic", "u_sse", "u_avx", "a_sse", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX)},
    {false, false, false, true, true},
    {volk_32f_stddev_and_mean_32f_x2_generic, volk_32f_stddev_and_mean_32f_x2_u_sse, volk_32f_stddev_and_mean_32f_x2_u_avx, volk_32f_stddev_and_mean_32f_x2_a_sse, volk_32f_stddev_and_mean_32f_x2_a_avx},
    5,

    "volk_32f_tan_32f",
    {"a_avx2_fma", "a_avx2", "a_sse4_1", "u_avx2_fma", "u_avx2", "u_sse4_1", "generic"},
    {(1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC)},
    {true, true, true, false, false, false, false},
    {volk_32f_tan_32f_a_avx2_fma, volk_32f_tan_32f_a_avx2, volk_32f_tan_32f_a_sse4_1, volk_32f_tan_32f_u_avx2_fma, volk_32f_tan_32f_u_avx2, volk_32f_tan_32f_u_sse4_1, volk_32f_tan_32f_generic},
    7,

    "volk_32f_tanh_32f",
    {"generic", "series", "a_sse", "a_avx", "a_avx_fma", "u_sse", "u_avx", "u_avx_fma"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_AVX) | (1 << LV_FMA)},
    {false, false, true, true, true, false, false, false},
    {volk_32f_tanh_32f_generic, volk_32f_tanh_32f_series, volk_32f_tanh_32f_a_sse, volk_32f_tanh_32f_a_avx, volk_32f_tanh_32f_a_avx_fma, volk_32f_tanh_32f_u_sse, volk_32f_tanh_32f_u_avx, volk_32f_tanh_32f_u_avx_fma},
    8,

    "volk_32f_x2_add_32f",
    {"u_avx512f", "u_avx", "u_sse", "generic", "a_avx512f", "a_avx", "a_sse", "u_orc"},
    {(1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_ORC)},
    {false, false, false, false, true, true, true, false},
    {volk_32f_x2_add_32f_u_avx512f, volk_32f_x2_add_32f_u_avx, volk_32f_x2_add_32f_u_sse, volk_32f_x2_add_32f_generic, volk_32f_x2_add_32f_a_avx512f, volk_32f_x2_add_32f_a_avx, volk_32f_x2_add_32f_a_sse, volk_32f_x2_add_32f_u_orc},
    8,

    "volk_32f_x2_divide_32f",
    {"a_avx512f", "a_avx", "a_sse", "generic", "u_orc", "u_avx512f", "u_avx"},
    {(1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX512F), (1 << LV_AVX)},
    {true, true, true, false, false, false, false},
    {volk_32f_x2_divide_32f_a_avx512f, volk_32f_x2_divide_32f_a_avx, volk_32f_x2_divide_32f_a_sse, volk_32f_x2_divide_32f_generic, volk_32f_x2_divide_32f_u_orc, volk_32f_x2_divide_32f_u_avx512f, volk_32f_x2_divide_32f_u_avx},
    7,

    "volk_32f_x2_dot_prod_16i",
    {"generic", "a_sse", "a_avx2_fma", "a_avx", "a_avx512f", "u_sse", "u_avx2_fma", "u_avx", "u_avx512f"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_AVX512F), (1 << LV_SSE), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_AVX512F)},
    {false, true, true, true, true, false, false, false, false},
    {volk_32f_x2_dot_prod_16i_generic, volk_32f_x2_dot_prod_16i_a_sse, volk_32f_x2_dot_prod_16i_a_avx2_fma, volk_32f_x2_dot_prod_16i_a_avx, volk_32f_x2_dot_prod_16i_a_avx512f, volk_32f_x2_dot_prod_16i_u_sse, volk_32f_x2_dot_prod_16i_u_avx2_fma, volk_32f_x2_dot_prod_16i_u_avx, volk_32f_x2_dot_prod_16i_u_avx512f},
    9,

    "volk_32f_x2_dot_prod_32f",
    {"generic", "u_sse", "u_sse3", "u_sse4_1", "u_avx", "u_avx2_fma", "u_avx512f", "a_sse", "a_sse3", "a_sse4_1", "a_avx", "a_avx2_fma", "a_avx512f"},
    {(1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_SSE3), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE), (1 << LV_SSE3), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F)},
    {false, false, false, false, false, false, false, true, true, true, true, true, true},
    {volk_32f_x2_dot_prod_32f_generic, volk_32f_x2_dot_prod_32f_u_sse, volk_32f_x2_dot_prod_32f_u_sse3, volk_32f_x2_dot_prod_32f_u_sse4_1, volk_32f_x2_dot_prod_32f_u_avx, volk_32f_x2_dot_prod_32f_u_avx2_fma, volk_32f_x2_dot_prod_32f_u_avx512f, volk_32f_x2_dot_prod_32f_a_sse, volk_32f_x2_dot_prod_32f_a_sse3, volk_32f_x2_dot_prod_32f_a_sse4_1, volk_32f_x2_dot_prod_32f_a_avx, volk_32f_x2_dot_prod_32f_a_avx2_fma, volk_32f_x2_dot_prod_32f_a_avx512f},
    13,

    "volk_32f_x2_fm_detectpuppet_32f",
    {"a_avx", "a_sse", "generic", "u_avx"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX)},
    {true, true, false, false},
    {volk_32f_x2_fm_detectpuppet_32f_a_avx, volk_32f_x2_fm_detectpuppet_32f_a_sse, volk_32f_x2_fm_detectpuppet_32f_generic, volk_32f_x2_fm_detectpuppet_32f_u_avx},
    4,

    "volk_32f_x2_interleave_32fc",
    {"a_avx", "a_sse", "generic", "u_avx"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX)},
    {true, true, false, false},
    {volk_32f_x2_interleave_32fc_a_avx, volk_32f_x2_interleave_32fc_a_sse, volk_32f_x2_interleave_32fc_generic, volk_32f_x2_interleave_32fc_u_avx},
    4,

    "volk_32f_x2_max_32f",
    {"a_avx512f", "a_sse", "a_avx", "generic", "u_orc", "u_avx512f", "u_avx"},
    {(1 << LV_AVX512F), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX512F), (1 << LV_AVX)},
    {true, true, true, false, false, false, false},
    {volk_32f_x2_max_32f_a_avx512f, volk_32f_x2_max_32f_a_sse, volk_32f_x2_max_32f_a_avx, volk_32f_x2_max_32f_generic, volk_32f_x2_max_32f_u_orc, volk_32f_x2_max_32f_u_avx512f, volk_32f_x2_max_32f_u_avx},
    7,

    "volk_32f_x2_min_32f",
    {"a_sse", "generic", "u_orc", "a_avx", "a_avx512f", "u_avx512f", "u_avx"},
    {(1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX), (1 << LV_AVX512F), (1 << LV_AVX512F), (1 << LV_AVX)},
    {true, false, false, true, true, false, false},
    {volk_32f_x2_min_32f_a_sse, volk_32f_x2_min_32f_generic, volk_32f_x2_min_32f_u_orc, volk_32f_x2_min_32f_a_avx, volk_32f_x2_min_32f_a_avx512f, volk_32f_x2_min_32f_u_avx512f, volk_32f_x2_min_32f_u_avx},
    7,

    "volk_32f_x2_multiply_32f",
    {"u_sse", "u_avx512f", "u_avx", "generic", "a_sse", "a_avx512f", "a_avx", "u_orc"},
    {(1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_ORC)},
    {false, false, false, false, true, true, true, false},
    {volk_32f_x2_multiply_32f_u_sse, volk_32f_x2_multiply_32f_u_avx512f, volk_32f_x2_multiply_32f_u_avx, volk_32f_x2_multiply_32f_generic, volk_32f_x2_multiply_32f_a_sse, volk_32f_x2_multiply_32f_a_avx512f, volk_32f_x2_multiply_32f_a_avx, volk_32f_x2_multiply_32f_u_orc},
    8,

    "volk_32f_x2_pow_32f",
    {"a_avx2_fma", "a_avx2", "a_sse4_1", "generic", "u_sse4_1", "u_avx2_fma", "u_avx2"},
    {(1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC), (1 << LV_SSE4_1), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2)},
    {true, true, true, false, false, false, false},
    {volk_32f_x2_pow_32f_a_avx2_fma, volk_32f_x2_pow_32f_a_avx2, volk_32f_x2_pow_32f_a_sse4_1, volk_32f_x2_pow_32f_generic, volk_32f_x2_pow_32f_u_sse4_1, volk_32f_x2_pow_32f_u_avx2_fma, volk_32f_x2_pow_32f_u_avx2},
    7,

    "volk_32f_x2_powpuppet_32f",
    {"a_avx2_fma", "a_avx2", "a_sse4_1", "generic", "u_sse4_1", "u_avx2_fma", "u_avx2"},
    {(1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC), (1 << LV_SSE4_1), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2)},
    {true, true, true, false, false, false, false},
    {volk_32f_x2_powpuppet_32f_a_avx2_fma, volk_32f_x2_powpuppet_32f_a_avx2, volk_32f_x2_powpuppet_32f_a_sse4_1, volk_32f_x2_powpuppet_32f_generic, volk_32f_x2_powpuppet_32f_u_sse4_1, volk_32f_x2_powpuppet_32f_u_avx2_fma, volk_32f_x2_powpuppet_32f_u_avx2},
    7,

    "volk_32f_x2_s32f_interleave_16ic",
    {"a_avx2", "a_sse2", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_32f_x2_s32f_interleave_16ic_a_avx2, volk_32f_x2_s32f_interleave_16ic_a_sse2, volk_32f_x2_s32f_interleave_16ic_a_sse, volk_32f_x2_s32f_interleave_16ic_generic, volk_32f_x2_s32f_interleave_16ic_u_avx2},
    5,

    "volk_32f_x2_subtract_32f",
    {"generic", "a_avx512f", "a_avx", "a_sse", "u_orc", "u_avx512f", "u_avx"},
    {(1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_ORC), (1 << LV_AVX512F), (1 << LV_AVX)},
    {false, true, true, true, false, false, false},
    {volk_32f_x2_subtract_32f_generic, volk_32f_x2_subtract_32f_a_avx512f, volk_32f_x2_subtract_32f_a_avx, volk_32f_x2_subtract_32f_a_sse, volk_32f_x2_subtract_32f_u_orc, volk_32f_x2_subtract_32f_u_avx512f, volk_32f_x2_subtract_32f_u_avx},
    7,

    "volk_32f_x3_sum_of_poly_32f",
    {"a_sse3", "a_avx2_fma", "a_avx", "generic", "u_avx_fma", "u_avx"},
    {(1 << LV_SSE3), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX)},
    {true, true, true, false, false, false},
    {volk_32f_x3_sum_of_poly_32f_a_sse3, volk_32f_x3_sum_of_poly_32f_a_avx2_fma, volk_32f_x3_sum_of_poly_32f_a_avx, volk_32f_x3_sum_of_poly_32f_generic, volk_32f_x3_sum_of_poly_32f_u_avx_fma, volk_32f_x3_sum_of_poly_32f_u_avx},
    6,

    "volk_32fc_32f_add_32fc",
    {"generic", "u_avx", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX)},
    {false, false, true},
    {volk_32fc_32f_add_32fc_generic, volk_32fc_32f_add_32fc_u_avx, volk_32fc_32f_add_32fc_a_avx},
    3,

    "volk_32fc_32f_dot_prod_32fc",
    {"generic", "a_avx512f", "a_avx2_fma", "a_avx", "a_sse", "u_avx512f", "u_avx2_fma", "u_avx", "u_sse"},
    {(1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE)},
    {false, true, true, true, true, false, false, false, false},
    {volk_32fc_32f_dot_prod_32fc_generic, volk_32fc_32f_dot_prod_32fc_a_avx512f, volk_32fc_32f_dot_prod_32fc_a_avx2_fma, volk_32fc_32f_dot_prod_32fc_a_avx, volk_32fc_32f_dot_prod_32fc_a_sse, volk_32fc_32f_dot_prod_32fc_u_avx512f, volk_32fc_32f_dot_prod_32fc_u_avx2_fma, volk_32fc_32f_dot_prod_32fc_u_avx, volk_32fc_32f_dot_prod_32fc_u_sse},
    9,

    "volk_32fc_32f_multiply_32fc",
    {"a_avx", "a_sse", "generic", "u_orc"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC)},
    {true, true, false, false},
    {volk_32fc_32f_multiply_32fc_a_avx, volk_32fc_32f_multiply_32fc_a_sse, volk_32fc_32f_multiply_32fc_generic, volk_32fc_32f_multiply_32fc_u_orc},
    4,

    "volk_32fc_accumulator_s32fc",
    {"a_avx512f", "u_avx512f", "generic", "u_avx", "u_sse", "a_avx", "a_sse"},
    {(1 << LV_AVX512F), (1 << LV_AVX512F), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX), (1 << LV_SSE)},
    {true, false, false, false, false, true, true},
    {volk_32fc_accumulator_s32fc_a_avx512f, volk_32fc_accumulator_s32fc_u_avx512f, volk_32fc_accumulator_s32fc_generic, volk_32fc_accumulator_s32fc_u_avx, volk_32fc_accumulator_s32fc_u_sse, volk_32fc_accumulator_s32fc_a_avx, volk_32fc_accumulator_s32fc_a_sse},
    7,

    "volk_32fc_conjugate_32fc",
    {"u_avx", "u_sse3", "generic", "a_avx", "a_sse3"},
    {(1 << LV_AVX), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE3)},
    {false, false, false, true, true},
    {volk_32fc_conjugate_32fc_u_avx, volk_32fc_conjugate_32fc_u_sse3, volk_32fc_conjugate_32fc_generic, volk_32fc_conjugate_32fc_a_avx, volk_32fc_conjugate_32fc_a_sse3},
    5,

    "volk_32fc_convert_16ic",
    {"a_avx2", "a_avx512", "a_sse2", "generic", "u_avx2", "u_avx512", "u_sse2"},
    {(1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE2)},
    {true, true, true, false, false, false, false},
    {volk_32fc_convert_16ic_a_avx2, volk_32fc_convert_16ic_a_avx512, volk_32fc_convert_16ic_a_sse2, volk_32fc_convert_16ic_generic, volk_32fc_convert_16ic_u_avx2, volk_32fc_convert_16ic_u_avx512, volk_32fc_convert_16ic_u_sse2},
    7,

    "volk_32fc_deinterleave_32f_x2",
    {"generic", "a_avx512f", "a_avx", "a_sse", "u_avx512f", "u_avx"},
    {(1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_AVX)},
    {false, true, true, true, false, false},
    {volk_32fc_deinterleave_32f_x2_generic, volk_32fc_deinterleave_32f_x2_a_avx512f, volk_32fc_deinterleave_32f_x2_a_avx, volk_32fc_deinterleave_32f_x2_a_sse, volk_32fc_deinterleave_32f_x2_u_avx512f, volk_32fc_deinterleave_32f_x2_u_avx},
    6,

    "volk_32fc_deinterleave_64f_x2",
    {"u_avx", "u_sse2", "generic", "a_avx", "a_sse2"},
    {(1 << LV_AVX), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE2)},
    {false, false, false, true, true},
    {volk_32fc_deinterleave_64f_x2_u_avx, volk_32fc_deinterleave_64f_x2_u_sse2, volk_32fc_deinterleave_64f_x2_generic, volk_32fc_deinterleave_64f_x2_a_avx, volk_32fc_deinterleave_64f_x2_a_sse2},
    5,

    "volk_32fc_deinterleave_imag_32f",
    {"a_avx", "a_sse", "generic", "u_avx"},
    {(1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX)},
    {true, true, false, false},
    {volk_32fc_deinterleave_imag_32f_a_avx, volk_32fc_deinterleave_imag_32f_a_sse, volk_32fc_deinterleave_imag_32f_generic, volk_32fc_deinterleave_imag_32f_u_avx},
    4,

    "volk_32fc_deinterleave_real_32f",
    {"a_avx2", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, false, false},
    {volk_32fc_deinterleave_real_32f_a_avx2, volk_32fc_deinterleave_real_32f_a_sse, volk_32fc_deinterleave_real_32f_generic, volk_32fc_deinterleave_real_32f_u_avx2},
    4,

    "volk_32fc_deinterleave_real_64f",
    {"a_avx2", "a_sse2", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, false, false},
    {volk_32fc_deinterleave_real_64f_a_avx2, volk_32fc_deinterleave_real_64f_a_sse2, volk_32fc_deinterleave_real_64f_generic, volk_32fc_deinterleave_real_64f_u_avx2},
    4,

    "volk_32fc_index_max_16u",
    {"a_avx2_variant_0", "a_avx2_variant_1", "a_sse3", "generic", "a_avx512f", "u_avx2_variant_0", "u_avx2_variant_1", "u_avx512f"},
    {(1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false, false},
    {volk_32fc_index_max_16u_a_avx2_variant_0, volk_32fc_index_max_16u_a_avx2_variant_1, volk_32fc_index_max_16u_a_sse3, volk_32fc_index_max_16u_generic, volk_32fc_index_max_16u_a_avx512f, volk_32fc_index_max_16u_u_avx2_variant_0, volk_32fc_index_max_16u_u_avx2_variant_1, volk_32fc_index_max_16u_u_avx512f},
    8,

    "volk_32fc_index_max_32u",
    {"a_avx2_variant_0", "a_avx2_variant_1", "a_sse3", "generic", "a_avx512f", "u_avx2_variant_0", "u_avx2_variant_1", "u_avx512f"},
    {(1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false, false},
    {volk_32fc_index_max_32u_a_avx2_variant_0, volk_32fc_index_max_32u_a_avx2_variant_1, volk_32fc_index_max_32u_a_sse3, volk_32fc_index_max_32u_generic, volk_32fc_index_max_32u_a_avx512f, volk_32fc_index_max_32u_u_avx2_variant_0, volk_32fc_index_max_32u_u_avx2_variant_1, volk_32fc_index_max_32u_u_avx512f},
    8,

    "volk_32fc_index_min_16u",
    {"a_avx2_variant_0", "a_avx2_variant_1", "a_sse3", "generic", "a_avx512f", "u_avx2_variant_0", "u_avx2_variant_1", "u_avx512f"},
    {(1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false, false},
    {volk_32fc_index_min_16u_a_avx2_variant_0, volk_32fc_index_min_16u_a_avx2_variant_1, volk_32fc_index_min_16u_a_sse3, volk_32fc_index_min_16u_generic, volk_32fc_index_min_16u_a_avx512f, volk_32fc_index_min_16u_u_avx2_variant_0, volk_32fc_index_min_16u_u_avx2_variant_1, volk_32fc_index_min_16u_u_avx512f},
    8,

    "volk_32fc_index_min_32u",
    {"a_avx2_variant_0", "a_avx2_variant_1", "a_sse3", "generic", "a_avx512f", "u_avx2_variant_0", "u_avx2_variant_1", "u_avx512f"},
    {(1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_AVX512F)},
    {true, true, true, false, true, false, false, false},
    {volk_32fc_index_min_32u_a_avx2_variant_0, volk_32fc_index_min_32u_a_avx2_variant_1, volk_32fc_index_min_32u_a_sse3, volk_32fc_index_min_32u_generic, volk_32fc_index_min_32u_a_avx512f, volk_32fc_index_min_32u_u_avx2_variant_0, volk_32fc_index_min_32u_u_avx2_variant_1, volk_32fc_index_min_32u_u_avx512f},
    8,

    "volk_32fc_magnitude_32f",
    {"generic", "u_avx512f", "u_avx", "u_sse3", "u_sse", "a_avx512f", "a_avx", "a_sse3", "a_sse"},
    {(1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_SSE), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_SSE)},
    {false, false, false, false, false, true, true, true, true},
    {volk_32fc_magnitude_32f_generic, volk_32fc_magnitude_32f_u_avx512f, volk_32fc_magnitude_32f_u_avx, volk_32fc_magnitude_32f_u_sse3, volk_32fc_magnitude_32f_u_sse, volk_32fc_magnitude_32f_a_avx512f, volk_32fc_magnitude_32f_a_avx, volk_32fc_magnitude_32f_a_sse3, volk_32fc_magnitude_32f_a_sse},
    9,

    "volk_32fc_magnitude_squared_32f",
    {"u_avx", "u_sse3", "u_sse", "generic", "a_avx", "a_sse3", "a_sse"},
    {(1 << LV_AVX), (1 << LV_SSE3), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_SSE)},
    {false, false, false, false, true, true, true},
    {volk_32fc_magnitude_squared_32f_u_avx, volk_32fc_magnitude_squared_32f_u_sse3, volk_32fc_magnitude_squared_32f_u_sse, volk_32fc_magnitude_squared_32f_generic, volk_32fc_magnitude_squared_32f_a_avx, volk_32fc_magnitude_squared_32f_a_sse3, volk_32fc_magnitude_squared_32f_a_sse},
    7,

    "volk_32fc_s32f_atan2_32f",
    {"generic", "polynomial", "a_avx2_fma", "a_avx2", "u_avx2_fma", "u_avx2"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX2)},
    {false, false, true, true, false, false},
    {volk_32fc_s32f_atan2_32f_generic, volk_32fc_s32f_atan2_32f_polynomial, volk_32fc_s32f_atan2_32f_a_avx2_fma, volk_32fc_s32f_atan2_32f_a_avx2, volk_32fc_s32f_atan2_32f_u_avx2_fma, volk_32fc_s32f_atan2_32f_u_avx2},
    6,

    "volk_32fc_s32f_deinterleave_real_16i",
    {"a_avx2", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, false, false},
    {volk_32fc_s32f_deinterleave_real_16i_a_avx2, volk_32fc_s32f_deinterleave_real_16i_a_sse, volk_32fc_s32f_deinterleave_real_16i_generic, volk_32fc_s32f_deinterleave_real_16i_u_avx2},
    4,

    "volk_32fc_s32f_magnitude_16i",
    {"generic", "a_avx2", "a_sse3", "a_sse", "u_avx2"},
    {(1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_SSE), (1 << LV_AVX2)},
    {false, true, true, true, false},
    {volk_32fc_s32f_magnitude_16i_generic, volk_32fc_s32f_magnitude_16i_a_avx2, volk_32fc_s32f_magnitude_16i_a_sse3, volk_32fc_s32f_magnitude_16i_a_sse, volk_32fc_s32f_magnitude_16i_u_avx2},
    5,

    "volk_32fc_s32f_power_32fc",
    {"generic"},
    {(1 << LV_GENERIC)},
    {false},
    {volk_32fc_s32f_power_32fc_generic},
    1,

    "volk_32fc_s32f_power_spectral_densitypuppet_32f",
    {"generic"},
    {(1 << LV_GENERIC)},
    {false},
    {volk_32fc_s32f_power_spectral_densitypuppet_32f_generic},
    1,

    "volk_32fc_s32f_power_spectrum_32f",
    {"generic"},
    {(1 << LV_GENERIC)},
    {false},
    {volk_32fc_s32f_power_spectrum_32f_generic},
    1,

    "volk_32fc_s32f_x2_power_spectral_density_32f",
    {"generic"},
    {(1 << LV_GENERIC)},
    {false},
    {volk_32fc_s32f_x2_power_spectral_density_32f_generic},
    1,

    "volk_32fc_s32fc_multiply2_32fc",
    {"u_avx_fma", "u_avx", "u_sse3", "generic", "a_avx_fma", "a_avx", "a_sse3"},
    {(1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_SSE3)},
    {false, false, false, false, true, true, true},
    {volk_32fc_s32fc_multiply2_32fc_u_avx_fma, volk_32fc_s32fc_multiply2_32fc_u_avx, volk_32fc_s32fc_multiply2_32fc_u_sse3, volk_32fc_s32fc_multiply2_32fc_generic, volk_32fc_s32fc_multiply2_32fc_a_avx_fma, volk_32fc_s32fc_multiply2_32fc_a_avx, volk_32fc_s32fc_multiply2_32fc_a_sse3},
    7,

    "volk_32fc_s32fc_multiply_32fc",
    {"u_avx_fma", "u_avx", "u_sse3", "generic", "a_avx_fma", "a_avx", "a_sse3"},
    {(1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_AVX), (1 << LV_SSE3)},
    {false, false, false, false, true, true, true},
    {volk_32fc_s32fc_multiply_32fc_u_avx_fma, volk_32fc_s32fc_multiply_32fc_u_avx, volk_32fc_s32fc_multiply_32fc_u_sse3, volk_32fc_s32fc_multiply_32fc_generic, volk_32fc_s32fc_multiply_32fc_a_avx_fma, volk_32fc_s32fc_multiply_32fc_a_avx, volk_32fc_s32fc_multiply_32fc_a_sse3},
    7,

    "volk_32fc_s32fc_rotator2puppet_32fc",
    {"generic", "a_avx", "u_avx", "a_avx512f", "u_avx512f"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX), (1 << LV_AVX512F), (1 << LV_AVX512F)},
    {false, true, false, true, false},
    {volk_32fc_s32fc_rotator2puppet_32fc_generic, volk_32fc_s32fc_rotator2puppet_32fc_a_avx, volk_32fc_s32fc_rotator2puppet_32fc_u_avx, volk_32fc_s32fc_rotator2puppet_32fc_a_avx512f, volk_32fc_s32fc_rotator2puppet_32fc_u_avx512f},
    5,

    "volk_32fc_s32fc_x2_rotator2_32fc",
    {"generic", "a_avx", "u_avx", "a_avx512f", "u_avx512f"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX), (1 << LV_AVX512F), (1 << LV_AVX512F)},
    {false, true, false, true, false},
    {volk_32fc_s32fc_x2_rotator2_32fc_generic, volk_32fc_s32fc_x2_rotator2_32fc_a_avx, volk_32fc_s32fc_x2_rotator2_32fc_u_avx, volk_32fc_s32fc_x2_rotator2_32fc_a_avx512f, volk_32fc_s32fc_x2_rotator2_32fc_u_avx512f},
    5,

    "volk_32fc_s32fc_x2_rotator_32fc",
    {"generic", "a_avx", "u_avx"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_AVX)},
    {false, true, false},
    {volk_32fc_s32fc_x2_rotator_32fc_generic, volk_32fc_s32fc_x2_rotator_32fc_a_avx, volk_32fc_s32fc_x2_rotator_32fc_u_avx},
    3,

    "volk_32fc_x2_add_32fc",
    {"u_avx", "a_avx", "u_sse", "generic", "a_sse"},
    {(1 << LV_AVX), (1 << LV_AVX), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_SSE)},
    {false, true, false, false, true},
    {volk_32fc_x2_add_32fc_u_avx, volk_32fc_x2_add_32fc_a_avx, volk_32fc_x2_add_32fc_u_sse, volk_32fc_x2_add_32fc_generic, volk_32fc_x2_add_32fc_a_sse},
    5,

    "volk_32fc_x2_conjugate_dot_prod_32fc",
    {"generic", "block", "u_sse3", "a_sse3", "u_avx", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_SSE3), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_AVX)},
    {false, false, false, true, false, true},
    {volk_32fc_x2_conjugate_dot_prod_32fc_generic, volk_32fc_x2_conjugate_dot_prod_32fc_block, volk_32fc_x2_conjugate_dot_prod_32fc_u_sse3, volk_32fc_x2_conjugate_dot_prod_32fc_a_sse3, volk_32fc_x2_conjugate_dot_prod_32fc_u_avx, volk_32fc_x2_conjugate_dot_prod_32fc_a_avx},
    6,

    "volk_32fc_x2_divide_32fc",
    {"generic", "u_sse3", "u_avx", "u_avx2_fma", "u_avx512", "a_sse3", "a_avx", "a_avx2_fma", "a_avx512"},
    {(1 << LV_GENERIC), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F)},
    {false, false, false, false, false, true, true, true, true},
    {volk_32fc_x2_divide_32fc_generic, volk_32fc_x2_divide_32fc_u_sse3, volk_32fc_x2_divide_32fc_u_avx, volk_32fc_x2_divide_32fc_u_avx2_fma, volk_32fc_x2_divide_32fc_u_avx512, volk_32fc_x2_divide_32fc_a_sse3, volk_32fc_x2_divide_32fc_a_avx, volk_32fc_x2_divide_32fc_a_avx2_fma, volk_32fc_x2_divide_32fc_a_avx512},
    9,

    "volk_32fc_x2_dot_prod_32fc",
    {"generic", "u_sse3", "u_avx", "u_avx_fma", "a_sse3", "a_avx", "a_avx_fma"},
    {(1 << LV_GENERIC), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_AVX) | (1 << LV_FMA), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_AVX) | (1 << LV_FMA)},
    {false, false, false, false, true, true, true},
    {volk_32fc_x2_dot_prod_32fc_generic, volk_32fc_x2_dot_prod_32fc_u_sse3, volk_32fc_x2_dot_prod_32fc_u_avx, volk_32fc_x2_dot_prod_32fc_u_avx_fma, volk_32fc_x2_dot_prod_32fc_a_sse3, volk_32fc_x2_dot_prod_32fc_a_avx, volk_32fc_x2_dot_prod_32fc_a_avx_fma},
    7,

    "volk_32fc_x2_multiply_32fc",
    {"u_avx2_fma", "u_avx", "u_sse3", "generic", "a_avx2_fma", "a_avx", "a_sse3", "u_orc"},
    {(1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_ORC)},
    {false, false, false, false, true, true, true, false},
    {volk_32fc_x2_multiply_32fc_u_avx2_fma, volk_32fc_x2_multiply_32fc_u_avx, volk_32fc_x2_multiply_32fc_u_sse3, volk_32fc_x2_multiply_32fc_generic, volk_32fc_x2_multiply_32fc_a_avx2_fma, volk_32fc_x2_multiply_32fc_a_avx, volk_32fc_x2_multiply_32fc_a_sse3, volk_32fc_x2_multiply_32fc_u_orc},
    8,

    "volk_32fc_x2_multiply_conjugate_32fc",
    {"u_avx", "u_sse3", "generic", "a_avx", "a_sse3"},
    {(1 << LV_AVX), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE3)},
    {false, false, false, true, true},
    {volk_32fc_x2_multiply_conjugate_32fc_u_avx, volk_32fc_x2_multiply_conjugate_32fc_u_sse3, volk_32fc_x2_multiply_conjugate_32fc_generic, volk_32fc_x2_multiply_conjugate_32fc_a_avx, volk_32fc_x2_multiply_conjugate_32fc_a_sse3},
    5,

    "volk_32fc_x2_s32f_square_dist_scalar_mult_32f",
    {"a_avx2", "a_avx", "a_sse3", "a_sse", "generic", "u_avx2", "u_avx", "u_sse3", "u_sse"},
    {(1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_SSE)},
    {true, true, true, true, false, false, false, false, false},
    {volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx2, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_avx, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_sse3, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a_sse, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_generic, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_u_avx2, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_u_avx, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_u_sse3, volk_32fc_x2_s32f_square_dist_scalar_mult_32f_u_sse},
    9,

    "volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc",
    {"generic", "u_avx", "u_sse3", "a_avx", "a_sse3"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_SSE3)},
    {false, false, false, true, true},
    {volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc_generic, volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc_u_avx, volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc_u_sse3, volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc_a_avx, volk_32fc_x2_s32fc_multiply_conjugate_add2_32fc_a_sse3},
    5,

    "volk_32fc_x2_s32fc_multiply_conjugate_add_32fc",
    {"generic", "u_avx", "u_sse3", "a_avx", "a_sse3"},
    {(1 << LV_GENERIC), (1 << LV_AVX), (1 << LV_SSE3), (1 << LV_AVX), (1 << LV_SSE3)},
    {false, false, false, true, true},
    {volk_32fc_x2_s32fc_multiply_conjugate_add_32fc_generic, volk_32fc_x2_s32fc_multiply_conjugate_add_32fc_u_avx, volk_32fc_x2_s32fc_multiply_conjugate_add_32fc_u_sse3, volk_32fc_x2_s32fc_multiply_conjugate_add_32fc_a_avx, volk_32fc_x2_s32fc_multiply_conjugate_add_32fc_a_sse3},
    5,

    "volk_32fc_x2_square_dist_32f",
    {"a_avx2", "a_sse3", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, false, false},
    {volk_32fc_x2_square_dist_32f_a_avx2, volk_32fc_x2_square_dist_32f_a_sse3, volk_32fc_x2_square_dist_32f_generic, volk_32fc_x2_square_dist_32f_u_avx2},
    4,

    "volk_32i_s32f_convert_32f",
    {"u_avx512f", "u_avx2", "u_sse2", "generic", "a_avx512f", "a_avx2", "a_sse2"},
    {(1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_SSE2)},
    {false, false, false, false, true, true, true},
    {volk_32i_s32f_convert_32f_u_avx512f, volk_32i_s32f_convert_32f_u_avx2, volk_32i_s32f_convert_32f_u_sse2, volk_32i_s32f_convert_32f_generic, volk_32i_s32f_convert_32f_a_avx512f, volk_32i_s32f_convert_32f_a_avx2, volk_32i_s32f_convert_32f_a_sse2},
    7,

    "volk_32i_x2_and_32i",
    {"a_avx512f", "a_avx2", "a_sse", "generic", "u_orc", "u_avx512f", "u_avx2"},
    {(1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX512F), (1 << LV_AVX2)},
    {true, true, true, false, false, false, false},
    {volk_32i_x2_and_32i_a_avx512f, volk_32i_x2_and_32i_a_avx2, volk_32i_x2_and_32i_a_sse, volk_32i_x2_and_32i_generic, volk_32i_x2_and_32i_u_orc, volk_32i_x2_and_32i_u_avx512f, volk_32i_x2_and_32i_u_avx2},
    7,

    "volk_32i_x2_or_32i",
    {"a_avx512f", "a_avx2", "a_sse", "generic", "u_orc", "u_avx512f", "u_avx2"},
    {(1 << LV_AVX512F), (1 << LV_AVX2), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_ORC), (1 << LV_AVX512F), (1 << LV_AVX2)},
    {true, true, true, false, false, false, false},
    {volk_32i_x2_or_32i_a_avx512f, volk_32i_x2_or_32i_a_avx2, volk_32i_x2_or_32i_a_sse, volk_32i_x2_or_32i_generic, volk_32i_x2_or_32i_u_orc, volk_32i_x2_or_32i_u_avx512f, volk_32i_x2_or_32i_u_avx2},
    7,

    "volk_32u_byteswap",
    {"u_avx2", "u_sse2", "generic", "a_avx2", "a_sse2"},
    {(1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSE2)},
    {false, false, false, true, true},
    {volk_32u_byteswap_u_avx2, volk_32u_byteswap_u_sse2, volk_32u_byteswap_generic, volk_32u_byteswap_a_avx2, volk_32u_byteswap_a_sse2},
    5,

    "volk_32u_byteswappuppet_32u",
    {"generic", "u_sse2", "a_sse2", "u_avx2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_AVX2)},
    {false, false, true, false, true},
    {volk_32u_byteswappuppet_32u_generic, volk_32u_byteswappuppet_32u_u_sse2, volk_32u_byteswappuppet_32u_a_sse2, volk_32u_byteswappuppet_32u_u_avx2, volk_32u_byteswappuppet_32u_a_avx2},
    5,

    "volk_32u_popcnt",
    {"generic", "a_sse4_2"},
    {(1 << LV_GENERIC), (1 << LV_SSE4_2)},
    {false, true},
    {volk_32u_popcnt_generic, volk_32u_popcnt_a_sse4_2},
    2,

    "volk_32u_popcntpuppet_32u",
    {"generic", "a_sse4_2"},
    {(1 << LV_GENERIC), (1 << LV_SSE4_2)},
    {false, true},
    {volk_32u_popcntpuppet_32u_generic, volk_32u_popcntpuppet_32u_a_sse4_2},
    2,

    "volk_32u_reverse_32u",
    {"generic", "byte_shuffle", "lut", "2001magic", "1972magic", "bintree_permute_top_down", "bintree_permute_bottom_up"},
    {(1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_GENERIC), (1 << LV_GENERIC)},
    {false, false, false, false, false, false, false},
    {volk_32u_reverse_32u_generic, volk_32u_reverse_32u_byte_shuffle, volk_32u_reverse_32u_lut, volk_32u_reverse_32u_2001magic, volk_32u_reverse_32u_1972magic, volk_32u_reverse_32u_bintree_permute_top_down, volk_32u_reverse_32u_bintree_permute_bottom_up},
    7,

    "volk_64f_convert_32f",
    {"u_avx512f", "u_avx", "u_sse2", "generic", "a_avx512f", "a_avx", "a_sse2"},
    {(1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE2)},
    {false, false, false, false, true, true, true},
    {volk_64f_convert_32f_u_avx512f, volk_64f_convert_32f_u_avx, volk_64f_convert_32f_u_sse2, volk_64f_convert_32f_generic, volk_64f_convert_32f_a_avx512f, volk_64f_convert_32f_a_avx, volk_64f_convert_32f_a_sse2},
    7,

    "volk_64f_x2_add_64f",
    {"generic", "u_sse2", "u_avx", "a_sse2", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_AVX)},
    {false, false, false, true, true},
    {volk_64f_x2_add_64f_generic, volk_64f_x2_add_64f_u_sse2, volk_64f_x2_add_64f_u_avx, volk_64f_x2_add_64f_a_sse2, volk_64f_x2_add_64f_a_avx},
    5,

    "volk_64f_x2_dot_prod_64f",
    {"generic", "u_sse2", "u_avx", "u_avx2_fma", "u_avx512f", "a_sse2", "a_avx", "a_avx2_fma", "a_avx512f"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_FMA) | (1 << LV_AVX2), (1 << LV_AVX512F)},
    {false, false, false, false, false, true, true, true, true},
    {volk_64f_x2_dot_prod_64f_generic, volk_64f_x2_dot_prod_64f_u_sse2, volk_64f_x2_dot_prod_64f_u_avx, volk_64f_x2_dot_prod_64f_u_avx2_fma, volk_64f_x2_dot_prod_64f_u_avx512f, volk_64f_x2_dot_prod_64f_a_sse2, volk_64f_x2_dot_prod_64f_a_avx, volk_64f_x2_dot_prod_64f_a_avx2_fma, volk_64f_x2_dot_prod_64f_a_avx512f},
    9,

    "volk_64f_x2_max_64f",
    {"a_avx512f", "a_avx", "a_sse2", "generic", "u_avx512f", "u_avx"},
    {(1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX)},
    {true, true, true, false, false, false},
    {volk_64f_x2_max_64f_a_avx512f, volk_64f_x2_max_64f_a_avx, volk_64f_x2_max_64f_a_sse2, volk_64f_x2_max_64f_generic, volk_64f_x2_max_64f_u_avx512f, volk_64f_x2_max_64f_u_avx},
    6,

    "volk_64f_x2_min_64f",
    {"a_avx512f", "a_avx", "a_sse2", "generic", "u_avx512f", "u_avx"},
    {(1 << LV_AVX512F), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX512F), (1 << LV_AVX)},
    {true, true, true, false, false, false},
    {volk_64f_x2_min_64f_a_avx512f, volk_64f_x2_min_64f_a_avx, volk_64f_x2_min_64f_a_sse2, volk_64f_x2_min_64f_generic, volk_64f_x2_min_64f_u_avx512f, volk_64f_x2_min_64f_u_avx},
    6,

    "volk_64f_x2_multiply_64f",
    {"generic", "u_sse2", "u_avx", "a_sse2", "a_avx"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX), (1 << LV_SSE2), (1 << LV_AVX)},
    {false, false, false, true, true},
    {volk_64f_x2_multiply_64f_generic, volk_64f_x2_multiply_64f_u_sse2, volk_64f_x2_multiply_64f_u_avx, volk_64f_x2_multiply_64f_a_sse2, volk_64f_x2_multiply_64f_a_avx},
    5,

    "volk_64u_byteswap",
    {"u_sse2", "generic", "a_avx2", "a_ssse3", "a_sse2", "u_avx2", "u_ssse3"},
    {(1 << LV_SSE2), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_SSSE3)},
    {false, false, true, true, true, false, false},
    {volk_64u_byteswap_u_sse2, volk_64u_byteswap_generic, volk_64u_byteswap_a_avx2, volk_64u_byteswap_a_ssse3, volk_64u_byteswap_a_sse2, volk_64u_byteswap_u_avx2, volk_64u_byteswap_u_ssse3},
    7,

    "volk_64u_byteswappuppet_64u",
    {"generic", "u_sse2", "a_sse2", "u_ssse3", "a_ssse3", "u_avx2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_SSE2), (1 << LV_SSSE3), (1 << LV_SSSE3), (1 << LV_AVX2), (1 << LV_AVX2)},
    {false, false, true, false, true, false, true},
    {volk_64u_byteswappuppet_64u_generic, volk_64u_byteswappuppet_64u_u_sse2, volk_64u_byteswappuppet_64u_a_sse2, volk_64u_byteswappuppet_64u_u_ssse3, volk_64u_byteswappuppet_64u_a_ssse3, volk_64u_byteswappuppet_64u_u_avx2, volk_64u_byteswappuppet_64u_a_avx2},
    7,

    "volk_64u_popcnt",
    {"generic", "a_sse4_2"},
    {(1 << LV_GENERIC), (1 << LV_64) | (1 << LV_SSE4_2)},
    {false, true},
    {volk_64u_popcnt_generic, volk_64u_popcnt_a_sse4_2},
    2,

    "volk_64u_popcntpuppet_64u",
    {"generic", "a_sse4_2"},
    {(1 << LV_GENERIC), (1 << LV_64) | (1 << LV_SSE4_2)},
    {false, true},
    {volk_64u_popcntpuppet_64u_generic, volk_64u_popcntpuppet_64u_a_sse4_2},
    2,

    "volk_8i_convert_16i",
    {"u_avx2", "u_sse4_1", "generic", "a_avx2", "a_sse4_1", "u_orc"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_ORC)},
    {false, false, false, true, true, false},
    {volk_8i_convert_16i_u_avx2, volk_8i_convert_16i_u_sse4_1, volk_8i_convert_16i_generic, volk_8i_convert_16i_a_avx2, volk_8i_convert_16i_a_sse4_1, volk_8i_convert_16i_u_orc},
    6,

    "volk_8i_s32f_convert_32f",
    {"u_avx2", "u_avx512", "u_sse4_1", "generic", "a_avx2", "a_avx512", "a_sse4_1", "u_orc"},
    {(1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE4_1), (1 << LV_GENERIC), (1 << LV_AVX2), (1 << LV_AVX512F), (1 << LV_SSE4_1), (1 << LV_ORC)},
    {false, false, false, false, true, true, true, false},
    {volk_8i_s32f_convert_32f_u_avx2, volk_8i_s32f_convert_32f_u_avx512, volk_8i_s32f_convert_32f_u_sse4_1, volk_8i_s32f_convert_32f_generic, volk_8i_s32f_convert_32f_a_avx2, volk_8i_s32f_convert_32f_a_avx512, volk_8i_s32f_convert_32f_a_sse4_1, volk_8i_s32f_convert_32f_u_orc},
    8,

    "volk_8i_x2_add_saturated_8i",
    {"generic", "u_sse2", "u_avx2", "a_sse2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_8i_x2_add_saturated_8i_generic, volk_8i_x2_add_saturated_8i_u_sse2, volk_8i_x2_add_saturated_8i_u_avx2, volk_8i_x2_add_saturated_8i_a_sse2, volk_8i_x2_add_saturated_8i_a_avx2},
    5,

    "volk_8ic_deinterleave_16i_x2",
    {"a_avx2", "a_sse4_1", "a_avx", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_8ic_deinterleave_16i_x2_a_avx2, volk_8ic_deinterleave_16i_x2_a_sse4_1, volk_8ic_deinterleave_16i_x2_a_avx, volk_8ic_deinterleave_16i_x2_generic, volk_8ic_deinterleave_16i_x2_u_avx2},
    5,

    "volk_8ic_deinterleave_real_16i",
    {"a_avx2", "a_sse4_1", "a_avx", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_8ic_deinterleave_real_16i_a_avx2, volk_8ic_deinterleave_real_16i_a_sse4_1, volk_8ic_deinterleave_real_16i_a_avx, volk_8ic_deinterleave_real_16i_generic, volk_8ic_deinterleave_real_16i_u_avx2},
    5,

    "volk_8ic_deinterleave_real_8i",
    {"a_avx2", "a_ssse3", "a_avx", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_AVX), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_8ic_deinterleave_real_8i_a_avx2, volk_8ic_deinterleave_real_8i_a_ssse3, volk_8ic_deinterleave_real_8i_a_avx, volk_8ic_deinterleave_real_8i_generic, volk_8ic_deinterleave_real_8i_u_avx2},
    5,

    "volk_8ic_s32f_deinterleave_32f_x2",
    {"a_sse4_1", "a_sse", "a_avx2", "generic", "u_avx2"},
    {(1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_AVX2), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_8ic_s32f_deinterleave_32f_x2_a_sse4_1, volk_8ic_s32f_deinterleave_32f_x2_a_sse, volk_8ic_s32f_deinterleave_32f_x2_a_avx2, volk_8ic_s32f_deinterleave_32f_x2_generic, volk_8ic_s32f_deinterleave_32f_x2_u_avx2},
    5,

    "volk_8ic_s32f_deinterleave_real_32f",
    {"a_avx2", "a_sse4_1", "a_sse", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_SSE), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, true, false, false},
    {volk_8ic_s32f_deinterleave_real_32f_a_avx2, volk_8ic_s32f_deinterleave_real_32f_a_sse4_1, volk_8ic_s32f_deinterleave_real_32f_a_sse, volk_8ic_s32f_deinterleave_real_32f_generic, volk_8ic_s32f_deinterleave_real_32f_u_avx2},
    5,

    "volk_8ic_x2_multiply_conjugate_16ic",
    {"a_avx2", "a_sse4_1", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, false, false},
    {volk_8ic_x2_multiply_conjugate_16ic_a_avx2, volk_8ic_x2_multiply_conjugate_16ic_a_sse4_1, volk_8ic_x2_multiply_conjugate_16ic_generic, volk_8ic_x2_multiply_conjugate_16ic_u_avx2},
    4,

    "volk_8ic_x2_s32f_multiply_conjugate_32fc",
    {"a_avx2", "a_sse4_1", "generic", "u_avx2"},
    {(1 << LV_AVX2), (1 << LV_SSE4_1), (1 << LV_GENERIC), (1 << LV_AVX2)},
    {true, true, false, false},
    {volk_8ic_x2_s32f_multiply_conjugate_32fc_a_avx2, volk_8ic_x2_s32f_multiply_conjugate_32fc_a_sse4_1, volk_8ic_x2_s32f_multiply_conjugate_32fc_generic, volk_8ic_x2_s32f_multiply_conjugate_32fc_u_avx2},
    4,

    "volk_8u_conv_k7_r2puppet_8u",
    {"spiral", "avx2", "generic"},
    {(1 << LV_SSE3), (1 << LV_AVX2), (1 << LV_GENERIC)},
    {false, false, false},
    {volk_8u_conv_k7_r2puppet_8u_spiral, volk_8u_conv_k7_r2puppet_8u_avx2, volk_8u_conv_k7_r2puppet_8u_generic},
    3,

    "volk_8u_x2_add_saturated_8u",
    {"generic", "u_sse2", "u_avx2", "a_sse2", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSE2), (1 << LV_AVX2), (1 << LV_SSE2), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_8u_x2_add_saturated_8u_generic, volk_8u_x2_add_saturated_8u_u_sse2, volk_8u_x2_add_saturated_8u_u_avx2, volk_8u_x2_add_saturated_8u_a_sse2, volk_8u_x2_add_saturated_8u_a_avx2},
    5,

    "volk_8u_x2_encodeframepolar_8u",
    {"generic", "u_ssse3", "u_avx2", "a_ssse3", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSSE3), (1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_8u_x2_encodeframepolar_8u_generic, volk_8u_x2_encodeframepolar_8u_u_ssse3, volk_8u_x2_encodeframepolar_8u_u_avx2, volk_8u_x2_encodeframepolar_8u_a_ssse3, volk_8u_x2_encodeframepolar_8u_a_avx2},
    5,

    "volk_8u_x3_encodepolar_8u_x2",
    {"generic", "u_ssse3", "u_avx2", "a_ssse3", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSSE3), (1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_8u_x3_encodepolar_8u_x2_generic, volk_8u_x3_encodepolar_8u_x2_u_ssse3, volk_8u_x3_encodepolar_8u_x2_u_avx2, volk_8u_x3_encodepolar_8u_x2_a_ssse3, volk_8u_x3_encodepolar_8u_x2_a_avx2},
    5,

    "volk_8u_x3_encodepolarpuppet_8u",
    {"generic", "u_ssse3", "u_avx2", "a_ssse3", "a_avx2"},
    {(1 << LV_GENERIC), (1 << LV_SSSE3), (1 << LV_AVX2), (1 << LV_SSSE3), (1 << LV_AVX2)},
    {false, false, false, true, true},
    {volk_8u_x3_encodepolarpuppet_8u_generic, volk_8u_x3_encodepolarpuppet_8u_u_ssse3, volk_8u_x3_encodepolarpuppet_8u_u_avx2, volk_8u_x3_encodepolarpuppet_8u_a_ssse3, volk_8u_x3_encodepolarpuppet_8u_a_avx2},
    5,

    "volk_8u_x4_conv_k7_r2_8u",
    {"avx2", "spiral", "generic"},
    {(1 << LV_AVX2), (1 << LV_SSE3), (1 << LV_GENERIC)},
    {false, false, false},
    {volk_8u_x4_conv_k7_r2_8u_avx2, volk_8u_x4_conv_k7_r2_8u_spiral, volk_8u_x4_conv_k7_r2_8u_generic},
    3,
};
