27 lines
		
	
	
		
			576 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			576 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llc --mtriple=powerpc64le-linux-gnu < %s | FileCheck %s
 | |
| 
 | |
| ; It tests in function DAGCombiner::visitSIGN_EXTEND_INREG
 | |
| ; signext will not be combined with extload, and causes extra zext.
 | |
| 
 | |
| declare void @g(i32 signext)
 | |
| 
 | |
| define void @foo(i8* %p) {
 | |
| entry:
 | |
|   br label %while.body
 | |
| 
 | |
| while.body:
 | |
|   %0 = load i8, i8* %p, align 1
 | |
|   %conv = zext i8 %0 to i32
 | |
|   %cmp = icmp sgt i8 %0, 0
 | |
|   br i1 %cmp, label %if.then, label %while.body
 | |
| ; CHECK:     lbz
 | |
| ; CHECK:     extsb.
 | |
| ; CHECK-NOT: rlwinm
 | |
| ; CHECK:     ble
 | |
| 
 | |
| if.then:
 | |
|   tail call void @g(i32 signext %conv)
 | |
|   br label %while.body
 | |
| }
 | |
| 
 |