https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116431
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- $ gcc -c -fstack-protector-strong -fdiagnostics-plain-output --param min-vect-loop-bound=1 --param max-unrolled-insns=200 --param max-unroll-times=8 --param max-completely-peeled-insns=200 --param max-completely-peel-times=16 -march=z15 -mzarch -ftree-vectorize -fno-tree-loop-distribute-patterns -fno-vect-cost-model -fno-common -O2 -fdump-tree-vect-details -O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 -fdump-tree-optimized -march=z13 -mzarch pr109011-1.c produces ``` vect_patt_22.8_41 = .POPCOUNT (vect__4.7_40); _122 = (unsigned long) vectp_p.9_42; _121 = _122 + 464; _182 = (vector(2) long long int *) _121; __builtin_prefetch (_182, 1, 3); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42] = vect_patt_22.8_41; vect__4.7_3 = MEM <vector(2) long long int> [(long long int *)_162 + 16B]; vect_patt_22.8_4 = .POPCOUNT (vect__4.7_3); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 16B] = vect_patt_22.8_4; vect__4.7_24 = MEM <vector(2) long long int> [(long long int *)_162 + 32B]; vect_patt_22.8_14 = .POPCOUNT (vect__4.7_24); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 32B] = vect_patt_22.8_14; vect__4.7_55 = MEM <vector(2) long long int> [(long long int *)_162 + 48B]; vect_patt_22.8_56 = .POPCOUNT (vect__4.7_55); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 48B] = vect_patt_22.8_56; vect__4.7_65 = MEM <vector(2) long long int> [(long long int *)_162 + 64B]; vect_patt_22.8_66 = .POPCOUNT (vect__4.7_65); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 64B] = vect_patt_22.8_66; vect__4.7_75 = MEM <vector(2) long long int> [(long long int *)_162 + 80B]; vect_patt_22.8_76 = .POPCOUNT (vect__4.7_75); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 80B] = vect_patt_22.8_76; vect__4.7_85 = MEM <vector(2) long long int> [(long long int *)_162 + 96B]; vect_patt_22.8_86 = .POPCOUNT (vect__4.7_85); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 96B] = vect_patt_22.8_86; vect__4.7_95 = MEM <vector(2) long long int> [(long long int *)_162 + 112B]; vect_patt_22.8_96 = .POPCOUNT (vect__4.7_95); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 112B] = vect_patt_22.8_96; vect__4.7_105 = MEM <vector(2) long long int> [(long long int *)_162 + 128B]; vect_patt_22.8_106 = .POPCOUNT (vect__4.7_105); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 128B] = vect_patt_22.8_106; vect__4.7_115 = MEM <vector(2) long long int> [(long long int *)_162 + 144B]; vect_patt_22.8_116 = .POPCOUNT (vect__4.7_115); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 144B] = vect_patt_22.8_116; vect__4.7_125 = MEM <vector(2) long long int> [(long long int *)_162 + 160B]; vect_patt_22.8_126 = .POPCOUNT (vect__4.7_125); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 160B] = vect_patt_22.8_126; vect__4.7_135 = MEM <vector(2) long long int> [(long long int *)_162 + 176B]; vect_patt_22.8_136 = .POPCOUNT (vect__4.7_135); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 176B] = vect_patt_22.8_136; vect__4.7_145 = MEM <vector(2) long long int> [(long long int *)_162 + 192B]; vect_patt_22.8_146 = .POPCOUNT (vect__4.7_145); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 192B] = vect_patt_22.8_146; vect__4.7_155 = MEM <vector(2) long long int> [(long long int *)_162 + 208B]; vect_patt_22.8_156 = .POPCOUNT (vect__4.7_155); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 208B] = vect_patt_22.8_156; vect__4.7_165 = MEM <vector(2) long long int> [(long long int *)_162 + 224B]; vect_patt_22.8_166 = .POPCOUNT (vect__4.7_165); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 224B] = vect_patt_22.8_166; vect__4.7_175 = MEM <vector(2) long long int> [(long long int *)_162 + 240B]; vect_patt_22.8_176 = .POPCOUNT (vect__4.7_175); MEM <vector(2) long long int> [(long long int *)vectp_p.9_42 + 240B] = vect_patt_22.8_176; ``` so the pattern is there too many times: gcc.dg/vect/pr109011-1.c: pattern found 16 times