static void test_hybrid_analysis(void)

{

    LOCAL_ALIGNED_16(INTFLOAT, dst0, [BUF_SIZE], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, dst1, [BUF_SIZE], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, in, [12], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, filter, [N], [8][2]);



    declare_func(void, INTFLOAT (*out)[2], INTFLOAT (*in)[2],

                 const INTFLOAT (*filter)[8][2],

                 ptrdiff_t stride, int n);



    randomize((INTFLOAT *)in, 12 * 2);

    randomize((INTFLOAT *)filter, N * 8 * 2);



    randomize((INTFLOAT *)dst0, BUF_SIZE * 2);

    memcpy(dst1, dst0, BUF_SIZE * 2 * sizeof(INTFLOAT));



    call_ref(dst0, in, filter, STRIDE, N);

    call_new(dst1, in, filter, STRIDE, N);



    if (!float_near_abs_eps_array((float *)dst0, (float *)dst1, EPS, BUF_SIZE * 2))

        fail();

    bench_new(dst1, in, filter, STRIDE, N);

}

static void test_hybrid_analysis(void)

{

    LOCAL_ALIGNED_16(INTFLOAT, dst0, [BUF_SIZE], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, dst1, [BUF_SIZE], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, in, [12], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, filter, [N], [8][2]);



    declare_func(void, INTFLOAT (*out)[2], INTFLOAT (*in)[2],

                 const INTFLOAT (*filter)[8][2],

                 ptrdiff_t stride, int n);



    randomize((INTFLOAT *)in, 12 * 2);

    randomize((INTFLOAT *)filter, N * 8 * 2);



    randomize((INTFLOAT *)dst0, BUF_SIZE * 2);

    memcpy(dst1, dst0, BUF_SIZE * 2 * sizeof(INTFLOAT));



    call_ref(dst0, in, filter, STRIDE, N);

    call_new(dst1, in, filter, STRIDE, N);



    if (!float_near_abs_eps_array((float *)dst0, (float *)dst1, EPS, BUF_SIZE * 2))

        fail();

    bench_new(dst1, in, filter, STRIDE, N);

}

static void FUNC_0(void)

{

    LOCAL_ALIGNED_16(INTFLOAT, dst0, [BUF_SIZE], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, dst1, [BUF_SIZE], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, in, [12], [2]);

    LOCAL_ALIGNED_16(INTFLOAT, filter, [N], [8][2]);



    declare_func(void, INTFLOAT (*out)[2], INTFLOAT (*in)[2],

                 const INTFLOAT (*filter)[8][2],

                 ptrdiff_t stride, int n);



    randomize((INTFLOAT *)in, 12 * 2);

    randomize((INTFLOAT *)filter, N * 8 * 2);



    randomize((INTFLOAT *)dst0, BUF_SIZE * 2);

    memcpy(dst1, dst0, BUF_SIZE * 2 * sizeof(INTFLOAT));



    call_ref(dst0, in, filter, STRIDE, N);

    call_new(dst1, in, filter, STRIDE, N);



    if (!float_near_abs_eps_array((float *)dst0, (float *)dst1, EPS, BUF_SIZE * 2))

        fail();

    bench_new(dst1, in, filter, STRIDE, N);

}

static void FUNC_0(void)
{ LOCAL_ALIGNED_16(INTFLOAT, dst0, [BUF_SIZE], [2]); LOCAL_ALIGNED_16(INTFLOAT, dst1, [BUF_SIZE], [2]); LOCAL_ALIGNED_16(INTFLOAT, in, [12], [2]); LOCAL_ALIGNED_16(INTFLOAT, filter, [N], [8][2]); declare_func(void, INTFLOAT (*out)[2], INTFLOAT (*in)[2],
const INTFLOAT (*filter)[8][2],
ptrdiff_t stride, int n); randomize((INTFLOAT *)in, 12 * 2); randomize((INTFLOAT *)filter, N * 8 * 2); randomize((INTFLOAT *)dst0, BUF_SIZE * 2); memcpy(dst1, dst0, BUF_SIZE * 2 * sizeof(INTFLOAT)); call_ref(dst0, in, filter, STRIDE, N); call_new(dst1, in, filter, STRIDE, N); if (!float_near_abs_eps_array((float *)dst0, (float *)dst1, EPS, BUF_SIZE * 2))
fail(); bench_new(dst1, in, filter, STRIDE, N); }