@@ -680,39 +680,39 @@ let Predicates = [FeatureVector] in {
680680 let isCommutable = 1 in {
681681 // Maximum.
682682 def VMX : BinaryVRRcGeneric<"vmx", 0xE7FF>;
683- def VMXB : BinaryVRRc<"vmxb", 0xE7FF, null_frag , v128b, v128b, 0>;
684- def VMXH : BinaryVRRc<"vmxh", 0xE7FF, null_frag , v128h, v128h, 1>;
685- def VMXF : BinaryVRRc<"vmxf", 0xE7FF, null_frag , v128f, v128f, 2>;
686- def VMXG : BinaryVRRc<"vmxg", 0xE7FF, null_frag , v128g, v128g, 3>;
683+ def VMXB : BinaryVRRc<"vmxb", 0xE7FF, smax , v128b, v128b, 0>;
684+ def VMXH : BinaryVRRc<"vmxh", 0xE7FF, smax , v128h, v128h, 1>;
685+ def VMXF : BinaryVRRc<"vmxf", 0xE7FF, smax , v128f, v128f, 2>;
686+ def VMXG : BinaryVRRc<"vmxg", 0xE7FF, smax , v128g, v128g, 3>;
687687 let Predicates = [FeatureVectorEnhancements3] in
688688 def VMXQ : BinaryVRRc<"vmxq", 0xE7FF, null_frag, v128q, v128q, 4>;
689689
690690 // Maximum logical.
691691 def VMXL : BinaryVRRcGeneric<"vmxl", 0xE7FD>;
692- def VMXLB : BinaryVRRc<"vmxlb", 0xE7FD, null_frag , v128b, v128b, 0>;
693- def VMXLH : BinaryVRRc<"vmxlh", 0xE7FD, null_frag , v128h, v128h, 1>;
694- def VMXLF : BinaryVRRc<"vmxlf", 0xE7FD, null_frag , v128f, v128f, 2>;
695- def VMXLG : BinaryVRRc<"vmxlg", 0xE7FD, null_frag , v128g, v128g, 3>;
692+ def VMXLB : BinaryVRRc<"vmxlb", 0xE7FD, umax , v128b, v128b, 0>;
693+ def VMXLH : BinaryVRRc<"vmxlh", 0xE7FD, umax , v128h, v128h, 1>;
694+ def VMXLF : BinaryVRRc<"vmxlf", 0xE7FD, umax , v128f, v128f, 2>;
695+ def VMXLG : BinaryVRRc<"vmxlg", 0xE7FD, umax , v128g, v128g, 3>;
696696 let Predicates = [FeatureVectorEnhancements3] in
697697 def VMXLQ : BinaryVRRc<"vmxlq", 0xE7FD, null_frag, v128q, v128q, 4>;
698698 }
699699
700700 let isCommutable = 1 in {
701701 // Minimum.
702702 def VMN : BinaryVRRcGeneric<"vmn", 0xE7FE>;
703- def VMNB : BinaryVRRc<"vmnb", 0xE7FE, null_frag , v128b, v128b, 0>;
704- def VMNH : BinaryVRRc<"vmnh", 0xE7FE, null_frag , v128h, v128h, 1>;
705- def VMNF : BinaryVRRc<"vmnf", 0xE7FE, null_frag , v128f, v128f, 2>;
706- def VMNG : BinaryVRRc<"vmng", 0xE7FE, null_frag , v128g, v128g, 3>;
703+ def VMNB : BinaryVRRc<"vmnb", 0xE7FE, smin , v128b, v128b, 0>;
704+ def VMNH : BinaryVRRc<"vmnh", 0xE7FE, smin , v128h, v128h, 1>;
705+ def VMNF : BinaryVRRc<"vmnf", 0xE7FE, smin , v128f, v128f, 2>;
706+ def VMNG : BinaryVRRc<"vmng", 0xE7FE, smin , v128g, v128g, 3>;
707707 let Predicates = [FeatureVectorEnhancements3] in
708708 def VMNQ : BinaryVRRc<"vmnq", 0xE7FE, null_frag, v128q, v128q, 4>;
709709
710710 // Minimum logical.
711711 def VMNL : BinaryVRRcGeneric<"vmnl", 0xE7FC>;
712- def VMNLB : BinaryVRRc<"vmnlb", 0xE7FC, null_frag , v128b, v128b, 0>;
713- def VMNLH : BinaryVRRc<"vmnlh", 0xE7FC, null_frag , v128h, v128h, 1>;
714- def VMNLF : BinaryVRRc<"vmnlf", 0xE7FC, null_frag , v128f, v128f, 2>;
715- def VMNLG : BinaryVRRc<"vmnlg", 0xE7FC, null_frag , v128g, v128g, 3>;
712+ def VMNLB : BinaryVRRc<"vmnlb", 0xE7FC, umin , v128b, v128b, 0>;
713+ def VMNLH : BinaryVRRc<"vmnlh", 0xE7FC, umin , v128h, v128h, 1>;
714+ def VMNLF : BinaryVRRc<"vmnlf", 0xE7FC, umin , v128f, v128f, 2>;
715+ def VMNLG : BinaryVRRc<"vmnlg", 0xE7FC, umin , v128g, v128g, 3>;
716716 let Predicates = [FeatureVectorEnhancements3] in
717717 def VMNLQ : BinaryVRRc<"vmnlq", 0xE7FC, null_frag, v128q, v128q, 4>;
718718 }
0 commit comments