]>
Commit | Line | Data |
---|---|---|
aa8ec7fb SB |
1 | /* PR rtl-optimization/83424 */ |
2 | /* { dg-do run { target int128 } } */ | |
3 | /* { dg-options "-O -fno-tree-ccp -fno-tree-coalesce-vars" } */ | |
4 | ||
5 | typedef unsigned char u8; | |
6 | typedef unsigned int u32; | |
7 | typedef unsigned __int128 u128; | |
8 | ||
9 | u32 a, c; | |
10 | u8 b; | |
11 | ||
12 | static u128 __attribute__ ((noinline, noclone)) | |
13 | foo (u128 p) | |
14 | { | |
15 | u8 x = ~b; | |
16 | p &= c; | |
17 | x *= -p; | |
18 | x &= a == 0; | |
19 | x >>= 1; | |
20 | return p + x; | |
21 | } | |
22 | ||
23 | int | |
24 | main (void) | |
25 | { | |
26 | u128 x = foo (0); | |
27 | if (x != 0) | |
28 | __builtin_abort (); | |
29 | return 0; | |
30 | } |