blob: 9192b391b11dc7858d5f4c508254c08f893f4c46 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-march=rv32gc_zic64b_zicboz" { target { rv32 } } } */
/* { dg-options "-march=rv64gc_zic64b_zicboz" { target { rv64 } } } */
/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */
// 1x cbo.zero, 7x sd (rv64) or 14x sw (rv32), 1x sh, 1x sb
int
clear_buf_123 (void *p)
{
p = __builtin_assume_aligned(p, 64);
__builtin_memset (p, 0, 123);
}
// 2x cbo.zero, 1x addi 64
int
clear_buf_128 (void *p)
{
p = __builtin_assume_aligned(p, 64);
__builtin_memset (p, 0, 128);
}
/* { dg-final { scan-assembler-times "cbo\.zero\t" 3 } } */
/* { dg-final { scan-assembler-times "addi\ta\[0-9\]+,a\[0-9\]+,64" 1 } } */
/* { dg-final { scan-assembler-times "sd\t" 7 { target { rv64 } } } } */
/* { dg-final { scan-assembler-times "sw\t" 14 { target { rv32 } } } } */
/* { dg-final { scan-assembler-times "sh\t" 1 } } */
/* { dg-final { scan-assembler-times "sb\t" 1 } } */