-// f32 element comparisons.
-def VCMPBFP : VXRForm_1<966, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpbfp $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp VRRC:$vA, VRRC:$vB, 966)))]>;
-def VCMPBFPo : VXRForm_1<966, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpbfp. $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp_o VRRC:$vA, VRRC:$vB, 966)))]>, isVDOT;
-def VCMPEQFP : VXRForm_1<198, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpeqfp $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp VRRC:$vA, VRRC:$vB, 198)))]>;
-def VCMPEQFPo : VXRForm_1<198, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpeqfp. $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp_o VRRC:$vA, VRRC:$vB, 198)))]>, isVDOT;
-def VCMPGEFP : VXRForm_1<454, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpgefp $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp VRRC:$vA, VRRC:$vB, 454)))]>;
-def VCMPGEFPo : VXRForm_1<454, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpgefp. $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp_o VRRC:$vA, VRRC:$vB, 454)))]>, isVDOT;
-def VCMPGTFP : VXRForm_1<710, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpgtfp $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp VRRC:$vA, VRRC:$vB, 710)))]>;
-def VCMPGTFPo : VXRForm_1<710, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
- "vcmpgtfp. $vD, $vA, $vB", VecFPCompare,
- [(set VRRC:$vD, (v4f32
- (PPCvcmp_o VRRC:$vA, VRRC:$vB, 710)))]>, isVDOT;
+class VCMP<bits<10> xo, string asmstr, ValueType Ty>
+ : VXRForm_1<xo, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB), asmstr, VecFPCompare,
+ [(set VRRC:$vD, (Ty (PPCvcmp VRRC:$vA, VRRC:$vB, xo)))]>;
+class VCMPo<bits<10> xo, string asmstr, ValueType Ty>
+ : VXRForm_1<xo, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB), asmstr, VecFPCompare,
+ [(set VRRC:$vD, (Ty (PPCvcmp_o VRRC:$vA, VRRC:$vB, xo)))]>,isVDOT;
+
+// f32 element comparisons.0
+def VCMPBFP : VCMP <966, "vcmpbfp $vD, $vA, $vB" , v4f32>;
+def VCMPBFPo : VCMPo<966, "vcmpbfp. $vD, $vA, $vB" , v4f32>;
+def VCMPEQFP : VCMP <198, "vcmpeqfp $vD, $vA, $vB" , v4f32>;
+def VCMPEQFPo : VCMPo<198, "vcmpeqfp. $vD, $vA, $vB", v4f32>;
+def VCMPGEFP : VCMP <454, "vcmpgefp $vD, $vA, $vB" , v4f32>;
+def VCMPGEFPo : VCMPo<454, "vcmpgefp. $vD, $vA, $vB", v4f32>;
+def VCMPGTFP : VCMP <710, "vcmpgtfp $vD, $vA, $vB" , v4f32>;
+def VCMPGTFPo : VCMPo<710, "vcmpgtfp. $vD, $vA, $vB", v4f32>;