]>
Commit | Line | Data |
---|---|---|
251f0b62 AL |
1 | /* Target architectures which have been found to produce the expected RTL |
2 | (neg:DI (ge:DI ...)) when compiling for LP64. */ | |
3 | /* { dg-do compile { target aarch64*-*-* arm*-*-* i?86-*-* ia64-*-* powerpc*-*-* sparc*-*-* x86_64-*-* } } */ | |
100a5180 | 4 | /* { dg-require-effective-target lp64 } */ |
ed052e94 AL |
5 | /* { dg-options "-O2 -fdump-rtl-combine-all" } */ |
6 | ||
7 | typedef long long int int64_t; | |
8 | ||
9 | int64_t | |
10 | foo (int64_t a) | |
11 | { | |
12 | return (~a) >> 63; | |
13 | } | |
14 | ||
15 | /* The combine phase will try to combine not & ashiftrt, and | |
16 | combine_simplify_rtx should transform (ashiftrt (not x) 63) | |
17 | to (not (ashiftrt x 63)) and then to (neg (ge x 0)). We look for | |
18 | the *attempt* to match this RTL pattern, regardless of whether an | |
19 | actual insn may be found on the platform. */ | |
20 | /* { dg-final { scan-rtl-dump "\\(neg:DI \\(ge:DI" "combine" } } */ |