brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 1ee6dc1 Raw
122 lines · plain
1//===-- RISCVScheduleXSf.td - Scheduling Definitions XSf ---*- tablegen -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file describes the scheduling information for SiFive extensions.10//11//===----------------------------------------------------------------------===//12 13multiclass LMULSchedWritesVCIX<string id>{14defm "" : LMULSchedWrites<"WriteVC_" # id>;15defm "" : LMULSchedWrites<"WriteVC_V_" # id>;16}17 18defm "" : LMULSchedWritesVCIX<"I">;19defm "" : LMULSchedWritesVCIX<"X">;20defm "" : LMULSchedWritesVCIX<"IV">;21defm "" : LMULSchedWritesVCIX<"VV">;22defm "" : LMULSchedWritesVCIX<"XV">;23defm "" : LMULSchedWritesVCIX<"IVV">;24defm "" : LMULSchedWritesVCIX<"IVW">;25defm "" : LMULSchedWritesVCIX<"VVV">;26defm "" : LMULSchedWritesVCIX<"VVW">;27defm "" : LMULSchedWritesVCIX<"XVV">;28defm "" : LMULSchedWritesVCIX<"XVW">;29foreach f = ["FPR16", "FPR32", "FPR64"] in {30  defm "" : LMULSchedWritesVCIX<f # "V">;31  defm "" : LMULSchedWritesVCIX<f # "VV">;32  defm "" : LMULSchedWritesVCIX<f # "VW">;33}34 35multiclass LMULWriteResVCIX<string id, list<ProcResourceKind> resources>{36defm : LMULWriteRes<"WriteVC_" # id, resources>;37defm : LMULWriteRes<"WriteVC_V_" # id, resources>;38}39 40multiclass UnsupportedSchedXsfvcp {41let Unsupported = true in {42defm : LMULWriteResVCIX<"I", []>;43defm : LMULWriteResVCIX<"X", []>;44defm : LMULWriteResVCIX<"IV", []>;45defm : LMULWriteResVCIX<"VV", []>;46defm : LMULWriteResVCIX<"XV", []>;47defm : LMULWriteResVCIX<"IVV", []>;48defm : LMULWriteResVCIX<"IVW", []>;49defm : LMULWriteResVCIX<"VVV", []>;50defm : LMULWriteResVCIX<"VVW", []>;51defm : LMULWriteResVCIX<"XVV", []>;52defm : LMULWriteResVCIX<"XVW", []>;53foreach f = ["FPR16", "FPR32", "FPR64"] in {54  defm : LMULWriteResVCIX<f # "V", []>;55  defm : LMULWriteResVCIX<f # "VV", []>;56  defm : LMULWriteResVCIX<f # "VW", []>;57}58}59}60 61defm "" : LMULSchedWritesImpl<"WriteSF_VFNRClipV", !listremove(SchedMxListW, ["M4"])>;62defm "" : LMULSchedReadsImpl<"ReadSF_VFNRClipV",   !listremove(SchedMxListW, ["M4"])>;63defm "" : LMULSchedReadsImpl<"ReadSF_VFNRClipF",   !listremove(SchedMxListW, ["M4"])>;64 65multiclass UnsupportedSchedXSfvfnrclipxfqf {66let Unsupported = true in {67defm : LMULWriteRes<"WriteSF_VFNRClipV", []>;68defm : LMULReadAdvance<"ReadSF_VFNRClipV", 0>;69defm : LMULReadAdvance<"ReadSF_VFNRClipF", 0>;70} // Unsupported = true71}72 73defm "" : LMULSchedWritesImpl<"WriteSF_VQMACC_DOD", ["M1", "M2", "M4", "M8"]>;74defm "" : LMULSchedReadsImpl<"ReadSF_VQMACC_DOD",   ["M1", "M2", "M4", "M8"]>;75 76multiclass UnsupportedSchedXSfvqmaccdod {77let Unsupported = true in {78defm : LMULWriteRes<"WriteSF_VQMACC_DOD", []>;79defm : LMULReadAdvance<"ReadSF_VQMACC_DOD", 0>;80} // Unsupported = true81}82 83defm "" : LMULSchedWritesImpl<"WriteSF_VQMACC_QOQ", ["MF2", "M1", "M2", "M4"]>;84defm "" : LMULSchedReadsImpl<"ReadSF_VQMACC_QOQ",   ["MF2", "M1", "M2", "M4"]>;85 86multiclass UnsupportedSchedXSfvqmaccqoq {87let Unsupported = true in {88defm : LMULWriteRes<"WriteSF_VQMACC_QOQ", []>;89defm : LMULReadAdvance<"ReadSF_VQMACC_QOQ", 0>;90} // Unsupported = true91}92 93defm "" : LMULSchedWritesImpl<"WriteSF_VFWMACC_QQQ", SchedMxListFW>;94defm "" : LMULSchedReadsImpl<"ReadSF_VFWMACC_QQQ",   SchedMxListFW>;95 96multiclass UnsupportedSchedXSfvfwmaccqqq {97let Unsupported = true in {98defm : LMULWriteRes<"WriteSF_VFWMACC_QQQ", []>;99defm : LMULReadAdvance<"ReadSF_VFWMACC_QQQ", 0>;100} // Unsupported = true101}102 103defm "" : LMULSEWSchedWritesF<"WriteSF_VFExp">;104defm "" : LMULSEWSchedReadsF<"ReadSF_VFExp">;105 106multiclass UnsupportedSchedXSfvfexp {107let Unsupported = true in {108defm : LMULSEWWriteResF<"WriteSF_VFExp", []>;109defm : LMULSEWReadAdvanceF<"ReadSF_VFExp", 0>;110} // Unsupported = true111}112 113defm "" : LMULSEWSchedWritesF<"WriteSF_VFExpa">;114defm "" : LMULSEWSchedReadsF<"ReadSF_VFExpa">;115 116multiclass UnsupportedSchedXSfvfexpa {117let Unsupported = true in {118defm : LMULSEWWriteResF<"WriteSF_VFExpa", []>;119defm : LMULSEWReadAdvanceF<"ReadSF_VFExpa", 0>;120} // Unsupported = true121}122