brintos

brintos / llvm-project-archived public Read only

0
0
Text · 818 B · 3aa09ca Raw
27 lines · plain
1; REQUIRES: asserts2; Duplicate the return into if.end to enable TCE.3; RUN: opt -passes=tailcallelim -verify-dom-info -stats -disable-output < %s 2>&1 | FileCheck %s4 5; CHECK: Number of return duplicated6 7define i32 @fib(i32 %n) nounwind ssp {8entry:9  %cmp = icmp slt i32 %n, 210  br i1 %cmp, label %if.then, label %if.end11 12if.then:                                          ; preds = %entry13  br label %return14 15if.end:                                           ; preds = %entry16  %sub = add nsw i32 %n, -217  %call = call i32 @fib(i32 %sub)18  %sub3 = add nsw i32 %n, -119  %call4 = call i32 @fib(i32 %sub3)20  %add = add nsw i32 %call, %call421  br label %return22 23return:                                           ; preds = %if.end, %if.then24  %retval.0 = phi i32 [ 1, %if.then ], [ %add, %if.end ]25  ret i32 %retval.026}27