<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>                            
                prefetch
            </keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>prefetch</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2009</year>
                <holder>The Khronos Group Inc. 
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>2</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="prefetch">             
        <refname>prefetch</refname>

        <refpurpose>
            Prefetch bytes into the global cache.
        </refpurpose>
    </refnamediv>

	<refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>                   
                        prefetch
                    </function>
                </funcdef>
				<paramdef>const __global gentype<parameter>*p</parameter></paramdef>	
				<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>num_elements</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>   

	</refsynopsisdiv>		

<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>
        <para>
		Prefetch <varname>num_elements</varname> * sizeof(<type>gentype</type>)
bytes into the global cache. The prefetch instruction is applied to a work-item in a work-group and does not affect the functional behavior of the kernel.
		</para>		
    </refsect1>

<!-- ================================ NOTES  -->

    <refsect1 id="notes"><title>Notes</title>
        <para>
	  The OpenCL C programming language implements Async Copy and Prefetch functions that provide asynchronous copies between global and local memory and a prefetch from global memory. The generic type name <type>gentype</type> indicates the built-in data types <type>char</type>,  <type>char{2|4|8|16}</type>, <type>uchar</type>, <type>uchar{2|4|8|16}</type>, <type>short</type>, <type>short{2|4|8|16}</type>, <type>ushort</type>, <type>ushort{2|4|8|16}</type>, <type>int</type>, <type>int{2|4|8|16}</type>, <type>uint</type>, <type>uint{2|4|8|16}</type>, <type>long</type>, <type>long{2|4|8|16}</type>, <type>ulong</type>, <type>ulong{2|4|8|16}</type> or <type>float</type>, <type>float{2|4|8|16}</type> as the type for the arguments unless otherwise stated.
		</para>
		<para>
		If extended with <citerefentry><refentrytitle>cl_khr_fp64</refentrytitle></citerefentry>, generic type name <type>gentype</type> may indicate <type>double</type> and <type>double{2|4|8|16}</type> as arguments and return values. If extended with <citerefentry><refentrytitle>cl_khr_fp16</refentrytitle></citerefentry>, generic type name <type>gentype</type> may indicate <type>half</type> and <type>half{2|4|8|16}</type> as arguments and return values. 
		</para>
    </refsect1>

<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->


<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>
                                                 
            <olink uri="asyncCopyFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>


<!-- ================================ ALSO SEE  -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="asyncCopyFunctions"><refentrytitle>Async Copy and Prefetch  Functions</refentrytitle></citerefentry> 
        </para>
    </refsect1>



<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
		<imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
		<para />
    </refsect3>

</refentry>

