31 lines
		
	
	
		
			817 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			817 B
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: opt < %s -instcombine -S | FileCheck %s
 | 
						|
 | 
						|
define double @mylog(double %x, double %y) {
 | 
						|
entry:
 | 
						|
  %pow = call double @llvm.pow.f64(double %x, double %y)
 | 
						|
  %call = call double @log(double %pow)
 | 
						|
  ret double %call
 | 
						|
}
 | 
						|
 | 
						|
; CHECK-LABEL: define double @mylog(
 | 
						|
; CHECK:   %pow = call double @llvm.pow.f64(double %x, double %y)
 | 
						|
; CHECK:   %call = call double @log(double %pow)
 | 
						|
; CHECK:   ret double %call
 | 
						|
; CHECK: }
 | 
						|
 | 
						|
define double @test3(double %x) {
 | 
						|
  %call2 = call double @exp2(double %x)
 | 
						|
  %call3 = call double @log(double %call2)
 | 
						|
  ret double %call3
 | 
						|
}
 | 
						|
 | 
						|
; CHECK-LABEL: @test3
 | 
						|
; CHECK:   %call2 = call double @exp2(double %x)
 | 
						|
; CHECK:   %call3 = call double @log(double %call2)
 | 
						|
; CHECK:   ret double %call3
 | 
						|
; CHECK: }
 | 
						|
 | 
						|
declare double @log(double)
 | 
						|
declare double @exp2(double)
 | 
						|
declare double @llvm.pow.f64(double, double)
 |