1 /* { dg-options "-march=rv32imc -mabi=ilp32" } */
2 /* { dg-skip-if "" { *-*-* } { "*" } { "-Os" } } */
3
4 /* shorten_memrefs should use a correct base address*/
5
6 void
7 store (char *p, int k)
8 {
9 *(int *)(p + 17) = k;
10 *(int *)(p + 21) = k;
11 *(int *)(p + 25) = k;
12 *(int *)(p + 29) = k;
13 }
14
15 int
16 load (char *p)
17 {
18 int a = 0;
19 a += *(int *)(p + 17);
20 a += *(int *)(p + 21);
21 a += *(int *)(p + 25);
22 a += *(int *)(p + 29);
23 return a;
24 }
25
26 /* { dg-final { scan-assembler "store:\n(\t?\\.\[^\n\]*\n)*\taddi\ta\[0-7\],a\[0-7\],1" } } */
27 /* { dg-final { scan-assembler "load:\n(\t?\\.\[^\n\]*\n)*\taddi\ta\[0-7\],a\[0-7\],1" } } */
28