| |
| <para> |
| <!-- OpenCL C spec. ver. 2.0, rev. 19, p. 81, section 6.13.3 --> Built-in integer functions take |
| scalar or vector arguments. The vector versions of the integer functions operate |
| component-wise. The description is per component. |
| </para> |
| |
| <para> |
| We use the generic type name <type>gentype</type> to indicate that the function |
| can take <type>char</type>, <type>char{2|3|4|8|16}</type>, <type>uchar</type>, |
| <type>uchar{2|3|4|8|16}</type>, <type>short</type>, <type>short{2|3|4|8|16}</type>, |
| <type>ushort</type>, <type>ushort{2|3|4|8|16}</type>, <type>int</type>, |
| <type>int{2|3|4|8|16}</type>, <type>uint</type>, <type>uint{2|3|4|8|16}</type>, |
| <type>long</type>, <type>long{2|3|4|8|16}</type>, <type>ulong</type>, or |
| <type>ulong{2|3|4|8|16}</type> as the type for the arguments. We use the generic type |
| name <type>ugentype</type> to refer to unsigned versions of <type>gentype</type>. For |
| example, if <type>gentype</type> is <type>char4</type>, <type>ugentype</type> is |
| <type>uchar4</type>. |
| </para> |
| |
| <para> |
| We also use the generic type name <type>sgentype</type> to indicate that the function can |
| take a scalar data type i.e. <type>char</type>, <type>uchar</type>, <type>short</type>, |
| <type>ushort</type>, <type>int</type>, <type>uint</type>, <type>long</type>, or |
| <type>ulong</type> as the type for the arguments. For built-in integer functions that |
| take <type>gentype</type> and <type>sgentype</type> arguments, the <type>gentype</type> |
| argument must be a vector or scalar version of the <type>sgentype</type> argument. For |
| example, if <type>sgentype</type> is <type>uchar</type>, <type>gentype</type> |
| must be <type>uchar</type> or <type>uchar{2|3|4|8|16}</type>. For vector versions, |
| <type>sgentype</type> is implicitly widened to <type>gentype</type> as described in section 6.3.a |
| of the OpenCL specification. |
| </para> |
| |
| <para> |
| For any specific use of a function, the actual type has to be the same for all |
| arguments and the return type unless otherwise specified. |
| </para> |
| |
| <!-- 24-Dec-2013, rev. 19 --> |
| |