aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2021-05-22 19:49:50 +0000
committerAndrew Pinski <apinski@marvell.com>2021-05-26 00:46:31 +0000
commit1fd76b24306ed4df4cf9e797d900699ed59ce7f7 (patch)
tree21638bbbf36429bc99662ceafab24dc0cda85ae0 /gcc/gimplify.c
parentb6bdd7a4cb41ee057f2d064fffcb00f23ce6b497 (diff)
downloadgcc-1fd76b24306ed4df4cf9e797d900699ed59ce7f7.zip
gcc-1fd76b24306ed4df4cf9e797d900699ed59ce7f7.tar.gz
gcc-1fd76b24306ed4df4cf9e797d900699ed59ce7f7.tar.bz2
Optimize x < 0 ? ~y : y to (x >> 31) ^ y in match.pd
This copies the optimization that is done in phiopt for "x < 0 ? ~y : y to (x >> 31) ^ y" into match.pd. The code for phiopt is kept around until phiopt uses match.pd (which I am working towards). Note the original testcase is now optimized early on and I added a new testcase to optimize during phiopt. OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions. Thanks, Andrew Pinski Differences from v1: V2: Add check for integeral type to make sure vector types are not done. gcc: * match.pd (x < 0 ? ~y : y): New patterns. gcc/testsuite: * gcc.dg/tree-ssa/pr96928.c: Update test for slightly different IR. * gcc.dg/tree-ssa/pr96928-1.c: New testcase.
Diffstat (limited to 'gcc/gimplify.c')
0 files changed, 0 insertions, 0 deletions