summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorAditya Nandakumar <aditya_nandakumar@apple.com>2017-06-27 22:19:32 +0000
committerAditya Nandakumar <aditya_nandakumar@apple.com>2017-06-27 22:19:32 +0000
commitcca75d24069efb69b10742c1663cbc03bdd0a9a5 (patch)
tree279b85928121796dea002e673a977ea8634474f8 /llvm/include
parent650c96e0a73ba27d83da92db55c1b188f393fcd9 (diff)
downloadbcm5719-llvm-cca75d24069efb69b10742c1663cbc03bdd0a9a5.tar.gz
bcm5719-llvm-cca75d24069efb69b10742c1663cbc03bdd0a9a5.zip
[GISel]: Add G_FEXP, G_FEXP2 opcodes
Also add IRTranslator support. https://reviews.llvm.org/D34710 llvm-svn: 306475
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Target/GenericOpcodes.td13
-rw-r--r--llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td1
-rw-r--r--llvm/include/llvm/Target/TargetOpcodes.def6
3 files changed, 20 insertions, 0 deletions
diff --git a/llvm/include/llvm/Target/GenericOpcodes.td b/llvm/include/llvm/Target/GenericOpcodes.td
index 9593d8bd7ed..53055541a4a 100644
--- a/llvm/include/llvm/Target/GenericOpcodes.td
+++ b/llvm/include/llvm/Target/GenericOpcodes.td
@@ -416,6 +416,19 @@ def G_FPOW : Instruction {
let hasSideEffects = 0;
}
+// Floating point base-e exponential of a value.
+def G_FEXP : Instruction {
+ let OutOperandList = (outs type0:$dst);
+ let InOperandList = (ins type0:$src1);
+ let hasSideEffects = 0;
+}
+
+// Floating point base-2 exponential of a value.
+def G_FEXP2 : Instruction {
+ let OutOperandList = (outs type0:$dst);
+ let InOperandList = (ins type0:$src1);
+ let hasSideEffects = 0;
+}
//------------------------------------------------------------------------------
// Memory ops
//------------------------------------------------------------------------------
diff --git a/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td b/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
index a06c67fe814..166e7488125 100644
--- a/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
+++ b/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
@@ -62,6 +62,7 @@ def : GINodeEquiv<G_FMUL, fmul>;
def : GINodeEquiv<G_FDIV, fdiv>;
def : GINodeEquiv<G_FREM, frem>;
def : GINodeEquiv<G_FPOW, fpow>;
+def : GINodeEquiv<G_FEXP2, fexp2>;
def : GINodeEquiv<G_BR, br>;
// Specifies the GlobalISel equivalents for SelectionDAG's ComplexPattern.
diff --git a/llvm/include/llvm/Target/TargetOpcodes.def b/llvm/include/llvm/Target/TargetOpcodes.def
index 836b11cf89c..2fc0421f5df 100644
--- a/llvm/include/llvm/Target/TargetOpcodes.def
+++ b/llvm/include/llvm/Target/TargetOpcodes.def
@@ -369,6 +369,12 @@ HANDLE_TARGET_OPCODE(G_FREM)
/// Generic FP exponentiation.
HANDLE_TARGET_OPCODE(G_FPOW)
+/// Generic base-e exponential of a value.
+HANDLE_TARGET_OPCODE(G_FEXP)
+
+/// Generic base-2 exponential of a value.
+HANDLE_TARGET_OPCODE(G_FEXP2)
+
/// Generic FP negation.
HANDLE_TARGET_OPCODE(G_FNEG)
OpenPOWER on IntegriCloud