mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			re PR tree-optimization/53979 (((a ^ b) | a) not optimized to (a | b))
2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR tree-optimization/53979 * match.pd ((a ^ b) | a -> a | b): New pattern. testsuite/ * gcc.dg/pr53979-1.c: New test-case. * gcc.dg/pr53979-2.c: Likewise. From-SVN: r241360
This commit is contained in:
		
							parent
							
								
									d480863abb
								
							
						
					
					
						commit
						2066ef6ac8
					
				|  | @ -1,3 +1,8 @@ | ||||||
|  | 2016-10-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org> | ||||||
|  | 
 | ||||||
|  | 	PR tree-optimization/53979 | ||||||
|  | 	* match.pd ((a ^ b) | a -> a | b): New pattern. | ||||||
|  | 
 | ||||||
| 2016-10-19  John David Anglin  <danglin@gcc.gnu.org> | 2016-10-19  John David Anglin  <danglin@gcc.gnu.org> | ||||||
| 
 | 
 | ||||||
| 	* config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to | 	* config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to | ||||||
|  |  | ||||||
|  | @ -541,6 +541,12 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) | ||||||
|  (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0) INTEGER_CST@1)) |  (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0) INTEGER_CST@1)) | ||||||
|  (if (wi::bit_not (@2) == @1) |  (if (wi::bit_not (@2) == @1) | ||||||
|   (bit_xor @0 @1))) |   (bit_xor @0 @1))) | ||||||
|  | 
 | ||||||
|  | /* PR53979: Transform ((a ^ b) | a) -> (a | b) */ | ||||||
|  | (simplify | ||||||
|  |   (bit_ior:c (bit_xor:c @0 @1) @0) | ||||||
|  |   (bit_ior @0 @1)) | ||||||
|  | 
 | ||||||
| /* Simplify (~X & Y) to X ^ Y if we know that (X & ~Y) is 0.  */ | /* Simplify (~X & Y) to X ^ Y if we know that (X & ~Y) is 0.  */ | ||||||
| #if GIMPLE | #if GIMPLE | ||||||
| (simplify | (simplify | ||||||
|  |  | ||||||
|  | @ -1,3 +1,9 @@ | ||||||
|  | 2016-10-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org> | ||||||
|  | 
 | ||||||
|  | 	PR tree-optimization/53979 | ||||||
|  | 	* gcc.dg/pr53979-1.c: New test-case. | ||||||
|  | 	* gcc.dg/pr53979-2.c: Likewise. | ||||||
|  | 
 | ||||||
| 2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de> | 2016-10-19  Bernd Edlinger  <bernd.edlinger@hotmail.de> | ||||||
| 
 | 
 | ||||||
| 	* c-c++-common/Wint-in-bool-context-2.c: New test. | 	* c-c++-common/Wint-in-bool-context-2.c: New test. | ||||||
|  |  | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | /* { dg-do compile } */ | ||||||
|  | /* { dg-options "-fdump-tree-gimple" } */ | ||||||
|  | 
 | ||||||
|  | unsigned f1(unsigned a, unsigned b) | ||||||
|  | { | ||||||
|  |   return (a ^ b) | a;  | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* { dg-final { scan-tree-dump "a | b" "gimple" } } */ | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | /* { dg-do compile } */ | ||||||
|  | /* { dg-options "-O2 -fdump-tree-forwprop-details" } */ | ||||||
|  | 
 | ||||||
|  | unsigned f(unsigned a, unsigned b) | ||||||
|  | { | ||||||
|  |   unsigned t1 = a ^ b; | ||||||
|  |   unsigned t2 = t1 | a; | ||||||
|  |   return t2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* { dg-final { scan-tree-dump "gimple_simplified to t2_\[0-9\] = a_\[0-9\]*\\(D\\) | b_\[0-9\]*\\(D\\)" "forwprop1" } } */ | ||||||
		Loading…
	
		Reference in New Issue
	
	 Prathamesh Kulkarni
						Prathamesh Kulkarni