Skip to content

Commit f87d506

Browse files
committed
progress
1 parent 65f6966 commit f87d506

File tree

4 files changed

+433
-26
lines changed

4 files changed

+433
-26
lines changed

QUESTIONS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,9 @@ fn main() {
1818

1919
LLVM types the `count` parameter in `_mm_sll_epi16` as `i16x8`, but the right
2020
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.

TODO.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -156,29 +156,29 @@ sse2
156156
* [x] `_mm_cmpngt_sd`
157157
* [x] `_mm_cmpnge_sd`
158158
* [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`
182182
* [ ] `_mm_cvtpd_ps`
183183
* [ ] `_mm_cvtps_pd`
184184
* [ ] `_mm_cvtpd_epi32`

examples/play.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use std::env;
44
use stdsimd as s;
55

66
#[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)
99
}
1010

1111
fn main() {

0 commit comments

Comments
 (0)