1; RUN: opt < %s -tailcallelim -S | FileCheck %s 2 3; Don't turn this into an infinite loop, this is probably the implementation 4; of fabs and we expect the codegen to lower fabs. 5; CHECK: @fabs(double %f) 6; CHECK: call 7; CHECK: ret 8 9define double @fabs(double %f) { 10entry: 11 %tmp2 = call double @fabs( double %f ) ; <double> [#uses=1] 12 ret double %tmp2 13} 14 15; Do turn other calls into infinite loops though. 16 17; CHECK: define double @foo 18; CHECK-NOT: call 19; CHECK: } 20define double @foo(double %f) { 21 %t= call double @foo(double %f) 22 ret double %t 23} 24 25; CHECK: define float @fabsf 26; CHECK-NOT: call 27; CHECK: } 28define float @fabsf(float %f) { 29 %t= call float @fabsf(float 2.0) 30 ret float %t 31} 32 33declare x86_fp80 @fabsl(x86_fp80 %f) 34