blob: d8b0668a820fe72e401aa9be21adbf7cb13f3f9b [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-march=rv64imafc -mabi=lp64f -msave-restore -O2 -fno-schedule-insns -fno-schedule-insns2 -fno-unroll-loops -fno-peel-loops -fno-lto" } */
/* { dg-final { check-function-bodies "**" "" } } */
char my_getchar();
float getf();
/*
** bar:
** call t0,__riscv_save_(3|4)
** addi sp,sp,-[0-9]+
** ...
** li t0,-[0-9]+
** add sp,sp,t0
** ...
** li t0,[0-9]+
** add sp,sp,t0
** ...
** addi sp,sp,[0-9]+
** tail __riscv_restore_(3|4)
*/
int bar()
{
float volatile farray[3568];
float sum = 0;
float f1 = getf();
float f2 = getf();
float f3 = getf();
float f4 = getf();
for (int i = 0; i < 3568; i++)
{
farray[i] = my_getchar() * 1.2;
sum += farray[i];
}
return sum + f1 + f2 + f3 + f4;
}