extract-cost.ll 650 B

12345678910111213141516171819202122
  1. ; RUN: opt -simplifycfg -S < %s | FileCheck %s
  2. declare { i32, i1 } @llvm.uadd.with.overflow.i32(i32, i32) #1
  3. define i32 @f(i32 %a, i32 %b) #0 {
  4. entry:
  5. %uadd = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
  6. %cmp = extractvalue { i32, i1 } %uadd, 1
  7. br i1 %cmp, label %return, label %if.end
  8. if.end: ; preds = %entry
  9. %0 = extractvalue { i32, i1 } %uadd, 0
  10. br label %return
  11. return: ; preds = %entry, %if.end
  12. %retval.0 = phi i32 [ %0, %if.end ], [ 0, %entry ]
  13. ret i32 %retval.0
  14. ; CHECK-LABEL: @f(
  15. ; CHECK-NOT: phi
  16. ; CHECK: select
  17. }