Skip to content

Commit d9f62b5

Browse files
[RISCV] Allow crypto features to imply dependents
1 parent 47e6d18 commit d9f62b5

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

llvm/lib/Target/RISCV/RISCVFeatures.td

+18-9
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,8 @@ def HasStdExtZfhOrZvfh
733733

734734
def FeatureStdExtZvkb
735735
: RISCVExtension<"zvkb", 1, 0,
736-
"'Zvkb' (Vector Bit-manipulation used in Cryptography)">,
736+
"'Zvkb' (Vector Bit-manipulation used in Cryptography)",
737+
[FeatureStdExtZve32x]>,
737738
RISCVExtensionBitmask<0, 52>;
738739
def HasStdExtZvkb : Predicate<"Subtarget->hasStdExtZvkb()">,
739740
AssemblerPredicate<(all_of FeatureStdExtZvkb),
@@ -750,23 +751,26 @@ def HasStdExtZvbb : Predicate<"Subtarget->hasStdExtZvbb()">,
750751

751752
def FeatureStdExtZvbc
752753
: RISCVExtension<"zvbc", 1, 0,
753-
"'Zvbc' (Vector Carryless Multiplication)">,
754+
"'Zvbc' (Vector Carryless Multiplication)",
755+
[FeatureStdExtZve64x]>,
754756
RISCVExtensionBitmask<0, 49>;
755757
def HasStdExtZvbc : Predicate<"Subtarget->hasStdExtZvbc()">,
756758
AssemblerPredicate<(all_of FeatureStdExtZvbc),
757759
"'Zvbc' (Vector Carryless Multiplication)">;
758760

759761
def FeatureStdExtZvbc32e
760762
: RISCVExperimentalExtension<"zvbc32e", 0, 7,
761-
"'Zvbc32e' (Vector Carryless Multiplication with 32-bits elements)">;
763+
"'Zvbc32e' (Vector Carryless Multiplication with 32-bits elements)",
764+
[FeatureStdExtZve32x]>;
762765

763766
def HasStdExtZvbcOrZvbc32e : Predicate<"Subtarget->hasStdExtZvbc() || Subtarget->hasStdExtZvbc32e()">,
764767
AssemblerPredicate<(any_of FeatureStdExtZvbc, FeatureStdExtZvbc32e),
765768
"'Zvbc' or 'Zvbc32e' (Vector Carryless Multiplication)">;
766769

767770
def FeatureStdExtZvkg
768771
: RISCVExtension<"zvkg", 1, 0,
769-
"'Zvkg' (Vector GCM instructions for Cryptography)">,
772+
"'Zvkg' (Vector GCM instructions for Cryptography)",
773+
[FeatureStdExtZve32x]>,
770774
RISCVExtensionBitmask<0, 53>;
771775
def HasStdExtZvkg : Predicate<"Subtarget->hasStdExtZvkg()">,
772776
AssemblerPredicate<(all_of FeatureStdExtZvkg),
@@ -782,23 +786,26 @@ def HasStdExtZvkgs : Predicate<"Subtarget->hasStdExtZvkgs()">,
782786

783787
def FeatureStdExtZvkned
784788
: RISCVExtension<"zvkned", 1, 0,
785-
"'Zvkned' (Vector AES Encryption & Decryption (Single Round))">,
789+
"'Zvkned' (Vector AES Encryption & Decryption (Single Round))",
790+
[FeatureStdExtZve32x]>,
786791
RISCVExtensionBitmask<0, 54>;
787792
def HasStdExtZvkned : Predicate<"Subtarget->hasStdExtZvkned()">,
788793
AssemblerPredicate<(all_of FeatureStdExtZvkned),
789794
"'Zvkned' (Vector AES Encryption & Decryption (Single Round))">;
790795

791796
def FeatureStdExtZvknha
792797
: RISCVExtension<"zvknha", 1, 0,
793-
"'Zvknha' (Vector SHA-2 (SHA-256 only))">,
798+
"'Zvknha' (Vector SHA-2 (SHA-256 only))",
799+
[FeatureStdExtZve32x]>,
794800
RISCVExtensionBitmask<0, 55>;
795801
def HasStdExtZvknha : Predicate<"Subtarget->hasStdExtZvknha()">,
796802
AssemblerPredicate<(all_of FeatureStdExtZvknha),
797803
"'Zvknha' (Vector SHA-2 (SHA-256 only))">;
798804

799805
def FeatureStdExtZvknhb
800806
: RISCVExtension<"zvknhb", 1, 0,
801-
"'Zvknhb' (Vector SHA-2 (SHA-256 and SHA-512))">,
807+
"'Zvknhb' (Vector SHA-2 (SHA-256 and SHA-512))",
808+
[FeatureStdExtZve64x]>,
802809
RISCVExtensionBitmask<0, 56>;
803810
def HasStdExtZvknhb : Predicate<"Subtarget->hasStdExtZvknhb()">,
804811
AssemblerPredicate<(all_of FeatureStdExtZvknhb),
@@ -810,15 +817,17 @@ def HasStdExtZvknhaOrZvknhb : Predicate<"Subtarget->hasStdExtZvknha() || Subtarg
810817

811818
def FeatureStdExtZvksed
812819
: RISCVExtension<"zvksed", 1, 0,
813-
"'Zvksed' (SM4 Block Cipher Instructions)">,
820+
"'Zvksed' (SM4 Block Cipher Instructions)",
821+
[FeatureStdExtZve32x]>,
814822
RISCVExtensionBitmask<0, 57>;
815823
def HasStdExtZvksed : Predicate<"Subtarget->hasStdExtZvksed()">,
816824
AssemblerPredicate<(all_of FeatureStdExtZvksed),
817825
"'Zvksed' (SM4 Block Cipher Instructions)">;
818826

819827
def FeatureStdExtZvksh
820828
: RISCVExtension<"zvksh", 1, 0,
821-
"'Zvksh' (SM3 Hash Function Instructions)">,
829+
"'Zvksh' (SM3 Hash Function Instructions)",
830+
[FeatureStdExtZve32x]>,
822831
RISCVExtensionBitmask<0, 58>;
823832
def HasStdExtZvksh : Predicate<"Subtarget->hasStdExtZvksh()">,
824833
AssemblerPredicate<(all_of FeatureStdExtZvksh),

0 commit comments

Comments
 (0)