Name: declare simd | Association: declaration |
Category: declarative | Properties: pure |
|
Arguments
declare simd[(proc-name)] Name | Type | Properties |
proc-name | identifier of function type | optional |
|
Clause groups
Clauses
aligned, linear, simdlen, uniformSemantics
The association of one or more declare simd directives with a function declaration or definition enables the creation of corresponding SIMD versions of the associated function that can be used to process multiple arguments from a single invocation in a SIMD loop concurrently.If a SIMD version is created and the simdlen clause is not specified, the number of concurrent arguments for the function is implementation defined.
For purposes of the linear clause, any integer-typed parameter that is specified in a uniform clause on the directive is considered to be constant and so may be used in linear-step.
Restrictions
Restrictions to the declare simd directive are as follows:The execution of the function or subroutine cannot have any side effects that would alter its execution for concurrent iterations of a SIMD chunk.
Cross References