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