File tree Expand file tree Collapse file tree 4 files changed +433
-26
lines changed Expand file tree Collapse file tree 4 files changed +433
-26
lines changed Original file line number Diff line number Diff line change @@ -18,3 +18,9 @@ fn main() {
18
18
19
19
LLVM types the ` count ` parameter in ` _mm_sll_epi16 ` as ` i16x8 ` , but the right
20
20
type is probably ` i64x2 ` .
21
+
22
+ ---
23
+
24
+ What is the deal with the ucomi f64 comparison functions in SSE2? Clang's
25
+ headers indicate some specific behavior with NAN, but I can't seem to reproduce
26
+ it. Intel's official docs are very vague.
Original file line number Diff line number Diff line change @@ -156,29 +156,29 @@ sse2
156
156
* [x] ` _mm_cmpngt_sd `
157
157
* [x] ` _mm_cmpnge_sd `
158
158
* [x] ` _mm_cmpeq_pd `
159
- * [ ] ` _mm_cmplt_pd `
160
- * [ ] ` _mm_cmple_pd `
161
- * [ ] ` _mm_cmpgt_pd `
162
- * [ ] ` _mm_cmpge_pd `
163
- * [ ] ` _mm_cmpord_pd `
164
- * [ ] ` _mm_cmpunord_pd `
165
- * [ ] ` _mm_cmpneq_pd `
166
- * [ ] ` _mm_cmpnlt_pd `
167
- * [ ] ` _mm_cmpnle_pd `
168
- * [ ] ` _mm_cmpngt_pd `
169
- * [ ] ` _mm_cmpnge_pd `
170
- * [ ] ` _mm_comieq_sd `
171
- * [ ] ` _mm_comilt_sd `
172
- * [ ] ` _mm_comile_sd `
173
- * [ ] ` _mm_comigt_sd `
174
- * [ ] ` _mm_comige_sd `
175
- * [ ] ` _mm_comineq_sd `
176
- * [ ] ` _mm_ucomieq_sd `
177
- * [ ] ` _mm_ucomilt_sd `
178
- * [ ] ` _mm_ucomile_sd `
179
- * [ ] ` _mm_ucomigt_sd `
180
- * [ ] ` _mm_ucomige_sd `
181
- * [ ] ` _mm_ucomineq_sd `
159
+ * [x ] ` _mm_cmplt_pd `
160
+ * [x ] ` _mm_cmple_pd `
161
+ * [x ] ` _mm_cmpgt_pd `
162
+ * [x ] ` _mm_cmpge_pd `
163
+ * [x ] ` _mm_cmpord_pd `
164
+ * [x ] ` _mm_cmpunord_pd `
165
+ * [x ] ` _mm_cmpneq_pd `
166
+ * [x ] ` _mm_cmpnlt_pd `
167
+ * [x ] ` _mm_cmpnle_pd `
168
+ * [x ] ` _mm_cmpngt_pd `
169
+ * [x ] ` _mm_cmpnge_pd `
170
+ * [x ] ` _mm_comieq_sd `
171
+ * [x ] ` _mm_comilt_sd `
172
+ * [x ] ` _mm_comile_sd `
173
+ * [x ] ` _mm_comigt_sd `
174
+ * [x ] ` _mm_comige_sd `
175
+ * [x ] ` _mm_comineq_sd `
176
+ * [x ] ` _mm_ucomieq_sd `
177
+ * [x ] ` _mm_ucomilt_sd `
178
+ * [x ] ` _mm_ucomile_sd `
179
+ * [x ] ` _mm_ucomigt_sd `
180
+ * [x ] ` _mm_ucomige_sd `
181
+ * [x ] ` _mm_ucomineq_sd `
182
182
* [ ] ` _mm_cvtpd_ps `
183
183
* [ ] ` _mm_cvtps_pd `
184
184
* [ ] ` _mm_cvtpd_epi32 `
Original file line number Diff line number Diff line change @@ -4,8 +4,8 @@ use std::env;
4
4
use stdsimd as s;
5
5
6
6
#[ inline( never) ]
7
- fn foobar ( a : s:: f64x2 , b : s:: f64x2 ) -> s :: f64x2 {
8
- s:: _mm_cmpge_sd ( a, b)
7
+ fn foobar ( a : s:: f64x2 , b : s:: f64x2 ) -> bool {
8
+ s:: _mm_ucomieq_sd ( a, b)
9
9
}
10
10
11
11
fn main ( ) {
You can’t perform that action at this time.
0 commit comments