diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2013-01-18 12:34:11 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-01-18 12:34:11 -0800 |
commit | 43269d882367dc4f0e4c2651d6625e1b7de78764 (patch) | |
tree | 6aaf525a6fb8a4fb63a71c9ca56be58bc1d6655b /gcc/testsuite/gcc.target/pr55981.c | |
parent | ce97ec0e268b7b50b9f801dd12ffc67042c47193 (diff) | |
parent | 48dc1117de124a2265129a36bfbbc211522c2c02 (diff) | |
download | gcc-43269d882367dc4f0e4c2651d6625e1b7de78764.tar.gz |
Merge remote-tracking branch 'origin/gcc-4_7-branch' into hjl/tsx/gcc-4_7-branchhjl/tsx/gcc-4_7-branch
Conflicts:
gcc/config/i386/driver-i386.c
gcc/config/i386/i386.c
gcc/config/i386/sync.md
Diffstat (limited to 'gcc/testsuite/gcc.target/pr55981.c')
-rw-r--r-- | gcc/testsuite/gcc.target/pr55981.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/pr55981.c b/gcc/testsuite/gcc.target/pr55981.c new file mode 100644 index 00000000000..36498d63cfe --- /dev/null +++ b/gcc/testsuite/gcc.target/pr55981.c @@ -0,0 +1,54 @@ +/* { dg-do compile { target { ! { ia32 } } } } */ +/* { dg-options "-O2" } */ + +volatile int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; + +volatile long long y; + +void +test () +{ + int a_ = a; + int b_ = b; + int c_ = c; + int d_ = d; + int e_ = e; + int f_ = f; + int g_ = g; + int h_ = h; + int i_ = i; + int j_ = j; + int k_ = k; + int l_ = l; + int m_ = m; + int n_ = n; + int o_ = o; + int p_ = p; + + int z; + + for (z = 0; z < 1000; z++) + { + __atomic_store_n (&y, 0x100000002ll, __ATOMIC_SEQ_CST); + __atomic_store_n (&y, 0x300000004ll, __ATOMIC_SEQ_CST); + } + + a = a_; + b = b_; + c = c_; + d = d_; + e = e_; + f = f_; + g = g_; + h = h_; + i = i_; + j = j_; + k = k_; + l = l_; + m = m_; + n = n_; + o = o_; + p = p_; +} + +/* { dg-final { scan-assembler-times "movabs" 2 } } */ |