diff options
author | Andrew Pinski <apinski@cavium.com> | 2012-07-22 05:55:47 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2012-07-21 22:55:47 -0700 |
commit | e5337b35cbd558c9344f3382b1ce8fd865259d9e (patch) | |
tree | 46e2d43fa646de22dc522e1e492f875f47581cdf | |
parent | 40287ad370cbfadd18e6e4e93375c79596d2776d (diff) | |
download | gcc-e5337b35cbd558c9344f3382b1ce8fd865259d9e.zip gcc-e5337b35cbd558c9344f3382b1ce8fd865259d9e.tar.gz gcc-e5337b35cbd558c9344f3382b1ce8fd865259d9e.tar.bz2 |
vrp72.c: New test.
2012-07-21 Andrew Pinski <apinski@cavium.com>
* gcc.dg/tree-ssa/vrp72.c: New test.
* gcc.dg/tree-ssa/vrp73.c: New test.
* gcc.dg/tree-ssa/vrp74.c: New test.
* gcc.dg/tree-ssa/vrp75.c: New test.
From-SVN: r189753
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp72.c | 30 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp73.c | 30 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp74.c | 23 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp75.c | 31 |
5 files changed, 121 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7903d90..2731f8d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,12 @@ 2012-07-21 Andrew Pinski <apinski@cavium.com> + * gcc.dg/tree-ssa/vrp72.c: New test. + * gcc.dg/tree-ssa/vrp73.c: New test. + * gcc.dg/tree-ssa/vrp74.c: New test. + * gcc.dg/tree-ssa/vrp75.c: New test. + +2012-07-21 Andrew Pinski <apinski@cavium.com> + * gcc.dg/tree-ssa/alias-21.c: New testcase. * gcc.dg/tree-ssa/alias-22.c: New testcase. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp72.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp72.c new file mode 100644 index 0000000..67c7602 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp72.c @@ -0,0 +1,30 @@ +/* { dg-options "-O2" } */ + +typedef unsigned long long uint64_t; + +static inline void cvmx_write64_uint64(uint64_t addr, uint64_t val) +{ + *(volatile uint64_t *)(long)addr = val; +}; +static inline uint64_t cvmx_read64_uint64(uint64_t addr) +{ + return *(volatile uint64_t *)(long)addr; +}; + +static inline void cvmx_write_csr(uint64_t csr_addr, uint64_t val) +{ + cvmx_write64_uint64 (csr_addr, val); + if ((csr_addr >> 40) != 0x800118) + linker_error (); +} + +int uart; + +int +main () +{ + cvmx_write_csr (((((uint64_t) 2LL) << 62) + | (0x0001180000000808ull+((uart&0xff)*1024))), + 0xfff); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp73.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp73.c new file mode 100644 index 0000000..48e7805 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp73.c @@ -0,0 +1,30 @@ +/* { dg-options "-O2" } */ + +typedef unsigned long long uint64_t; + +static inline void cvmx_write64_uint64(uint64_t addr, uint64_t val) +{ + *(volatile uint64_t *)(long)addr = val; +}; +static inline uint64_t cvmx_read64_uint64(uint64_t addr) +{ + return *(volatile uint64_t *)(long)addr; +}; + +static inline void cvmx_write_csr(uint64_t csr_addr, uint64_t val) +{ + cvmx_write64_uint64 (csr_addr, val); + if ((csr_addr >> 40) == 0x800118) + linker_error (); +} + +int dest_core, src_core; + +int +main () +{ + cvmx_write_csr ((((((uint64_t)2LL) << 62) + | ((0x0001070000000600ull+((dest_core&0xff)*8))))), + 1ull << src_core); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp74.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp74.c new file mode 100644 index 0000000..b15186f --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp74.c @@ -0,0 +1,23 @@ +/* { dg-options "-O2" } */ + +void abort (void); +void exit (int); + +__attribute__ ((noinline)) void +f (unsigned long long i) +{ + if (i <= 0x1000000000000000ull) + { + unsigned long long j = i | 0x1000000000000000ull; + if (j == 0x1100000000000000ull) + exit (0); + } +} + +int +main () +{ + f (0x0100000000000000ull); + abort (); +} + diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp75.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp75.c new file mode 100644 index 0000000..91fd3f7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp75.c @@ -0,0 +1,31 @@ +/* { dg-options "-O2" } */ + +typedef unsigned long long uint64_t; + +static inline void cvmx_write64_uint64(uint64_t addr, uint64_t val) +{ + *(volatile uint64_t *)(long)addr = val; +}; +static inline uint64_t cvmx_read64_uint64(uint64_t addr) +{ + return *(volatile uint64_t *)(long)addr; +}; +static inline void cvmx_write_csr(uint64_t csr_addr, uint64_t val) +{ + cvmx_write64_uint64 (csr_addr, val); + if ((csr_addr >> 40) != 0x800118) + linker_error (); +} + +int interface; +int idx; + +int +main () +{ + cvmx_write_csr((((((uint64_t) 2LL) << 62) + | ((0x0001180008000208ull + + (((idx)&3)*2048) + + (((interface)&1)*0x8000000ull))))), 1); + return 0; +} |