https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115304
--- Comment #13 from rguenther at suse dot de <rguenther at suse dot de> --- On Thu, 20 Jun 2024, pinskia at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115304 > > Andrew Pinski <pinskia at gcc dot gnu.org> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |pinskia at gcc dot gnu.org > > --- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> --- > Note when I am adding V4QI support to the aarch64 backend (emulating it via > V8QI), I am getting a failure in slp-gap-1.c but it is different from the > others. > > Without V4QI, the pattern matched `\{_\[0-9\]\+, 0` was able to match 6 times. > > we got in the IR: > ``` > unsigned int _50; > vector(2) unsigned int _49; > ... > _50 = MEM <unsigned int> [(uint8_t *)vectp_pix1.5_58]; > _49 = {_50, 0}; > ``` > > > But afterwards we now get: > ``` > vector(4) unsigned char _50; > vector(8) unsigned char vect__34.9; > ... > _50 = MEM <vector(4) unsigned char> [(uint8_t *)vectp_pix1.5_58]; > vect__34.9_49 = {_50, { 0, 0, 0, 0 }}; > ``` > > Which produces the exact same code. I am trying to figure out the best way to > change the testcase pattern to make sure we don't match: > vect__37.23_6 = VEC_PERM_EXPR <vect__37.15_30, vect__37.19_13, { 0, 1, 2, 3, > 8, 9, 10, 11 }>; > > too. > > `\{_\[0-9\]\+, { 0, 0` I think that will work but should I just do an > alternative for the scan-tree-dump-times or should I put it as a seperate one > with some target selection here? Maybe match \{_\[0-9\]\+, (0\|{ 0(, 0)+ })? (with proper quoting)