diff options
author | Justin Holewinski <jholewinski@nvidia.com> | 2014-01-21 14:40:05 +0000 |
---|---|---|
committer | Justin Holewinski <jholewinski@nvidia.com> | 2014-01-21 14:40:05 +0000 |
commit | 7706107e6f6e17dfa8e1f2d85c44cd7430c32e52 (patch) | |
tree | f29dc30a8763ab2f5a5cd55062cd583fb68cd420 | |
parent | 7741274534ba01ecff52e56185b4224bf354b39b (diff) | |
download | bcm5719-llvm-7706107e6f6e17dfa8e1f2d85c44cd7430c32e52.tar.gz bcm5719-llvm-7706107e6f6e17dfa8e1f2d85c44cd7430c32e52.zip |
[NVPTX] Add missing patterns for div.approx with immediate denominator
llvm-svn: 199746
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXInstrInfo.td | 12 | ||||
-rw-r--r-- | llvm/test/CodeGen/NVPTX/div-ri.ll | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td b/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td index b23f1e4b458..fbcd0e4a358 100644 --- a/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td +++ b/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td @@ -689,12 +689,24 @@ def FDIV32approxrr_ftz : NVPTXInst<(outs Float32Regs:$dst), [(set Float32Regs:$dst, (fdiv Float32Regs:$a, Float32Regs:$b))]>, 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), (ins Float32Regs:$a, Float32Regs:$b), "div.approx.f32 \t$dst, $a, $b;", [(set Float32Regs:$dst, (fdiv Float32Regs:$a, Float32Regs:$b))]>, 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 // diff --git a/llvm/test/CodeGen/NVPTX/div-ri.ll b/llvm/test/CodeGen/NVPTX/div-ri.ll new file mode 100644 index 00000000000..7f796e0239f --- /dev/null +++ b/llvm/test/CodeGen/NVPTX/div-ri.ll @@ -0,0 +1,8 @@ +; 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 +} + |