1 /* { dg-do run { target int128 } } */
2 /* { dg-options "-O -fno-tree-bit-ccp -fno-tree-reassoc" } */
4 typedef unsigned char u8
;
5 typedef unsigned short u16
;
6 typedef unsigned int u32
;
7 typedef unsigned long long u64
;
8 typedef unsigned __int128 u128
;
10 void __attribute__((noinline
, noclone
))
13 volatile char a
[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
14 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
15 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
16 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
19 u128
__attribute__ ((noinline
, noclone
))
20 foo(u32 u32_1
, u64 u64_1
, u128 u128_1
, u8 u8_2
, u16 u16_2
, u32 u32_2
, u8 u8_3
)
22 u128_1
/= ~u128_1
| 1;
23 u8_3
= ((u8_3
<< 2) >> 1) << 7;
25 return u128_1
+ u32_2
+ u8_3
;
32 u128 x
= foo(1, 1, 1, 1, 1, 1, 0);