25 lines
		
	
	
		
			748 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			748 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt -basic-aa -hexagon-loop-idiom -mtriple hexagon-unknown-elf < %s
 | |
| ; REQUIRES: asserts
 | |
| 
 | |
| target triple = "hexagon"
 | |
| 
 | |
| ; Function Attrs: nounwind
 | |
| define void @fred(i8 zeroext %L) #0 {
 | |
| entry:
 | |
|   br i1 undef, label %if.end53, label %while.body37
 | |
| 
 | |
| while.body37:                                     ; preds = %while.body37, %entry
 | |
|   %i.121 = phi i32 [ %inc46, %while.body37 ], [ 0, %entry ]
 | |
|   %shl = shl i32 1, %i.121
 | |
|   %and39 = and i32 %shl, undef
 | |
|   %tobool40 = icmp eq i32 %and39, 0
 | |
|   %inc46 = add nuw nsw i32 %i.121, 1
 | |
|   %storemerge = select i1 %tobool40, i8 %L, i8 0
 | |
|   br i1 undef, label %while.body37, label %if.end53
 | |
| 
 | |
| if.end53:                                         ; preds = %while.body37, %entry
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| attributes #0 = { nounwind }
 |