CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
209 lines
6.2 KiB
TableGen
209 lines
6.2 KiB
TableGen
//=== RISCVScheduleZvk.td - RISC-V Scheduling Definitions Zvk -*- tablegen ===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
/// Define scheduler resources associated with def operands.
|
|
|
|
/// Zvbb extension
|
|
defm "" : LMULSchedWrites<"WriteVBREVV">;
|
|
defm "" : LMULSchedWrites<"WriteVCLZV">;
|
|
defm "" : LMULSchedWrites<"WriteVCPOPV">;
|
|
defm "" : LMULSchedWrites<"WriteVCTZV">;
|
|
defm "" : LMULSchedWrites<"WriteVWSLLV">;
|
|
defm "" : LMULSchedWrites<"WriteVWSLLX">;
|
|
defm "" : LMULSchedWrites<"WriteVWSLLI">;
|
|
|
|
/// Zvbc extension
|
|
defm "" : LMULSchedWrites<"WriteVCLMULV">;
|
|
defm "" : LMULSchedWrites<"WriteVCLMULX">;
|
|
|
|
/// Zvkb extension
|
|
// VANDN uses WriteVIALU[V|X|I]
|
|
defm "" : LMULSchedWrites<"WriteVBREV8V">;
|
|
defm "" : LMULSchedWrites<"WriteVREV8V">;
|
|
defm "" : LMULSchedWrites<"WriteVRotV">;
|
|
defm "" : LMULSchedWrites<"WriteVRotX">;
|
|
defm "" : LMULSchedWrites<"WriteVRotI">;
|
|
|
|
/// Zvkg extension
|
|
defm "" : LMULSchedWrites<"WriteVGHSHV">;
|
|
defm "" : LMULSchedWrites<"WriteVGMULV">;
|
|
|
|
/// Zvknha or Zvknhb extensions
|
|
defm "" : LMULSchedWrites<"WriteVSHA2CHV">;
|
|
defm "" : LMULSchedWrites<"WriteVSHA2CLV">;
|
|
defm "" : LMULSEWSchedWrites<"WriteVSHA2MSV">;
|
|
|
|
/// Zvkned extension
|
|
defm "" : LMULSchedWrites<"WriteVAESMVV">;
|
|
defm "" : LMULSchedWrites<"WriteVAESKF1V">;
|
|
defm "" : LMULSchedWrites<"WriteVAESKF2V">;
|
|
defm "" : LMULSchedWrites<"WriteVAESZV">;
|
|
|
|
/// Zvksed extension
|
|
defm "" : LMULSchedWrites<"WriteVSM4KV">;
|
|
defm "" : LMULSchedWrites<"WriteVSM4RV">;
|
|
|
|
/// Zvksh extension
|
|
defm "" : LMULSchedWrites<"WriteVSM3CV">;
|
|
defm "" : LMULSchedWrites<"WriteVSM3MEV">;
|
|
|
|
/// Define scheduler resources associated with use operands.
|
|
/// Zvbb extension
|
|
defm "" : LMULSchedReads<"ReadVBREVV">;
|
|
defm "" : LMULSchedReads<"ReadVCLZV">;
|
|
defm "" : LMULSchedReads<"ReadVCPOPV">;
|
|
defm "" : LMULSchedReads<"ReadVCTZV">;
|
|
defm "" : LMULSchedReads<"ReadVWSLLV">;
|
|
defm "" : LMULSchedReads<"ReadVWSLLX">;
|
|
|
|
/// Zvbc extension
|
|
defm "" : LMULSchedReads<"ReadVCLMULV">;
|
|
defm "" : LMULSchedReads<"ReadVCLMULX">;
|
|
|
|
/// Zvkb extension
|
|
// VANDN uses ReadVIALU[V|X|I]
|
|
defm "" : LMULSchedReads<"ReadVBREV8V">;
|
|
defm "" : LMULSchedReads<"ReadVREV8V">;
|
|
defm "" : LMULSchedReads<"ReadVRotV">;
|
|
defm "" : LMULSchedReads<"ReadVRotX">;
|
|
|
|
/// Zvkg extension
|
|
defm "" : LMULSchedReads<"ReadVGHSHV">;
|
|
defm "" : LMULSchedReads<"ReadVGMULV">;
|
|
|
|
/// Zvknha or Zvknhb extensions
|
|
defm "" : LMULSchedReads<"ReadVSHA2CHV">;
|
|
defm "" : LMULSchedReads<"ReadVSHA2CLV">;
|
|
defm "" : LMULSEWSchedReads<"ReadVSHA2MSV">;
|
|
|
|
/// Zvkned extension
|
|
defm "" : LMULSchedReads<"ReadVAESMVV">;
|
|
defm "" : LMULSchedReads<"ReadVAESKF1V">;
|
|
defm "" : LMULSchedReads<"ReadVAESKF2V">;
|
|
defm "" : LMULSchedReads<"ReadVAESZV">;
|
|
|
|
/// Zvksed extension
|
|
defm "" : LMULSchedReads<"ReadVSM4KV">;
|
|
defm "" : LMULSchedReads<"ReadVSM4RV">;
|
|
|
|
/// Zvksh extension
|
|
defm "" : LMULSchedReads<"ReadVSM3CV">;
|
|
defm "" : LMULSchedReads<"ReadVSM3MEV">;
|
|
|
|
multiclass UnsupportedSchedZvbb {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVBREVV", []>;
|
|
defm "" : LMULWriteRes<"WriteVCLZV", []>;
|
|
defm "" : LMULWriteRes<"WriteVCPOPV", []>;
|
|
defm "" : LMULWriteRes<"WriteVCTZV", []>;
|
|
defm "" : LMULWriteRes<"WriteVWSLLV", []>;
|
|
defm "" : LMULWriteRes<"WriteVWSLLX", []>;
|
|
defm "" : LMULWriteRes<"WriteVWSLLI", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVBREVV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVCLZV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVCPOPV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVCTZV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVWSLLV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVWSLLX", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvbc {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVCLMULV", []>;
|
|
defm "" : LMULWriteRes<"WriteVCLMULX", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVCLMULV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVCLMULX", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvkb {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVBREV8V", []>;
|
|
defm "" : LMULWriteRes<"WriteVREV8V", []>;
|
|
defm "" : LMULWriteRes<"WriteVRotV", []>;
|
|
defm "" : LMULWriteRes<"WriteVRotX", []>;
|
|
defm "" : LMULWriteRes<"WriteVRotI", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVBREV8V", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVREV8V", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVRotV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVRotX", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvkg {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVGHSHV", []>;
|
|
defm "" : LMULWriteRes<"WriteVGMULV", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVGHSHV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVGMULV", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvknhaOrZvknhb {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVSHA2CHV", []>;
|
|
defm "" : LMULWriteRes<"WriteVSHA2CLV", []>;
|
|
defm "" : LMULSEWWriteRes<"WriteVSHA2MSV", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVSHA2CHV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVSHA2CLV", 0>;
|
|
defm "" : LMULSEWReadAdvance<"ReadVSHA2MSV", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvkned {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVAESMVV", []>;
|
|
defm "" : LMULWriteRes<"WriteVAESKF1V", []>;
|
|
defm "" : LMULWriteRes<"WriteVAESKF2V", []>;
|
|
defm "" : LMULWriteRes<"WriteVAESZV", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVAESMVV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVAESKF1V", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVAESKF2V", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVAESZV", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvksed {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVSM4KV", []>;
|
|
defm "" : LMULWriteRes<"WriteVSM4RV", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVSM4KV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVSM4RV", 0>;
|
|
}
|
|
}
|
|
|
|
multiclass UnsupportedSchedZvksh {
|
|
let Unsupported = true in {
|
|
defm "" : LMULWriteRes<"WriteVSM3CV", []>;
|
|
defm "" : LMULWriteRes<"WriteVSM3MEV", []>;
|
|
|
|
defm "" : LMULReadAdvance<"ReadVSM3CV", 0>;
|
|
defm "" : LMULReadAdvance<"ReadVSM3MEV", 0>;
|
|
}
|
|
}
|
|
|
|
// Helper class to define all RISC-V Vector Crypto extensions as unsupported
|
|
multiclass UnsupportedSchedZvk {
|
|
defm "" : UnsupportedSchedZvbb;
|
|
defm "" : UnsupportedSchedZvbc;
|
|
defm "" : UnsupportedSchedZvkb;
|
|
defm "" : UnsupportedSchedZvkg;
|
|
defm "" : UnsupportedSchedZvknhaOrZvknhb;
|
|
defm "" : UnsupportedSchedZvkned;
|
|
defm "" : UnsupportedSchedZvksed;
|
|
defm "" : UnsupportedSchedZvksh;
|
|
}
|