https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68776
Bug ID: 68776 Summary: [6 regression] gcc.dg/vect/vect-widen-mult-const-[su]16.c failures since r226675 Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: wschmidt at gcc dot gnu.org CC: rguenth at gcc dot gnu.org Target Milestone: --- Host: powerpc*-*-linux* Target: powerpc*-*-linux* Build: powerpc*-*-linux* Created attachment 36946 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36946&action=edit Vectorization dump for r226674 Since r226675, we have been seeing these failures: FAIL: gcc.dg/vect/vect-widen-mult-const-s16.c -flto -ffat-lto-objects scan-tree-dump-times vect "pattern recognized" 2 FAIL: gcc.dg/vect/vect-widen-mult-const-s16.c scan-tree-dump-times vect "pattern recognized" 2 FAIL: gcc.dg/vect/vect-widen-mult-const-u16.c -flto -ffat-lto-objects scan-tree-dump-times vect "pattern recognized" 2 FAIL: gcc.dg/vect/vect-widen-mult-const-u16.c scan-tree-dump-times vect "pattern recognized" 2 Comparing the vect-details dumps from r226674 to r226675, I see these as the reason: 63a64,66 > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:16:3: > note: vect_recog_mult_pattern: detected: > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:16:3: > note: patt_47 = _6 << 2; > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:16:3: > note: pattern recognized: patt_47 = _6 << 2; 70a74,76 > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:16:3: > note: vect_recog_mult_pattern: detected: > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:16:3: > note: patt_40 = _6 << 1; > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:16:3: > note: pattern recognized: patt_40 = _6 << 1; 747a754,756 > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:31:3: > note: vect_recog_mult_pattern: detected: > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:31:3: > note: patt_47 = _6 << 2; > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:31:3: > note: pattern recognized: patt_47 = _6 << 2; 754a764,766 > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:31:3: > note: vect_recog_mult_pattern: detected: > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:31:3: > note: patt_40 = _6 << 1; > /home/wschmidt/gcc/gcc-mainline-base/gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c:31:3: > note: pattern recognized: patt_40 = _6 << 1; These do not show up for x86_64, so the DejaGnu patterns: /* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ have different results for these different targets, even though both support vect_widen_mult_hi_to_si_pattern. Detailed vectorization dumps from powerpc64le-unknown-linux-gnu before and after this revision are attached.