• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//===-- HexagonIntrinsicsDerived.td - Derived intrinsics ---*- tablegen -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// Multiply 64-bit and use lower result
11//
12// Optimized with intrinisics accumulates
13//
14def : Pat <(mul DoubleRegs:$src1, DoubleRegs:$src2),
15      (COMBINE_rr
16                  (Hexagon_M2_maci
17                           (Hexagon_M2_maci (EXTRACT_SUBREG  (MPYU64 (EXTRACT_SUBREG DoubleRegs:$src1, subreg_loreg),
18                                                           (EXTRACT_SUBREG DoubleRegs:$src2, subreg_loreg)),
19                                       subreg_hireg),
20                                       (EXTRACT_SUBREG DoubleRegs:$src1, subreg_loreg),
21                                       (EXTRACT_SUBREG DoubleRegs:$src2, subreg_hireg)),
22                            (EXTRACT_SUBREG DoubleRegs:$src2, subreg_loreg),
23                            (EXTRACT_SUBREG DoubleRegs:$src1, subreg_hireg)),
24                    (EXTRACT_SUBREG  (MPYU64 (EXTRACT_SUBREG DoubleRegs:$src1, subreg_loreg),
25                                      (EXTRACT_SUBREG DoubleRegs:$src2, subreg_loreg)),
26                     subreg_loreg))>;
27
28
29
30