@@ -842,21 +842,21 @@ pub(crate) mod sealed {
842842 unsafe fn vec_cmpge ( self , b : Other ) -> Self :: Result ;
843843 }
844844
845- test_impl ! { vec_vcmpgefp( a: vector_float, b: vector_float) -> vector_bool_int [ vcmpgefp, vcmpgefp ] }
846-
847- // Implement VectorCmpGe trait for vector_float using vcmpgefp (AltiVec)
848- // This is overridden by vsx.rs when VSX is available
849- #[ cfg( not( target_feature = "vsx" ) ) ]
845+ // Implement VectorCmpGe trait for vector_float using simd_ge
850846 #[ unstable( feature = "stdarch_powerpc" , issue = "111145" ) ]
851847 impl VectorCmpGe < vector_float > for vector_float {
852848 type Result = vector_bool_int ;
853849 #[ inline]
854850 #[ target_feature( enable = "altivec" ) ]
851+ #[ cfg_attr( all( test, not( target_feature = "vsx" ) ) , assert_instr( vcmpgefp) ) ]
852+ #[ cfg_attr( all( test, target_feature = "vsx" ) , assert_instr( xvcmpgesp) ) ]
855853 unsafe fn vec_cmpge ( self , b : vector_float ) -> Self :: Result {
856- vec_vcmpgefp ( self , b)
854+ let result: m32x4 = simd_ge ( self , b) ;
855+ transmute ( result)
857856 }
858857 }
859858
859+ test_impl ! { vec_vcmpgefp( a: vector_float, b: vector_float) -> vector_bool_int [ vcmpgefp, vcmpgefp ] }
860860 test_impl ! { vec_vcmpequb( a: vector_unsigned_char, b: vector_unsigned_char) -> vector_bool_char [ vcmpequb, vcmpequb ] }
861861 test_impl ! { vec_vcmpequh( a: vector_unsigned_short, b: vector_unsigned_short) -> vector_bool_short [ vcmpequh, vcmpequh ] }
862862 test_impl ! { vec_vcmpequw( a: vector_unsigned_int, b: vector_unsigned_int) -> vector_bool_int [ vcmpequw, vcmpequw ] }
0 commit comments