File: constexpr-53094-3.C

package info (click to toggle)
gcc-arm-none-eabi 15%3A8-2019-q3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 571,828 kB
  • sloc: ansic: 2,937,651; cpp: 881,644; ada: 597,189; makefile: 65,528; asm: 56,499; xml: 46,621; exp: 24,747; sh: 19,684; python: 7,256; pascal: 4,370; awk: 3,497; perl: 2,695; yacc: 316; ml: 285; f90: 234; lex: 198; objc: 194; haskell: 119
file content (21 lines) | stat: -rw-r--r-- 586 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// { dg-do compile { target c++11 } }
// { dg-options "" }
// Ignore warning on some powerpc-ibm-aix configurations.
// { dg-prune-output "non-standard ABI extension" }

typedef float __attribute__ ((vector_size (4 * sizeof (float)))) V4;

struct Rot3 {
  typedef float T;
  typedef V4 Vec;
  Vec axis[3];
  constexpr Rot3 (V4 ix, V4 iy, V4 iz) : axis {ix, iy, iz} {}

  constexpr Rot3(T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz) :
    Rot3((Vec) { xx, xy, xz, 0 },
	 (Vec) { yx, yy, yz, 0 },
	 (Vec) { zx, zy, zz, 0 }) {}

};

constexpr Rot3 r1( 0, 1 ,0, 0, 0, 1,  1, 0, 0);