arm_compute v17.04
[platform/upstream/armcl.git] / documentation / transpose_8cl.xhtml
1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.8.11"/>
8 <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
9 <title>ARM Compute Library: src/core/CL/cl_kernels/transpose.cl File Reference</title>
10 <link href="tabs.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="jquery.js"></script>
12 <script type="text/javascript" src="dynsections.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17 <script type="text/javascript">
18   $(document).ready(initResizable);
19   $(window).load(resizeHeight);
20 </script>
21 <link href="search/search.css" rel="stylesheet" type="text/css"/>
22 <script type="text/javascript" src="search/searchdata.js"></script>
23 <script type="text/javascript" src="search/search.js"></script>
24 <script type="text/javascript">
25   $(document).ready(function() { init_search(); });
26 </script>
27 <script type="text/x-mathjax-config">
28   MathJax.Hub.Config({
29     extensions: ["tex2jax.js"],
30     jax: ["input/TeX","output/HTML-CSS"],
31 });
32 </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
33 <link href="doxygen.css" rel="stylesheet" type="text/css" />
34 </head>
35 <body>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37 <div id="titlearea">
38 <table cellspacing="0" cellpadding="0">
39  <tbody>
40  <tr style="height: 56px;">
41   <td style="padding-left: 0.5em;">
42    <div id="projectname">ARM Compute Library
43    &#160;<span id="projectnumber">17.04</span>
44    </div>
45   </td>
46  </tr>
47  </tbody>
48 </table>
49 </div>
50 <!-- end header part -->
51 <!-- Generated by Doxygen 1.8.11 -->
52 <script type="text/javascript">
53 var searchBox = new SearchBox("searchBox", "search",false,'Search');
54 </script>
55   <div id="navrow1" class="tabs">
56     <ul class="tablist">
57       <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
58       <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
59       <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
60       <li class="current"><a href="files.xhtml"><span>Files</span></a></li>
61       <li>
62         <div id="MSearchBox" class="MSearchBoxInactive">
63         <span class="left">
64           <img id="MSearchSelect" src="search/mag_sel.png"
65                onmouseover="return searchBox.OnSearchSelectShow()"
66                onmouseout="return searchBox.OnSearchSelectHide()"
67                alt=""/>
68           <input type="text" id="MSearchField" value="Search" accesskey="S"
69                onfocus="searchBox.OnSearchFieldFocus(true)" 
70                onblur="searchBox.OnSearchFieldFocus(false)" 
71                onkeyup="searchBox.OnSearchFieldChange(event)"/>
72           </span><span class="right">
73             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
74           </span>
75         </div>
76       </li>
77     </ul>
78   </div>
79   <div id="navrow2" class="tabs2">
80     <ul class="tablist">
81       <li><a href="files.xhtml"><span>File&#160;List</span></a></li>
82       <li><a href="globals.xhtml"><span>Globals</span></a></li>
83     </ul>
84   </div>
85 </div><!-- top -->
86 <div id="side-nav" class="ui-resizable side-nav-resizable">
87   <div id="nav-tree">
88     <div id="nav-tree-contents">
89       <div id="nav-sync" class="sync"></div>
90     </div>
91   </div>
92   <div id="splitbar" style="-moz-user-select:none;" 
93        class="ui-resizable-handle">
94   </div>
95 </div>
96 <script type="text/javascript">
97 $(document).ready(function(){initNavTree('transpose_8cl.xhtml','');});
98 </script>
99 <div id="doc-content">
100 <!-- window showing the filter options -->
101 <div id="MSearchSelectWindow"
102      onmouseover="return searchBox.OnSearchSelectShow()"
103      onmouseout="return searchBox.OnSearchSelectHide()"
104      onkeydown="return searchBox.OnSearchSelectKey(event)">
105 </div>
106
107 <!-- iframe showing the search results (closed by default) -->
108 <div id="MSearchResultsWindow">
109 <iframe src="javascript:void(0)" frameborder="0" 
110         name="MSearchResults" id="MSearchResults">
111 </iframe>
112 </div>
113
114 <div class="header">
115   <div class="summary">
116 <a href="#define-members">Macros</a> &#124;
117 <a href="#func-members">Functions</a>  </div>
118   <div class="headertitle">
119 <div class="title">transpose.cl File Reference</div>  </div>
120 </div><!--header-->
121 <div class="contents">
122 <div class="textblock"><code>#include &quot;<a class="el" href="helpers_8h_source.xhtml">helpers.h</a>&quot;</code><br />
123 </div>
124 <p><a href="transpose_8cl_source.xhtml">Go to the source code of this file.</a></p>
125 <table class="memberdecls">
126 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
127 Macros</h2></td></tr>
128 <tr class="memitem:a53bd970b471b909bef8456b6b564f35e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">SWAP_ROW</a>(u0,  l0)</td></tr>
129 <tr class="separator:a53bd970b471b909bef8456b6b564f35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
130 <tr class="memitem:af5dc9980a3e0aae2cba22e97b9458bc9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#af5dc9980a3e0aae2cba22e97b9458bc9">SWAP_4x4</a>(u0,  u1,  u2,  u3,  l0,  l1,  l2,  l3)</td></tr>
131 <tr class="separator:af5dc9980a3e0aae2cba22e97b9458bc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 <tr class="memitem:a91074bda470bd8bec36799fdaffd107a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#a91074bda470bd8bec36799fdaffd107a">SWAP_8x8</a>(u0,  u1,  u2,  u3,  u4,  u5,  u6,  u7,  l0,  l1,  l2,  l3,  l4,  l5,  l6,  l7)</td></tr>
133 <tr class="separator:a91074bda470bd8bec36799fdaffd107a"><td class="memSeparator" colspan="2">&#160;</td></tr>
134 <tr class="memitem:a093adbe8897f56bc8d0998f5cad57c8a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">TRANSPOSE_4x4</a>(u0,  u1,  u2,  u3)</td></tr>
135 <tr class="separator:a093adbe8897f56bc8d0998f5cad57c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 <tr class="memitem:ad037a4e8ddc84de9c0512a2d4ee693bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">TRANSPOSE_8x8</a>(u0,  u1,  u2,  u3,  u4,  u5,  u6,  u7)</td></tr>
137 <tr class="separator:ad037a4e8ddc84de9c0512a2d4ee693bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 <tr class="memitem:ae6c2b1bad97366395ba7a9a688533ff4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#ae6c2b1bad97366395ba7a9a688533ff4">TRANSPOSE_16x16</a>(u0,  u1,  u2,  u3,  u4,  u5,  u6,  u7,  u8,  u9,  u10,  u11,  u12,  u13,  u14,  u15)</td></tr>
139 <tr class="separator:ae6c2b1bad97366395ba7a9a688533ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
140 </table><table class="memberdecls">
141 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
142 Functions</h2></td></tr>
143 <tr class="memitem:aa9021e9b8c37ea94257627da631248db"><td class="memItemLeft" align="right" valign="top">__kernel void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transpose_8cl.xhtml#aa9021e9b8c37ea94257627da631248db">transpose</a> (__global uchar *src_ptr, uint src_stride_x, uint src_step_x, uint src_stride_y, uint src_step_y, uint src_offset_first_element_in_bytes, __global uchar *dst_ptr, uint dst_stride_x, uint dst_step_x, uint dst_stride_y, uint dst_step_y, uint dst_offset_first_element_in_bytes)</td></tr>
144 <tr class="memdesc:aa9021e9b8c37ea94257627da631248db"><td class="mdescLeft">&#160;</td><td class="mdescRight">This OpenCL kernel computes the matrix transposition of input matrix.  <a href="#aa9021e9b8c37ea94257627da631248db">More...</a><br /></td></tr>
145 <tr class="separator:aa9021e9b8c37ea94257627da631248db"><td class="memSeparator" colspan="2">&#160;</td></tr>
146 </table>
147 <h2 class="groupheader">Macro Definition Documentation</h2>
148 <a class="anchor" id="af5dc9980a3e0aae2cba22e97b9458bc9"></a>
149 <div class="memitem">
150 <div class="memproto">
151       <table class="memname">
152         <tr>
153           <td class="memname">#define SWAP_4x4</td>
154           <td>(</td>
155           <td class="paramtype">&#160;</td>
156           <td class="paramname">u0, </td>
157         </tr>
158         <tr>
159           <td class="paramkey"></td>
160           <td></td>
161           <td class="paramtype">&#160;</td>
162           <td class="paramname">u1, </td>
163         </tr>
164         <tr>
165           <td class="paramkey"></td>
166           <td></td>
167           <td class="paramtype">&#160;</td>
168           <td class="paramname">u2, </td>
169         </tr>
170         <tr>
171           <td class="paramkey"></td>
172           <td></td>
173           <td class="paramtype">&#160;</td>
174           <td class="paramname">u3, </td>
175         </tr>
176         <tr>
177           <td class="paramkey"></td>
178           <td></td>
179           <td class="paramtype">&#160;</td>
180           <td class="paramname">l0, </td>
181         </tr>
182         <tr>
183           <td class="paramkey"></td>
184           <td></td>
185           <td class="paramtype">&#160;</td>
186           <td class="paramname">l1, </td>
187         </tr>
188         <tr>
189           <td class="paramkey"></td>
190           <td></td>
191           <td class="paramtype">&#160;</td>
192           <td class="paramname">l2, </td>
193         </tr>
194         <tr>
195           <td class="paramkey"></td>
196           <td></td>
197           <td class="paramtype">&#160;</td>
198           <td class="paramname">l3&#160;</td>
199         </tr>
200         <tr>
201           <td></td>
202           <td>)</td>
203           <td></td><td></td>
204         </tr>
205       </table>
206 </div><div class="memdoc">
207 <b>Value:</b><div class="fragment"><div class="line">({                                           <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">\</a></div><div class="line"><a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">        VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, 4)              \</div><div class="line">        tmp_swap;                                <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u0, l0);                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u1, l1);                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u2, l2);                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u3, l3);                        \</div><div class="line">    })</div><div class="ttc" id="convolution3x3_8cl_xhtml_afb8c72ce35c4a1f4a2588d6573e54aa1"><div class="ttname"><a href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a></div><div class="ttdeci">#define DATA_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="convolution3x3_8cl_source.xhtml#l00027">convolution3x3.cl:27</a></div></div>
208 <div class="ttc" id="transpose_8cl_xhtml_a53bd970b471b909bef8456b6b564f35e"><div class="ttname"><a href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">SWAP_ROW</a></div><div class="ttdeci">#define SWAP_ROW(u0, l0)</div><div class="ttdef"><b>Definition:</b> <a href="transpose_8cl_source.xhtml#l00026">transpose.cl:26</a></div></div>
209 <div class="ttc" id="helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00032">helpers.h:32</a></div></div>
210 </div><!-- fragment -->
211 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00033">33</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
212
213 </div>
214 </div>
215 <a class="anchor" id="a91074bda470bd8bec36799fdaffd107a"></a>
216 <div class="memitem">
217 <div class="memproto">
218       <table class="memname">
219         <tr>
220           <td class="memname">#define SWAP_8x8</td>
221           <td>(</td>
222           <td class="paramtype">&#160;</td>
223           <td class="paramname">u0, </td>
224         </tr>
225         <tr>
226           <td class="paramkey"></td>
227           <td></td>
228           <td class="paramtype">&#160;</td>
229           <td class="paramname">u1, </td>
230         </tr>
231         <tr>
232           <td class="paramkey"></td>
233           <td></td>
234           <td class="paramtype">&#160;</td>
235           <td class="paramname">u2, </td>
236         </tr>
237         <tr>
238           <td class="paramkey"></td>
239           <td></td>
240           <td class="paramtype">&#160;</td>
241           <td class="paramname">u3, </td>
242         </tr>
243         <tr>
244           <td class="paramkey"></td>
245           <td></td>
246           <td class="paramtype">&#160;</td>
247           <td class="paramname">u4, </td>
248         </tr>
249         <tr>
250           <td class="paramkey"></td>
251           <td></td>
252           <td class="paramtype">&#160;</td>
253           <td class="paramname">u5, </td>
254         </tr>
255         <tr>
256           <td class="paramkey"></td>
257           <td></td>
258           <td class="paramtype">&#160;</td>
259           <td class="paramname">u6, </td>
260         </tr>
261         <tr>
262           <td class="paramkey"></td>
263           <td></td>
264           <td class="paramtype">&#160;</td>
265           <td class="paramname">u7, </td>
266         </tr>
267         <tr>
268           <td class="paramkey"></td>
269           <td></td>
270           <td class="paramtype">&#160;</td>
271           <td class="paramname">l0, </td>
272         </tr>
273         <tr>
274           <td class="paramkey"></td>
275           <td></td>
276           <td class="paramtype">&#160;</td>
277           <td class="paramname">l1, </td>
278         </tr>
279         <tr>
280           <td class="paramkey"></td>
281           <td></td>
282           <td class="paramtype">&#160;</td>
283           <td class="paramname">l2, </td>
284         </tr>
285         <tr>
286           <td class="paramkey"></td>
287           <td></td>
288           <td class="paramtype">&#160;</td>
289           <td class="paramname">l3, </td>
290         </tr>
291         <tr>
292           <td class="paramkey"></td>
293           <td></td>
294           <td class="paramtype">&#160;</td>
295           <td class="paramname">l4, </td>
296         </tr>
297         <tr>
298           <td class="paramkey"></td>
299           <td></td>
300           <td class="paramtype">&#160;</td>
301           <td class="paramname">l5, </td>
302         </tr>
303         <tr>
304           <td class="paramkey"></td>
305           <td></td>
306           <td class="paramtype">&#160;</td>
307           <td class="paramname">l6, </td>
308         </tr>
309         <tr>
310           <td class="paramkey"></td>
311           <td></td>
312           <td class="paramtype">&#160;</td>
313           <td class="paramname">l7&#160;</td>
314         </tr>
315         <tr>
316           <td></td>
317           <td>)</td>
318           <td></td><td></td>
319         </tr>
320       </table>
321 </div><div class="memdoc">
322 <b>Value:</b><div class="fragment"><div class="line">({                                                                           <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">\</a></div><div class="line"><a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">        VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, 8)                                              \</div><div class="line">        tmp_swap;                                                                <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u0, l0);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u1, l1);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u2, l2);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u3, l3);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u4, l4);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u5, l5);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u6, l6);                                                        <a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">        SWAP_ROW</a>(u7, l7);                                                        \</div><div class="line">    })</div><div class="ttc" id="convolution3x3_8cl_xhtml_afb8c72ce35c4a1f4a2588d6573e54aa1"><div class="ttname"><a href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a></div><div class="ttdeci">#define DATA_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="convolution3x3_8cl_source.xhtml#l00027">convolution3x3.cl:27</a></div></div>
323 <div class="ttc" id="transpose_8cl_xhtml_a53bd970b471b909bef8456b6b564f35e"><div class="ttname"><a href="transpose_8cl.xhtml#a53bd970b471b909bef8456b6b564f35e">SWAP_ROW</a></div><div class="ttdeci">#define SWAP_ROW(u0, l0)</div><div class="ttdef"><b>Definition:</b> <a href="transpose_8cl_source.xhtml#l00026">transpose.cl:26</a></div></div>
324 <div class="ttc" id="helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00032">helpers.h:32</a></div></div>
325 </div><!-- fragment -->
326 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00043">43</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
327
328 </div>
329 </div>
330 <a class="anchor" id="a53bd970b471b909bef8456b6b564f35e"></a>
331 <div class="memitem">
332 <div class="memproto">
333       <table class="memname">
334         <tr>
335           <td class="memname">#define SWAP_ROW</td>
336           <td>(</td>
337           <td class="paramtype">&#160;</td>
338           <td class="paramname">u0, </td>
339         </tr>
340         <tr>
341           <td class="paramkey"></td>
342           <td></td>
343           <td class="paramtype">&#160;</td>
344           <td class="paramname">l0&#160;</td>
345         </tr>
346         <tr>
347           <td></td>
348           <td>)</td>
349           <td></td><td></td>
350         </tr>
351       </table>
352 </div><div class="memdoc">
353 <b>Value:</b><div class="fragment"><div class="line">({                       \</div><div class="line">        tmp_swap = u0;       \</div><div class="line">        u0       = l0;       \</div><div class="line">        l0       = tmp_swap; \</div><div class="line">    })</div></div><!-- fragment -->
354 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00026">26</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
355
356 </div>
357 </div>
358 <a class="anchor" id="ae6c2b1bad97366395ba7a9a688533ff4"></a>
359 <div class="memitem">
360 <div class="memproto">
361       <table class="memname">
362         <tr>
363           <td class="memname">#define TRANSPOSE_16x16</td>
364           <td>(</td>
365           <td class="paramtype">&#160;</td>
366           <td class="paramname">u0, </td>
367         </tr>
368         <tr>
369           <td class="paramkey"></td>
370           <td></td>
371           <td class="paramtype">&#160;</td>
372           <td class="paramname">u1, </td>
373         </tr>
374         <tr>
375           <td class="paramkey"></td>
376           <td></td>
377           <td class="paramtype">&#160;</td>
378           <td class="paramname">u2, </td>
379         </tr>
380         <tr>
381           <td class="paramkey"></td>
382           <td></td>
383           <td class="paramtype">&#160;</td>
384           <td class="paramname">u3, </td>
385         </tr>
386         <tr>
387           <td class="paramkey"></td>
388           <td></td>
389           <td class="paramtype">&#160;</td>
390           <td class="paramname">u4, </td>
391         </tr>
392         <tr>
393           <td class="paramkey"></td>
394           <td></td>
395           <td class="paramtype">&#160;</td>
396           <td class="paramname">u5, </td>
397         </tr>
398         <tr>
399           <td class="paramkey"></td>
400           <td></td>
401           <td class="paramtype">&#160;</td>
402           <td class="paramname">u6, </td>
403         </tr>
404         <tr>
405           <td class="paramkey"></td>
406           <td></td>
407           <td class="paramtype">&#160;</td>
408           <td class="paramname">u7, </td>
409         </tr>
410         <tr>
411           <td class="paramkey"></td>
412           <td></td>
413           <td class="paramtype">&#160;</td>
414           <td class="paramname">u8, </td>
415         </tr>
416         <tr>
417           <td class="paramkey"></td>
418           <td></td>
419           <td class="paramtype">&#160;</td>
420           <td class="paramname">u9, </td>
421         </tr>
422         <tr>
423           <td class="paramkey"></td>
424           <td></td>
425           <td class="paramtype">&#160;</td>
426           <td class="paramname">u10, </td>
427         </tr>
428         <tr>
429           <td class="paramkey"></td>
430           <td></td>
431           <td class="paramtype">&#160;</td>
432           <td class="paramname">u11, </td>
433         </tr>
434         <tr>
435           <td class="paramkey"></td>
436           <td></td>
437           <td class="paramtype">&#160;</td>
438           <td class="paramname">u12, </td>
439         </tr>
440         <tr>
441           <td class="paramkey"></td>
442           <td></td>
443           <td class="paramtype">&#160;</td>
444           <td class="paramname">u13, </td>
445         </tr>
446         <tr>
447           <td class="paramkey"></td>
448           <td></td>
449           <td class="paramtype">&#160;</td>
450           <td class="paramname">u14, </td>
451         </tr>
452         <tr>
453           <td class="paramkey"></td>
454           <td></td>
455           <td class="paramtype">&#160;</td>
456           <td class="paramname">u15&#160;</td>
457         </tr>
458         <tr>
459           <td></td>
460           <td>)</td>
461           <td></td><td></td>
462         </tr>
463       </table>
464 </div><div class="memdoc">
465 <b>Value:</b><div class="fragment"><div class="line">({                                                                                                                                       <a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">        TRANSPOSE_8x8</a>(u0.s01234567, u1.s01234567, u2.s01234567, u3.s01234567, u4.s01234567, u5.s01234567, u6.s01234567, u7.s01234567);       <a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">        TRANSPOSE_8x8</a>(u0.s89ABCDEF, u1.s89ABCDEF, u2.s89ABCDEF, u3.s89ABCDEF, u4.s89ABCDEF, u5.s89ABCDEF, u6.s89ABCDEF, u7.s89ABCDEF);       <a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">        TRANSPOSE_8x8</a>(u8.s01234567, u9.s01234567, u10.s01234567, u11.s01234567, u12.s01234567, u13.s01234567, u14.s01234567, u15.s01234567); <a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">        TRANSPOSE_8x8</a>(u8.s89ABCDEF, u9.s89ABCDEF, u10.s89ABCDEF, u11.s89ABCDEF, u12.s89ABCDEF, u13.s89ABCDEF, u14.s89ABCDEF, u15.s89ABCDEF); <a class="code" href="transpose_8cl.xhtml#a91074bda470bd8bec36799fdaffd107a">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a91074bda470bd8bec36799fdaffd107a">        SWAP_8x8</a>(u0.s89ABCDEF, u1.s89ABCDEF, u2.s89ABCDEF, u3.s89ABCDEF, u4.s89ABCDEF, u5.s89ABCDEF, u6.s89ABCDEF, u7.s89ABCDEF,             \</div><div class="line">                 u8.s01234567, u9.s01234567, u10.s01234567, u11.s01234567, u12.s01234567, u13.s01234567, u14.s01234567, u15.s01234567);      \</div><div class="line">    })</div><div class="ttc" id="transpose_8cl_xhtml_a91074bda470bd8bec36799fdaffd107a"><div class="ttname"><a href="transpose_8cl.xhtml#a91074bda470bd8bec36799fdaffd107a">SWAP_8x8</a></div><div class="ttdeci">#define SWAP_8x8(u0, u1, u2, u3, u4, u5, u6, u7, l0, l1, l2, l3, l4, l5, l6, l7)</div><div class="ttdef"><b>Definition:</b> <a href="transpose_8cl_source.xhtml#l00043">transpose.cl:43</a></div></div>
466 <div class="ttc" id="transpose_8cl_xhtml_ad037a4e8ddc84de9c0512a2d4ee693bf"><div class="ttname"><a href="transpose_8cl.xhtml#ad037a4e8ddc84de9c0512a2d4ee693bf">TRANSPOSE_8x8</a></div><div class="ttdeci">#define TRANSPOSE_8x8(u0, u1, u2, u3, u4, u5, u6, u7)</div><div class="ttdef"><b>Definition:</b> <a href="transpose_8cl_source.xhtml#l00080">transpose.cl:80</a></div></div>
467 </div><!-- fragment -->
468 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00089">89</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
469
470 </div>
471 </div>
472 <a class="anchor" id="a093adbe8897f56bc8d0998f5cad57c8a"></a>
473 <div class="memitem">
474 <div class="memproto">
475       <table class="memname">
476         <tr>
477           <td class="memname">#define TRANSPOSE_4x4</td>
478           <td>(</td>
479           <td class="paramtype">&#160;</td>
480           <td class="paramname">u0, </td>
481         </tr>
482         <tr>
483           <td class="paramkey"></td>
484           <td></td>
485           <td class="paramtype">&#160;</td>
486           <td class="paramname">u1, </td>
487         </tr>
488         <tr>
489           <td class="paramkey"></td>
490           <td></td>
491           <td class="paramtype">&#160;</td>
492           <td class="paramname">u2, </td>
493         </tr>
494         <tr>
495           <td class="paramkey"></td>
496           <td></td>
497           <td class="paramtype">&#160;</td>
498           <td class="paramname">u3&#160;</td>
499         </tr>
500         <tr>
501           <td></td>
502           <td>)</td>
503           <td></td><td></td>
504         </tr>
505       </table>
506 </div><div class="memdoc">
507 <b>Value:</b><div class="fragment"><div class="line">({                                <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">\</a></div><div class="line"><a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">        VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, 4)   \</div><div class="line">        tmp;                          \</div><div class="line">        tmp.s012 = u0.s123;           \</div><div class="line">        u0.s1    = u1.s0;             \</div><div class="line">        u0.s2    = u2.s0;             \</div><div class="line">        u0.s3    = u3.s0;             \</div><div class="line">        u1.s0    = tmp.s0;            \</div><div class="line">        u2.s0    = tmp.s1;            \</div><div class="line">        u3.s0    = tmp.s2;            \</div><div class="line">        \</div><div class="line">        tmp.s01 = u1.s23;             \</div><div class="line">        u1.s2   = u2.s1;              \</div><div class="line">        u1.s3   = u3.s1;              \</div><div class="line">        u2.s1   = tmp.s0;             \</div><div class="line">        u3.s1   = tmp.s1;             \</div><div class="line">        \</div><div class="line">        tmp.s0 = u2.s3;               \</div><div class="line">        u2.s3  = u3.s2;               \</div><div class="line">        u3.s2  = tmp.s0;              \</div><div class="line">    })</div><div class="ttc" id="convolution3x3_8cl_xhtml_afb8c72ce35c4a1f4a2588d6573e54aa1"><div class="ttname"><a href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a></div><div class="ttdeci">#define DATA_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="convolution3x3_8cl_source.xhtml#l00027">convolution3x3.cl:27</a></div></div>
508 <div class="ttc" id="helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00032">helpers.h:32</a></div></div>
509 </div><!-- fragment -->
510 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00057">57</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
511
512 </div>
513 </div>
514 <a class="anchor" id="ad037a4e8ddc84de9c0512a2d4ee693bf"></a>
515 <div class="memitem">
516 <div class="memproto">
517       <table class="memname">
518         <tr>
519           <td class="memname">#define TRANSPOSE_8x8</td>
520           <td>(</td>
521           <td class="paramtype">&#160;</td>
522           <td class="paramname">u0, </td>
523         </tr>
524         <tr>
525           <td class="paramkey"></td>
526           <td></td>
527           <td class="paramtype">&#160;</td>
528           <td class="paramname">u1, </td>
529         </tr>
530         <tr>
531           <td class="paramkey"></td>
532           <td></td>
533           <td class="paramtype">&#160;</td>
534           <td class="paramname">u2, </td>
535         </tr>
536         <tr>
537           <td class="paramkey"></td>
538           <td></td>
539           <td class="paramtype">&#160;</td>
540           <td class="paramname">u3, </td>
541         </tr>
542         <tr>
543           <td class="paramkey"></td>
544           <td></td>
545           <td class="paramtype">&#160;</td>
546           <td class="paramname">u4, </td>
547         </tr>
548         <tr>
549           <td class="paramkey"></td>
550           <td></td>
551           <td class="paramtype">&#160;</td>
552           <td class="paramname">u5, </td>
553         </tr>
554         <tr>
555           <td class="paramkey"></td>
556           <td></td>
557           <td class="paramtype">&#160;</td>
558           <td class="paramname">u6, </td>
559         </tr>
560         <tr>
561           <td class="paramkey"></td>
562           <td></td>
563           <td class="paramtype">&#160;</td>
564           <td class="paramname">u7&#160;</td>
565         </tr>
566         <tr>
567           <td></td>
568           <td>)</td>
569           <td></td><td></td>
570         </tr>
571       </table>
572 </div><div class="memdoc">
573 <b>Value:</b><div class="fragment"><div class="line">({                                                                                            <a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">        TRANSPOSE_4x4</a>(u0.s0123, u1.s0123, u2.s0123, u3.s0123);                                    <a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">        TRANSPOSE_4x4</a>(u0.s4567, u1.s4567, u2.s4567, u3.s4567);                                    <a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">        TRANSPOSE_4x4</a>(u4.s0123, u5.s0123, u6.s0123, u7.s0123);                                    <a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">        TRANSPOSE_4x4</a>(u4.s4567, u5.s4567, u6.s4567, u7.s4567);                                    <a class="code" href="transpose_8cl.xhtml#af5dc9980a3e0aae2cba22e97b9458bc9">\</a></div><div class="line"><a class="code" href="transpose_8cl.xhtml#af5dc9980a3e0aae2cba22e97b9458bc9">        SWAP_4x4</a>(u0.s4567, u1.s4567, u2.s4567, u3.s4567, u4.s0123, u5.s0123, u6.s0123, u7.s0123); \</div><div class="line">    })</div><div class="ttc" id="transpose_8cl_xhtml_a093adbe8897f56bc8d0998f5cad57c8a"><div class="ttname"><a href="transpose_8cl.xhtml#a093adbe8897f56bc8d0998f5cad57c8a">TRANSPOSE_4x4</a></div><div class="ttdeci">#define TRANSPOSE_4x4(u0, u1, u2, u3)</div><div class="ttdef"><b>Definition:</b> <a href="transpose_8cl_source.xhtml#l00057">transpose.cl:57</a></div></div>
574 <div class="ttc" id="transpose_8cl_xhtml_af5dc9980a3e0aae2cba22e97b9458bc9"><div class="ttname"><a href="transpose_8cl.xhtml#af5dc9980a3e0aae2cba22e97b9458bc9">SWAP_4x4</a></div><div class="ttdeci">#define SWAP_4x4(u0, u1, u2, u3, l0, l1, l2, l3)</div><div class="ttdef"><b>Definition:</b> <a href="transpose_8cl_source.xhtml#l00033">transpose.cl:33</a></div></div>
575 </div><!-- fragment -->
576 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00080">80</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
577
578 </div>
579 </div>
580 <h2 class="groupheader">Function Documentation</h2>
581 <a class="anchor" id="aa9021e9b8c37ea94257627da631248db"></a>
582 <div class="memitem">
583 <div class="memproto">
584       <table class="memname">
585         <tr>
586           <td class="memname">__kernel void transpose </td>
587           <td>(</td>
588           <td class="paramtype">__global uchar *&#160;</td>
589           <td class="paramname"><em>src_ptr</em>, </td>
590         </tr>
591         <tr>
592           <td class="paramkey"></td>
593           <td></td>
594           <td class="paramtype">uint&#160;</td>
595           <td class="paramname"><em>src_stride_x</em>, </td>
596         </tr>
597         <tr>
598           <td class="paramkey"></td>
599           <td></td>
600           <td class="paramtype">uint&#160;</td>
601           <td class="paramname"><em>src_step_x</em>, </td>
602         </tr>
603         <tr>
604           <td class="paramkey"></td>
605           <td></td>
606           <td class="paramtype">uint&#160;</td>
607           <td class="paramname"><em>src_stride_y</em>, </td>
608         </tr>
609         <tr>
610           <td class="paramkey"></td>
611           <td></td>
612           <td class="paramtype">uint&#160;</td>
613           <td class="paramname"><em>src_step_y</em>, </td>
614         </tr>
615         <tr>
616           <td class="paramkey"></td>
617           <td></td>
618           <td class="paramtype">uint&#160;</td>
619           <td class="paramname"><em>src_offset_first_element_in_bytes</em>, </td>
620         </tr>
621         <tr>
622           <td class="paramkey"></td>
623           <td></td>
624           <td class="paramtype">__global uchar *&#160;</td>
625           <td class="paramname"><em>dst_ptr</em>, </td>
626         </tr>
627         <tr>
628           <td class="paramkey"></td>
629           <td></td>
630           <td class="paramtype">uint&#160;</td>
631           <td class="paramname"><em>dst_stride_x</em>, </td>
632         </tr>
633         <tr>
634           <td class="paramkey"></td>
635           <td></td>
636           <td class="paramtype">uint&#160;</td>
637           <td class="paramname"><em>dst_step_x</em>, </td>
638         </tr>
639         <tr>
640           <td class="paramkey"></td>
641           <td></td>
642           <td class="paramtype">uint&#160;</td>
643           <td class="paramname"><em>dst_stride_y</em>, </td>
644         </tr>
645         <tr>
646           <td class="paramkey"></td>
647           <td></td>
648           <td class="paramtype">uint&#160;</td>
649           <td class="paramname"><em>dst_step_y</em>, </td>
650         </tr>
651         <tr>
652           <td class="paramkey"></td>
653           <td></td>
654           <td class="paramtype">uint&#160;</td>
655           <td class="paramname"><em>dst_offset_first_element_in_bytes</em>&#160;</td>
656         </tr>
657         <tr>
658           <td></td>
659           <td>)</td>
660           <td></td><td></td>
661         </tr>
662       </table>
663 </div><div class="memdoc">
664
665 <p>This OpenCL kernel computes the matrix transposition of input matrix. </p>
666 <dl class="section attention"><dt>Attention</dt><dd>The number of bytes of the data type need to be passed at compile time using -DDATA_TYPE_IN_BYTES. DATA_TYPE_IN_BYTES can be:<ol type="1">
667 <li>-DDATA_TYPE_IN_BYTES=1 for transposing U8 or S8 matrices</li>
668 <li>-DDATA_TYPE_IN_BYTES=2 for transposing U16, S16 or FP16 matrices</li>
669 <li>-DDATA_TYPE_IN_BYTES=4 for transposing U32, S32 or FP32 matrices</li>
670 </ol>
671 </dd></dl>
672 <dl class="params"><dt>Parameters</dt><dd>
673   <table class="params">
674     <tr><td class="paramdir">[in]</td><td class="paramname">src_ptr</td><td>Pointer to the source matrix. Supported data types: U8/S8/U16/S16/F16/U32/S32/F32 </td></tr>
675     <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_x</td><td>Stride of the source matrix in X dimension (in bytes) </td></tr>
676     <tr><td class="paramdir">[in]</td><td class="paramname">src_step_x</td><td>src_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
677     <tr><td class="paramdir">[in]</td><td class="paramname">src_stride_y</td><td>Stride of the source matrix in Y dimension (in bytes) </td></tr>
678     <tr><td class="paramdir">[in]</td><td class="paramname">src_step_y</td><td>src_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
679     <tr><td class="paramdir">[in]</td><td class="paramname">src_offset_first_element_in_bytes</td><td>The offset of the first element in the source matrix </td></tr>
680     <tr><td class="paramdir">[out]</td><td class="paramname">dst_ptr</td><td>Pointer to the destination matrix Supported data type: same as src_ptr </td></tr>
681     <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_x</td><td>Stride of the destination matrix in X dimension (in bytes) </td></tr>
682     <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_x</td><td>dst_gx_stride_x * number of elements along X processed per workitem(in bytes) </td></tr>
683     <tr><td class="paramdir">[in]</td><td class="paramname">dst_stride_y</td><td>Stride of the destination matrix in Y dimension (in bytes) </td></tr>
684     <tr><td class="paramdir">[in]</td><td class="paramname">dst_step_y</td><td>dst_gx_stride_y * number of elements along Y processed per workitem(in bytes) </td></tr>
685     <tr><td class="paramdir">[in]</td><td class="paramname">dst_offset_first_element_in_bytes</td><td>The offset of the first element in the destination matrix </td></tr>
686   </table>
687   </dd>
688 </dl>
689
690 <p>Definition at line <a class="el" href="transpose_8cl_source.xhtml#l00145">145</a> of file <a class="el" href="transpose_8cl_source.xhtml">transpose.cl</a>.</p>
691
692 <p>References <a class="el" href="helpers_8h_source.xhtml#l00073">CONVERT_TO_IMAGE_STRUCT</a>, <a class="el" href="convolution3x3_8cl_source.xhtml#l00027">DATA_TYPE</a>, <a class="el" href="helpers_8h_source.xhtml#l00201">offset()</a>, and <a class="el" href="helpers_8h_source.xhtml#l00032">VEC_DATA_TYPE</a>.</p>
693 <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    uint x = get_global_id(0) * BLOCK_SIZE;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    uint y = get_global_id(1) * BLOCK_SIZE;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="comment">// Compute source address</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <a class="code" href="struct_image.xhtml">Image</a> src = <a class="code" href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a>(src);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="comment">// Load the NxN block at (x, y)</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, BLOCK_SIZE)</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    u0 = VLOAD(0, (__global <a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a> *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 0)));</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a>, BLOCK_SIZE)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    u1 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 1)));</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    u2 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 2)));</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    u3 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 3)));</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor">#if BLOCK_SIZE &gt; 4</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    u4 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 4)));</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    u5 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 5)));</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    u6 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 6)));</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    u7 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 7)));</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#if BLOCK_SIZE == 16</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    u8 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 8)));</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    u9 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 9)));</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    u10 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 10)));</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    u11 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 11)));</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    u12 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 12)));</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    u13 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 13)));</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    u14 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 14)));</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <a class="code" href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(DATA_TYPE, BLOCK_SIZE)</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    u15 = VLOAD(0, (__global DATA_TYPE *)(<a class="code" href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>(&amp;src, 0, 15)));</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* BLOCK_SIZE == 16 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* BLOCK_SIZE &gt; 4 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">// Transpose the block</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    TRANSPOSE();</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">// Store the block at (y, x)</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    uint dst_offset_in_bytes = y * DATA_TYPE_IN_BYTES + x * dst_stride_y + dst_offset_first_element_in_bytes;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    VSTORE(u0, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 0 * dst_stride_y));</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    VSTORE(u1, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 1 * dst_stride_y));</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    VSTORE(u2, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 2 * dst_stride_y));</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    VSTORE(u3, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 3 * dst_stride_y));</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#if BLOCK_SIZE &gt; 4</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    VSTORE(u4, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 4 * dst_stride_y));</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    VSTORE(u5, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 5 * dst_stride_y));</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    VSTORE(u6, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 6 * dst_stride_y));</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    VSTORE(u7, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 7 * dst_stride_y));</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">#if BLOCK_SIZE == 16</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    VSTORE(u8, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 8 * dst_stride_y));</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    VSTORE(u9, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 9 * dst_stride_y));</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    VSTORE(u10, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 10 * dst_stride_y));</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    VSTORE(u11, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 11 * dst_stride_y));</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    VSTORE(u12, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 12 * dst_stride_y));</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    VSTORE(u13, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 13 * dst_stride_y));</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    VSTORE(u14, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 14 * dst_stride_y));</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    VSTORE(u15, 0, (__global DATA_TYPE *)(dst_ptr + dst_offset_in_bytes + 15 * dst_stride_y));</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* BLOCK_SIZE == 16 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* BLOCK_SIZE &gt; 4 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div><div class="ttc" id="convolution3x3_8cl_xhtml_afb8c72ce35c4a1f4a2588d6573e54aa1"><div class="ttname"><a href="convolution3x3_8cl.xhtml#afb8c72ce35c4a1f4a2588d6573e54aa1">DATA_TYPE</a></div><div class="ttdeci">#define DATA_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="convolution3x3_8cl_source.xhtml#l00027">convolution3x3.cl:27</a></div></div>
694 <div class="ttc" id="helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00201">helpers.h:201</a></div></div>
695 <div class="ttc" id="helpers_8h_xhtml_aebe814363556c244be043b13e7969197"><div class="ttname"><a href="helpers_8h.xhtml#aebe814363556c244be043b13e7969197">CONVERT_TO_IMAGE_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_IMAGE_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00073">helpers.h:73</a></div></div>
696 <div class="ttc" id="helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00032">helpers.h:32</a></div></div>
697 <div class="ttc" id="struct_image_xhtml"><div class="ttname"><a href="struct_image.xhtml">Image</a></div><div class="ttdoc">Structure to hold Image information. </div><div class="ttdef"><b>Definition:</b> <a href="helpers_8h_source.xhtml#l00095">helpers.h:95</a></div></div>
698 </div><!-- fragment -->
699 </div>
700 </div>
701 </div><!-- contents -->
702 </div><!-- doc-content -->
703 <!-- start footer part -->
704 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
705   <ul>
706     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.xhtml">core</a></li><li class="navelem"><a class="el" href="dir_8c278f79c760e5c5fbd911f9870614c1.xhtml">CL</a></li><li class="navelem"><a class="el" href="dir_25885286e9dad4fa105b7b25a8031bbf.xhtml">cl_kernels</a></li><li class="navelem"><a class="el" href="transpose_8cl.xhtml">transpose.cl</a></li>
707     <li class="footer">Generated on Wed Apr 12 2017 14:26:05 for ARM Compute Library by
708     <a href="http://www.doxygen.org/index.html">
709     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
710   </ul>
711 </div>
712 </body>
713 </html>