summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/ia64/asm-1.c
blob: 0acfee5899818637eb3deab152689505cdbcb04d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* { dg-do run } */
/* { dg-options } */

extern void abort (void);

/* Test that "=S" properly avoids the post-increment on the memory address.  */

static void foo(int *x)
{
  long i;
  for (i = 0; i < 100; ++i)
    __asm__("st4 %0 = r0" : "=S"(x[i]));
}

int main()
{
  int array[100];
  long i;

  for (i = 0; i < 100; ++i)
    array[i] = -1;

  foo(array);

  for (i = 0; i < 100; ++i)
    if (array[i])
      abort ();
  return 0;
}