summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonPatterns.td
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-12-05 21:01:07 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-12-05 21:01:07 +0000
commit545a68ca4bf912d57beecf5ea63f4e8726b5150d (patch)
tree8e6f4801b232250eb3593f4f59cdf176687f98b0 /llvm/lib/Target/Hexagon/HexagonPatterns.td
parent0da68bae8980bb69e498fc1a2867ff68fd0f72cc (diff)
downloadbcm5719-llvm-545a68ca4bf912d57beecf5ea63f4e8726b5150d.tar.gz
bcm5719-llvm-545a68ca4bf912d57beecf5ea63f4e8726b5150d.zip
[Hexagon] Add instruction definitions for Hexagon V66
llvm-svn: 348411
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonPatterns.td')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonPatterns.td7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td
index ddf5a9ca364..976e6a6576d 100644
--- a/llvm/lib/Target/Hexagon/HexagonPatterns.td
+++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td
@@ -1259,12 +1259,19 @@ def: OpR_RR_pat<F2_sfmpy, pf2<fmul>, f32, F32>;
def: OpR_RR_pat<F2_sfmin, pf2<fminnum>, f32, F32>;
def: OpR_RR_pat<F2_sfmax, pf2<fmaxnum>, f32, F32>;
+let Predicates = [HasV66] in {
+ def: OpR_RR_pat<F2_dfadd, pf2<fadd>, f64, F64>;
+ def: OpR_RR_pat<F2_dfsub, pf2<fsub>, f64, F64>;
+}
+
// In expressions like a0*b0 + a1*b1 + ..., prefer to generate multiply-add,
// over add-add with individual multiplies as inputs.
let AddedComplexity = 10 in {
def: AccRRI_pat<M2_macsip, Add, Su<Mul>, I32, u32_0ImmPred>;
def: AccRRI_pat<M2_macsin, Sub, Su<Mul>, I32, u32_0ImmPred>;
def: AccRRR_pat<M2_maci, Add, Su<Mul>, I32, I32, I32>;
+ let Predicates = [HasV66] in
+ def: AccRRR_pat<M2_mnaci, Sub, Su<Mul>, I32, I32, I32>;
}
def: AccRRI_pat<M2_naccii, Sub, Su<Add>, I32, s32_0ImmPred>;
OpenPOWER on IntegriCloud