switch.ll 859 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. ; RUN: opt < %s -inline -inline-threshold=20 -S | FileCheck %s
  2. define i32 @callee(i32 %a) {
  3. switch i32 %a, label %sw.default [
  4. i32 0, label %sw.bb0
  5. i32 1, label %sw.bb1
  6. i32 2, label %sw.bb2
  7. i32 3, label %sw.bb3
  8. i32 4, label %sw.bb4
  9. i32 5, label %sw.bb5
  10. i32 6, label %sw.bb6
  11. i32 7, label %sw.bb7
  12. i32 8, label %sw.bb8
  13. i32 9, label %sw.bb9
  14. ]
  15. sw.default:
  16. br label %return
  17. sw.bb0:
  18. br label %return
  19. sw.bb1:
  20. br label %return
  21. sw.bb2:
  22. br label %return
  23. sw.bb3:
  24. br label %return
  25. sw.bb4:
  26. br label %return
  27. sw.bb5:
  28. br label %return
  29. sw.bb6:
  30. br label %return
  31. sw.bb7:
  32. br label %return
  33. sw.bb8:
  34. br label %return
  35. sw.bb9:
  36. br label %return
  37. return:
  38. ret i32 42
  39. }
  40. define i32 @caller(i32 %a) {
  41. ; CHECK-LABEL: @caller(
  42. ; CHECK: call i32 @callee(
  43. %result = call i32 @callee(i32 %a)
  44. ret i32 %result
  45. }