https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106516
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |linkw at gcc dot gnu.org Last reconfirmed| |2022-08-04 Status|UNCONFIRMED |NEW --- Comment #2 from Kewen Lin <linkw at gcc dot gnu.org> --- Confirmed, this is a test issue, power10 and up specific. The difference comes from the function thud, it aims to test the pattern works for vector type. Power10 starts to support the insn vmodsw for vector integer mod. So it gets: vector(4) int thud (vector(4) int x, vector(4) int y) _1 = x_3(D) % y_4(D); _2 = _1 == { 0, 0, 0, 0 }; instead of <bb 2> [local count: 1073741824]: _7 = BIT_FIELD_REF <x_3(D), 32, 0>; _8 = BIT_FIELD_REF <y_4(D), 32, 0>; _9 = _7 % _8; _10 = BIT_FIELD_REF <x_3(D), 32, 32>; _11 = BIT_FIELD_REF <y_4(D), 32, 32>; _12 = _10 % _11; _13 = BIT_FIELD_REF <x_3(D), 32, 64>; _14 = BIT_FIELD_REF <y_4(D), 32, 64>; _15 = _13 % _14; _16 = BIT_FIELD_REF <x_3(D), 32, 96>; _17 = BIT_FIELD_REF <y_4(D), 32, 96>; _18 = _16 % _17; _1 = {_9, _12, _15, _18}; _2 = _1 == { 0, 0, 0, 0 }; We can adjust the test case to expect 6 times "%" on target power10_ok specially, but I wonder if we also find this fail on some other targets which supports vector mod, if so, one overall complete guard would be better.