@@ -733,7 +733,8 @@ def HasStdExtZfhOrZvfh
733733
734734def 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>;
738739def HasStdExtZvkb : Predicate<"Subtarget->hasStdExtZvkb()">,
739740 AssemblerPredicate<(all_of FeatureStdExtZvkb),
@@ -750,23 +751,26 @@ def HasStdExtZvbb : Predicate<"Subtarget->hasStdExtZvbb()">,
750751
751752def FeatureStdExtZvbc
752753 : RISCVExtension<"zvbc", 1, 0,
753- "'Zvbc' (Vector Carryless Multiplication)">,
754+ "'Zvbc' (Vector Carryless Multiplication)",
755+ [FeatureStdExtZve64x]>,
754756 RISCVExtensionBitmask<0, 49>;
755757def HasStdExtZvbc : Predicate<"Subtarget->hasStdExtZvbc()">,
756758 AssemblerPredicate<(all_of FeatureStdExtZvbc),
757759 "'Zvbc' (Vector Carryless Multiplication)">;
758760
759761def 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
763766def HasStdExtZvbcOrZvbc32e : Predicate<"Subtarget->hasStdExtZvbc() || Subtarget->hasStdExtZvbc32e()">,
764767 AssemblerPredicate<(any_of FeatureStdExtZvbc, FeatureStdExtZvbc32e),
765768 "'Zvbc' or 'Zvbc32e' (Vector Carryless Multiplication)">;
766769
767770def 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>;
771775def HasStdExtZvkg : Predicate<"Subtarget->hasStdExtZvkg()">,
772776 AssemblerPredicate<(all_of FeatureStdExtZvkg),
@@ -782,23 +786,26 @@ def HasStdExtZvkgs : Predicate<"Subtarget->hasStdExtZvkgs()">,
782786
783787def 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>;
787792def HasStdExtZvkned : Predicate<"Subtarget->hasStdExtZvkned()">,
788793 AssemblerPredicate<(all_of FeatureStdExtZvkned),
789794 "'Zvkned' (Vector AES Encryption & Decryption (Single Round))">;
790795
791796def 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>;
795801def HasStdExtZvknha : Predicate<"Subtarget->hasStdExtZvknha()">,
796802 AssemblerPredicate<(all_of FeatureStdExtZvknha),
797803 "'Zvknha' (Vector SHA-2 (SHA-256 only))">;
798804
799805def 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>;
803810def HasStdExtZvknhb : Predicate<"Subtarget->hasStdExtZvknhb()">,
804811 AssemblerPredicate<(all_of FeatureStdExtZvknhb),
@@ -810,15 +817,17 @@ def HasStdExtZvknhaOrZvknhb : Predicate<"Subtarget->hasStdExtZvknha() || Subtarg
810817
811818def FeatureStdExtZvksed
812819 : RISCVExtension<"zvksed", 1, 0,
813- "'Zvksed' (SM4 Block Cipher Instructions)">,
820+ "'Zvksed' (SM4 Block Cipher Instructions)",
821+ [FeatureStdExtZve32x]>,
814822 RISCVExtensionBitmask<0, 57>;
815823def HasStdExtZvksed : Predicate<"Subtarget->hasStdExtZvksed()">,
816824 AssemblerPredicate<(all_of FeatureStdExtZvksed),
817825 "'Zvksed' (SM4 Block Cipher Instructions)">;
818826
819827def FeatureStdExtZvksh
820828 : RISCVExtension<"zvksh", 1, 0,
821- "'Zvksh' (SM3 Hash Function Instructions)">,
829+ "'Zvksh' (SM3 Hash Function Instructions)",
830+ [FeatureStdExtZve32x]>,
822831 RISCVExtensionBitmask<0, 58>;
823832def HasStdExtZvksh : Predicate<"Subtarget->hasStdExtZvksh()">,
824833 AssemblerPredicate<(all_of FeatureStdExtZvksh),
0 commit comments