annotate gcc/testsuite/gcc.target/riscv/shorten-memrefs-5.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 /* { dg-options "-Os -march=rv64imc -mabi=lp64" } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3 /* shorten_memrefs should rewrite these load/stores into a compressible
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4 format. */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 void
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7 store1a (int *array, int a)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 array[200] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 array[201] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 array[202] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 array[203] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 void
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 store2a (long long *array, long long a)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 array[200] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 array[201] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20 array[202] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 array[203] = a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 load1r (int *array)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 int a = 0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28 a += array[200];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 a += array[201];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 a += array[202];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
31 a += array[203];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
32 return a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
33 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
34
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
35 long long
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
36 load2r (long long *array)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
37 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
38 int a = 0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
39 a += array[200];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
40 a += array[201];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
41 a += array[202];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
42 a += array[203];
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
43 return a;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
44 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
45
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
46 /* { dg-final { scan-assembler "store1a:\n\taddi" } } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
47 /* The sd insns in store2a are not rewritten because shorten_memrefs currently
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
48 only optimizes lw and sw.
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
49 /* { dg-final { scan-assembler "store2a:\n\taddi" { xfail riscv*-*-* } } } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
50 /* { dg-final { scan-assembler "load1r:\n\taddi" } } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
51 /* The ld insns in load2r are not rewritten because shorten_memrefs currently
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
52 only optimizes lw and sw.
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
53 /* { dg-final { scan-assembler "load2r:\n\taddi" { xfail riscv*-*-* } } } */