fast-math.ll 866 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
  2. declare float @llvm.nvvm.sqrt.f(float)
  3. ; CHECK: sqrt_div
  4. ; CHECK: sqrt.rn.f32
  5. ; CHECK: div.rn.f32
  6. define float @sqrt_div(float %a, float %b) {
  7. %t1 = tail call float @llvm.nvvm.sqrt.f(float %a)
  8. %t2 = fdiv float %t1, %b
  9. ret float %t2
  10. }
  11. ; CHECK: sqrt_div_fast
  12. ; CHECK: sqrt.approx.f32
  13. ; CHECK: div.approx.f32
  14. define float @sqrt_div_fast(float %a, float %b) #0 {
  15. %t1 = tail call float @llvm.nvvm.sqrt.f(float %a)
  16. %t2 = fdiv float %t1, %b
  17. ret float %t2
  18. }
  19. ; CHECK: fadd
  20. ; CHECK: add.f32
  21. define float @fadd(float %a, float %b) {
  22. %t1 = fadd float %a, %b
  23. ret float %t1
  24. }
  25. ; CHECK: fadd_ftz
  26. ; CHECK: add.ftz.f32
  27. define float @fadd_ftz(float %a, float %b) #1 {
  28. %t1 = fadd float %a, %b
  29. ret float %t1
  30. }
  31. attributes #0 = { "unsafe-fp-math" = "true" }
  32. attributes #1 = { "nvptx-f32ftz" = "true" }