blob: ec39104fd885022f38c9cc132346708ed9a3bfcc [file] [log] [blame]
/* { dg-options "-march=rv32imc -mabi=ilp32" } */
/* { dg-skip-if "" { *-*-* } { "*" } { "-Os" } } */
/* shorten_memrefs should rewrite these load/stores into a compressible
format. */
void
store1a (int *array, int a)
{
array[200] = a;
array[201] = a;
array[202] = a;
array[203] = a;
}
void
store2a (long long *array, long long a)
{
array[200] = a;
array[201] = a;
array[202] = a;
array[203] = a;
}
int
load1r (int *array)
{
int a = 0;
a += array[200];
a += array[201];
a += array[202];
a += array[203];
return a;
}
long long
load2r (long long *array)
{
int a = 0;
a += array[200];
a += array[201];
a += array[202];
a += array[203];
return a;
}
/* { dg-final { scan-assembler "store1a:\n\taddi" } } */
/* The sd insns in store2a are not rewritten because shorten_memrefs currently
only optimizes lw and sw.
/* { dg-final { scan-assembler "store2a:\n\taddi" { xfail riscv*-*-* } } } */
/* { dg-final { scan-assembler "load1r:\n\taddi" } } */
/* { dg-final { scan-assembler "load2r:\n\taddi" } } */