aboutsummaryrefslogtreecommitdiff
path: root/test/u32-filterbank-accumulate.cc
blob: a1c0fd5d8a756746678aa791d227ccf854cf67b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2019 Google LLC
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.
//
// Auto-generated file. Do not edit!
//   Specification: test/u32-filterbank-accumulate.yaml
//   Generator: tools/generate-filterbank-accumulate-test.py


#include <gtest/gtest.h>

#include <xnnpack/common.h>
#include <xnnpack/isa-checks.h>

#include <xnnpack/filterbank.h>
#include "filterbank-accumulate-microkernel-tester.h"


#if XNN_ARCH_ARM || XNN_ARCH_ARM64
  TEST(U32_FILTERBANK_ACCUMULATE__NEON_X1, rows_eq_1) {
    TEST_REQUIRES_ARM_NEON;
    FilterbankAccumulateMicrokernelTester()
      .rows(1)
      .Test(xnn_u32_filterbank_accumulate_ukernel__neon_x1);
  }

  TEST(U32_FILTERBANK_ACCUMULATE__NEON_X1, rows_gt_1) {
    TEST_REQUIRES_ARM_NEON;
    for (size_t rows = 2; rows <= 10; rows++) {
      FilterbankAccumulateMicrokernelTester()
        .rows(2)
        .Test(xnn_u32_filterbank_accumulate_ukernel__neon_x1);
    }
  }
#endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64


#if XNN_ARCH_ARM || XNN_ARCH_ARM64
  TEST(U32_FILTERBANK_ACCUMULATE__NEON_X2, rows_eq_1) {
    TEST_REQUIRES_ARM_NEON;
    FilterbankAccumulateMicrokernelTester()
      .rows(1)
      .Test(xnn_u32_filterbank_accumulate_ukernel__neon_x2);
  }

  TEST(U32_FILTERBANK_ACCUMULATE__NEON_X2, rows_gt_1) {
    TEST_REQUIRES_ARM_NEON;
    for (size_t rows = 2; rows <= 10; rows++) {
      FilterbankAccumulateMicrokernelTester()
        .rows(2)
        .Test(xnn_u32_filterbank_accumulate_ukernel__neon_x2);
    }
  }
#endif  // XNN_ARCH_ARM || XNN_ARCH_ARM64


TEST(U32_FILTERBANK_ACCUMULATE__SCALAR_X1, rows_eq_1) {
  FilterbankAccumulateMicrokernelTester()
    .rows(1)
    .Test(xnn_u32_filterbank_accumulate_ukernel__scalar_x1);
}

TEST(U32_FILTERBANK_ACCUMULATE__SCALAR_X1, rows_gt_1) {
  for (size_t rows = 2; rows <= 10; rows++) {
    FilterbankAccumulateMicrokernelTester()
      .rows(2)
      .Test(xnn_u32_filterbank_accumulate_ukernel__scalar_x1);
  }
}