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