From e5337b35cbd558c9344f3382b1ce8fd865259d9e Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Sun, 22 Jul 2012 05:55:47 +0000 Subject: [PATCH] vrp72.c: New test. 2012-07-21 Andrew Pinski * 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 --- gcc/testsuite/ChangeLog | 7 ++++++ gcc/testsuite/gcc.dg/tree-ssa/vrp72.c | 30 ++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/tree-ssa/vrp73.c | 30 ++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/tree-ssa/vrp74.c | 23 ++++++++++++++++++++ gcc/testsuite/gcc.dg/tree-ssa/vrp75.c | 31 +++++++++++++++++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp72.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp73.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp74.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp75.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7903d90b9666..2731f8d26e3e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2012-07-21 Andrew Pinski + + * 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 * gcc.dg/tree-ssa/alias-21.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 000000000000..67c7602e378f --- /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 000000000000..48e7805fa071 --- /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 000000000000..b15186fea0ba --- /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 000000000000..91fd3f71bd54 --- /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; +} -- 2.39.5