https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119224
Bug ID: 119224 Summary: RISC-V: sad 16x16 spilling since r15-6673-gb755c151fde4ad Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: vineetg at gcc dot gnu.org CC: jeffreyalaw at gmail dot com, rdapp at gcc dot gnu.org Target Milestone: --- -O3 -ffast-math -march=rv64gcv_zvl256b -mtune=generic-ooo -mrvv-vector-bits=zvl static int abs(int i) { return (i < 0 ? -i : i); } int x264_pixel_sad_16x16(uint8_t *pix1, int i_stride_pix1, uint8_t *pix2, int i_stride_pix2 ) { int i_sum = 0; for( int y = 0; y < 16; y++ ) { for( int x = 0; x < 16; x++ ) { i_sum += abs( pix1[x] - pix2[x] ); } pix1 += i_stride_pix1; pix2 += i_stride_pix2; } return i_sum; } grep "sp," x264_pixel_sad_16x16.s x264_pixel_sad_16x16.s: addi sp,sp,-48 x264_pixel_sad_16x16.s: addi a0,sp,16 x264_pixel_sad_16x16.s: addi a0,sp,24 x264_pixel_sad_16x16.s: addi a0,sp,32 x264_pixel_sad_16x16.s: addi a6,sp,8 x264_pixel_sad_16x16.s: addi t6,sp,40 x264_pixel_sad_16x16.s: addi a4,sp,16 x264_pixel_sad_16x16.s: addi a4,sp,24 x264_pixel_sad_16x16.s: addi a4,sp,32 x264_pixel_sad_16x16.s: addi a4,sp,8 x264_pixel_sad_16x16.s: addi sp,sp,48 Note that -mtune=generic-ooo is key to reproducing, with fully unrolled loop. For default tune rocket, it generates a loop.