forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			26 lines
		
	
	
		
			961 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			961 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: opt -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -S %s | FileCheck %s
 | 
						|
 | 
						|
; Avoid crashing while trying to vectorize fcmp that can be folded to vector of
 | 
						|
; i1 true.
 | 
						|
define void @test1() {
 | 
						|
; CHECK-LABEL: test1(
 | 
						|
; CHECK-LABEL: vector.body:
 | 
						|
; CHECK-NEXT:    %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
 | 
						|
; CHECK-NEXT:    %broadcast.splatinsert = insertelement <4 x i32> undef, i32 %index, i32 0
 | 
						|
; CHECK:         %induction = add <4 x i32> %broadcast.splat, <i32 0, i32 1, i32 2, i32 3>
 | 
						|
; CHECK:         %index.next = add i32 %index, 4
 | 
						|
 | 
						|
entry:
 | 
						|
  br label %loop
 | 
						|
 | 
						|
loop:                                              ; preds = %loop, %entry
 | 
						|
  %iv = phi i32 [ 0, %entry ], [ %ivnext, %loop ]
 | 
						|
  %fcmp = fcmp uno float 0.000000e+00, 0.000000e+00
 | 
						|
  %ivnext = add nsw i32 %iv, 1
 | 
						|
  %cnd = icmp sgt i32 %iv, 142
 | 
						|
  br i1 %cnd, label %exit, label %loop
 | 
						|
 | 
						|
exit:                                              ; preds = %loop
 | 
						|
  ret void
 | 
						|
}
 |