https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117722
Bug ID: 117722 Summary: RISC-V: Failed to vectorize x264_pixel_sad_4x4 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: juzhe.zhong at rivai dot ai Target Milestone: --- #include <stdint.h> #include <math.h> /**************************************************************************** * pixel_sad_WxH ****************************************************************************/ #define PIXEL_SAD_C( name, lx, ly ) \ int name( uint8_t *pix1, int i_stride_pix1, \ uint8_t *pix2, int i_stride_pix2 ) \ { \ int i_sum = 0; \ for( int y = 0; y < ly; y++ ) \ { \ for( int x = 0; x < lx; x++ ) \ { \ i_sum += abs( pix1[x] - pix2[x] ); \ } \ pix1 += i_stride_pix1; \ pix2 += i_stride_pix2; \ } \ return i_sum; \ } PIXEL_SAD_C( x264_pixel_sad_4x4, 4, 4 ) The code comes from SPEC INT 2017 X264 RISC-V failed to vectorize it wheras ARM can perfectly vectorize it. https://godbolt.org/z/rKbTGsdjh