forked from OSchip/llvm-project
				
			Fix patterns for unaligned 32-bit load. DSLL32 or DSRL32 should be emitted
when shift amount is larger than 32. llvm-svn: 143990
This commit is contained in:
		
							parent
							
								
									770f0646db
								
							
						
					
					
						commit
						cf7e5b0976
					
				| 
						 | 
				
			
			@ -155,9 +155,9 @@ def : Pat<(i64 immZExt16:$in),
 | 
			
		|||
          (ORi64 ZERO_64, imm:$in)>;
 | 
			
		||||
 | 
			
		||||
// zextloadi32_u
 | 
			
		||||
def : Pat<(zextloadi32_u addr:$a), (DSRL (DSLL (ULW64_P8 addr:$a), 32), 32)>,
 | 
			
		||||
def : Pat<(zextloadi32_u addr:$a), (DSRL32 (DSLL32 (ULW64_P8 addr:$a), 0), 0)>,
 | 
			
		||||
      Requires<[IsN64]>;
 | 
			
		||||
def : Pat<(zextloadi32_u addr:$a), (DSRL (DSLL (ULW64 addr:$a), 32), 32)>,
 | 
			
		||||
def : Pat<(zextloadi32_u addr:$a), (DSRL32 (DSLL32 (ULW64 addr:$a), 0), 0)>,
 | 
			
		||||
      Requires<[NotN64]>;
 | 
			
		||||
 | 
			
		||||
// hi/lo relocs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue