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?