summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
blob: b271e2bf416b152f60842d4d9f2ea583abd68b0e (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* { dg-options "-O2 -mabi=64 -mr10k-cache-barrier=store" } */

/* Test that stores to uncached addresses do not get unnecessary
   cache barriers.  */

#define TEST(ADDR)					\
  NOMIPS16 void						\
  test_##ADDR (int n)					\
  {							\
    while (n--)						\
      {							\
	*(volatile char *) (0x##ADDR##UL) = 1;		\
	*(volatile short *) (0x##ADDR##UL + 2) = 2;	\
	*(volatile int *) (0x##ADDR##UL + 4) = 0;	\
      }							\
  }

TEST (9000000000000000)
TEST (900000fffffffff8)

TEST (9200000000000000)
TEST (920000fffffffff8)

TEST (9400000000000000)
TEST (940000fffffffff8)

TEST (9600000000000000)
TEST (960000fffffffff8)

TEST (b800000000000000)
TEST (b80000fffffffff8)

TEST (ba00000000000000)
TEST (ba0000fffffffff8)

TEST (bc00000000000000)
TEST (bc0000fffffffff8)

TEST (be00000000000000)
TEST (be0000fffffffff8)

TEST (ffffffffa0000000)
TEST (ffffffffbffffff8)

/* { dg-final { scan-assembler-not "\tcache\t" } } */