1 /* { dg-do compile { target int128 } } */
2 /* { dg-options "-O3" } */
3 
4 /* 2x lghi */
a()5 __int128 a() {
6   return 0;
7 }
8 
9 /* 2x lghi */
b()10 __int128 b() {
11   return -1;
12 }
13 
14 /* 2x lghi */
c()15 __int128 c() {
16   return -2;
17 }
18 
19 /* lghi + llilh */
d()20 __int128 d() {
21   return 16000 << 16;
22 }
23 
24 /* lghi + llihf */
e()25 __int128 e() {
26   return (unsigned long long)80000 << 32;
27 }
28 
29 /* lghi + llihf */
f()30 __int128 f() {
31   return (unsigned __int128)80000 << 96;
32 }
33 
34 /* llihf + llihf - this is handled via movti_bigconst pattern */
g()35 __int128 g() {
36   return ((unsigned __int128)80000 << 96) | ((unsigned __int128)80000 << 32);
37 }
38 
39 /* Literal pool */
h()40 __int128 h() {
41   return ((unsigned __int128)80000 << 32) | 1;
42 }
43 
44 /* Literal pool */
i()45 __int128 i() {
46   return (((unsigned __int128)80000 << 32) | 1) << 64;
47 }
48