@@ -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