vector-bonus.ll 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. ; RUN: opt < %s -inline -inline-threshold=35 -S | FileCheck %s
  2. define i32 @bar(<4 x i32> %v, i32 %i) #0 {
  3. entry:
  4. %cmp = icmp sgt i32 %i, 4
  5. br i1 %cmp, label %if.then, label %if.else
  6. if.then: ; preds = %entry
  7. %mul1 = mul nsw i32 %i, %i
  8. br label %return
  9. if.else: ; preds = %entry
  10. %add1 = add nsw i32 %i, %i
  11. %add2 = add nsw i32 %i, %i
  12. %add3 = add nsw i32 %i, %i
  13. %add4 = add nsw i32 %i, %i
  14. %add5 = add nsw i32 %i, %i
  15. %add6 = add nsw i32 %i, %i
  16. %vecext = extractelement <4 x i32> %v, i32 0
  17. %vecext7 = extractelement <4 x i32> %v, i32 1
  18. %add7 = add nsw i32 %vecext, %vecext7
  19. br label %return
  20. return: ; preds = %if.else, %if.then
  21. %retval.0 = phi i32 [ %mul1, %if.then ], [ %add7, %if.else ]
  22. ret i32 %retval.0
  23. }
  24. define i32 @foo(<4 x i32> %v, i32 %a) #1 {
  25. ; CHECK-LABEL: @foo(
  26. ; CHECK-NOT: call i32 @bar
  27. ; CHECK: ret
  28. entry:
  29. %call = call i32 @bar(<4 x i32> %v, i32 %a)
  30. ret i32 %call
  31. }