llvm-project/llvm/test/Transforms/LICM/call_sink_pure_function.ll

15 lines
316 B
LLVM

; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -licm | llvm-dis | %prcontext strlen 1 | grep Out:
declare int %strlen(sbyte*)
declare void %foo()
int %test(sbyte* %P) {
br label %Loop
Loop:
%A = call int %strlen(sbyte* %P) ;; Can hoist/sink call
br bool false, label %Loop, label %Out
Out:
ret int %A
}