blob: 82d517b05abd8067d332f8d1df3255a4c96def6a (
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
|
/* { dg-options "-O2 -fdump-tree-optimized-raw" } */
typedef __INTPTR_TYPE__ intptr_t;
int
f1 (int x, int y)
{
if ((x & 1) || (y & 1))
__builtin_unreachable ();
x /= 2;
y /= 2;
return x < y;
}
int
f2 (void *ptr1, void *ptr2, void *ptr3)
{
ptr1 = __builtin_assume_aligned (ptr1, 4);
ptr2 = __builtin_assume_aligned (ptr2, 4);
ptr3 = __builtin_assume_aligned (ptr3, 4);
intptr_t diff1 = (intptr_t) ptr1 - (intptr_t) ptr2;
intptr_t diff2 = (intptr_t) ptr1 - (intptr_t) ptr3;
diff1 /= 2;
diff2 /= 2;
return diff1 < diff2;
}
/* { dg-final { scan-tree-dump-not {<[a-z]*_div_expr,} "optimized" } } */
/* { dg-final { scan-tree-dump-not {<rshift_expr,} "optimized" } } */
|