aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-05-23 11:41:50 +0200
committerRichard Biener <rguenther@suse.de>2022-05-24 08:20:11 +0200
commitd918faea1217596877a35c4946500399731fbbd3 (patch)
treef098124df1f68ecd2095ffa6fbc81ba6e696fb59 /gcc
parent8fa8bca9f53fcfdedc2b4fa55093dbd1ab7abbd1 (diff)
downloadgcc-d918faea1217596877a35c4946500399731fbbd3.zip
gcc-d918faea1217596877a35c4946500399731fbbd3.tar.gz
gcc-d918faea1217596877a35c4946500399731fbbd3.tar.bz2
tree-optimization/105629 - spaceship recognition regression
With the extra GENERIC folding we now do to (unsigned int) __v._M_value & 1 != (unsigned int) __v._M_value we end up with a sign-extending conversion to unsigned int rather than the sign-conversion to unsigned char we expect. Relaxing that fixes the regression. 2022-05-23 Richard Biener <rguenther@suse.de> PR tree-optimization/105629 * tree-ssa-phiopt.cc (spaceship_replacement): Allow a sign-extending conversion.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tree-ssa-phiopt.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc
index 8c9c46d..e61d973 100644
--- a/gcc/tree-ssa-phiopt.cc
+++ b/gcc/tree-ssa-phiopt.cc
@@ -2217,7 +2217,7 @@ spaceship_replacement (basic_block cond_bb, basic_block middle_bb,
if (!TYPE_UNSIGNED (ty2) || !INTEGRAL_TYPE_P (ty2))
return false;
- if (TYPE_PRECISION (ty1) != TYPE_PRECISION (ty2))
+ if (TYPE_PRECISION (ty1) > TYPE_PRECISION (ty2))
return false;
if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (orig_use_lhs))
return false;