/* { 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 } } */