@@ -35,30 +35,33 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
3535 } ) ;
3636 } ;
3737
38- // FIXME support float comparisons
3938 simd_eq, ( c x, c y) {
4039 validate_simd_type!( fx, intrinsic, span, x. layout( ) . ty) ;
41- simd_cmp!( fx, Equal ( x, y) -> ret) ;
40+ simd_cmp!( fx, Equal | Equal ( x, y) -> ret) ;
4241 } ;
4342 simd_ne, ( c x, c y) {
4443 validate_simd_type!( fx, intrinsic, span, x. layout( ) . ty) ;
45- simd_cmp!( fx, NotEqual ( x, y) -> ret) ;
44+ simd_cmp!( fx, NotEqual | NotEqual ( x, y) -> ret) ;
4645 } ;
4746 simd_lt, ( c x, c y) {
4847 validate_simd_type!( fx, intrinsic, span, x. layout( ) . ty) ;
49- simd_cmp!( fx, UnsignedLessThan |SignedLessThan ( x, y) -> ret) ;
48+ simd_cmp!( fx, UnsignedLessThan |SignedLessThan | LessThan ( x, y) -> ret) ;
5049 } ;
5150 simd_le, ( c x, c y) {
5251 validate_simd_type!( fx, intrinsic, span, x. layout( ) . ty) ;
53- simd_cmp!( fx, UnsignedLessThanOrEqual |SignedLessThanOrEqual ( x, y) -> ret) ;
52+ simd_cmp!( fx, UnsignedLessThanOrEqual |SignedLessThanOrEqual | LessThanOrEqual ( x, y) -> ret) ;
5453 } ;
5554 simd_gt, ( c x, c y) {
5655 validate_simd_type!( fx, intrinsic, span, x. layout( ) . ty) ;
57- simd_cmp!( fx, UnsignedGreaterThan |SignedGreaterThan ( x, y) -> ret) ;
56+ simd_cmp!( fx, UnsignedGreaterThan |SignedGreaterThan | GreaterThan ( x, y) -> ret) ;
5857 } ;
5958 simd_ge, ( c x, c y) {
6059 validate_simd_type!( fx, intrinsic, span, x. layout( ) . ty) ;
61- simd_cmp!( fx, UnsignedGreaterThanOrEqual |SignedGreaterThanOrEqual ( x, y) -> ret) ;
60+ simd_cmp!(
61+ fx,
62+ UnsignedGreaterThanOrEqual |SignedGreaterThanOrEqual |GreaterThanOrEqual
63+ ( x, y) -> ret
64+ ) ;
6265 } ;
6366
6467 // simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U
0 commit comments