1 /* { dg-do compile } */
2 /* { dg-options "-O3 -ffast-math -march=core-avx2" } */
8 typedef float matrix
[DIM
][DIM
];
9 typedef float rvec
[DIM
];
10 extern int det (matrix
);
11 extern void foo(matrix
);
13 void bar1 (int n
,int *index
,rvec x
[],matrix trans
)
18 for(i
=0; (i
<n
); i
++) {
19 ii
=index
? index
[i
] : i
;
23 x
[ii
][XX
]=trans
[XX
][XX
]*xt
+trans
[XX
][YY
]*yt
+trans
[XX
][ZZ
]*zt
;
24 x
[ii
][YY
]=trans
[YY
][XX
]*xt
+trans
[YY
][YY
]*yt
+trans
[YY
][ZZ
]*zt
;
25 x
[ii
][ZZ
]=trans
[ZZ
][XX
]*xt
+trans
[ZZ
][YY
]*yt
+trans
[ZZ
][ZZ
]*zt
;
30 void bar2 (int n
, rvec x
[])
37 if (det (trans
) < 0) {
38 for(m
=0; (m
<DIM
); m
++)
39 trans
[ZZ
][m
] = -trans
[ZZ
][m
];
41 bar1 (n
,(int*) 0,x
,trans
);