Skip to content
Snippets Groups Projects
Commit 7706107e authored by Justin Holewinski's avatar Justin Holewinski
Browse files

[NVPTX] Add missing patterns for div.approx with immediate denominator

llvm-svn: 199746
parent 77412745
No related branches found
No related tags found
No related merge requests found
...@@ -689,12 +689,24 @@ def FDIV32approxrr_ftz : NVPTXInst<(outs Float32Regs:$dst), ...@@ -689,12 +689,24 @@ def FDIV32approxrr_ftz : NVPTXInst<(outs Float32Regs:$dst),
[(set Float32Regs:$dst, [(set Float32Regs:$dst,
(fdiv Float32Regs:$a, Float32Regs:$b))]>, (fdiv Float32Regs:$a, Float32Regs:$b))]>,
Requires<[do_DIVF32_APPROX, doF32FTZ]>; Requires<[do_DIVF32_APPROX, doF32FTZ]>;
def FDIV32approxri_ftz : NVPTXInst<(outs Float32Regs:$dst),
(ins Float32Regs:$a, f32imm:$b),
"div.approx.ftz.f32 \t$dst, $a, $b;",
[(set Float32Regs:$dst,
(fdiv Float32Regs:$a, fpimm:$b))]>,
Requires<[do_DIVF32_APPROX, doF32FTZ]>;
def FDIV32approxrr : NVPTXInst<(outs Float32Regs:$dst), def FDIV32approxrr : NVPTXInst<(outs Float32Regs:$dst),
(ins Float32Regs:$a, Float32Regs:$b), (ins Float32Regs:$a, Float32Regs:$b),
"div.approx.f32 \t$dst, $a, $b;", "div.approx.f32 \t$dst, $a, $b;",
[(set Float32Regs:$dst, [(set Float32Regs:$dst,
(fdiv Float32Regs:$a, Float32Regs:$b))]>, (fdiv Float32Regs:$a, Float32Regs:$b))]>,
Requires<[do_DIVF32_APPROX]>; Requires<[do_DIVF32_APPROX]>;
def FDIV32approxri : NVPTXInst<(outs Float32Regs:$dst),
(ins Float32Regs:$a, f32imm:$b),
"div.approx.f32 \t$dst, $a, $b;",
[(set Float32Regs:$dst,
(fdiv Float32Regs:$a, fpimm:$b))]>,
Requires<[do_DIVF32_APPROX]>;
// //
// F32 Semi-accurate reciprocal // F32 Semi-accurate reciprocal
// //
......
; RUN: llc < %s -march=nvptx -mcpu=sm_20 -nvptx-prec-divf32=0 | FileCheck %s
define float @foo(float %a) {
; CHECK: div.approx.f32
%div = fdiv float %a, 13.0
ret float %div
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment