]>
gcc.gnu.org Git - gcc.git/blob - gcc/testsuite/g++.dg/vect/pr106841.cc
2 // { dg-additional-options "-O3 -ffast-math" }
3 // { dg-additional-options "-march=bdver2" { target x86_64-*-* } }
7 R3(R3 A
, R3 B
) : z(B
.z
- A
.z
) {}
8 double norme() { return z
; }
10 struct TBoundaryEdge
{
12 int &operator[](int i
) { return *vertices
[i
]; }
16 TBoundaryEdge
*bedges
;
17 int operator()(int &vv
) { return &vv
- &vertices
; }
18 TBoundaryEdge
be(int i
) { return bedges
[i
]; }
20 template <typename Data
> struct GenericElement
{
21 typedef typename
Data::V Vertex
;
22 static const int nv
= Data::NbOfVertices
;
25 void set(int *iv
, Vertex
*v0
) {
26 for (int i
= 0; i
< nv
; ++i
)
27 vertices
[i
] = v0
+ iv
[i
];
28 mes
= Data::mesure(vertices
);
32 static const int NbOfVertices
= 2;
34 static double mesure(V
*pv
[]) { return R3(*pv
[0], *pv
[1]).norme(); }
39 template <class> struct Movemesh_Op
{ void foo(Mesh
, DataSeg3::V
*) const; };
40 template <> void Movemesh_Op
<int>::foo(Mesh pTh
, DataSeg3::V
*v0
) const {
41 GenericElement
<DataSeg3
> *bS
= new GenericElement
<DataSeg3
>[8];
42 for (int ibe
= 0; ibe
< 8; ibe
++) {
43 TBoundaryEdge
K(pTh
.be(ibe
));
45 for (int i
= 0; i
< 2; i
++) {
46 int &__trans_tmp_2
= K
[i
];
47 iv
[i
] = pTh(__trans_tmp_2
);
This page took 0.038761 seconds and 5 git commands to generate.