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 seems precisely what's expected, given the nature of the patch, which is looking for these opportunities. So it's likely that we should just change /* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ to /* { dg-final { scan-tree-dump-times "pattern recognized" 6 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ and similarly for the unsigned case. The following patch does this. However, I wanted to run this by Venkat since this was apparently not detected when his patch went in. This doesn't appear to be a target-specific issue, and most targets support vect_widen_mult_hi_to_si_pattern, so I'm not sure why this wasn't fixed with the original patch. Will this change break on any other targets for some reason? Tested on powerpc64le-unknown-linux-gnu. Ok for trunk? Thanks, Bill [gcc/testsuite] 2015-12-04 Bill Schmidt <wschm...@linux.vnet.ibm.com> * gcc.dg/vect/vect-widen-mult-const-s16.c: Change number of occurrences of "pattern recognized" to 6. * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise. Index: gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c (revision 231278) +++ gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c (working copy) @@ -56,5 +56,5 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_widen_mult_hi_to_si } } } */ /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ -/* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ +/* { dg-final { scan-tree-dump-times "pattern recognized" 6 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ Index: gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c (revision 231278) +++ gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c (working copy) @@ -73,4 +73,4 @@ int main (void) /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" { target vect_widen_mult_hi_to_si } } } */ /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ -/* { dg-final { scan-tree-dump-times "pattern recognized" 2 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */ +/* { dg-final { scan-tree-dump-times "pattern recognized" 8 "vect" { target vect_widen_mult_hi_to_si_pattern } } } */