annotate gcc/testsuite/g++.dg/torture/pr70499.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 // { dg-additional-options "-w -Wno-psabi" }
111
kono
parents:
diff changeset
3 // { dg-additional-options "-mavx" { target x86_64-*-* i?86-*-* } }
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 typedef double __m256d __attribute__ ((__vector_size__ (32), __may_alias__));
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 struct SIMD {
kono
parents:
diff changeset
8 __m256d data;
kono
parents:
diff changeset
9 SIMD() {};
kono
parents:
diff changeset
10 SIMD (double val) { }
kono
parents:
diff changeset
11 SIMD(__m256d _data) { data = _data; }
kono
parents:
diff changeset
12 SIMD operator* (SIMD a) { return a; }
kono
parents:
diff changeset
13 };
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 struct Foo {
kono
parents:
diff changeset
16 SIMD val;
kono
parents:
diff changeset
17 SIMD dval[2];
kono
parents:
diff changeset
18 __attribute__((__always_inline__)) SIMD & Value() throw() { return val; }
kono
parents:
diff changeset
19 __attribute__((__always_inline__)) Foo operator* ( const Foo & y) throw()
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 Foo res;
kono
parents:
diff changeset
22 SIMD hx;
kono
parents:
diff changeset
23 SIMD hy;
kono
parents:
diff changeset
24 res.Value() = hx*hy;
kono
parents:
diff changeset
25 res.dval[0] = hx*hy;
kono
parents:
diff changeset
26 return res;
kono
parents:
diff changeset
27 }
kono
parents:
diff changeset
28 };
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 template<typename Tx>
kono
parents:
diff changeset
31 __attribute__((__always_inline__)) inline void inlineFunc(Tx hx[]) {
kono
parents:
diff changeset
32 Tx x = hx[0], y = hx[1];
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
33 Tx lam[1] = {(x*y)};
111
kono
parents:
diff changeset
34 }
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 void FooBarFunc () {
kono
parents:
diff changeset
37 Foo adp[2];
kono
parents:
diff changeset
38 inlineFunc (adp);
kono
parents:
diff changeset
39 }