xref: /aosp_15_r20/external/XNNPACK/test/x64-transpose.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2021 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker //
6*4bdc9457SAndroid Build Coastguard Worker // Auto-generated file. Do not edit!
7*4bdc9457SAndroid Build Coastguard Worker //   Specification: test/x64-transpose.yaml
8*4bdc9457SAndroid Build Coastguard Worker //   Generator: tools/generate-transpose-test.py
9*4bdc9457SAndroid Build Coastguard Worker 
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #include <gtest/gtest.h>
12*4bdc9457SAndroid Build Coastguard Worker 
13*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/common.h>
14*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/isa-checks.h>
15*4bdc9457SAndroid Build Coastguard Worker 
16*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/transpose.h>
17*4bdc9457SAndroid Build Coastguard Worker #include "transpose-microkernel-tester.h"
18*4bdc9457SAndroid Build Coastguard Worker 
19*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_bw_2)20*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_bw_2) {
21*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
22*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
23*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
24*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
25*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
26*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
27*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
28*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
29*4bdc9457SAndroid Build Coastguard Worker }
30*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_2_bw_1_4)31*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_2_bw_1_4) {
32*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 2; ++i){
33*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 4; ++j){
34*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
35*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
36*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
37*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
38*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
39*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
40*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
41*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
42*4bdc9457SAndroid Build Coastguard Worker     }
43*4bdc9457SAndroid Build Coastguard Worker   }
44*4bdc9457SAndroid Build Coastguard Worker }
45*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_bw_4)46*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_bw_4) {
47*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
48*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
49*4bdc9457SAndroid Build Coastguard Worker     .output_stride(1)
50*4bdc9457SAndroid Build Coastguard Worker     .block_width(4)
51*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
52*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
53*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
54*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
55*4bdc9457SAndroid Build Coastguard Worker }
56*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_bw_3_4)57*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_bw_3_4) {
58*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
59*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
60*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
61*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
62*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
63*4bdc9457SAndroid Build Coastguard Worker       .block_height(1)
64*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
65*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
66*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
67*4bdc9457SAndroid Build Coastguard Worker   }
68*4bdc9457SAndroid Build Coastguard Worker }
69*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_2_bw_3_4)70*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_2_bw_3_4) {
71*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
72*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
73*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
74*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
75*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
76*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
77*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
78*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
79*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
80*4bdc9457SAndroid Build Coastguard Worker   }
81*4bdc9457SAndroid Build Coastguard Worker }
82*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_2_bw_2)83*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_2_bw_2) {
84*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
85*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
86*4bdc9457SAndroid Build Coastguard Worker     .output_stride(7)
87*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
88*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
89*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
90*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
91*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
92*4bdc9457SAndroid Build Coastguard Worker }
93*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_2_2_bw_2)94*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_2_2_bw_2){
95*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
96*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
97*4bdc9457SAndroid Build Coastguard Worker       .input_stride(19)
98*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
99*4bdc9457SAndroid Build Coastguard Worker       .block_width(5)
100*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
101*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
102*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
103*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
104*4bdc9457SAndroid Build Coastguard Worker   }
105*4bdc9457SAndroid Build Coastguard Worker }
106*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_2_2_bw_4)107*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_2_2_bw_4){
108*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
109*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
110*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
111*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
112*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
113*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
114*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
115*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
116*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
117*4bdc9457SAndroid Build Coastguard Worker   }
118*4bdc9457SAndroid Build Coastguard Worker }
119*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_2_2_bw_3_4)120*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_2_2_bw_3_4) {
121*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
122*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 3; j < 4; ++j){
123*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
124*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
125*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
126*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
127*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
128*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
129*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
130*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
131*4bdc9457SAndroid Build Coastguard Worker     }
132*4bdc9457SAndroid Build Coastguard Worker   }
133*4bdc9457SAndroid Build Coastguard Worker }
134*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_bw_2_is_4)135*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_bw_2_is_4) {
136*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
137*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
138*4bdc9457SAndroid Build Coastguard Worker     .output_stride(1)
139*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
140*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
141*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
142*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
143*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
144*4bdc9457SAndroid Build Coastguard Worker }
145*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_bw_2_os_2)146*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_bw_2_os_2) {
147*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
148*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
149*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
150*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
151*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
152*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
153*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
154*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
155*4bdc9457SAndroid Build Coastguard Worker }
156*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_1_bw_2_is_4_os_2)157*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_1_bw_2_is_4_os_2) {
158*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
159*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
160*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
161*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
162*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
163*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
164*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
165*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
166*4bdc9457SAndroid Build Coastguard Worker }
167*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_17_bw_38_ies_19)168*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_17_bw_38_ies_19) {
169*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
170*4bdc9457SAndroid Build Coastguard Worker     .input_stride(38)
171*4bdc9457SAndroid Build Coastguard Worker     .output_stride(17)
172*4bdc9457SAndroid Build Coastguard Worker     .block_width(38)
173*4bdc9457SAndroid Build Coastguard Worker     .block_height(17)
174*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
175*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
176*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
177*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
178*4bdc9457SAndroid Build Coastguard Worker }
179*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_3_bw_10_oes_19)180*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_3_bw_10_oes_19) {
181*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
182*4bdc9457SAndroid Build Coastguard Worker     .input_stride(10)
183*4bdc9457SAndroid Build Coastguard Worker     .output_stride(3)
184*4bdc9457SAndroid Build Coastguard Worker     .block_width(10)
185*4bdc9457SAndroid Build Coastguard Worker     .block_height(3)
186*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
187*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
188*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
189*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
190*4bdc9457SAndroid Build Coastguard Worker }
191*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8,bh_7_bw_46_ies_25_oes_21)192*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_FLOAT_8, bh_7_bw_46_ies_25_oes_21) {
193*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
194*4bdc9457SAndroid Build Coastguard Worker     .input_stride(51)
195*4bdc9457SAndroid Build Coastguard Worker     .output_stride(13)
196*4bdc9457SAndroid Build Coastguard Worker     .block_width(46)
197*4bdc9457SAndroid Build Coastguard Worker     .block_height(7)
198*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
199*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
200*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
201*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
202*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_float);
203*4bdc9457SAndroid Build Coastguard Worker }
204*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_bw_2)205*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_bw_2) {
206*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
207*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
208*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
209*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
210*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
211*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
212*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
213*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
214*4bdc9457SAndroid Build Coastguard Worker }
215*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_2_bw_1_4)216*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_2_bw_1_4) {
217*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 2; ++i){
218*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 4; ++j){
219*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
220*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
221*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
222*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
223*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
224*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
225*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
226*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
227*4bdc9457SAndroid Build Coastguard Worker     }
228*4bdc9457SAndroid Build Coastguard Worker   }
229*4bdc9457SAndroid Build Coastguard Worker }
230*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_bw_4)231*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_bw_4) {
232*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
233*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
234*4bdc9457SAndroid Build Coastguard Worker     .output_stride(1)
235*4bdc9457SAndroid Build Coastguard Worker     .block_width(4)
236*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
237*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
238*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
239*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
240*4bdc9457SAndroid Build Coastguard Worker }
241*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_bw_3_4)242*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_bw_3_4) {
243*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
244*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
245*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
246*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
247*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
248*4bdc9457SAndroid Build Coastguard Worker       .block_height(1)
249*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
250*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
251*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
252*4bdc9457SAndroid Build Coastguard Worker   }
253*4bdc9457SAndroid Build Coastguard Worker }
254*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_2_bw_3_4)255*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_2_bw_3_4) {
256*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
257*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
258*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
259*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
260*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
261*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
262*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
263*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
264*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
265*4bdc9457SAndroid Build Coastguard Worker   }
266*4bdc9457SAndroid Build Coastguard Worker }
267*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_2_bw_2)268*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_2_bw_2) {
269*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
270*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
271*4bdc9457SAndroid Build Coastguard Worker     .output_stride(7)
272*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
273*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
274*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
275*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
276*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
277*4bdc9457SAndroid Build Coastguard Worker }
278*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_2_2_bw_2)279*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_2_2_bw_2){
280*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
281*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
282*4bdc9457SAndroid Build Coastguard Worker       .input_stride(19)
283*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
284*4bdc9457SAndroid Build Coastguard Worker       .block_width(5)
285*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
286*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
287*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
288*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
289*4bdc9457SAndroid Build Coastguard Worker   }
290*4bdc9457SAndroid Build Coastguard Worker }
291*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_2_2_bw_4)292*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_2_2_bw_4){
293*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
294*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
295*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
296*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
297*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
298*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
299*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
300*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
301*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
302*4bdc9457SAndroid Build Coastguard Worker   }
303*4bdc9457SAndroid Build Coastguard Worker }
304*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_2_2_bw_3_4)305*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_2_2_bw_3_4) {
306*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
307*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 3; j < 4; ++j){
308*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
309*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
310*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
311*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
312*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
313*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
314*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
315*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
316*4bdc9457SAndroid Build Coastguard Worker     }
317*4bdc9457SAndroid Build Coastguard Worker   }
318*4bdc9457SAndroid Build Coastguard Worker }
319*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_bw_2_is_4)320*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_bw_2_is_4) {
321*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
322*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
323*4bdc9457SAndroid Build Coastguard Worker     .output_stride(1)
324*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
325*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
326*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
327*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
328*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
329*4bdc9457SAndroid Build Coastguard Worker }
330*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_bw_2_os_2)331*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_bw_2_os_2) {
332*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
333*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
334*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
335*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
336*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
337*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
338*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
339*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
340*4bdc9457SAndroid Build Coastguard Worker }
341*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_1_bw_2_is_4_os_2)342*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_1_bw_2_is_4_os_2) {
343*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
344*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
345*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
346*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
347*4bdc9457SAndroid Build Coastguard Worker     .block_height(1)
348*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
349*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
350*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
351*4bdc9457SAndroid Build Coastguard Worker }
352*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_17_bw_38_ies_19)353*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_17_bw_38_ies_19) {
354*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
355*4bdc9457SAndroid Build Coastguard Worker     .input_stride(38)
356*4bdc9457SAndroid Build Coastguard Worker     .output_stride(17)
357*4bdc9457SAndroid Build Coastguard Worker     .block_width(38)
358*4bdc9457SAndroid Build Coastguard Worker     .block_height(17)
359*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
360*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
361*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
362*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
363*4bdc9457SAndroid Build Coastguard Worker }
364*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_3_bw_10_oes_19)365*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_3_bw_10_oes_19) {
366*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
367*4bdc9457SAndroid Build Coastguard Worker     .input_stride(10)
368*4bdc9457SAndroid Build Coastguard Worker     .output_stride(3)
369*4bdc9457SAndroid Build Coastguard Worker     .block_width(10)
370*4bdc9457SAndroid Build Coastguard Worker     .block_height(3)
371*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
372*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
373*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
374*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
375*4bdc9457SAndroid Build Coastguard Worker }
376*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8,bh_7_bw_46_ies_25_oes_21)377*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__1X2_SCALAR_INT_8, bh_7_bw_46_ies_25_oes_21) {
378*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
379*4bdc9457SAndroid Build Coastguard Worker     .input_stride(51)
380*4bdc9457SAndroid Build Coastguard Worker     .output_stride(13)
381*4bdc9457SAndroid Build Coastguard Worker     .block_width(46)
382*4bdc9457SAndroid Build Coastguard Worker     .block_height(7)
383*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
384*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
385*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
386*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
387*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__1x2_scalar_int);
388*4bdc9457SAndroid Build Coastguard Worker }
389*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_2_bw_1)390*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_2_bw_1) {
391*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
392*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
393*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
394*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
395*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
396*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
397*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
398*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
399*4bdc9457SAndroid Build Coastguard Worker }
400*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_1_4_bw_1_2)401*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_1_4_bw_1_2) {
402*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 4; ++i){
403*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 2; ++j){
404*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
405*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
406*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
407*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
408*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
409*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
410*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
411*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
412*4bdc9457SAndroid Build Coastguard Worker     }
413*4bdc9457SAndroid Build Coastguard Worker   }
414*4bdc9457SAndroid Build Coastguard Worker }
415*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_2_bw_2)416*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_2_bw_2) {
417*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
418*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
419*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
420*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
421*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
422*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
423*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
424*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
425*4bdc9457SAndroid Build Coastguard Worker }
426*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_2_bw_2_2)427*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_2_bw_2_2) {
428*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
429*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
430*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
431*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
432*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
433*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
434*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
435*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
436*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
437*4bdc9457SAndroid Build Coastguard Worker   }
438*4bdc9457SAndroid Build Coastguard Worker }
439*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_4_bw_2_2)440*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_4_bw_2_2) {
441*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
442*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
443*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
444*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
445*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
446*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
447*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
448*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
449*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
450*4bdc9457SAndroid Build Coastguard Worker   }
451*4bdc9457SAndroid Build Coastguard Worker }
452*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_4_bw_1)453*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_4_bw_1) {
454*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
455*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
456*4bdc9457SAndroid Build Coastguard Worker     .output_stride(10)
457*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
458*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
459*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
460*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
461*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
462*4bdc9457SAndroid Build Coastguard Worker }
463*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_3_4_bw_1)464*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_3_4_bw_1){
465*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
466*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
467*4bdc9457SAndroid Build Coastguard Worker       .input_stride(18)
468*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
469*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
470*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
471*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
472*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
473*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
474*4bdc9457SAndroid Build Coastguard Worker   }
475*4bdc9457SAndroid Build Coastguard Worker }
476*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_3_4_bw_2)477*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_3_4_bw_2){
478*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
479*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
480*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
481*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
482*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
483*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
484*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
485*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
486*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
487*4bdc9457SAndroid Build Coastguard Worker   }
488*4bdc9457SAndroid Build Coastguard Worker }
489*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_3_4_bw_2_2)490*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_3_4_bw_2_2) {
491*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
492*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 2; j < 2; ++j){
493*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
494*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
495*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
496*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
497*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
498*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
499*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
500*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
501*4bdc9457SAndroid Build Coastguard Worker     }
502*4bdc9457SAndroid Build Coastguard Worker   }
503*4bdc9457SAndroid Build Coastguard Worker }
504*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_2_bw_1_is_2)505*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_2_bw_1_is_2) {
506*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
507*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
508*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
509*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
510*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
511*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
512*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
513*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
514*4bdc9457SAndroid Build Coastguard Worker }
515*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_2_bw_1_os_4)516*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_2_bw_1_os_4) {
517*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
518*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
519*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
520*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
521*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
522*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
523*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
524*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
525*4bdc9457SAndroid Build Coastguard Worker }
526*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_2_bw_1_is_2_os_4)527*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_2_bw_1_is_2_os_4) {
528*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
529*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
530*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
531*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
532*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
533*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
534*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
535*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
536*4bdc9457SAndroid Build Coastguard Worker }
537*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_34_bw_19_ies_19)538*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_34_bw_19_ies_19) {
539*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
540*4bdc9457SAndroid Build Coastguard Worker     .input_stride(19)
541*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
542*4bdc9457SAndroid Build Coastguard Worker     .block_width(19)
543*4bdc9457SAndroid Build Coastguard Worker     .block_height(34)
544*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
545*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
546*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
547*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
548*4bdc9457SAndroid Build Coastguard Worker }
549*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_6_bw_5_oes_19)550*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_6_bw_5_oes_19) {
551*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
552*4bdc9457SAndroid Build Coastguard Worker     .input_stride(5)
553*4bdc9457SAndroid Build Coastguard Worker     .output_stride(6)
554*4bdc9457SAndroid Build Coastguard Worker     .block_width(5)
555*4bdc9457SAndroid Build Coastguard Worker     .block_height(6)
556*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
557*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
558*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
559*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
560*4bdc9457SAndroid Build Coastguard Worker }
561*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8,bh_14_bw_23_ies_25_oes_21)562*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_FLOAT_8, bh_14_bw_23_ies_25_oes_21) {
563*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
564*4bdc9457SAndroid Build Coastguard Worker     .input_stride(28)
565*4bdc9457SAndroid Build Coastguard Worker     .output_stride(20)
566*4bdc9457SAndroid Build Coastguard Worker     .block_width(23)
567*4bdc9457SAndroid Build Coastguard Worker     .block_height(14)
568*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
569*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
570*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
571*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
572*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_float);
573*4bdc9457SAndroid Build Coastguard Worker }
574*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_2_bw_1)575*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_2_bw_1) {
576*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
577*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
578*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
579*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
580*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
581*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
582*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
583*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
584*4bdc9457SAndroid Build Coastguard Worker }
585*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_1_4_bw_1_2)586*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_1_4_bw_1_2) {
587*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 4; ++i){
588*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 2; ++j){
589*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
590*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
591*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
592*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
593*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
594*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
595*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
596*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
597*4bdc9457SAndroid Build Coastguard Worker     }
598*4bdc9457SAndroid Build Coastguard Worker   }
599*4bdc9457SAndroid Build Coastguard Worker }
600*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_2_bw_2)601*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_2_bw_2) {
602*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
603*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
604*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
605*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
606*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
607*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
608*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
609*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
610*4bdc9457SAndroid Build Coastguard Worker }
611*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_2_bw_2_2)612*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_2_bw_2_2) {
613*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
614*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
615*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
616*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
617*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
618*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
619*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
620*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
621*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
622*4bdc9457SAndroid Build Coastguard Worker   }
623*4bdc9457SAndroid Build Coastguard Worker }
624*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_4_bw_2_2)625*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_4_bw_2_2) {
626*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
627*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
628*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
629*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
630*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
631*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
632*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
633*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
634*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
635*4bdc9457SAndroid Build Coastguard Worker   }
636*4bdc9457SAndroid Build Coastguard Worker }
637*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_4_bw_1)638*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_4_bw_1) {
639*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
640*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
641*4bdc9457SAndroid Build Coastguard Worker     .output_stride(10)
642*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
643*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
644*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
645*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
646*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
647*4bdc9457SAndroid Build Coastguard Worker }
648*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_3_4_bw_1)649*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_3_4_bw_1){
650*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
651*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
652*4bdc9457SAndroid Build Coastguard Worker       .input_stride(18)
653*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
654*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
655*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
656*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
657*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
658*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
659*4bdc9457SAndroid Build Coastguard Worker   }
660*4bdc9457SAndroid Build Coastguard Worker }
661*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_3_4_bw_2)662*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_3_4_bw_2){
663*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
664*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
665*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
666*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
667*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
668*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
669*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
670*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
671*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
672*4bdc9457SAndroid Build Coastguard Worker   }
673*4bdc9457SAndroid Build Coastguard Worker }
674*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_3_4_bw_2_2)675*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_3_4_bw_2_2) {
676*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
677*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 2; j < 2; ++j){
678*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
679*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
680*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
681*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
682*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
683*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
684*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
685*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
686*4bdc9457SAndroid Build Coastguard Worker     }
687*4bdc9457SAndroid Build Coastguard Worker   }
688*4bdc9457SAndroid Build Coastguard Worker }
689*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_2_bw_1_is_2)690*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_2_bw_1_is_2) {
691*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
692*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
693*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
694*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
695*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
696*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
697*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
698*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
699*4bdc9457SAndroid Build Coastguard Worker }
700*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_2_bw_1_os_4)701*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_2_bw_1_os_4) {
702*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
703*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
704*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
705*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
706*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
707*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
708*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
709*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
710*4bdc9457SAndroid Build Coastguard Worker }
711*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_2_bw_1_is_2_os_4)712*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_2_bw_1_is_2_os_4) {
713*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
714*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
715*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
716*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
717*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
718*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
719*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
720*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
721*4bdc9457SAndroid Build Coastguard Worker }
722*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_34_bw_19_ies_19)723*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_34_bw_19_ies_19) {
724*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
725*4bdc9457SAndroid Build Coastguard Worker     .input_stride(19)
726*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
727*4bdc9457SAndroid Build Coastguard Worker     .block_width(19)
728*4bdc9457SAndroid Build Coastguard Worker     .block_height(34)
729*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
730*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
731*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
732*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
733*4bdc9457SAndroid Build Coastguard Worker }
734*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_6_bw_5_oes_19)735*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_6_bw_5_oes_19) {
736*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
737*4bdc9457SAndroid Build Coastguard Worker     .input_stride(5)
738*4bdc9457SAndroid Build Coastguard Worker     .output_stride(6)
739*4bdc9457SAndroid Build Coastguard Worker     .block_width(5)
740*4bdc9457SAndroid Build Coastguard Worker     .block_height(6)
741*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
742*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
743*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
744*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
745*4bdc9457SAndroid Build Coastguard Worker }
746*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8,bh_14_bw_23_ies_25_oes_21)747*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X1_SCALAR_INT_8, bh_14_bw_23_ies_25_oes_21) {
748*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
749*4bdc9457SAndroid Build Coastguard Worker     .input_stride(28)
750*4bdc9457SAndroid Build Coastguard Worker     .output_stride(20)
751*4bdc9457SAndroid Build Coastguard Worker     .block_width(23)
752*4bdc9457SAndroid Build Coastguard Worker     .block_height(14)
753*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
754*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
755*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
756*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
757*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x1_scalar_int);
758*4bdc9457SAndroid Build Coastguard Worker }
759*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_2_bw_2)760*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_2_bw_2) {
761*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
762*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
763*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
764*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
765*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
766*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
767*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
768*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
769*4bdc9457SAndroid Build Coastguard Worker }
770*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_1_4_bw_1_4)771*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_1_4_bw_1_4) {
772*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 4; ++i){
773*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 4; ++j){
774*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
775*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
776*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
777*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
778*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
779*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
780*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
781*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
782*4bdc9457SAndroid Build Coastguard Worker     }
783*4bdc9457SAndroid Build Coastguard Worker   }
784*4bdc9457SAndroid Build Coastguard Worker }
785*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_2_bw_4)786*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_2_bw_4) {
787*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
788*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
789*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
790*4bdc9457SAndroid Build Coastguard Worker     .block_width(4)
791*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
792*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
793*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
794*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
795*4bdc9457SAndroid Build Coastguard Worker }
796*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_2_bw_3_4)797*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_2_bw_3_4) {
798*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
799*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
800*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
801*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
802*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
803*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
804*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
805*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
806*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
807*4bdc9457SAndroid Build Coastguard Worker   }
808*4bdc9457SAndroid Build Coastguard Worker }
809*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_4_bw_3_4)810*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_4_bw_3_4) {
811*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
812*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
813*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
814*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
815*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
816*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
817*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
818*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
819*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
820*4bdc9457SAndroid Build Coastguard Worker   }
821*4bdc9457SAndroid Build Coastguard Worker }
822*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_4_bw_2)823*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_4_bw_2) {
824*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
825*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
826*4bdc9457SAndroid Build Coastguard Worker     .output_stride(10)
827*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
828*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
829*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
830*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
831*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
832*4bdc9457SAndroid Build Coastguard Worker }
833*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_3_4_bw_2)834*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_3_4_bw_2){
835*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
836*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
837*4bdc9457SAndroid Build Coastguard Worker       .input_stride(19)
838*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
839*4bdc9457SAndroid Build Coastguard Worker       .block_width(5)
840*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
841*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
842*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
843*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
844*4bdc9457SAndroid Build Coastguard Worker   }
845*4bdc9457SAndroid Build Coastguard Worker }
846*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_3_4_bw_4)847*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_3_4_bw_4){
848*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
849*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
850*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
851*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
852*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
853*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
854*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
855*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
856*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
857*4bdc9457SAndroid Build Coastguard Worker   }
858*4bdc9457SAndroid Build Coastguard Worker }
859*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_3_4_bw_3_4)860*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_3_4_bw_3_4) {
861*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
862*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 3; j < 4; ++j){
863*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
864*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
865*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
866*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
867*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
868*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
869*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
870*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
871*4bdc9457SAndroid Build Coastguard Worker     }
872*4bdc9457SAndroid Build Coastguard Worker   }
873*4bdc9457SAndroid Build Coastguard Worker }
874*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_2_bw_2_is_4)875*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_2_bw_2_is_4) {
876*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
877*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
878*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
879*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
880*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
881*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
882*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
883*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
884*4bdc9457SAndroid Build Coastguard Worker }
885*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_2_bw_2_os_4)886*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_2_bw_2_os_4) {
887*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
888*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
889*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
890*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
891*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
892*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
893*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
894*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
895*4bdc9457SAndroid Build Coastguard Worker }
896*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_2_bw_2_is_4_os_4)897*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_2_bw_2_is_4_os_4) {
898*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
899*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
900*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
901*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
902*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
903*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
904*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
905*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
906*4bdc9457SAndroid Build Coastguard Worker }
907*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_34_bw_38_ies_19)908*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_34_bw_38_ies_19) {
909*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
910*4bdc9457SAndroid Build Coastguard Worker     .input_stride(38)
911*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
912*4bdc9457SAndroid Build Coastguard Worker     .block_width(38)
913*4bdc9457SAndroid Build Coastguard Worker     .block_height(34)
914*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
915*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
916*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
917*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
918*4bdc9457SAndroid Build Coastguard Worker }
919*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_6_bw_10_oes_19)920*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_6_bw_10_oes_19) {
921*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
922*4bdc9457SAndroid Build Coastguard Worker     .input_stride(10)
923*4bdc9457SAndroid Build Coastguard Worker     .output_stride(6)
924*4bdc9457SAndroid Build Coastguard Worker     .block_width(10)
925*4bdc9457SAndroid Build Coastguard Worker     .block_height(6)
926*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
927*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
928*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
929*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
930*4bdc9457SAndroid Build Coastguard Worker }
931*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8,bh_14_bw_46_ies_25_oes_21)932*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_FLOAT_8, bh_14_bw_46_ies_25_oes_21) {
933*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
934*4bdc9457SAndroid Build Coastguard Worker     .input_stride(51)
935*4bdc9457SAndroid Build Coastguard Worker     .output_stride(20)
936*4bdc9457SAndroid Build Coastguard Worker     .block_width(46)
937*4bdc9457SAndroid Build Coastguard Worker     .block_height(14)
938*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
939*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
940*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
941*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
942*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_float);
943*4bdc9457SAndroid Build Coastguard Worker }
944*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_2_bw_2)945*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_2_bw_2) {
946*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
947*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
948*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
949*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
950*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
951*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
952*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
953*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
954*4bdc9457SAndroid Build Coastguard Worker }
955*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_1_4_bw_1_4)956*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_1_4_bw_1_4) {
957*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 4; ++i){
958*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 4; ++j){
959*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
960*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
961*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
962*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
963*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
964*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
965*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
966*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
967*4bdc9457SAndroid Build Coastguard Worker     }
968*4bdc9457SAndroid Build Coastguard Worker   }
969*4bdc9457SAndroid Build Coastguard Worker }
970*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_2_bw_4)971*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_2_bw_4) {
972*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
973*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
974*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
975*4bdc9457SAndroid Build Coastguard Worker     .block_width(4)
976*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
977*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
978*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
979*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
980*4bdc9457SAndroid Build Coastguard Worker }
981*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_2_bw_3_4)982*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_2_bw_3_4) {
983*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
984*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
985*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
986*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
987*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
988*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
989*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
990*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
991*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
992*4bdc9457SAndroid Build Coastguard Worker   }
993*4bdc9457SAndroid Build Coastguard Worker }
994*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_4_bw_3_4)995*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_4_bw_3_4) {
996*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
997*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
998*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
999*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
1000*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1001*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
1002*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1003*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1004*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1005*4bdc9457SAndroid Build Coastguard Worker   }
1006*4bdc9457SAndroid Build Coastguard Worker }
1007*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_4_bw_2)1008*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_4_bw_2) {
1009*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1010*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1011*4bdc9457SAndroid Build Coastguard Worker     .output_stride(10)
1012*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1013*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1014*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1015*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1016*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1017*4bdc9457SAndroid Build Coastguard Worker }
1018*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_3_4_bw_2)1019*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_3_4_bw_2){
1020*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1021*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1022*4bdc9457SAndroid Build Coastguard Worker       .input_stride(19)
1023*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1024*4bdc9457SAndroid Build Coastguard Worker       .block_width(5)
1025*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1026*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1027*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1028*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1029*4bdc9457SAndroid Build Coastguard Worker   }
1030*4bdc9457SAndroid Build Coastguard Worker }
1031*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_3_4_bw_4)1032*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_3_4_bw_4){
1033*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1034*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1035*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
1036*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1037*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
1038*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1039*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1040*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1041*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1042*4bdc9457SAndroid Build Coastguard Worker   }
1043*4bdc9457SAndroid Build Coastguard Worker }
1044*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_3_4_bw_3_4)1045*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_3_4_bw_3_4) {
1046*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1047*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 3; j < 4; ++j){
1048*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1049*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
1050*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1051*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1052*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1053*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1054*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1055*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1056*4bdc9457SAndroid Build Coastguard Worker     }
1057*4bdc9457SAndroid Build Coastguard Worker   }
1058*4bdc9457SAndroid Build Coastguard Worker }
1059*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_2_bw_2_is_4)1060*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_2_bw_2_is_4) {
1061*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1062*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1063*4bdc9457SAndroid Build Coastguard Worker     .output_stride(2)
1064*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1065*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
1066*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1067*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1068*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1069*4bdc9457SAndroid Build Coastguard Worker }
1070*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_2_bw_2_os_4)1071*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_2_bw_2_os_4) {
1072*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1073*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1074*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1075*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1076*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
1077*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1078*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1079*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1080*4bdc9457SAndroid Build Coastguard Worker }
1081*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_2_bw_2_is_4_os_4)1082*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_2_bw_2_is_4_os_4) {
1083*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1084*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1085*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1086*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1087*4bdc9457SAndroid Build Coastguard Worker     .block_height(2)
1088*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1089*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1090*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1091*4bdc9457SAndroid Build Coastguard Worker }
1092*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_34_bw_38_ies_19)1093*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_34_bw_38_ies_19) {
1094*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1095*4bdc9457SAndroid Build Coastguard Worker     .input_stride(38)
1096*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
1097*4bdc9457SAndroid Build Coastguard Worker     .block_width(38)
1098*4bdc9457SAndroid Build Coastguard Worker     .block_height(34)
1099*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1100*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
1101*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1102*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1103*4bdc9457SAndroid Build Coastguard Worker }
1104*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_6_bw_10_oes_19)1105*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_6_bw_10_oes_19) {
1106*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1107*4bdc9457SAndroid Build Coastguard Worker     .input_stride(10)
1108*4bdc9457SAndroid Build Coastguard Worker     .output_stride(6)
1109*4bdc9457SAndroid Build Coastguard Worker     .block_width(10)
1110*4bdc9457SAndroid Build Coastguard Worker     .block_height(6)
1111*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1112*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
1113*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1114*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1115*4bdc9457SAndroid Build Coastguard Worker }
1116*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8,bh_14_bw_46_ies_25_oes_21)1117*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__2X2_SCALAR_INT_8, bh_14_bw_46_ies_25_oes_21) {
1118*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1119*4bdc9457SAndroid Build Coastguard Worker     .input_stride(51)
1120*4bdc9457SAndroid Build Coastguard Worker     .output_stride(20)
1121*4bdc9457SAndroid Build Coastguard Worker     .block_width(46)
1122*4bdc9457SAndroid Build Coastguard Worker     .block_height(14)
1123*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1124*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
1125*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
1126*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1127*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__2x2_scalar_int);
1128*4bdc9457SAndroid Build Coastguard Worker }
1129*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_4_bw_1)1130*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_4_bw_1) {
1131*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1132*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1133*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1134*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1135*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1136*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1137*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1138*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1139*4bdc9457SAndroid Build Coastguard Worker }
1140*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_1_8_bw_1_2)1141*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_1_8_bw_1_2) {
1142*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 8; ++i){
1143*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 2; ++j){
1144*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1145*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
1146*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
1147*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1148*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1149*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1150*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1151*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1152*4bdc9457SAndroid Build Coastguard Worker     }
1153*4bdc9457SAndroid Build Coastguard Worker   }
1154*4bdc9457SAndroid Build Coastguard Worker }
1155*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_4_bw_2)1156*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_4_bw_2) {
1157*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1158*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1159*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1160*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1161*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1162*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1163*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1164*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1165*4bdc9457SAndroid Build Coastguard Worker }
1166*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_4_bw_2_2)1167*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_4_bw_2_2) {
1168*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
1169*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1170*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1171*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1172*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1173*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
1174*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1175*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1176*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1177*4bdc9457SAndroid Build Coastguard Worker   }
1178*4bdc9457SAndroid Build Coastguard Worker }
1179*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_8_bw_2_2)1180*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_8_bw_2_2) {
1181*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
1182*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1183*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1184*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1185*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1186*4bdc9457SAndroid Build Coastguard Worker       .block_height(8)
1187*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1188*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1189*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1190*4bdc9457SAndroid Build Coastguard Worker   }
1191*4bdc9457SAndroid Build Coastguard Worker }
1192*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_8_bw_1)1193*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_8_bw_1) {
1194*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1195*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
1196*4bdc9457SAndroid Build Coastguard Worker     .output_stride(16)
1197*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1198*4bdc9457SAndroid Build Coastguard Worker     .block_height(8)
1199*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1200*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1201*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1202*4bdc9457SAndroid Build Coastguard Worker }
1203*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_5_8_bw_1)1204*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_5_8_bw_1){
1205*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1206*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1207*4bdc9457SAndroid Build Coastguard Worker       .input_stride(18)
1208*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1209*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
1210*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1211*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1212*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1213*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1214*4bdc9457SAndroid Build Coastguard Worker   }
1215*4bdc9457SAndroid Build Coastguard Worker }
1216*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_5_8_bw_2)1217*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_5_8_bw_2){
1218*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1219*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1220*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
1221*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1222*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
1223*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1224*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1225*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1226*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1227*4bdc9457SAndroid Build Coastguard Worker   }
1228*4bdc9457SAndroid Build Coastguard Worker }
1229*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_5_8_bw_2_2)1230*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_5_8_bw_2_2) {
1231*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1232*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 2; j < 2; ++j){
1233*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1234*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
1235*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1236*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1237*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1238*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1239*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1240*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1241*4bdc9457SAndroid Build Coastguard Worker     }
1242*4bdc9457SAndroid Build Coastguard Worker   }
1243*4bdc9457SAndroid Build Coastguard Worker }
1244*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_4_bw_1_is_2)1245*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_4_bw_1_is_2) {
1246*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1247*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1248*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1249*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1250*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1251*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1252*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1253*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1254*4bdc9457SAndroid Build Coastguard Worker }
1255*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_4_bw_1_os_8)1256*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_4_bw_1_os_8) {
1257*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1258*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
1259*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1260*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1261*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1262*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1263*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1264*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1265*4bdc9457SAndroid Build Coastguard Worker }
1266*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_4_bw_1_is_2_os_8)1267*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_4_bw_1_is_2_os_8) {
1268*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1269*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1270*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1271*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1272*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1273*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1274*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1275*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1276*4bdc9457SAndroid Build Coastguard Worker }
1277*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_68_bw_19_ies_19)1278*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_68_bw_19_ies_19) {
1279*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1280*4bdc9457SAndroid Build Coastguard Worker     .input_stride(19)
1281*4bdc9457SAndroid Build Coastguard Worker     .output_stride(68)
1282*4bdc9457SAndroid Build Coastguard Worker     .block_width(19)
1283*4bdc9457SAndroid Build Coastguard Worker     .block_height(68)
1284*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1285*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
1286*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1287*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1288*4bdc9457SAndroid Build Coastguard Worker }
1289*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_12_bw_5_oes_19)1290*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_12_bw_5_oes_19) {
1291*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1292*4bdc9457SAndroid Build Coastguard Worker     .input_stride(5)
1293*4bdc9457SAndroid Build Coastguard Worker     .output_stride(12)
1294*4bdc9457SAndroid Build Coastguard Worker     .block_width(5)
1295*4bdc9457SAndroid Build Coastguard Worker     .block_height(12)
1296*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1297*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
1298*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1299*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1300*4bdc9457SAndroid Build Coastguard Worker }
1301*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8,bh_28_bw_23_ies_25_oes_21)1302*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_FLOAT_8, bh_28_bw_23_ies_25_oes_21) {
1303*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1304*4bdc9457SAndroid Build Coastguard Worker     .input_stride(28)
1305*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
1306*4bdc9457SAndroid Build Coastguard Worker     .block_width(23)
1307*4bdc9457SAndroid Build Coastguard Worker     .block_height(28)
1308*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1309*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
1310*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
1311*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1312*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_float);
1313*4bdc9457SAndroid Build Coastguard Worker }
1314*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_4_bw_1)1315*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_4_bw_1) {
1316*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1317*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1318*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1319*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1320*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1321*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1322*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1323*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1324*4bdc9457SAndroid Build Coastguard Worker }
1325*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_1_8_bw_1_2)1326*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_1_8_bw_1_2) {
1327*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 8; ++i){
1328*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 2; ++j){
1329*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1330*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
1331*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
1332*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1333*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1334*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1335*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1336*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1337*4bdc9457SAndroid Build Coastguard Worker     }
1338*4bdc9457SAndroid Build Coastguard Worker   }
1339*4bdc9457SAndroid Build Coastguard Worker }
1340*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_4_bw_2)1341*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_4_bw_2) {
1342*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1343*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1344*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1345*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1346*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1347*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1348*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1349*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1350*4bdc9457SAndroid Build Coastguard Worker }
1351*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_4_bw_2_2)1352*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_4_bw_2_2) {
1353*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
1354*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1355*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1356*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1357*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1358*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
1359*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1360*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1361*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1362*4bdc9457SAndroid Build Coastguard Worker   }
1363*4bdc9457SAndroid Build Coastguard Worker }
1364*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_8_bw_2_2)1365*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_8_bw_2_2) {
1366*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 2; i < 2; ++i){
1367*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1368*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1369*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1370*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1371*4bdc9457SAndroid Build Coastguard Worker       .block_height(8)
1372*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1373*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1374*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1375*4bdc9457SAndroid Build Coastguard Worker   }
1376*4bdc9457SAndroid Build Coastguard Worker }
1377*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_8_bw_1)1378*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_8_bw_1) {
1379*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1380*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
1381*4bdc9457SAndroid Build Coastguard Worker     .output_stride(16)
1382*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1383*4bdc9457SAndroid Build Coastguard Worker     .block_height(8)
1384*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1385*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1386*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1387*4bdc9457SAndroid Build Coastguard Worker }
1388*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_5_8_bw_1)1389*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_5_8_bw_1){
1390*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1391*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1392*4bdc9457SAndroid Build Coastguard Worker       .input_stride(18)
1393*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1394*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
1395*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1396*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1397*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1398*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1399*4bdc9457SAndroid Build Coastguard Worker   }
1400*4bdc9457SAndroid Build Coastguard Worker }
1401*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_5_8_bw_2)1402*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_5_8_bw_2){
1403*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1404*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1405*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
1406*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1407*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
1408*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1409*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1410*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1411*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1412*4bdc9457SAndroid Build Coastguard Worker   }
1413*4bdc9457SAndroid Build Coastguard Worker }
1414*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_5_8_bw_2_2)1415*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_5_8_bw_2_2) {
1416*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1417*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 2; j < 2; ++j){
1418*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1419*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
1420*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1421*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1422*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1423*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1424*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1425*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1426*4bdc9457SAndroid Build Coastguard Worker     }
1427*4bdc9457SAndroid Build Coastguard Worker   }
1428*4bdc9457SAndroid Build Coastguard Worker }
1429*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_4_bw_1_is_2)1430*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_4_bw_1_is_2) {
1431*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1432*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1433*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1434*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1435*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1436*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1437*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1438*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1439*4bdc9457SAndroid Build Coastguard Worker }
1440*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_4_bw_1_os_8)1441*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_4_bw_1_os_8) {
1442*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1443*4bdc9457SAndroid Build Coastguard Worker     .input_stride(1)
1444*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1445*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1446*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1447*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1448*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1449*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1450*4bdc9457SAndroid Build Coastguard Worker }
1451*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_4_bw_1_is_2_os_8)1452*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_4_bw_1_is_2_os_8) {
1453*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1454*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1455*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1456*4bdc9457SAndroid Build Coastguard Worker     .block_width(1)
1457*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1458*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1459*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1460*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1461*4bdc9457SAndroid Build Coastguard Worker }
1462*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_68_bw_19_ies_19)1463*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_68_bw_19_ies_19) {
1464*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1465*4bdc9457SAndroid Build Coastguard Worker     .input_stride(19)
1466*4bdc9457SAndroid Build Coastguard Worker     .output_stride(68)
1467*4bdc9457SAndroid Build Coastguard Worker     .block_width(19)
1468*4bdc9457SAndroid Build Coastguard Worker     .block_height(68)
1469*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1470*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
1471*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1472*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1473*4bdc9457SAndroid Build Coastguard Worker }
1474*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_12_bw_5_oes_19)1475*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_12_bw_5_oes_19) {
1476*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1477*4bdc9457SAndroid Build Coastguard Worker     .input_stride(5)
1478*4bdc9457SAndroid Build Coastguard Worker     .output_stride(12)
1479*4bdc9457SAndroid Build Coastguard Worker     .block_width(5)
1480*4bdc9457SAndroid Build Coastguard Worker     .block_height(12)
1481*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1482*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
1483*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1484*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1485*4bdc9457SAndroid Build Coastguard Worker }
1486*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8,bh_28_bw_23_ies_25_oes_21)1487*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X1_SCALAR_INT_8, bh_28_bw_23_ies_25_oes_21) {
1488*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1489*4bdc9457SAndroid Build Coastguard Worker     .input_stride(28)
1490*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
1491*4bdc9457SAndroid Build Coastguard Worker     .block_width(23)
1492*4bdc9457SAndroid Build Coastguard Worker     .block_height(28)
1493*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1494*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
1495*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
1496*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1497*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x1_scalar_int);
1498*4bdc9457SAndroid Build Coastguard Worker }
1499*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_4_bw_2)1500*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_4_bw_2) {
1501*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1502*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1503*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1504*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1505*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1506*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1507*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1508*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1509*4bdc9457SAndroid Build Coastguard Worker }
1510*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_1_8_bw_1_4)1511*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_1_8_bw_1_4) {
1512*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 8; ++i){
1513*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 4; ++j){
1514*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1515*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
1516*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
1517*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1518*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1519*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1520*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1521*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1522*4bdc9457SAndroid Build Coastguard Worker     }
1523*4bdc9457SAndroid Build Coastguard Worker   }
1524*4bdc9457SAndroid Build Coastguard Worker }
1525*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_4_bw_4)1526*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_4_bw_4) {
1527*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1528*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1529*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1530*4bdc9457SAndroid Build Coastguard Worker     .block_width(4)
1531*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1532*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1533*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1534*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1535*4bdc9457SAndroid Build Coastguard Worker }
1536*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_4_bw_3_4)1537*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_4_bw_3_4) {
1538*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1539*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1540*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1541*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1542*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1543*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
1544*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1545*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1546*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1547*4bdc9457SAndroid Build Coastguard Worker   }
1548*4bdc9457SAndroid Build Coastguard Worker }
1549*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_8_bw_3_4)1550*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_8_bw_3_4) {
1551*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1552*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1553*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1554*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1555*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1556*4bdc9457SAndroid Build Coastguard Worker       .block_height(8)
1557*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1558*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1559*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1560*4bdc9457SAndroid Build Coastguard Worker   }
1561*4bdc9457SAndroid Build Coastguard Worker }
1562*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_8_bw_2)1563*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_8_bw_2) {
1564*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1565*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1566*4bdc9457SAndroid Build Coastguard Worker     .output_stride(16)
1567*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1568*4bdc9457SAndroid Build Coastguard Worker     .block_height(8)
1569*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1570*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1571*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1572*4bdc9457SAndroid Build Coastguard Worker }
1573*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_5_8_bw_2)1574*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_5_8_bw_2){
1575*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1576*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1577*4bdc9457SAndroid Build Coastguard Worker       .input_stride(19)
1578*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1579*4bdc9457SAndroid Build Coastguard Worker       .block_width(5)
1580*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1581*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1582*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1583*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1584*4bdc9457SAndroid Build Coastguard Worker   }
1585*4bdc9457SAndroid Build Coastguard Worker }
1586*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_5_8_bw_4)1587*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_5_8_bw_4){
1588*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1589*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1590*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
1591*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1592*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
1593*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1594*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1595*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1596*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1597*4bdc9457SAndroid Build Coastguard Worker   }
1598*4bdc9457SAndroid Build Coastguard Worker }
1599*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_5_8_bw_3_4)1600*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_5_8_bw_3_4) {
1601*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1602*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 3; j < 4; ++j){
1603*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1604*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
1605*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1606*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1607*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1608*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1609*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1610*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1611*4bdc9457SAndroid Build Coastguard Worker     }
1612*4bdc9457SAndroid Build Coastguard Worker   }
1613*4bdc9457SAndroid Build Coastguard Worker }
1614*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_4_bw_2_is_4)1615*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_4_bw_2_is_4) {
1616*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1617*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1618*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1619*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1620*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1621*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1622*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1623*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1624*4bdc9457SAndroid Build Coastguard Worker }
1625*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_4_bw_2_os_8)1626*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_4_bw_2_os_8) {
1627*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1628*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1629*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1630*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1631*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1632*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1633*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1634*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1635*4bdc9457SAndroid Build Coastguard Worker }
1636*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_4_bw_2_is_4_os_8)1637*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_4_bw_2_is_4_os_8) {
1638*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1639*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1640*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1641*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1642*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1643*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1644*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1645*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1646*4bdc9457SAndroid Build Coastguard Worker }
1647*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_68_bw_38_ies_19)1648*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_68_bw_38_ies_19) {
1649*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1650*4bdc9457SAndroid Build Coastguard Worker     .input_stride(38)
1651*4bdc9457SAndroid Build Coastguard Worker     .output_stride(68)
1652*4bdc9457SAndroid Build Coastguard Worker     .block_width(38)
1653*4bdc9457SAndroid Build Coastguard Worker     .block_height(68)
1654*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1655*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
1656*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1657*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1658*4bdc9457SAndroid Build Coastguard Worker }
1659*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_12_bw_10_oes_19)1660*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_12_bw_10_oes_19) {
1661*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1662*4bdc9457SAndroid Build Coastguard Worker     .input_stride(10)
1663*4bdc9457SAndroid Build Coastguard Worker     .output_stride(12)
1664*4bdc9457SAndroid Build Coastguard Worker     .block_width(10)
1665*4bdc9457SAndroid Build Coastguard Worker     .block_height(12)
1666*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1667*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
1668*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1669*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1670*4bdc9457SAndroid Build Coastguard Worker }
1671*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8,bh_28_bw_46_ies_25_oes_21)1672*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_FLOAT_8, bh_28_bw_46_ies_25_oes_21) {
1673*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1674*4bdc9457SAndroid Build Coastguard Worker     .input_stride(51)
1675*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
1676*4bdc9457SAndroid Build Coastguard Worker     .block_width(46)
1677*4bdc9457SAndroid Build Coastguard Worker     .block_height(28)
1678*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1679*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
1680*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
1681*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1682*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_float);
1683*4bdc9457SAndroid Build Coastguard Worker }
1684*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_4_bw_2)1685*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_4_bw_2) {
1686*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1687*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1688*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1689*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1690*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1691*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1692*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1693*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1694*4bdc9457SAndroid Build Coastguard Worker }
1695*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_1_8_bw_1_4)1696*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_1_8_bw_1_4) {
1697*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 1; i <= 8; ++i){
1698*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 1; j <= 4; ++j){
1699*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1700*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j * 3)
1701*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i * 7)
1702*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1703*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1704*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1705*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1706*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1707*4bdc9457SAndroid Build Coastguard Worker     }
1708*4bdc9457SAndroid Build Coastguard Worker   }
1709*4bdc9457SAndroid Build Coastguard Worker }
1710*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_4_bw_4)1711*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_4_bw_4) {
1712*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1713*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1714*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1715*4bdc9457SAndroid Build Coastguard Worker     .block_width(4)
1716*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1717*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1718*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1719*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1720*4bdc9457SAndroid Build Coastguard Worker }
1721*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_4_bw_3_4)1722*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_4_bw_3_4) {
1723*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1724*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1725*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1726*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1727*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1728*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
1729*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1730*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1731*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1732*4bdc9457SAndroid Build Coastguard Worker   }
1733*4bdc9457SAndroid Build Coastguard Worker }
1734*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_8_bw_3_4)1735*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_8_bw_3_4) {
1736*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 3; i < 4; ++i){
1737*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1738*4bdc9457SAndroid Build Coastguard Worker       .input_stride(i)
1739*4bdc9457SAndroid Build Coastguard Worker       .output_stride(8)
1740*4bdc9457SAndroid Build Coastguard Worker       .block_width(i)
1741*4bdc9457SAndroid Build Coastguard Worker       .block_height(8)
1742*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1743*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1744*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1745*4bdc9457SAndroid Build Coastguard Worker   }
1746*4bdc9457SAndroid Build Coastguard Worker }
1747*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_8_bw_2)1748*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_8_bw_2) {
1749*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1750*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1751*4bdc9457SAndroid Build Coastguard Worker     .output_stride(16)
1752*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1753*4bdc9457SAndroid Build Coastguard Worker     .block_height(8)
1754*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1755*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1756*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1757*4bdc9457SAndroid Build Coastguard Worker }
1758*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_5_8_bw_2)1759*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_5_8_bw_2){
1760*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1761*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1762*4bdc9457SAndroid Build Coastguard Worker       .input_stride(19)
1763*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1764*4bdc9457SAndroid Build Coastguard Worker       .block_width(5)
1765*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1766*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1767*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1768*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1769*4bdc9457SAndroid Build Coastguard Worker   }
1770*4bdc9457SAndroid Build Coastguard Worker }
1771*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_5_8_bw_4)1772*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_5_8_bw_4){
1773*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1774*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1775*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
1776*4bdc9457SAndroid Build Coastguard Worker       .output_stride(i)
1777*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
1778*4bdc9457SAndroid Build Coastguard Worker       .block_height(i)
1779*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1780*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1781*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1782*4bdc9457SAndroid Build Coastguard Worker   }
1783*4bdc9457SAndroid Build Coastguard Worker }
1784*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_5_8_bw_3_4)1785*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_5_8_bw_3_4) {
1786*4bdc9457SAndroid Build Coastguard Worker   for(size_t i = 5; i < 8; ++i){
1787*4bdc9457SAndroid Build Coastguard Worker     for(size_t j = 3; j < 4; ++j){
1788*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1789*4bdc9457SAndroid Build Coastguard Worker         .input_stride(j)
1790*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1791*4bdc9457SAndroid Build Coastguard Worker         .block_width(j)
1792*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1793*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1794*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1795*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1796*4bdc9457SAndroid Build Coastguard Worker     }
1797*4bdc9457SAndroid Build Coastguard Worker   }
1798*4bdc9457SAndroid Build Coastguard Worker }
1799*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_4_bw_2_is_4)1800*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_4_bw_2_is_4) {
1801*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1802*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1803*4bdc9457SAndroid Build Coastguard Worker     .output_stride(4)
1804*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1805*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1806*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1807*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1808*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1809*4bdc9457SAndroid Build Coastguard Worker }
1810*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_4_bw_2_os_8)1811*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_4_bw_2_os_8) {
1812*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1813*4bdc9457SAndroid Build Coastguard Worker     .input_stride(2)
1814*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1815*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1816*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1817*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1818*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1819*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1820*4bdc9457SAndroid Build Coastguard Worker }
1821*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_4_bw_2_is_4_os_8)1822*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_4_bw_2_is_4_os_8) {
1823*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1824*4bdc9457SAndroid Build Coastguard Worker     .input_stride(4)
1825*4bdc9457SAndroid Build Coastguard Worker     .output_stride(8)
1826*4bdc9457SAndroid Build Coastguard Worker     .block_width(2)
1827*4bdc9457SAndroid Build Coastguard Worker     .block_height(4)
1828*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1829*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1830*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1831*4bdc9457SAndroid Build Coastguard Worker }
1832*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_68_bw_38_ies_19)1833*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_68_bw_38_ies_19) {
1834*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1835*4bdc9457SAndroid Build Coastguard Worker     .input_stride(38)
1836*4bdc9457SAndroid Build Coastguard Worker     .output_stride(68)
1837*4bdc9457SAndroid Build Coastguard Worker     .block_width(38)
1838*4bdc9457SAndroid Build Coastguard Worker     .block_height(68)
1839*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1840*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(19)
1841*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1842*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1843*4bdc9457SAndroid Build Coastguard Worker }
1844*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_12_bw_10_oes_19)1845*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_12_bw_10_oes_19) {
1846*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1847*4bdc9457SAndroid Build Coastguard Worker     .input_stride(10)
1848*4bdc9457SAndroid Build Coastguard Worker     .output_stride(12)
1849*4bdc9457SAndroid Build Coastguard Worker     .block_width(10)
1850*4bdc9457SAndroid Build Coastguard Worker     .block_height(12)
1851*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1852*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(19)
1853*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1854*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1855*4bdc9457SAndroid Build Coastguard Worker }
1856*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8,bh_28_bw_46_ies_25_oes_21)1857*4bdc9457SAndroid Build Coastguard Worker TEST(X64_TRANSPOSEC__4X2_SCALAR_INT_8, bh_28_bw_46_ies_25_oes_21) {
1858*4bdc9457SAndroid Build Coastguard Worker   TransposeMicrokernelTester()
1859*4bdc9457SAndroid Build Coastguard Worker     .input_stride(51)
1860*4bdc9457SAndroid Build Coastguard Worker     .output_stride(34)
1861*4bdc9457SAndroid Build Coastguard Worker     .block_width(46)
1862*4bdc9457SAndroid Build Coastguard Worker     .block_height(28)
1863*4bdc9457SAndroid Build Coastguard Worker     .element_size(8)
1864*4bdc9457SAndroid Build Coastguard Worker     .input_element_stride(25)
1865*4bdc9457SAndroid Build Coastguard Worker     .output_element_stride(21)
1866*4bdc9457SAndroid Build Coastguard Worker     .iterations(1)
1867*4bdc9457SAndroid Build Coastguard Worker     .Test(xnn_x64_transposec_ukernel__4x2_scalar_int);
1868*4bdc9457SAndroid Build Coastguard Worker }
1869*4bdc9457SAndroid Build Coastguard Worker 
1870*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_2_bw_2)1871*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_2_bw_2) {
1872*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1873*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1874*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
1875*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
1876*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
1877*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
1878*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1879*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1880*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1881*4bdc9457SAndroid Build Coastguard Worker   }
1882*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_1_4_bw_1_4)1883*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_1_4_bw_1_4) {
1884*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1885*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 1; i <= 4; ++i){
1886*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 1; j <= 4; ++j){
1887*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
1888*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j * 3)
1889*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i * 7)
1890*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
1891*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
1892*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
1893*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
1894*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1895*4bdc9457SAndroid Build Coastguard Worker       }
1896*4bdc9457SAndroid Build Coastguard Worker     }
1897*4bdc9457SAndroid Build Coastguard Worker   }
1898*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_2_bw_4)1899*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_2_bw_4) {
1900*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1901*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1902*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
1903*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
1904*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
1905*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
1906*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1907*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1908*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1909*4bdc9457SAndroid Build Coastguard Worker   }
1910*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_2_bw_3_4)1911*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_2_bw_3_4) {
1912*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1913*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
1914*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1915*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
1916*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
1917*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
1918*4bdc9457SAndroid Build Coastguard Worker         .block_height(2)
1919*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1920*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1921*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1922*4bdc9457SAndroid Build Coastguard Worker     }
1923*4bdc9457SAndroid Build Coastguard Worker   }
1924*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_4_bw_3_4)1925*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_4_bw_3_4) {
1926*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1927*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
1928*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1929*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
1930*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
1931*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
1932*4bdc9457SAndroid Build Coastguard Worker         .block_height(4)
1933*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1934*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1935*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1936*4bdc9457SAndroid Build Coastguard Worker     }
1937*4bdc9457SAndroid Build Coastguard Worker   }
1938*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_4_bw_2)1939*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_4_bw_2) {
1940*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1941*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1942*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
1943*4bdc9457SAndroid Build Coastguard Worker       .output_stride(10)
1944*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
1945*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
1946*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
1947*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
1948*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1949*4bdc9457SAndroid Build Coastguard Worker   }
1950*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_3_4_bw_2)1951*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_3_4_bw_2){
1952*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1953*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
1954*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1955*4bdc9457SAndroid Build Coastguard Worker         .input_stride(19)
1956*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1957*4bdc9457SAndroid Build Coastguard Worker         .block_width(5)
1958*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1959*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1960*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1961*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1962*4bdc9457SAndroid Build Coastguard Worker     }
1963*4bdc9457SAndroid Build Coastguard Worker   }
1964*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_3_4_bw_4)1965*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_3_4_bw_4){
1966*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1967*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
1968*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
1969*4bdc9457SAndroid Build Coastguard Worker         .input_stride(4)
1970*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
1971*4bdc9457SAndroid Build Coastguard Worker         .block_width(4)
1972*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
1973*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
1974*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
1975*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1976*4bdc9457SAndroid Build Coastguard Worker     }
1977*4bdc9457SAndroid Build Coastguard Worker   }
1978*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_3_4_bw_3_4)1979*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_3_4_bw_3_4) {
1980*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1981*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
1982*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 3; j < 4; ++j){
1983*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
1984*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j)
1985*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i)
1986*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
1987*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
1988*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
1989*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
1990*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
1991*4bdc9457SAndroid Build Coastguard Worker       }
1992*4bdc9457SAndroid Build Coastguard Worker     }
1993*4bdc9457SAndroid Build Coastguard Worker   }
1994*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_2_bw_2_is_4)1995*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_2_bw_2_is_4) {
1996*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
1997*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
1998*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
1999*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2000*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2001*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2002*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2003*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2004*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
2005*4bdc9457SAndroid Build Coastguard Worker   }
2006*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_2_bw_2_os_4)2007*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_2_bw_2_os_4) {
2008*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2009*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2010*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2011*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2012*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2013*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2014*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2015*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2016*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
2017*4bdc9457SAndroid Build Coastguard Worker   }
2018*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_2_bw_2_is_4_os_4)2019*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_2_bw_2_is_4_os_4) {
2020*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2021*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2022*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2023*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2024*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2025*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2026*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2027*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2028*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
2029*4bdc9457SAndroid Build Coastguard Worker   }
2030*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_34_bw_38_ies_19)2031*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_34_bw_38_ies_19) {
2032*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2033*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2034*4bdc9457SAndroid Build Coastguard Worker       .input_stride(38)
2035*4bdc9457SAndroid Build Coastguard Worker       .output_stride(34)
2036*4bdc9457SAndroid Build Coastguard Worker       .block_width(38)
2037*4bdc9457SAndroid Build Coastguard Worker       .block_height(34)
2038*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2039*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(19)
2040*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2041*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
2042*4bdc9457SAndroid Build Coastguard Worker   }
2043*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_6_bw_10_oes_19)2044*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_6_bw_10_oes_19) {
2045*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2046*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2047*4bdc9457SAndroid Build Coastguard Worker       .input_stride(10)
2048*4bdc9457SAndroid Build Coastguard Worker       .output_stride(6)
2049*4bdc9457SAndroid Build Coastguard Worker       .block_width(10)
2050*4bdc9457SAndroid Build Coastguard Worker       .block_height(6)
2051*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2052*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(19)
2053*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2054*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
2055*4bdc9457SAndroid Build Coastguard Worker   }
2056*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8,bh_14_bw_46_ies_25_oes_21)2057*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MOV_SSE2_8, bh_14_bw_46_ies_25_oes_21) {
2058*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2059*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2060*4bdc9457SAndroid Build Coastguard Worker       .input_stride(51)
2061*4bdc9457SAndroid Build Coastguard Worker       .output_stride(20)
2062*4bdc9457SAndroid Build Coastguard Worker       .block_width(46)
2063*4bdc9457SAndroid Build Coastguard Worker       .block_height(14)
2064*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2065*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(25)
2066*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(21)
2067*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2068*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_mov_sse2);
2069*4bdc9457SAndroid Build Coastguard Worker   }
2070*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
2071*4bdc9457SAndroid Build Coastguard Worker 
2072*4bdc9457SAndroid Build Coastguard Worker 
2073*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_2_bw_2)2074*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_2_bw_2) {
2075*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2076*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2077*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2078*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2079*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2080*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2081*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2082*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2083*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2084*4bdc9457SAndroid Build Coastguard Worker   }
2085*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_1_4_bw_1_4)2086*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_1_4_bw_1_4) {
2087*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2088*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 1; i <= 4; ++i){
2089*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 1; j <= 4; ++j){
2090*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2091*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j * 3)
2092*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i * 7)
2093*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2094*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2095*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2096*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2097*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2098*4bdc9457SAndroid Build Coastguard Worker       }
2099*4bdc9457SAndroid Build Coastguard Worker     }
2100*4bdc9457SAndroid Build Coastguard Worker   }
2101*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_2_bw_4)2102*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_2_bw_4) {
2103*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2104*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2105*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2106*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2107*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
2108*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2109*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2110*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2111*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2112*4bdc9457SAndroid Build Coastguard Worker   }
2113*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_2_bw_3_4)2114*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_2_bw_3_4) {
2115*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2116*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2117*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2118*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2119*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2120*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2121*4bdc9457SAndroid Build Coastguard Worker         .block_height(2)
2122*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2123*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2124*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2125*4bdc9457SAndroid Build Coastguard Worker     }
2126*4bdc9457SAndroid Build Coastguard Worker   }
2127*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_4_bw_3_4)2128*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_4_bw_3_4) {
2129*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2130*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2131*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2132*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2133*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2134*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2135*4bdc9457SAndroid Build Coastguard Worker         .block_height(4)
2136*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2137*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2138*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2139*4bdc9457SAndroid Build Coastguard Worker     }
2140*4bdc9457SAndroid Build Coastguard Worker   }
2141*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_4_bw_2)2142*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_4_bw_2) {
2143*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2144*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2145*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2146*4bdc9457SAndroid Build Coastguard Worker       .output_stride(10)
2147*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2148*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
2149*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2150*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2151*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2152*4bdc9457SAndroid Build Coastguard Worker   }
2153*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_3_4_bw_2)2154*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_3_4_bw_2){
2155*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2156*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2157*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2158*4bdc9457SAndroid Build Coastguard Worker         .input_stride(19)
2159*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2160*4bdc9457SAndroid Build Coastguard Worker         .block_width(5)
2161*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2162*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2163*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2164*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2165*4bdc9457SAndroid Build Coastguard Worker     }
2166*4bdc9457SAndroid Build Coastguard Worker   }
2167*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_3_4_bw_4)2168*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_3_4_bw_4){
2169*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2170*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2171*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2172*4bdc9457SAndroid Build Coastguard Worker         .input_stride(4)
2173*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2174*4bdc9457SAndroid Build Coastguard Worker         .block_width(4)
2175*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2176*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2177*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2178*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2179*4bdc9457SAndroid Build Coastguard Worker     }
2180*4bdc9457SAndroid Build Coastguard Worker   }
2181*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_3_4_bw_3_4)2182*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_3_4_bw_3_4) {
2183*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2184*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2185*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 3; j < 4; ++j){
2186*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2187*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j)
2188*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i)
2189*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2190*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2191*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2192*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2193*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2194*4bdc9457SAndroid Build Coastguard Worker       }
2195*4bdc9457SAndroid Build Coastguard Worker     }
2196*4bdc9457SAndroid Build Coastguard Worker   }
2197*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_2_bw_2_is_4)2198*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_2_bw_2_is_4) {
2199*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2200*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2201*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2202*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2203*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2204*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2205*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2206*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2207*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2208*4bdc9457SAndroid Build Coastguard Worker   }
2209*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_2_bw_2_os_4)2210*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_2_bw_2_os_4) {
2211*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2212*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2213*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2214*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2215*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2216*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2217*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2218*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2219*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2220*4bdc9457SAndroid Build Coastguard Worker   }
2221*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_2_bw_2_is_4_os_4)2222*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_2_bw_2_is_4_os_4) {
2223*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2224*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2225*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2226*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2227*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2228*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2229*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2230*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2231*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2232*4bdc9457SAndroid Build Coastguard Worker   }
2233*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_34_bw_38_ies_19)2234*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_34_bw_38_ies_19) {
2235*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2236*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2237*4bdc9457SAndroid Build Coastguard Worker       .input_stride(38)
2238*4bdc9457SAndroid Build Coastguard Worker       .output_stride(34)
2239*4bdc9457SAndroid Build Coastguard Worker       .block_width(38)
2240*4bdc9457SAndroid Build Coastguard Worker       .block_height(34)
2241*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2242*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(19)
2243*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2244*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2245*4bdc9457SAndroid Build Coastguard Worker   }
2246*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_6_bw_10_oes_19)2247*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_6_bw_10_oes_19) {
2248*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2249*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2250*4bdc9457SAndroid Build Coastguard Worker       .input_stride(10)
2251*4bdc9457SAndroid Build Coastguard Worker       .output_stride(6)
2252*4bdc9457SAndroid Build Coastguard Worker       .block_width(10)
2253*4bdc9457SAndroid Build Coastguard Worker       .block_height(6)
2254*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2255*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(19)
2256*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2257*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2258*4bdc9457SAndroid Build Coastguard Worker   }
2259*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8,bh_14_bw_46_ies_25_oes_21)2260*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_MULTI_SSE2_8, bh_14_bw_46_ies_25_oes_21) {
2261*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2262*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2263*4bdc9457SAndroid Build Coastguard Worker       .input_stride(51)
2264*4bdc9457SAndroid Build Coastguard Worker       .output_stride(20)
2265*4bdc9457SAndroid Build Coastguard Worker       .block_width(46)
2266*4bdc9457SAndroid Build Coastguard Worker       .block_height(14)
2267*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2268*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(25)
2269*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(21)
2270*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2271*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_multi_sse2);
2272*4bdc9457SAndroid Build Coastguard Worker   }
2273*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
2274*4bdc9457SAndroid Build Coastguard Worker 
2275*4bdc9457SAndroid Build Coastguard Worker 
2276*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_2_bw_2)2277*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_2_bw_2) {
2278*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2279*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2280*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2281*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2282*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2283*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2284*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2285*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2286*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2287*4bdc9457SAndroid Build Coastguard Worker   }
2288*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_1_4_bw_1_4)2289*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_1_4_bw_1_4) {
2290*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2291*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 1; i <= 4; ++i){
2292*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 1; j <= 4; ++j){
2293*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2294*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j * 3)
2295*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i * 7)
2296*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2297*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2298*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2299*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2300*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2301*4bdc9457SAndroid Build Coastguard Worker       }
2302*4bdc9457SAndroid Build Coastguard Worker     }
2303*4bdc9457SAndroid Build Coastguard Worker   }
2304*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_2_bw_4)2305*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_2_bw_4) {
2306*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2307*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2308*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2309*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2310*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
2311*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2312*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2313*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2314*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2315*4bdc9457SAndroid Build Coastguard Worker   }
2316*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_2_bw_3_4)2317*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_2_bw_3_4) {
2318*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2319*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2320*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2321*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2322*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2323*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2324*4bdc9457SAndroid Build Coastguard Worker         .block_height(2)
2325*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2326*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2327*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2328*4bdc9457SAndroid Build Coastguard Worker     }
2329*4bdc9457SAndroid Build Coastguard Worker   }
2330*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_4_bw_3_4)2331*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_4_bw_3_4) {
2332*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2333*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2334*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2335*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2336*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2337*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2338*4bdc9457SAndroid Build Coastguard Worker         .block_height(4)
2339*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2340*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2341*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2342*4bdc9457SAndroid Build Coastguard Worker     }
2343*4bdc9457SAndroid Build Coastguard Worker   }
2344*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_4_bw_2)2345*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_4_bw_2) {
2346*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2347*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2348*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2349*4bdc9457SAndroid Build Coastguard Worker       .output_stride(10)
2350*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2351*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
2352*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2353*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2354*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2355*4bdc9457SAndroid Build Coastguard Worker   }
2356*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_3_4_bw_2)2357*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_3_4_bw_2){
2358*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2359*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2360*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2361*4bdc9457SAndroid Build Coastguard Worker         .input_stride(19)
2362*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2363*4bdc9457SAndroid Build Coastguard Worker         .block_width(5)
2364*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2365*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2366*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2367*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2368*4bdc9457SAndroid Build Coastguard Worker     }
2369*4bdc9457SAndroid Build Coastguard Worker   }
2370*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_3_4_bw_4)2371*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_3_4_bw_4){
2372*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2373*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2374*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2375*4bdc9457SAndroid Build Coastguard Worker         .input_stride(4)
2376*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2377*4bdc9457SAndroid Build Coastguard Worker         .block_width(4)
2378*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2379*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2380*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2381*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2382*4bdc9457SAndroid Build Coastguard Worker     }
2383*4bdc9457SAndroid Build Coastguard Worker   }
2384*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_3_4_bw_3_4)2385*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_3_4_bw_3_4) {
2386*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2387*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2388*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 3; j < 4; ++j){
2389*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2390*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j)
2391*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i)
2392*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2393*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2394*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2395*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2396*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2397*4bdc9457SAndroid Build Coastguard Worker       }
2398*4bdc9457SAndroid Build Coastguard Worker     }
2399*4bdc9457SAndroid Build Coastguard Worker   }
2400*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_2_bw_2_is_4)2401*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_2_bw_2_is_4) {
2402*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2403*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2404*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2405*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2406*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2407*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2408*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2409*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2410*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2411*4bdc9457SAndroid Build Coastguard Worker   }
2412*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_2_bw_2_os_4)2413*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_2_bw_2_os_4) {
2414*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2415*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2416*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2417*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2418*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2419*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2420*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2421*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2422*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2423*4bdc9457SAndroid Build Coastguard Worker   }
2424*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_2_bw_2_is_4_os_4)2425*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_2_bw_2_is_4_os_4) {
2426*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2427*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2428*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2429*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2430*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2431*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2432*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2433*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2434*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2435*4bdc9457SAndroid Build Coastguard Worker   }
2436*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_34_bw_38_ies_19)2437*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_34_bw_38_ies_19) {
2438*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2439*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2440*4bdc9457SAndroid Build Coastguard Worker       .input_stride(38)
2441*4bdc9457SAndroid Build Coastguard Worker       .output_stride(34)
2442*4bdc9457SAndroid Build Coastguard Worker       .block_width(38)
2443*4bdc9457SAndroid Build Coastguard Worker       .block_height(34)
2444*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2445*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(19)
2446*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2447*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2448*4bdc9457SAndroid Build Coastguard Worker   }
2449*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_6_bw_10_oes_19)2450*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_6_bw_10_oes_19) {
2451*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2452*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2453*4bdc9457SAndroid Build Coastguard Worker       .input_stride(10)
2454*4bdc9457SAndroid Build Coastguard Worker       .output_stride(6)
2455*4bdc9457SAndroid Build Coastguard Worker       .block_width(10)
2456*4bdc9457SAndroid Build Coastguard Worker       .block_height(6)
2457*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2458*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(19)
2459*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2460*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2461*4bdc9457SAndroid Build Coastguard Worker   }
2462*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8,bh_14_bw_46_ies_25_oes_21)2463*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_MULTI_SWITCH_SSE2_8, bh_14_bw_46_ies_25_oes_21) {
2464*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2465*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2466*4bdc9457SAndroid Build Coastguard Worker       .input_stride(51)
2467*4bdc9457SAndroid Build Coastguard Worker       .output_stride(20)
2468*4bdc9457SAndroid Build Coastguard Worker       .block_width(46)
2469*4bdc9457SAndroid Build Coastguard Worker       .block_height(14)
2470*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2471*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(25)
2472*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(21)
2473*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2474*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_multi_switch_sse2);
2475*4bdc9457SAndroid Build Coastguard Worker   }
2476*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
2477*4bdc9457SAndroid Build Coastguard Worker 
2478*4bdc9457SAndroid Build Coastguard Worker 
2479*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_2_bw_2)2480*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_2_bw_2) {
2481*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2482*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2483*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2484*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2485*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2486*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2487*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2488*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2489*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2490*4bdc9457SAndroid Build Coastguard Worker   }
2491*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_1_4_bw_1_4)2492*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_1_4_bw_1_4) {
2493*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2494*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 1; i <= 4; ++i){
2495*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 1; j <= 4; ++j){
2496*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2497*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j * 3)
2498*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i * 7)
2499*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2500*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2501*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2502*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2503*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2504*4bdc9457SAndroid Build Coastguard Worker       }
2505*4bdc9457SAndroid Build Coastguard Worker     }
2506*4bdc9457SAndroid Build Coastguard Worker   }
2507*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_2_bw_4)2508*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_2_bw_4) {
2509*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2510*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2511*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2512*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2513*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
2514*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2515*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2516*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2517*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2518*4bdc9457SAndroid Build Coastguard Worker   }
2519*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_2_bw_3_4)2520*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_2_bw_3_4) {
2521*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2522*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2523*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2524*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2525*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2526*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2527*4bdc9457SAndroid Build Coastguard Worker         .block_height(2)
2528*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2529*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2530*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2531*4bdc9457SAndroid Build Coastguard Worker     }
2532*4bdc9457SAndroid Build Coastguard Worker   }
2533*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_4_bw_3_4)2534*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_4_bw_3_4) {
2535*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2536*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2537*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2538*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2539*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2540*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2541*4bdc9457SAndroid Build Coastguard Worker         .block_height(4)
2542*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2543*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2544*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2545*4bdc9457SAndroid Build Coastguard Worker     }
2546*4bdc9457SAndroid Build Coastguard Worker   }
2547*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_4_bw_2)2548*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_4_bw_2) {
2549*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2550*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2551*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2552*4bdc9457SAndroid Build Coastguard Worker       .output_stride(10)
2553*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2554*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
2555*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2556*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2557*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2558*4bdc9457SAndroid Build Coastguard Worker   }
2559*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_3_4_bw_2)2560*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_3_4_bw_2){
2561*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2562*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2563*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2564*4bdc9457SAndroid Build Coastguard Worker         .input_stride(19)
2565*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2566*4bdc9457SAndroid Build Coastguard Worker         .block_width(5)
2567*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2568*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2569*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2570*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2571*4bdc9457SAndroid Build Coastguard Worker     }
2572*4bdc9457SAndroid Build Coastguard Worker   }
2573*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_3_4_bw_4)2574*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_3_4_bw_4){
2575*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2576*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2577*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2578*4bdc9457SAndroid Build Coastguard Worker         .input_stride(4)
2579*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2580*4bdc9457SAndroid Build Coastguard Worker         .block_width(4)
2581*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2582*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2583*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2584*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2585*4bdc9457SAndroid Build Coastguard Worker     }
2586*4bdc9457SAndroid Build Coastguard Worker   }
2587*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_3_4_bw_3_4)2588*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_3_4_bw_3_4) {
2589*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2590*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2591*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 3; j < 4; ++j){
2592*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2593*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j)
2594*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i)
2595*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2596*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2597*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2598*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2599*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2600*4bdc9457SAndroid Build Coastguard Worker       }
2601*4bdc9457SAndroid Build Coastguard Worker     }
2602*4bdc9457SAndroid Build Coastguard Worker   }
2603*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_2_bw_2_is_4)2604*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_2_bw_2_is_4) {
2605*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2606*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2607*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2608*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2609*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2610*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2611*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2612*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2613*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2614*4bdc9457SAndroid Build Coastguard Worker   }
2615*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_2_bw_2_os_4)2616*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_2_bw_2_os_4) {
2617*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2618*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2619*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2620*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2621*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2622*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2623*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2624*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2625*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2626*4bdc9457SAndroid Build Coastguard Worker   }
2627*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_2_bw_2_is_4_os_4)2628*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_2_bw_2_is_4_os_4) {
2629*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2630*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2631*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2632*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2633*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2634*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2635*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2636*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2637*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2638*4bdc9457SAndroid Build Coastguard Worker   }
2639*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_34_bw_38_ies_19)2640*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_34_bw_38_ies_19) {
2641*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2642*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2643*4bdc9457SAndroid Build Coastguard Worker       .input_stride(38)
2644*4bdc9457SAndroid Build Coastguard Worker       .output_stride(34)
2645*4bdc9457SAndroid Build Coastguard Worker       .block_width(38)
2646*4bdc9457SAndroid Build Coastguard Worker       .block_height(34)
2647*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2648*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(19)
2649*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2650*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2651*4bdc9457SAndroid Build Coastguard Worker   }
2652*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_6_bw_10_oes_19)2653*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_6_bw_10_oes_19) {
2654*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2655*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2656*4bdc9457SAndroid Build Coastguard Worker       .input_stride(10)
2657*4bdc9457SAndroid Build Coastguard Worker       .output_stride(6)
2658*4bdc9457SAndroid Build Coastguard Worker       .block_width(10)
2659*4bdc9457SAndroid Build Coastguard Worker       .block_height(6)
2660*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2661*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(19)
2662*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2663*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2664*4bdc9457SAndroid Build Coastguard Worker   }
2665*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8,bh_14_bw_46_ies_25_oes_21)2666*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MOV_SSE2_8, bh_14_bw_46_ies_25_oes_21) {
2667*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2668*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2669*4bdc9457SAndroid Build Coastguard Worker       .input_stride(51)
2670*4bdc9457SAndroid Build Coastguard Worker       .output_stride(20)
2671*4bdc9457SAndroid Build Coastguard Worker       .block_width(46)
2672*4bdc9457SAndroid Build Coastguard Worker       .block_height(14)
2673*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2674*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(25)
2675*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(21)
2676*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2677*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_mov_sse2);
2678*4bdc9457SAndroid Build Coastguard Worker   }
2679*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
2680*4bdc9457SAndroid Build Coastguard Worker 
2681*4bdc9457SAndroid Build Coastguard Worker 
2682*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_2_bw_2)2683*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_2_bw_2) {
2684*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2685*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2686*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2687*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2688*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2689*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2690*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2691*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2692*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2693*4bdc9457SAndroid Build Coastguard Worker   }
2694*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_1_4_bw_1_4)2695*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_1_4_bw_1_4) {
2696*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2697*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 1; i <= 4; ++i){
2698*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 1; j <= 4; ++j){
2699*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2700*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j * 3)
2701*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i * 7)
2702*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2703*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2704*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2705*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2706*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2707*4bdc9457SAndroid Build Coastguard Worker       }
2708*4bdc9457SAndroid Build Coastguard Worker     }
2709*4bdc9457SAndroid Build Coastguard Worker   }
2710*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_2_bw_4)2711*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_2_bw_4) {
2712*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2713*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2714*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2715*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2716*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
2717*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2718*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2719*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2720*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2721*4bdc9457SAndroid Build Coastguard Worker   }
2722*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_2_bw_3_4)2723*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_2_bw_3_4) {
2724*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2725*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2726*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2727*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2728*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2729*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2730*4bdc9457SAndroid Build Coastguard Worker         .block_height(2)
2731*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2732*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2733*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2734*4bdc9457SAndroid Build Coastguard Worker     }
2735*4bdc9457SAndroid Build Coastguard Worker   }
2736*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_4_bw_3_4)2737*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_4_bw_3_4) {
2738*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2739*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2740*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2741*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2742*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2743*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2744*4bdc9457SAndroid Build Coastguard Worker         .block_height(4)
2745*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2746*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2747*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2748*4bdc9457SAndroid Build Coastguard Worker     }
2749*4bdc9457SAndroid Build Coastguard Worker   }
2750*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_4_bw_2)2751*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_4_bw_2) {
2752*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2753*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2754*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2755*4bdc9457SAndroid Build Coastguard Worker       .output_stride(10)
2756*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2757*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
2758*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2759*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2760*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2761*4bdc9457SAndroid Build Coastguard Worker   }
2762*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_3_4_bw_2)2763*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_3_4_bw_2){
2764*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2765*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2766*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2767*4bdc9457SAndroid Build Coastguard Worker         .input_stride(19)
2768*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2769*4bdc9457SAndroid Build Coastguard Worker         .block_width(5)
2770*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2771*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2772*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2773*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2774*4bdc9457SAndroid Build Coastguard Worker     }
2775*4bdc9457SAndroid Build Coastguard Worker   }
2776*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_3_4_bw_4)2777*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_3_4_bw_4){
2778*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2779*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2780*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2781*4bdc9457SAndroid Build Coastguard Worker         .input_stride(4)
2782*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2783*4bdc9457SAndroid Build Coastguard Worker         .block_width(4)
2784*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2785*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2786*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2787*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2788*4bdc9457SAndroid Build Coastguard Worker     }
2789*4bdc9457SAndroid Build Coastguard Worker   }
2790*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_3_4_bw_3_4)2791*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_3_4_bw_3_4) {
2792*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2793*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2794*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 3; j < 4; ++j){
2795*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2796*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j)
2797*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i)
2798*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2799*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2800*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2801*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2802*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2803*4bdc9457SAndroid Build Coastguard Worker       }
2804*4bdc9457SAndroid Build Coastguard Worker     }
2805*4bdc9457SAndroid Build Coastguard Worker   }
2806*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_2_bw_2_is_4)2807*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_2_bw_2_is_4) {
2808*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2809*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2810*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2811*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2812*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2813*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2814*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2815*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2816*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2817*4bdc9457SAndroid Build Coastguard Worker   }
2818*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_2_bw_2_os_4)2819*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_2_bw_2_os_4) {
2820*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2821*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2822*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2823*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2824*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2825*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2826*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2827*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2828*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2829*4bdc9457SAndroid Build Coastguard Worker   }
2830*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_2_bw_2_is_4_os_4)2831*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_2_bw_2_is_4_os_4) {
2832*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2833*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2834*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2835*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2836*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2837*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2838*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2839*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2840*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2841*4bdc9457SAndroid Build Coastguard Worker   }
2842*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_34_bw_38_ies_19)2843*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_34_bw_38_ies_19) {
2844*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2845*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2846*4bdc9457SAndroid Build Coastguard Worker       .input_stride(38)
2847*4bdc9457SAndroid Build Coastguard Worker       .output_stride(34)
2848*4bdc9457SAndroid Build Coastguard Worker       .block_width(38)
2849*4bdc9457SAndroid Build Coastguard Worker       .block_height(34)
2850*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2851*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(19)
2852*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2853*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2854*4bdc9457SAndroid Build Coastguard Worker   }
2855*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_6_bw_10_oes_19)2856*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_6_bw_10_oes_19) {
2857*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2858*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2859*4bdc9457SAndroid Build Coastguard Worker       .input_stride(10)
2860*4bdc9457SAndroid Build Coastguard Worker       .output_stride(6)
2861*4bdc9457SAndroid Build Coastguard Worker       .block_width(10)
2862*4bdc9457SAndroid Build Coastguard Worker       .block_height(6)
2863*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2864*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(19)
2865*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2866*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2867*4bdc9457SAndroid Build Coastguard Worker   }
2868*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8,bh_14_bw_46_ies_25_oes_21)2869*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_MULTI_SSE2_8, bh_14_bw_46_ies_25_oes_21) {
2870*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2871*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2872*4bdc9457SAndroid Build Coastguard Worker       .input_stride(51)
2873*4bdc9457SAndroid Build Coastguard Worker       .output_stride(20)
2874*4bdc9457SAndroid Build Coastguard Worker       .block_width(46)
2875*4bdc9457SAndroid Build Coastguard Worker       .block_height(14)
2876*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2877*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(25)
2878*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(21)
2879*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2880*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_multi_sse2);
2881*4bdc9457SAndroid Build Coastguard Worker   }
2882*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
2883*4bdc9457SAndroid Build Coastguard Worker 
2884*4bdc9457SAndroid Build Coastguard Worker 
2885*4bdc9457SAndroid Build Coastguard Worker #if XNN_ARCH_X86 || XNN_ARCH_X86_64
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_2_bw_2)2886*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_2_bw_2) {
2887*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2888*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2889*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2890*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
2891*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2892*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2893*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2894*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2895*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2896*4bdc9457SAndroid Build Coastguard Worker   }
2897*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_1_4_bw_1_4)2898*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_1_4_bw_1_4) {
2899*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2900*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 1; i <= 4; ++i){
2901*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 1; j <= 4; ++j){
2902*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2903*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j * 3)
2904*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i * 7)
2905*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
2906*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
2907*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
2908*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
2909*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2910*4bdc9457SAndroid Build Coastguard Worker       }
2911*4bdc9457SAndroid Build Coastguard Worker     }
2912*4bdc9457SAndroid Build Coastguard Worker   }
2913*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_2_bw_4)2914*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_2_bw_4) {
2915*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2916*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2917*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
2918*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
2919*4bdc9457SAndroid Build Coastguard Worker       .block_width(4)
2920*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
2921*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2922*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2923*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2924*4bdc9457SAndroid Build Coastguard Worker   }
2925*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_2_bw_3_4)2926*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_2_bw_3_4) {
2927*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2928*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2929*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2930*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2931*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2932*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2933*4bdc9457SAndroid Build Coastguard Worker         .block_height(2)
2934*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2935*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2936*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2937*4bdc9457SAndroid Build Coastguard Worker     }
2938*4bdc9457SAndroid Build Coastguard Worker   }
2939*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_4_bw_3_4)2940*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_4_bw_3_4) {
2941*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2942*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2943*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2944*4bdc9457SAndroid Build Coastguard Worker         .input_stride(i)
2945*4bdc9457SAndroid Build Coastguard Worker         .output_stride(4)
2946*4bdc9457SAndroid Build Coastguard Worker         .block_width(i)
2947*4bdc9457SAndroid Build Coastguard Worker         .block_height(4)
2948*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2949*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2950*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2951*4bdc9457SAndroid Build Coastguard Worker     }
2952*4bdc9457SAndroid Build Coastguard Worker   }
2953*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_4_bw_2)2954*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_4_bw_2) {
2955*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2956*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
2957*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
2958*4bdc9457SAndroid Build Coastguard Worker       .output_stride(10)
2959*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
2960*4bdc9457SAndroid Build Coastguard Worker       .block_height(4)
2961*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
2962*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
2963*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2964*4bdc9457SAndroid Build Coastguard Worker   }
2965*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_3_4_bw_2)2966*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_3_4_bw_2){
2967*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2968*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2969*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2970*4bdc9457SAndroid Build Coastguard Worker         .input_stride(19)
2971*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2972*4bdc9457SAndroid Build Coastguard Worker         .block_width(5)
2973*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2974*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2975*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2976*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2977*4bdc9457SAndroid Build Coastguard Worker     }
2978*4bdc9457SAndroid Build Coastguard Worker   }
2979*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_3_4_bw_4)2980*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_3_4_bw_4){
2981*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2982*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2983*4bdc9457SAndroid Build Coastguard Worker       TransposeMicrokernelTester()
2984*4bdc9457SAndroid Build Coastguard Worker         .input_stride(4)
2985*4bdc9457SAndroid Build Coastguard Worker         .output_stride(i)
2986*4bdc9457SAndroid Build Coastguard Worker         .block_width(4)
2987*4bdc9457SAndroid Build Coastguard Worker         .block_height(i)
2988*4bdc9457SAndroid Build Coastguard Worker         .element_size(8)
2989*4bdc9457SAndroid Build Coastguard Worker         .iterations(1)
2990*4bdc9457SAndroid Build Coastguard Worker         .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
2991*4bdc9457SAndroid Build Coastguard Worker     }
2992*4bdc9457SAndroid Build Coastguard Worker   }
2993*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_3_4_bw_3_4)2994*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_3_4_bw_3_4) {
2995*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
2996*4bdc9457SAndroid Build Coastguard Worker     for(size_t i = 3; i < 4; ++i){
2997*4bdc9457SAndroid Build Coastguard Worker       for(size_t j = 3; j < 4; ++j){
2998*4bdc9457SAndroid Build Coastguard Worker         TransposeMicrokernelTester()
2999*4bdc9457SAndroid Build Coastguard Worker           .input_stride(j)
3000*4bdc9457SAndroid Build Coastguard Worker           .output_stride(i)
3001*4bdc9457SAndroid Build Coastguard Worker           .block_width(j)
3002*4bdc9457SAndroid Build Coastguard Worker           .block_height(i)
3003*4bdc9457SAndroid Build Coastguard Worker           .element_size(8)
3004*4bdc9457SAndroid Build Coastguard Worker           .iterations(1)
3005*4bdc9457SAndroid Build Coastguard Worker           .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3006*4bdc9457SAndroid Build Coastguard Worker       }
3007*4bdc9457SAndroid Build Coastguard Worker     }
3008*4bdc9457SAndroid Build Coastguard Worker   }
3009*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_2_bw_2_is_4)3010*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_2_bw_2_is_4) {
3011*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
3012*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
3013*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
3014*4bdc9457SAndroid Build Coastguard Worker       .output_stride(2)
3015*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
3016*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
3017*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
3018*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
3019*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3020*4bdc9457SAndroid Build Coastguard Worker   }
3021*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_2_bw_2_os_4)3022*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_2_bw_2_os_4) {
3023*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
3024*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
3025*4bdc9457SAndroid Build Coastguard Worker       .input_stride(2)
3026*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
3027*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
3028*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
3029*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
3030*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
3031*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3032*4bdc9457SAndroid Build Coastguard Worker   }
3033*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_2_bw_2_is_4_os_4)3034*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_2_bw_2_is_4_os_4) {
3035*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
3036*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
3037*4bdc9457SAndroid Build Coastguard Worker       .input_stride(4)
3038*4bdc9457SAndroid Build Coastguard Worker       .output_stride(4)
3039*4bdc9457SAndroid Build Coastguard Worker       .block_width(2)
3040*4bdc9457SAndroid Build Coastguard Worker       .block_height(2)
3041*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
3042*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
3043*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3044*4bdc9457SAndroid Build Coastguard Worker   }
3045*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_34_bw_38_ies_19)3046*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_34_bw_38_ies_19) {
3047*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
3048*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
3049*4bdc9457SAndroid Build Coastguard Worker       .input_stride(38)
3050*4bdc9457SAndroid Build Coastguard Worker       .output_stride(34)
3051*4bdc9457SAndroid Build Coastguard Worker       .block_width(38)
3052*4bdc9457SAndroid Build Coastguard Worker       .block_height(34)
3053*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
3054*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(19)
3055*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
3056*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3057*4bdc9457SAndroid Build Coastguard Worker   }
3058*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_6_bw_10_oes_19)3059*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_6_bw_10_oes_19) {
3060*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
3061*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
3062*4bdc9457SAndroid Build Coastguard Worker       .input_stride(10)
3063*4bdc9457SAndroid Build Coastguard Worker       .output_stride(6)
3064*4bdc9457SAndroid Build Coastguard Worker       .block_width(10)
3065*4bdc9457SAndroid Build Coastguard Worker       .block_height(6)
3066*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
3067*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(19)
3068*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
3069*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3070*4bdc9457SAndroid Build Coastguard Worker   }
3071*4bdc9457SAndroid Build Coastguard Worker 
TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8,bh_14_bw_46_ies_25_oes_21)3072*4bdc9457SAndroid Build Coastguard Worker   TEST(X64_TRANSPOSEC__2X2_REUSE_SWITCH_SSE2_8, bh_14_bw_46_ies_25_oes_21) {
3073*4bdc9457SAndroid Build Coastguard Worker     TEST_REQUIRES_X86_SSE2;
3074*4bdc9457SAndroid Build Coastguard Worker     TransposeMicrokernelTester()
3075*4bdc9457SAndroid Build Coastguard Worker       .input_stride(51)
3076*4bdc9457SAndroid Build Coastguard Worker       .output_stride(20)
3077*4bdc9457SAndroid Build Coastguard Worker       .block_width(46)
3078*4bdc9457SAndroid Build Coastguard Worker       .block_height(14)
3079*4bdc9457SAndroid Build Coastguard Worker       .element_size(8)
3080*4bdc9457SAndroid Build Coastguard Worker       .input_element_stride(25)
3081*4bdc9457SAndroid Build Coastguard Worker       .output_element_stride(21)
3082*4bdc9457SAndroid Build Coastguard Worker       .iterations(1)
3083*4bdc9457SAndroid Build Coastguard Worker       .Test(xnn_x64_transposec_ukernel__2x2_reuse_switch_sse2);
3084*4bdc9457SAndroid Build Coastguard Worker   }
3085*4bdc9457SAndroid Build Coastguard Worker #endif  // XNN_ARCH_X86 || XNN_ARCH_X86_64
3086