HexagonIntrinsicsDerived.td revision 234285
1254721Semaste//===-- HexagonIntrinsicsDerived.td - Derived intrinsics ---*- tablegen -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste// 10254721Semaste// Multiply 64-bit and use lower result 11254721Semaste// 12263363Semaste// Optimized with intrinisics accumulates 13263363Semaste// 14263363Semastedef : Pat <(mul DoubleRegs:$src1, DoubleRegs:$src2), 15263363Semaste (COMBINE_rr 16254721Semaste (Hexagon_M2_maci 17254721Semaste (Hexagon_M2_maci (EXTRACT_SUBREG (MPYU64 (EXTRACT_SUBREG DoubleRegs:$src1, subreg_loreg), 18254721Semaste (EXTRACT_SUBREG DoubleRegs:$src2, subreg_loreg)), 19254721Semaste subreg_hireg), 20254721Semaste (EXTRACT_SUBREG DoubleRegs:$src1, subreg_loreg), 21254721Semaste (EXTRACT_SUBREG DoubleRegs:$src2, subreg_hireg)), 22254721Semaste (EXTRACT_SUBREG DoubleRegs:$src2, subreg_loreg), 23254721Semaste (EXTRACT_SUBREG DoubleRegs:$src1, subreg_hireg)), 24254721Semaste (EXTRACT_SUBREG (MPYU64 (EXTRACT_SUBREG DoubleRegs:$src1, subreg_loreg), 25254721Semaste (EXTRACT_SUBREG DoubleRegs:$src2, subreg_loreg)), 26254721Semaste subreg_loreg))>; 27254721Semaste 28254721Semaste 29254721Semaste 30254721Semaste