You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			36 lines
		
	
	
		
			805 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			805 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
|   | ; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-atomic-cfg-tidy=0 | FileCheck %s
 | ||
|  | 
 | ||
|  | ;CHECK-LABEL: foo:
 | ||
|  | ;CHECK: movs r0, #0
 | ||
|  | ;CHECK-NEXT: bx lr
 | ||
|  | 
 | ||
|  | ; Note: This test case originally checked, per r167963, for:
 | ||
|  | ;       adds
 | ||
|  | ;       adc
 | ||
|  | ;       bx
 | ||
|  | ; But SDAG now, like InstCombine, can fold everything away.
 | ||
|  | ;rdar://12028498
 | ||
|  | 
 | ||
|  | define i32 @foo() nounwind ssp { | ||
|  | entry: | ||
|  |   %tmp2 = zext i32 3 to i64 | ||
|  |   br  label %bug_block | ||
|  | 
 | ||
|  | bug_block: | ||
|  |   %tmp410 = and i64 1031, 1647010 | ||
|  |   %tmp411 = and i64 %tmp2, -211 | ||
|  |   %tmp412 = shl i64 %tmp410, %tmp2 | ||
|  |   %tmp413 = shl i64 %tmp411, %tmp2 | ||
|  |   %tmp415 = and i64 %tmp413, 1 | ||
|  |   %tmp420 = xor i64 0, %tmp415 | ||
|  |   %tmp421 = and i64 %tmp412, %tmp415 | ||
|  |   %tmp422 = shl i64 %tmp421, 1 | ||
|  |   br  label %finish | ||
|  | 
 | ||
|  | finish: | ||
|  |   %tmp423 = lshr i64 %tmp422, 32 | ||
|  |   %tmp424 = trunc i64 %tmp423 to i32 | ||
|  |   ret i32 %tmp424 | ||
|  | } | ||
|  | 
 |