arm_compute v19.11
diff --git a/documentation/fft_8cl.xhtml b/documentation/fft_8cl.xhtml
index f880ebe..bf6065b 100644
--- a/documentation/fft_8cl.xhtml
+++ b/documentation/fft_8cl.xhtml
@@ -40,7 +40,7 @@
   <img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
   <td style="padding-left: 0.5em;">
    <div id="projectname">
-   &#160;<span id="projectnumber">19.08</span>
+   &#160;<span id="projectnumber">19.11</span>
    </div>
   </td>
  </tr>
@@ -634,7 +634,8 @@
         </tr>
       </table>
 </div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">{                                              \</div><div class="line">        float2 <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>, tmp;                             \</div><div class="line">        w.x   = native_cos(phi);                   \</div><div class="line">        w.y   = native_sin(phi);                   \</div><div class="line">        tmp.x = (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.x * input.x) - (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.y * input.y); \</div><div class="line">        tmp.y = (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.x * input.y) + (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.y * input.x); \</div><div class="line">        input = tmp;                               \</div><div class="line">    }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a1a367830ae09bf6138df822888ec1d71"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">arm_compute::test::validation::w</a></div><div class="ttdeci">SimpleTensor&lt; float &gt; w</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_d_f_t_8cpp_source.xhtml#l00156">DFT.cpp:156</a></div></div>
+<b>Value:</b><div class="fragment"><div class="line">{                                              \</div><div class="line">        float2 <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>, tmp;                             \</div><div class="line">        w.x   = native_cos(phi);                   \</div><div class="line">        w.y   = native_sin(phi);                   \</div><div class="line">        tmp.x = (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.x * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.x) - (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.y * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.y); \</div><div class="line">        tmp.y = (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.x * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.y) + (<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">w</a>.y * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.x); \</div><div class="line">        input = tmp;                               \</div><div class="line">    }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a1a367830ae09bf6138df822888ec1d71"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a1a367830ae09bf6138df822888ec1d71">arm_compute::test::validation::w</a></div><div class="ttdeci">SimpleTensor&lt; float &gt; w</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_d_f_t_8cpp_source.xhtml#l00156">DFT.cpp:156</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
 </div><!-- fragment -->
 <p>Calculates and applies the twiddle factor to a given input. </p>
 <dl class="params"><dt>Parameters</dt><dd>
@@ -966,17 +967,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00855">855</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;{</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    <span class="comment">// Each work-item computes a single radix-2</span></div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    input.ptr += n * input.stride_x + get_global_id(1) * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, Nx, 0, 0));</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(c0, c1);</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;{</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    <span class="comment">// Each work-item computes a single radix-2</span></div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + get_global_id(1) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, Nx, 0, 0));</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(c0, c1);</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a5a63ca1d5404d67d13382a90cfc9b6c3"><div class="ttname"><a href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a></div><div class="ttdeci">#define DFT_2(c0, c1)</div><div class="ttdoc">Computes radix-2 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00046">fft.cl:46</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -1136,17 +1138,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00925">925</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;{</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    <span class="comment">// Each work-item computes a single radix-2</span></div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    input.ptr += get_global_id(0) * input.stride_x + n * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, Nx, 0));</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(c0, c1);</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;{</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    <span class="comment">// Each work-item computes a single radix-2</span></div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += get_global_id(0) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, Nx, 0));</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(c0, c1);</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a5a63ca1d5404d67d13382a90cfc9b6c3"><div class="ttname"><a href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a></div><div class="ttdeci">#define DFT_2(c0, c1)</div><div class="ttdoc">Computes radix-2 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00046">fft.cl:46</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -1285,12 +1288,13 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00234">234</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    float4 data = vload4(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(data.s01, data.s23);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    vstore4(data, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    float4 data = vload4(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(data.s01, data.s23);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    vstore4(data, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a5a63ca1d5404d67d13382a90cfc9b6c3"><div class="ttname"><a href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a></div><div class="ttdeci">#define DFT_2(c0, c1)</div><div class="ttdoc">Computes radix-2 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00046">fft.cl:46</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>.</p>
 
 </div>
 </div>
@@ -1429,13 +1433,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00281">281</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 1, 0));</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(data1, data2);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="comment">// Load two complex input values</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 1, 0));</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="comment">// Compute DFT N = 2</span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <a class="code" href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a>(data1, data2);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="comment">// Store two complex output values</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a5a63ca1d5404d67d13382a90cfc9b6c3"><div class="ttname"><a href="fft_8cl.xhtml#a5a63ca1d5404d67d13382a90cfc9b6c3">DFT_2</a></div><div class="ttdeci">#define DFT_2(c0, c1)</div><div class="ttdoc">Computes radix-2 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00046">fft.cl:46</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00046">DFT_2</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -1595,17 +1600,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00995">995</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;{</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <span class="comment">// Each work-item computes a single radix-3</span></div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    input.ptr += n * input.stride_x + get_global_id(1) * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, Nx, 0, 0));</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 2 * Nx, 0, 0));</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(c0, c1, c2);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
+<div class="fragment"><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;{</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <span class="comment">// Each work-item computes a single radix-3</span></div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + get_global_id(1) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, Nx, 0, 0));</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 2 * Nx, 0, 0));</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(c0, c1, c2);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_ac6ec77d2e41d56919c14c1483eee94ac"><div class="ttname"><a href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a></div><div class="ttdeci">#define DFT_3(c0, c1, c2)</div><div class="ttdoc">Computes radix-3 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00063">fft.cl:63</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -1765,17 +1771,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01068">1068</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;{</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;    <span class="comment">// Each work-item computes a single radix-3</span></div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    input.ptr += get_global_id(0) * input.stride_x + n * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, Nx, 0));</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2 * Nx, 0));</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(c0, c1, c2);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
+<div class="fragment"><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;{</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;    <span class="comment">// Each work-item computes a single radix-3</span></div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += get_global_id(0) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, Nx, 0));</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2 * Nx, 0));</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(c0, c1, c2);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_ac6ec77d2e41d56919c14c1483eee94ac"><div class="ttname"><a href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a></div><div class="ttdeci">#define DFT_3(c0, c1, c2)</div><div class="ttdoc">Computes radix-3 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00063">fft.cl:63</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -1914,13 +1921,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00330">330</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;{</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    float4 data0 = vload4(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 2, 0, 0));</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(data0.s01, data0.s23, data1.s01);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    vstore4(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2, 0, 0));</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ac6ec77d2e41d56919c14c1483eee94ac"><div class="ttname"><a href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a></div><div class="ttdeci">#define DFT_3(c0, c1, c2)</div><div class="ttdoc">Computes radix-3 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00063">fft.cl:63</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;{</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    float4 data0 = vload4(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 2, 0, 0));</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(data0.s01, data0.s23, data1.s01);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    vstore4(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2, 0, 0));</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ac6ec77d2e41d56919c14c1483eee94ac"><div class="ttname"><a href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a></div><div class="ttdeci">#define DFT_3(c0, c1, c2)</div><div class="ttdoc">Computes radix-3 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00063">fft.cl:63</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -2059,13 +2067,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00379">379</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;{</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 1, 0));</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2, 0));</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(data0, data1, data2);</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ac6ec77d2e41d56919c14c1483eee94ac"><div class="ttname"><a href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a></div><div class="ttdeci">#define DFT_3(c0, c1, c2)</div><div class="ttdoc">Computes radix-3 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00063">fft.cl:63</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="fragment"><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;{</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="comment">// Load three complex input values</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 1, 0));</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2, 0));</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="comment">// Compute DFT N = 3</span></div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <a class="code" href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a>(data0, data1, data2);</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="comment">// Store three complex output values</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ac6ec77d2e41d56919c14c1483eee94ac"><div class="ttname"><a href="fft_8cl.xhtml#ac6ec77d2e41d56919c14c1483eee94ac">DFT_3</a></div><div class="ttdeci">#define DFT_3(c0, c1, c2)</div><div class="ttdoc">Computes radix-3 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00063">fft.cl:63</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00063">DFT_3</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -2225,17 +2234,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01141">1141</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;{</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    <span class="comment">// Each work-item computes a single radix-4</span></div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    input.ptr += n * input.stride_x + get_global_id(1) * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, Nx, 0, 0));</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 2 * Nx, 0, 0));</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 3 * Nx, 0, 0));</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(c0, c1, c2, c3);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
+<div class="fragment"><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;{</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    <span class="comment">// Each work-item computes a single radix-4</span></div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + get_global_id(1) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, Nx, 0, 0));</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 2 * Nx, 0, 0));</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 3 * Nx, 0, 0));</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(c0, c1, c2, c3);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_af97e6d43f8b70bcf009d521f8909db25"><div class="ttname"><a href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a></div><div class="ttdeci">#define DFT_4(c0, c1, c2, c3)</div><div class="ttdoc">Computes radix-4 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00081">fft.cl:81</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -2395,17 +2405,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01217">1217</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;{</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <span class="comment">// Each work-item computes a single radix-4</span></div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    input.ptr += get_global_id(0) * input.stride_x + n * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, Nx, 0));</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2 * Nx, 0));</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3 * Nx, 0));</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(c0, c1, c2, c3);</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
+<div class="fragment"><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;{</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <span class="comment">// Each work-item computes a single radix-4</span></div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += get_global_id(0) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, Nx, 0));</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2 * Nx, 0));</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3 * Nx, 0));</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(c0, c1, c2, c3);</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_af97e6d43f8b70bcf009d521f8909db25"><div class="ttname"><a href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a></div><div class="ttdeci">#define DFT_4(c0, c1, c2, c3)</div><div class="ttdoc">Computes radix-4 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00081">fft.cl:81</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -2544,12 +2555,13 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00430">430</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;{</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    float8 data = vload8(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(data.s01, data.s23, data.s45, data.s67);</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    vstore8(data, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
+<div class="fragment"><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;{</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    float8 data = vload8(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(data.s01, data.s23, data.s45, data.s67);</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    vstore8(data, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_af97e6d43f8b70bcf009d521f8909db25"><div class="ttname"><a href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a></div><div class="ttdeci">#define DFT_4(c0, c1, c2, c3)</div><div class="ttdoc">Computes radix-4 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00081">fft.cl:81</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>.</p>
 
 </div>
 </div>
@@ -2688,13 +2700,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00477">477</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;{</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 1, 0));</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2, 0));</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3, 0));</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(data0, data1, data2, data3);</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
+<div class="fragment"><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;{</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    <span class="comment">// Load four complex input values</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 1, 0));</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2, 0));</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3, 0));</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="comment">// Compute DFT N = 4</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <a class="code" href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a>(data0, data1, data2, data3);</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    <span class="comment">// Store four complex output values</span></div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_af97e6d43f8b70bcf009d521f8909db25"><div class="ttname"><a href="fft_8cl.xhtml#af97e6d43f8b70bcf009d521f8909db25">DFT_4</a></div><div class="ttdeci">#define DFT_4(c0, c1, c2, c3)</div><div class="ttdoc">Computes radix-4 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00081">fft.cl:81</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00081">DFT_4</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -2854,17 +2867,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01293">1293</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;{</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    <span class="comment">// Each work-item computes a single radix-5</span></div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;    input.ptr += n * input.stride_x + get_global_id(1) * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, Nx, 0, 0));</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 2 * Nx, 0, 0));</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 3 * Nx, 0, 0));</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 4 * Nx, 0, 0));</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(c0, c1, c2, c3, c4);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4 * Nx, 0, 0));</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
+<div class="fragment"><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;{</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    <span class="comment">// Each work-item computes a single radix-5</span></div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + get_global_id(1) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, Nx, 0, 0));</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 2 * Nx, 0, 0));</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 3 * Nx, 0, 0));</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 4 * Nx, 0, 0));</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(c0, c1, c2, c3, c4);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4 * Nx, 0, 0));</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a565f17c6fe3e9462057bb523e0127280"><div class="ttname"><a href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a></div><div class="ttdeci">#define DFT_5(c0, c1, c2, c3, c4)</div><div class="ttdoc">Computes radix-5 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00109">fft.cl:109</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -3024,17 +3038,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01372">1372</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;{</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    <span class="comment">// Each work-item computes a single radix-5</span></div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    input.ptr += get_global_id(0) * input.stride_x + n * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, Nx, 0));</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2 * Nx, 0));</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3 * Nx, 0));</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 4 * Nx, 0));</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(c0, c1, c2, c3, c4);</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4 * Nx, 0));</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
+<div class="fragment"><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;{</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    <span class="comment">// Each work-item computes a single radix-5</span></div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += get_global_id(0) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, Nx, 0));</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2 * Nx, 0));</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3 * Nx, 0));</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 4 * Nx, 0));</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(c0, c1, c2, c3, c4);</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4 * Nx, 0));</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a565f17c6fe3e9462057bb523e0127280"><div class="ttname"><a href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a></div><div class="ttdeci">#define DFT_5(c0, c1, c2, c3, c4)</div><div class="ttdoc">Computes radix-5 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00109">fft.cl:109</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -3173,13 +3188,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00530">530</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;{</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    float8 data0 = vload8(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 4, 0, 0));</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(data0.s01, data0.s23, data0.s45, data0.s67, data1.s01);</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    vstore8(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4, 0, 0));</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a565f17c6fe3e9462057bb523e0127280"><div class="ttname"><a href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a></div><div class="ttdeci">#define DFT_5(c0, c1, c2, c3, c4)</div><div class="ttdoc">Computes radix-5 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00109">fft.cl:109</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="fragment"><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;{</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    float8 data0 = vload8(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 4, 0, 0));</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(data0.s01, data0.s23, data0.s45, data0.s67, data1.s01);</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    vstore8(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4, 0, 0));</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a565f17c6fe3e9462057bb523e0127280"><div class="ttname"><a href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a></div><div class="ttdeci">#define DFT_5(c0, c1, c2, c3, c4)</div><div class="ttdoc">Computes radix-5 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00109">fft.cl:109</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -3318,13 +3334,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00579">579</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 1, 0));</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2, 0));</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3, 0));</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    float2 data4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 4, 0));</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(data0, data1, data2, data3, data4);</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    vstore2(data4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4, 0));</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a565f17c6fe3e9462057bb523e0127280"><div class="ttname"><a href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a></div><div class="ttdeci">#define DFT_5(c0, c1, c2, c3, c4)</div><div class="ttdoc">Computes radix-5 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00109">fft.cl:109</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="fragment"><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <span class="comment">// Load five complex input values</span></div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 1, 0));</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2, 0));</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3, 0));</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    float2 data4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 4, 0));</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="comment">// Compute DFT N = 5</span></div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    <a class="code" href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a>(data0, data1, data2, data3, data4);</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="comment">// Store five complex output values</span></div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    vstore2(data4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4, 0));</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a565f17c6fe3e9462057bb523e0127280"><div class="ttname"><a href="fft_8cl.xhtml#a565f17c6fe3e9462057bb523e0127280">DFT_5</a></div><div class="ttdeci">#define DFT_5(c0, c1, c2, c3, c4)</div><div class="ttdoc">Computes radix-5 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00109">fft.cl:109</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00109">DFT_5</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -3484,17 +3501,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01451">1451</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;{</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;    <span class="comment">// Each work-item computes a single radix-7</span></div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    input.ptr += n * input.stride_x + get_global_id(1) * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, Nx, 0, 0));</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 2 * Nx, 0, 0));</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 3 * Nx, 0, 0));</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 4 * Nx, 0, 0));</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 5 * Nx, 0, 0));</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 6 * Nx, 0, 0));</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(c0, c1, c2, c3, c4, c5, c6);</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4 * Nx, 0, 0));</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 5 * Nx, 0, 0));</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 6 * Nx, 0, 0));</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;{</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;    <span class="comment">// Each work-item computes a single radix-7</span></div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + get_global_id(1) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, Nx, 0, 0));</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 2 * Nx, 0, 0));</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 3 * Nx, 0, 0));</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 4 * Nx, 0, 0));</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 5 * Nx, 0, 0));</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 6 * Nx, 0, 0));</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(c0, c1, c2, c3, c4, c5, c6);</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4 * Nx, 0, 0));</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 5 * Nx, 0, 0));</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 6 * Nx, 0, 0));</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_ad04a4028658f997aaca067742c2e8a49"><div class="ttname"><a href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a></div><div class="ttdeci">#define DFT_7(c0, c1, c2, c3, c4, c5, c6)</div><div class="ttdoc">Computes radix-7 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00142">fft.cl:142</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -3654,17 +3672,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01536">1536</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;{</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;    <span class="comment">// Each work-item computes a single radix-7</span></div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    input.ptr += get_global_id(0) * input.stride_x + n * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, Nx, 0));</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2 * Nx, 0));</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3 * Nx, 0));</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 4 * Nx, 0));</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 5 * Nx, 0));</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 6 * Nx, 0));</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(c0, c1, c2, c3, c4, c5, c6);</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4 * Nx, 0));</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5 * Nx, 0));</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6 * Nx, 0));</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;{</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;    <span class="comment">// Each work-item computes a single radix-7</span></div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += get_global_id(0) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, Nx, 0));</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2 * Nx, 0));</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3 * Nx, 0));</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 4 * Nx, 0));</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 5 * Nx, 0));</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 6 * Nx, 0));</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(c0, c1, c2, c3, c4, c5, c6);</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4 * Nx, 0));</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5 * Nx, 0));</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6 * Nx, 0));</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_ad04a4028658f997aaca067742c2e8a49"><div class="ttname"><a href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a></div><div class="ttdeci">#define DFT_7(c0, c1, c2, c3, c4, c5, c6)</div><div class="ttdoc">Computes radix-7 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00142">fft.cl:142</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -3803,13 +3822,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00634">634</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;{</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    float8 data0 = vload8(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    float4 data1 = vload4(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 4, 0, 0));</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 6, 0, 0));</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(data0.s01, data0.s23, data0.s45, data0.s67, data1.s01, data1.s23, data2.s01);</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    vstore8(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    vstore4(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4, 0, 0));</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 6, 0, 0));</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;{</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    float8 data0 = vload8(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    float4 data1 = vload4(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 4, 0, 0));</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 6, 0, 0));</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(data0.s01, data0.s23, data0.s45, data0.s67, data1.s01, data1.s23, data2.s01);</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    vstore8(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    vstore4(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4, 0, 0));</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 6, 0, 0));</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_ad04a4028658f997aaca067742c2e8a49"><div class="ttname"><a href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a></div><div class="ttdeci">#define DFT_7(c0, c1, c2, c3, c4, c5, c6)</div><div class="ttdoc">Computes radix-7 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00142">fft.cl:142</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -3948,13 +3968,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00685">685</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;{</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 1, 0));</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2, 0));</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3, 0));</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    float2 data4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 4, 0));</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    float2 data5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 5, 0));</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    float2 data6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 6, 0));</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(data0, data1, data2, data3, data4, data5, data6);</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    vstore2(data4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4, 0));</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    vstore2(data5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5, 0));</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    vstore2(data6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6, 0));</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
+<div class="fragment"><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;{</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="comment">// Load seven complex input values</span></div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 1, 0));</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2, 0));</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3, 0));</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    float2 data4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 4, 0));</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    float2 data5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 5, 0));</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    float2 data6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 6, 0));</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="comment">// Compute DFT N = 7</span></div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a>(data0, data1, data2, data3, data4, data5, data6);</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="comment">// Store seven complex output values</span></div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    vstore2(data4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4, 0));</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    vstore2(data5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5, 0));</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    vstore2(data6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6, 0));</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;}</div><div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_ad04a4028658f997aaca067742c2e8a49"><div class="ttname"><a href="fft_8cl.xhtml#ad04a4028658f997aaca067742c2e8a49">DFT_7</a></div><div class="ttdeci">#define DFT_7(c0, c1, c2, c3, c4, c5, c6)</div><div class="ttdoc">Computes radix-7 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00142">fft.cl:142</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00142">DFT_7</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -4114,17 +4135,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01621">1621</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;{</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    <span class="comment">// Each work-item computes a single radix-8</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;    input.ptr += n * input.stride_x + get_global_id(1) * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, Nx, 0, 0));</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 2 * Nx, 0, 0));</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 3 * Nx, 0, 0));</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 4 * Nx, 0, 0));</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 5 * Nx, 0, 0));</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 6 * Nx, 0, 0));</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    float2 c7 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 7 * Nx, 0, 0));</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(7 * phi, c7);</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(c0, c1, c2, c3, c4, c5, c6, c7);</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4 * Nx, 0, 0));</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 5 * Nx, 0, 0));</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 6 * Nx, 0, 0));</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;    vstore2(c7, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 7 * Nx, 0, 0));</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
+<div class="fragment"><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;{</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    <span class="comment">// Each work-item computes a single radix-8</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    uint kx = get_global_id(0);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + get_global_id(1) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += n * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + get_global_id(1) * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, Nx, 0, 0));</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 2 * Nx, 0, 0));</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 3 * Nx, 0, 0));</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 4 * Nx, 0, 0));</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 5 * Nx, 0, 0));</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 6 * Nx, 0, 0));</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    float2 c7 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 7 * Nx, 0, 0));</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(7 * phi, c7);</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(c0, c1, c2, c3, c4, c5, c6, c7);</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, Nx, 0, 0));</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 2 * Nx, 0, 0));</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 3 * Nx, 0, 0));</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 4 * Nx, 0, 0));</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 5 * Nx, 0, 0));</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 6 * Nx, 0, 0));</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;    vstore2(c7, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 7 * Nx, 0, 0));</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a4c4ce3f10939dd4237d0adee00086a53"><div class="ttname"><a href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a></div><div class="ttdeci">#define DFT_8(c0, c1, c2, c3, c4, c5, c6, c7)</div><div class="ttdoc">Computes radix-8 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00172">fft.cl:172</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -4284,17 +4306,18 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l01709">1709</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;{</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;    <span class="comment">// Each work-item computes a single radix-8</span></div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(input);</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;    input.ptr += get_global_id(0) * input.stride_x + n * input.stride_y + get_global_id(2) * input.stride_z;</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.ptr);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, Nx, 0));</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2 * Nx, 0));</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3 * Nx, 0));</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 4 * Nx, 0));</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 5 * Nx, 0));</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 6 * Nx, 0));</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;    float2 c7 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 7 * Nx, 0));</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(7 * phi, c7);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(c0, c1, c2, c3, c4, c5, c6, c7);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4 * Nx, 0));</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5 * Nx, 0));</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6 * Nx, 0));</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    vstore2(c7, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 7 * Nx, 0));</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">helpers.h:182</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">helpers.h:180</a></div></div>
+<div class="fragment"><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;{</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;    <span class="comment">// Each work-item computes a single radix-8</span></div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    uint kx = get_global_id(1);</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    <span class="comment">// Compute nx</span></div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;    uint nx = kx % Nx;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;    <span class="comment">// Compute n index</span></div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    uint n = nx + (kx / Nx) * Ni;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;    <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr += get_global_id(0) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_x + n * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_y + get_global_id(2) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.stride_z;</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>(output);</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;    output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a> += get_global_id(0) * output.<a class="code" href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">stride_x</a> + n * output.<a class="code" href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">stride_y</a> + get_global_id(2) * output.<a class="code" href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">stride_z</a>;</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;    float2 c0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;    float2 c1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, Nx, 0));</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    float2 c2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2 * Nx, 0));</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;    float2 c3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3 * Nx, 0));</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;    float2 c4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 4 * Nx, 0));</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;    float2 c5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 5 * Nx, 0));</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;    float2 c6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 6 * Nx, 0));</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;    float2 c7 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 7 * Nx, 0));</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;    <span class="comment">// Compute phi</span></div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <span class="keywordtype">float</span> phi = (float)nx * exp_const;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;    <span class="comment">// Multiply by twiddle factor</span></div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(phi, c1);</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(2 * phi, c2);</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(3 * phi, c3);</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(4 * phi, c4);</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(5 * phi, c5);</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(6 * phi, c6);</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    <a class="code" href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a>(7 * phi, c7);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(c0, c1, c2, c3, c4, c5, c6, c7);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    vstore2(c0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    vstore2(c1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, Nx, 0));</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;    vstore2(c2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2 * Nx, 0));</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    vstore2(c3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3 * Nx, 0));</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    vstore2(c4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4 * Nx, 0));</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;    vstore2(c5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5 * Nx, 0));</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    vstore2(c6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6 * Nx, 0));</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    vstore2(c7, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 7 * Nx, 0));</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_ad4dcc4a8b94f263cd19c59fdc2cec3d2"><div class="ttname"><a href="fft_8cl.xhtml#ad4dcc4a8b94f263cd19c59fdc2cec3d2">TWIDDLE_FACTOR_MULTIPLICATION</a></div><div class="ttdeci">#define TWIDDLE_FACTOR_MULTIPLICATION(phi, input)</div><div class="ttdoc">Calculates and applies the twiddle factor to a given input.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00031">fft.cl:31</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ad5ff7a2b2bd0eec50fe09c254b127d1c"><div class="ttname"><a href="struct_tensor3_d.xhtml#ad5ff7a2b2bd0eec50fe09c254b127d1c">Tensor3D::stride_z</a></div><div class="ttdeci">int stride_z</div><div class="ttdoc">Stride of the image in Z dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">helpers.h:364</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_ae01febbfd0689ef709f3ff6fdd2abc7e"><div class="ttname"><a href="struct_tensor3_d.xhtml#ae01febbfd0689ef709f3ff6fdd2abc7e">Tensor3D::stride_x</a></div><div class="ttdeci">int stride_x</div><div class="ttdoc">Stride of the image in X dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">helpers.h:362</a></div></div>
 <div class="ttc" id="fft_8cl_xhtml_a4c4ce3f10939dd4237d0adee00086a53"><div class="ttname"><a href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a></div><div class="ttdeci">#define DFT_8(c0, c1, c2, c3, c4, c5, c6, c7)</div><div class="ttdoc">Computes radix-8 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00172">fft.cl:172</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">helpers.h:148</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">helpers.h:181</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a79e8e562daa6599317d2d1cd86ef1bf2"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a79e8e562daa6599317d2d1cd86ef1bf2">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">helpers.h:330</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_a4f0b90c9ecd6e57ceb3f37332fefe8f1"><div class="ttname"><a href="struct_tensor3_d.xhtml#a4f0b90c9ecd6e57ceb3f37332fefe8f1">Tensor3D::stride_y</a></div><div class="ttdeci">int stride_y</div><div class="ttdoc">Stride of the image in Y dimension (in bytes)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">helpers.h:363</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00148">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00180">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00181">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00182">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00330">CONVERT_TO_TENSOR3D_STRUCT_NO_STEP</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00362">Tensor3D::stride_x</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00363">Tensor3D::stride_y</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00364">Tensor3D::stride_z</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>, and <a class="el" href="fft_8cl_source.xhtml#l00031">TWIDDLE_FACTOR_MULTIPLICATION</a>.</p>
 
 </div>
 </div>
@@ -4433,12 +4456,13 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00744">744</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;{</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    float16 data = vload16(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(data.s01, data.s23, data.s45, data.s67, data.s89, data.sAB, data.sCD, data.sEF);</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    vstore16(data, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a4c4ce3f10939dd4237d0adee00086a53"><div class="ttname"><a href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a></div><div class="ttdeci">#define DFT_8(c0, c1, c2, c3, c4, c5, c6, c7)</div><div class="ttdoc">Computes radix-8 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00172">fft.cl:172</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
+<div class="fragment"><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;{</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    float16 data = vload16(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(data.s01, data.s23, data.s45, data.s67, data.s89, data.sAB, data.sCD, data.sEF);</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    vstore16(data, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a4c4ce3f10939dd4237d0adee00086a53"><div class="ttname"><a href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a></div><div class="ttdeci">#define DFT_8(c0, c1, c2, c3, c4, c5, c6, c7)</div><div class="ttdoc">Computes radix-8 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00172">fft.cl:172</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>.</p>
 
 </div>
 </div>
@@ -4577,13 +4601,14 @@
 </dl>
 
 <p class="definition">Definition at line <a class="el" href="fft_8cl_source.xhtml#l00791">791</a> of file <a class="el" href="fft_8cl_source.xhtml">fft.cl</a>.</p>
-<div class="fragment"><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;{</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> input = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(input);</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = input;</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)input.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 1, 0));</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 2, 0));</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 3, 0));</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    float2 data4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 4, 0));</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    float2 data5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 5, 0));</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    float2 data6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 6, 0));</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    float2 data7 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;input, 0, 7, 0));</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(data0, data1, data2, data3, data4, data5, data6, data7);</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    vstore2(data4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4, 0));</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    vstore2(data5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5, 0));</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    vstore2(data6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6, 0));</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    vstore2(data7, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 7, 0));</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a4c4ce3f10939dd4237d0adee00086a53"><div class="ttname"><a href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a></div><div class="ttdeci">#define DFT_8(c0, c1, c2, c3, c4, c5, c6, c7)</div><div class="ttdoc">Computes radix-8 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00172">fft.cl:172</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00176">helpers.h:176</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">helpers.h:144</a></div></div>
-<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">helpers.h:178</a></div></div>
-<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">helpers.h:340</a></div></div>
+<div class="fragment"><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;{</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <span class="comment">// Get tensor pointers</span></div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>);</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;<span class="preprocessor">#ifdef IN_PLACE</span></div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>;</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;<span class="preprocessor">#else  </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    <a class="code" href="struct_tensor3_d.xhtml">Tensor3D</a> output = <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a>(output);</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IN_PLACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <span class="comment">// Load eight complex input values</span></div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    float2 data0 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>.ptr);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    float2 data1 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 1, 0));</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    float2 data2 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 2, 0));</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    float2 data3 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 3, 0));</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    float2 data4 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 4, 0));</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    float2 data5 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 5, 0));</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    float2 data6 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 6, 0));</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    float2 data7 = vload2(0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, 0, 7, 0));</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="comment">// Compute DFT N = 8</span></div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    <a class="code" href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a>(data0, data1, data2, data3, data4, data5, data6, data7);</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;    <span class="comment">// Store eight complex output values</span></div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    vstore2(data0, 0, (__global <span class="keywordtype">float</span> *)output.<a class="code" href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">ptr</a>);</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    vstore2(data1, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 1, 0));</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    vstore2(data2, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 2, 0));</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    vstore2(data3, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 3, 0));</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    vstore2(data4, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 4, 0));</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    vstore2(data5, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 5, 0));</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    vstore2(data6, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 6, 0));</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    vstore2(data7, 0, (__global <span class="keywordtype">float</span> *)<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a>(&amp;output, 0, 7, 0));</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;}</div><div class="ttc" id="fft_8cl_xhtml_a4c4ce3f10939dd4237d0adee00086a53"><div class="ttname"><a href="fft_8cl.xhtml#a4c4ce3f10939dd4237d0adee00086a53">DFT_8</a></div><div class="ttdeci">#define DFT_8(c0, c1, c2, c3, c4, c5, c6, c7)</div><div class="ttdoc">Computes radix-8 butterfly unit.</div><div class="ttdef"><b>Definition:</b> <a href="fft_8cl_source.xhtml#l00172">fft.cl:172</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml"><div class="ttname"><a href="struct_tensor3_d.xhtml">Tensor3D</a></div><div class="ttdoc">Structure to hold 3D tensor information.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00358">helpers.h:358</a></div></div>
+<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a31c8c760f08fb1a331b16b7c204321dc"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a31c8c760f08fb1a331b16b7c204321dc">CONVERT_TO_TENSOR3D_STRUCT</a></div><div class="ttdeci">#define CONVERT_TO_TENSOR3D_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">helpers.h:326</a></div></div>
+<div class="ttc" id="struct_tensor3_d_xhtml_acf52c23cbd7424606c10a606524e3e32"><div class="ttname"><a href="struct_tensor3_d.xhtml#acf52c23cbd7424606c10a606524e3e32">Tensor3D::ptr</a></div><div class="ttdeci">__global uchar * ptr</div><div class="ttdoc">Pointer to the starting postion of the buffer.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">helpers.h:360</a></div></div>
+<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a2101b2fe0193ce227ae4e0945e321d85"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a2101b2fe0193ce227ae4e0945e321d85">tensor3D_offset</a></div><div class="ttdeci">__global const uchar * tensor3D_offset(const Tensor3D *tensor, int x, int y, int z)</div><div class="ttdoc">Get the pointer position of a Tensor3D.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">helpers.h:522</a></div></div>
 </div><!-- fragment -->
-<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00144">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00178">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00340">tensor3D_offset()</a>.</p>
+<p class="reference">References <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00326">CONVERT_TO_TENSOR3D_STRUCT</a>, <a class="el" href="fft_8cl_source.xhtml#l00172">DFT_8</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00360">Tensor3D::ptr</a>, and <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00522">tensor3D_offset()</a>.</p>
 
 </div>
 </div>
@@ -4593,7 +4618,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <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="fft_8cl.xhtml">fft.cl</a></li>
-    <li class="footer">Generated on Mon Sep 2 2019 11:47:29 for Compute Library by
+    <li class="footer">Generated on Thu Nov 28 2019 16:53:07 for Compute Library by
     <a href="http://www.doxygen.org/index.html">
     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
   </ul>