aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/LICM/call_sink_const_function.ll
blob: 92e9244be6b1202672f6d628a72004339c922ed0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 sin | grep Out: 
declare double %sin(double)
declare void %foo()

double %test(double %X) {
	br label %Loop

Loop:
	call void %foo()    ;; Unknown effects!

	%A = call double %sin(double %X)   ;; Can still hoist/sink call
	br bool true, label %Loop, label %Out

Out:
	ret double %A
}