111
|
1 /* PR debug/49676 */
|
|
2 /* { dg-do run { target lp64 } } */
|
|
3 /* { dg-options "-g -fno-ipa-icf" } */
|
|
4
|
|
5 volatile int v;
|
|
6
|
|
7 __attribute__((noinline, noclone))
|
|
8 unsigned long long
|
|
9 foo (unsigned long long x)
|
|
10 {
|
131
|
11 unsigned long long a = x * (0x17ULL << 31); /* { dg-final { gdb-test .+18 "a" "(0x17ULL << 31)" } } */
|
|
12 unsigned long long b = x * (0x7ULL << 33); /* { dg-final { gdb-test .+17 "b" "(0x7ULL << 33)" } } */
|
|
13 unsigned long long c = x * (0x1ULL << 35); /* { dg-final { gdb-test .+16 "c" "(0x1ULL << 35)" } } */
|
|
14 unsigned long long d = x * (0x17ULL << 15); /* { dg-final { gdb-test .+15 "d" "(0x17ULL << 15)" } } */
|
|
15 unsigned long long e = x * (0x17ULL << 50); /* { dg-final { gdb-test .+14 "e" "(0x17ULL << 50)" } } */
|
|
16 unsigned long long f = x * (0x37ULL << 31); /* { dg-final { gdb-test .+13 "f" "(0x37ULL << 31)" } } */
|
|
17 unsigned long long g = x * (0x37ULL << 50); /* { dg-final { gdb-test .+12 "g" "(0x37ULL << 50)" } } */
|
|
18 unsigned long long h = x * (0x1efULL << 33); /* { dg-final { gdb-test .+11 "h" "(0x1efULL << 33)" } } */
|
|
19 unsigned long long i = x * (0x1efULL << 50); /* { dg-final { gdb-test .+10 "i" "(0x1efULL << 50)" } } */
|
|
20 unsigned long long j = x * -(0x17ULL << 31); /* { dg-final { gdb-test .+9 "j" "-(0x17ULL << 31)" } } */
|
|
21 unsigned long long k = x * -(0x7ULL << 33); /* { dg-final { gdb-test .+8 "k" "-(0x7ULL << 33)" } } */
|
|
22 unsigned long long l = x * -(0x1ULL << 35); /* { dg-final { gdb-test .+7 "l" "-(0x1ULL << 35)" } } */
|
|
23 unsigned long long m = x * -(0x17ULL << 15); /* { dg-final { gdb-test .+6 "m" "-(0x17ULL << 15)" } } */
|
|
24 unsigned long long n = x * -(0x17ULL << 50); /* { dg-final { gdb-test .+5 "n" "-(0x17ULL << 50)" } } */
|
|
25 unsigned long long o = x * -(0x37ULL << 31); /* { dg-final { gdb-test .+4 "o" "-(0x37ULL << 31)" } } */
|
|
26 unsigned long long p = x * -(0x37ULL << 50); /* { dg-final { gdb-test .+3 "p" "-(0x37ULL << 50)" } } */
|
|
27 unsigned long long q = x * -(0x1efULL << 33); /* { dg-final { gdb-test .+2 "q" "-(0x1efULL << 33)" } } */
|
|
28 unsigned long long r = x * -(0x1efULL << 50); /* { dg-final { gdb-test .+1 "r" "-(0x1efULL << 50)" } } */
|
111
|
29 v++;
|
|
30 return x;
|
|
31 }
|
|
32
|
|
33 __attribute__((noinline, noclone))
|
|
34 unsigned long long
|
|
35 bar (unsigned long long x)
|
|
36 {
|
131
|
37 unsigned long long a = (x & 255) + (0x17ULL << 31); /* { dg-final { gdb-test .+18 "a" "(0x17ULL << 31)" } } */
|
|
38 unsigned long long b = (x & 255) + (0x7ULL << 33); /* { dg-final { gdb-test .+17 "b" "(0x7ULL << 33)" } } */
|
|
39 unsigned long long c = (x & 255) + (0x1ULL << 35); /* { dg-final { gdb-test .+16 "c" "(0x1ULL << 35)" } } */
|
|
40 unsigned long long d = (x & 255) + (0x17ULL << 15); /* { dg-final { gdb-test .+15 "d" "(0x17ULL << 15)" } } */
|
|
41 unsigned long long e = (x & 255) + (0x17ULL << 50); /* { dg-final { gdb-test .+14 "e" "(0x17ULL << 50)" } } */
|
|
42 unsigned long long f = (x & 255) + (0x37ULL << 31); /* { dg-final { gdb-test .+13 "f" "(0x37ULL << 31)" } } */
|
|
43 unsigned long long g = (x & 255) + (0x37ULL << 50); /* { dg-final { gdb-test .+12 "g" "(0x37ULL << 50)" } } */
|
|
44 unsigned long long h = (x & 255) + (0x1efULL << 33); /* { dg-final { gdb-test .+11 "h" "(0x1efULL << 33)" } } */
|
|
45 unsigned long long i = (x & 255) + (0x1efULL << 50); /* { dg-final { gdb-test .+10 "i" "(0x1efULL << 50)" } } */
|
|
46 unsigned long long j = (x & 255) + -(0x17ULL << 31); /* { dg-final { gdb-test .+9 "j" "-(0x17ULL << 31)" } } */
|
|
47 unsigned long long k = (x & 255) + -(0x7ULL << 33); /* { dg-final { gdb-test .+8 "k" "-(0x7ULL << 33)" } } */
|
|
48 unsigned long long l = (x & 255) + -(0x1ULL << 35); /* { dg-final { gdb-test .+7 "l" "-(0x1ULL << 35)" } } */
|
|
49 unsigned long long m = (x & 255) + -(0x17ULL << 15); /* { dg-final { gdb-test .+6 "m" "-(0x17ULL << 15)" } } */
|
|
50 unsigned long long n = (x & 255) + -(0x17ULL << 50); /* { dg-final { gdb-test .+5 "n" "-(0x17ULL << 50)" } } */
|
|
51 unsigned long long o = (x & 255) + -(0x37ULL << 31); /* { dg-final { gdb-test .+4 "o" "-(0x37ULL << 31)" } } */
|
|
52 unsigned long long p = (x & 255) + -(0x37ULL << 50); /* { dg-final { gdb-test .+3 "p" "-(0x37ULL << 50)" } } */
|
|
53 unsigned long long q = (x & 255) + -(0x1efULL << 33); /* { dg-final { gdb-test .+2 "q" "-(0x1efULL << 33)" } } */
|
|
54 unsigned long long r = (x & 255) + -(0x1efULL << 50); /* { dg-final { gdb-test .+1 "r" "-(0x1efULL << 50)" } } */
|
111
|
55 v++;
|
|
56 return x;
|
|
57 }
|
|
58
|
|
59 int
|
|
60 main ()
|
|
61 {
|
|
62 return foo (1) + bar (256) - 257;
|
|
63 }
|