Viewing file: vect-tsvc-vbor.c (1.5 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* This file is distributed under the University of Illinois Open Source License. See license.txt for details. */
/* { dg-additional-options "--param vect-epilogues-nomask=0" } */ /* { dg-require-effective-target vect_float } */
#include "tsvc.h"
real_t vbor(struct args_t * func_args) { // control loops // basic operations rates, isolate arithmetic from memory traffic // all combinations of three, 59 flops for 6 loads and 1 store.
initialise_arrays(__func__);
real_t a1, b1, c1, d1, e1, f1; for (int nl = 0; nl < iterations*10; nl++) { for (int i = 0; i < LEN_2D; i++) { a1 = a[i]; b1 = b[i]; c1 = c[i]; d1 = d[i]; e1 = e[i]; f1 = aa[0][i]; a1 = a1 * b1 * c1 + a1 * b1 * d1 + a1 * b1 * e1 + a1 * b1 * f1 + a1 * c1 * d1 + a1 * c1 * e1 + a1 * c1 * f1 + a1 * d1 * e1 + a1 * d1 * f1 + a1 * e1 * f1; b1 = b1 * c1 * d1 + b1 * c1 * e1 + b1 * c1 * f1 + b1 * d1 * e1 + b1 * d1 * f1 + b1 * e1 * f1; c1 = c1 * d1 * e1 + c1 * d1 * f1 + c1 * e1 * f1; d1 = d1 * e1 * f1; x[i] = a1 * b1 * c1 * d1; } dummy(a, b, c, d, e, aa, bb, cc, 0.); }
return calc_checksum(__func__); }
int main (int argc, char **argv) { int n1 = 1; int n3 = 1; int* ip; real_t s1,s2; init(&ip, &s1, &s2);
run(&vbor, "vbor", NULL);
return 0; }
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
|