]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/riscv/shorten-memrefs-3.c
1 /* { dg-options "-Os -march=rv32imc -mabi=ilp32" } */
3 /* These loads cannot be compressed because only one compressed reg is
4 available (since args are passed in a0-a4, that leaves a5-a7 available, of
5 which only a5 is a compressed reg). Therefore the shorten_memrefs pass should
6 not attempt to rewrite these loads into a compressible format. It may not
7 be possible to avoid this because shorten_memrefs happens before reg alloc.
10 extern int sub1 (int, int, int, int, int, int, int);
13 load1a (int a0
, int a1
, int a2
, int a3
, int a4
, int *array
)
20 return sub1 (a0
, a1
, a2
, a3
, a4
, 0, a
);
23 extern long long sub2 (long long, long long, long long, long long, long long,
24 long long, long long);
27 load2a (long long a0
, long long a1
, long long a2
, long long a3
, long long a4
,
35 return sub2 (a0
, a1
, a2
, a3
, a4
, 0, a
);
38 /* { dg-final { scan-assembler-not "load1a:\n\taddi" { xfail riscv*-*-* } } } */
39 /* { dg-final { scan-assembler-not "load2a:\n.*addi\[ \t\]*\[at\]\[0-9\],\[at\]\[0-9\],\[0-9\]*" { xfail riscv*-*-* } } } */