19 lines
		
	
	
		
			665 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			665 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 | |
| ; RUN: opt -instcombine -S %s | FileCheck %s
 | |
| 
 | |
| ; The swifterror value can only be loaded, stored or used as swifterror
 | |
| ; argument. Make sure we do not try to turn the function bitcast into an
 | |
| ; argument bitcast.
 | |
| define swiftcc void @spam(i32** swifterror %arg) {
 | |
| ; CHECK-LABEL: @spam(
 | |
| ; CHECK-NEXT:  bb:
 | |
| ; CHECK-NEXT:    call swiftcc void bitcast (void (i64**)* @widget to void (i32**)*)(i32** swifterror [[ARG:%.*]])
 | |
| ; CHECK-NEXT:    ret void
 | |
| ;
 | |
| bb:
 | |
|   call swiftcc void bitcast (void (i64**)* @widget to void (i32**)*)(i32** swifterror %arg)
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| declare swiftcc void @widget(i64**)
 |