1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
4 typedef unsigned char uchar;
5 typedef unsigned short ushort;
6 typedef unsigned int uint;
7 typedef unsigned long long uint64;
14 explicit MyRgba (uint c):rgba (c)
18 static MyRgba fromRgba (uchar r, uchar g, uchar b, uchar a)
20 return MyRgba (uint (r) << 24
21 | uint (g) << 16 | uint (b) << 8 | uint (a));
43 *this = fromRgba (r (), _g, b (), a ());
47 extern MyRgba giveMe ();
62 explicit MyRgba64 (uint64 c):rgba (c)
66 static MyRgba64 fromRgba64 (ushort r, ushort g, ushort b, ushort a)
68 return MyRgba64 (uint64 (r) << 48
69 | uint64 (g) << 32 | uint64 (b) << 16 | uint64 (a));
91 *this = fromRgba64 (r (), _g, b (), a ());
95 extern MyRgba64 giveMe64 ();
100 MyRgba64 a = giveMe64 ();
105 /* { dg-final { scan-tree-dump-not "<<" "optimized" } } */
106 /* { dg-final { scan-tree-dump-not ">>" "optimized" } } */