| /* { dg-do compile { target int128 } } */ |
| /* { dg-options "-O3 -mno-lra" } */ |
| |
| /* 2x lghi */ |
| __int128 a() { |
| return 0; |
| } |
| |
| /* 2x lghi */ |
| __int128 b() { |
| return -1; |
| } |
| |
| /* 2x lghi */ |
| __int128 c() { |
| return -2; |
| } |
| |
| /* lghi + llilh */ |
| __int128 d() { |
| return 16000 << 16; |
| } |
| |
| /* lghi + llihf */ |
| __int128 e() { |
| return (unsigned long long)80000 << 32; |
| } |
| |
| /* lghi + llihf */ |
| __int128 f() { |
| return (unsigned __int128)80000 << 96; |
| } |
| |
| /* llihf + llihf - this is handled via movti_bigconst pattern */ |
| __int128 g() { |
| return ((unsigned __int128)80000 << 96) | ((unsigned __int128)80000 << 32); |
| } |
| |
| /* Literal pool */ |
| __int128 h() { |
| return ((unsigned __int128)80000 << 32) | 1; |
| } |
| |
| /* Literal pool */ |
| __int128 i() { |
| return (((unsigned __int128)80000 << 32) | 1) << 64; |
| } |