brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 7a235b1 Raw
76 lines · plain
1; RUN: llc < %s -mtriple=nvptx64 | FileCheck %s --check-prefixes CHECK,CHECK-APPROX-OPT,CHECK-SQRT-NOOPT2; RUN: llc < %s -mtriple=nvptx64 -nvptx-prec-sqrtf32=0 | FileCheck %s --check-prefixes CHECK,CHECK-APPROX-OPT,CHECK-SQRT-OPT3; RUN: llc < %s -mtriple=nvptx64 -nvptx-rsqrt-approx-opt=0 | FileCheck %s --check-prefixes CHECK,CHECK-APPROX-NOOPT,CHECK-SQRT-NOOPT4;5; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 | %ptxas-verify %}6; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -nvptx-prec-sqrtf32=0 | %ptxas-verify %}7; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -nvptx-rsqrt-approx-opt=0 | %ptxas-verify %}8 9 10; CHECK-LABEL: .func{{.*}}test111define float @test1(float %in) local_unnamed_addr {12; CHECK-APPROX-OPT: rsqrt.approx.f3213; CHECK-APPROX-NOOPT: sqrt.approx.f3214; CHECK-APPROX-NOOPT-NEXT: rcp.rn.f3215  %sqrt = tail call float @llvm.nvvm.sqrt.approx.f(float %in)16  %rsqrt = fdiv float 1.0, %sqrt17  ret float %rsqrt18}19; CHECK-LABEL: .func{{.*}}test220define float @test2(float %in) local_unnamed_addr {21; CHECK-APPROX-OPT: rsqrt.approx.ftz.f3222; CHECK-APPROX-NOOPT: sqrt.approx.ftz.f3223; CHECK-APPROX-NOOPT-NEXT: rcp.rn.f3224  %sqrt = tail call float @llvm.nvvm.sqrt.approx.ftz.f(float %in)25  %rsqrt = fdiv float 1.0, %sqrt26  ret float %rsqrt27}28 29; CHECK-LABEL: .func{{.*}}test330define float @test3(float %in) local_unnamed_addr {31; CHECK-SQRT-OPT: rsqrt.approx.f3232; CHECK-SQRT-NOOPT: sqrt.rn.f3233; CHECK-SQRT-NOOPT-NEXT: rcp.rn.f3234  %sqrt = tail call float @llvm.nvvm.sqrt.f(float %in)35  %rsqrt = fdiv float 1.0, %sqrt36  ret float %rsqrt37}38 39; CHECK-LABEL: .func{{.*}}test440define float @test4(float %in) local_unnamed_addr #0 {41; CHECK-SQRT-OPT: rsqrt.approx.ftz.f3242; CHECK-SQRT-NOOPT: sqrt.rn.ftz.f3243; CHECK-SQRT-NOOPT-NEXT: rcp.rn.ftz.f3244  %sqrt = tail call float @llvm.nvvm.sqrt.f(float %in)45  %rsqrt = fdiv float 1.0, %sqrt46  ret float %rsqrt47}48 49; CHECK-LABEL: .func{{.*}}test550define float @test5(float %in) local_unnamed_addr {51; CHECK-SQRT-OPT: rsqrt.approx.f3252; CHECK-SQRT-NOOPT: sqrt.rn.f3253; CHECK-SQRT-NOOPT-NEXT: rcp.rn.f3254  %sqrt = tail call float @llvm.sqrt.f32(float %in)55  %rsqrt = fdiv float 1.0, %sqrt56  ret float %rsqrt57}58 59; CHECK-LABEL: .func{{.*}}test660define float @test6(float %in) local_unnamed_addr #0 {61; CHECK-SQRT-OPT: rsqrt.approx.ftz.f3262; CHECK-SQRT-NOOPT: sqrt.rn.ftz.f3263; CHECK-SQRT-NOOPT-NEXT: rcp.rn.ftz.f3264  %sqrt = tail call float @llvm.sqrt.f32(float %in)65  %rsqrt = fdiv float 1.0, %sqrt66  ret float %rsqrt67}68 69 70declare float @llvm.nvvm.sqrt.f(float)71declare float @llvm.nvvm.sqrt.approx.f(float)72declare float @llvm.nvvm.sqrt.approx.ftz.f(float)73declare float @llvm.sqrt.f32(float)74 75attributes #0 = { "denormal-fp-math-f32" = "preserve-sign" }76