25 lines
		
	
	
		
			853 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			853 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc < %s -mtriple=aarch64-linux-eabi -o - | FileCheck %s
 | |
| 
 | |
| %struct.a= type { i64, i64, i64, i64 }
 | |
| 
 | |
| ; DAG combine will try to perform a transformation that  creates a vcvtfp2fxs
 | |
| ; with a v4f64 input. Since v4i64 is not legal we should bail out. We can
 | |
| ; pottentially still create the vcvtfp2fxs node after legalization (but on a
 | |
| ; v2f64).
 | |
| 
 | |
| ; CHECK-LABEL: fun1
 | |
| define void @fun1() local_unnamed_addr {
 | |
| entry:
 | |
|   %mul = fmul <4 x double> zeroinitializer, <double 6.553600e+04, double 6.553600e+04, double 6.553600e+04, double 6.553600e+04>
 | |
|   %toi = fptosi <4 x double> %mul to <4 x i64>
 | |
|   %ptr = getelementptr inbounds %struct.a, %struct.a* undef, i64 0, i32 2
 | |
|   %elem = extractelement <4 x i64> %toi, i32 1
 | |
|   store i64 %elem, i64* %ptr, align 8
 | |
|   call void @llvm.trap()
 | |
|   unreachable
 | |
| }
 | |
| 
 | |
| ; Function Attrs: noreturn nounwind
 | |
| declare void @llvm.trap()
 | |
| 
 |