Technical data

#pragma Directives [3]
On the Cray SV1 series and Cray T3E systems, the compiler assumes that the
safe vector length is the maximum vector length supported by that machine.
On Cray SV1 series systems, the -h [no]infinitevl compiler option can be
used to change this behavior.
3.7.2 nopattern Directive
Scope: Local
The nopattern directive disables pattern matching for the loop immediately
following the directive.
The format of this directive is as follows:
#pragma _CRI nopattern
By default, the compiler detects coding patterns in source code sequences and
replaces these sequences with calls to optimized library functions. In most cases,
this replacement improves performance. There are cases, however, in which this
substitution degrades performance. This can occur, for example, in loops with
very low trip counts. In such a case, you can use the nopattern directive to
disable pattern matching and cause the compiler to generate inline code.
In the following example, placing the nopattern directive in front of the outer
loop of a nested loop turns off pattern matching for the matrix multiply that takes
place inside the inner loop:
double a[100][100], b[100][100], c[100][100];
void
nopat(int n)
{
int i, j, k;
#pragma _CRI nopattern
for (i=0; i < n; ++i) {
for (j = 0; j < n; ++j) {
for (k = 0; k < n; ++k) {
c[i][j] += a[i][k] * b[k][j]
}
}
}
}
S217936 59