This program emits psllw
instead of pslliw
instruction. pslliw
should be usable here since imm8
is a constant:
extern crate stdsimd; use std::env; use stdsimd as s; fn main() { let imm8: i32 = env::args().nth(1).unwrap().parse().unwrap(); let a = s::i16x8::new(imm8 as i16, 0, 0, 0, 0, 0, 0, 0); println!("{:?}", s::_mm_slli_epi16(a, 4)); }
LLVM types the count
parameter in _mm_sll_epi16
as i16x8
, but the right type is probably i64x2
.
What is the deal with the ucomi f64 comparison functions in SSE2? Clang‘s headers indicate some specific behavior with NAN, but I can’t seem to reproduce it. Intel's official docs are very vague.
_mm256_blendv_pd
takes a mask parameter with type f64x4
, but the documentation seems to indicate that it is a bit vector. What's going on?