@@ -35,30 +35,33 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
35
35
} ) ;
36
36
} ;
37
37
38
- // FIXME support float comparisons
39
38
simd_eq, ( c x, c y) {
40
39
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) ;
42
41
} ;
43
42
simd_ne, ( c x, c y) {
44
43
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) ;
46
45
} ;
47
46
simd_lt, ( c x, c y) {
48
47
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) ;
50
49
} ;
51
50
simd_le, ( c x, c y) {
52
51
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) ;
54
53
} ;
55
54
simd_gt, ( c x, c y) {
56
55
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) ;
58
57
} ;
59
58
simd_ge, ( c x, c y) {
60
59
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
+ ) ;
62
65
} ;
63
66
64
67
// simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U
0 commit comments