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