| ; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | %prcontext sin 1 | 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 | |
| } |