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 9 define double @fabs(double %f) { 10 entry: 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-LABEL: define double @foo( 18 ; CHECK-NOT: call 19 ; CHECK: } 20 define double @foo(double %f) { 21 %t= call double @foo(double %f) 22 ret double %t 23 } 24 25 ; CHECK-LABEL: define float @fabsf( 26 ; CHECK-NOT: call 27 ; CHECK: } 28 define float @fabsf(float %f) { 29 %t= call float @fabsf(float 2.0) 30 ret float %t 31 } 32 33 declare x86_fp80 @fabsl(x86_fp80 %f) 34