Bug 25529

Summary: (unsigned * 2)/2 is not changed into unsigned &0x7FFFFFFF
Product: gcc Reporter: Andrew Pinski <pinskia>
Component: middle-endAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: enhancement CC: gcc-bugs, jeffreyalaw
Priority: P3 Keywords: missed-optimization, TREE
Version: 4.2.0   
Target Milestone: ---   
Host: Target:
Build: Known to work:
Known to fail: Last reconfirmed: 2006-08-21 06:08:51
Bug Depends on:    
Bug Blocks: 19986    

Description Andrew Pinski 2005-12-22 06:26:36 UTC
Testcase:
int f1(unsigned t)
{
  return (t*2)/2;
}


This is done in combine on the RTL level.
Comment 1 Andrew Pinski 2007-07-01 00:34:23 UTC
Related to PR 25530.
Comment 2 naveenh 2015-07-24 04:48:20 UTC
Author: naveenh
Date: Fri Jul 24 04:47:48 2015
New Revision: 226136

URL: https://gcc.gnu.org/viewcvs?rev=226136&root=gcc&view=rev
Log:
PR middle-end/25529
2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

gcc/testsuite/ChangeLog:
	* gcc.dg/pr25529.c: New test.

gcc/ChangeLog:
	* match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.


Added:
    trunk/gcc/testsuite/gcc.dg/pr25529.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/match.pd
    trunk/gcc/testsuite/ChangeLog
Comment 3 naveenh 2015-08-13 04:37:55 UTC
Author: naveenh
Date: Thu Aug 13 04:37:22 2015
New Revision: 226847

URL: https://gcc.gnu.org/viewcvs?rev=226847&root=gcc&view=rev
Log:
2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/25529
	* match.pd (div (mult @0 @1) @1) : New simplifier.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/match.pd
Comment 4 Jeffrey A. Law 2017-12-11 16:39:38 UTC
Fixed.  Presumably by Naveen's patch.