https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106365
Bug ID: 106365 Summary: Miss to handle ifn .LEN_STORE in FRE Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: linkw at gcc dot gnu.org Target Milestone: --- In regression testing for the patch to add unroll factor suggestion to vectorizer for port rs6000, one failure got exposed on Power10 (with partial vector in length supported). The test case is gcc/testsuite/gcc.dg/tree-ssa/pr84512.c The option can be: -O3 -mcpu=power10 -fno-vect-cost-model The resulted IR in optimized: <bb 2> [local count: 97603129]: MEM <vector(4) int> [(int *)&a] = { 0, 1, 4, 9 }; MEM <vector(4) int> [(int *)&a + 16B] = { 16, 25, 36, 49 }; .LEN_STORE (&MEM <int[10]> [(void *)&a + 32B], 128B, 8, { 64, 0, 0, 0, 81, 0, 0, 0, 100, 0, 0, 0, 121, 0, 0, 0 }, 0); vect__2.10_6 = MEM <vector(4) int> [(int *)&a]; vect__2.10_30 = MEM <vector(4) int> [(int *)&a + 16B]; vect_res_10.11_31 = vect__2.10_6 + vect__2.10_30; _33 = VEC_PERM_EXPR <vect_res_10.11_31, { 0, 0, 0, 0 }, { 2, 3, 4, 5 }>; _34 = vect_res_10.11_31 + _33; _35 = VEC_PERM_EXPR <_34, { 0, 0, 0, 0 }, { 1, 2, 3, 4 }>; _36 = _34 + _35; stmp_res_10.12_37 = BIT_FIELD_REF <_36, 32, 0>; _13 = a[8]; res_3 = _13 + stmp_res_10.12_37; _8 = a[9]; res_23 = res_3 + _8; a ={v} {CLOBBER(eol)}; return res_23; instead of: int foo () { <bb 2> [local count: 97603129]: return 285; }