Add json-framed encoding, docs, refactor
This commit is contained in:
@@ -68,3 +68,74 @@ pub fn lz4_decompress(inp: &[u8], out: &mut [u8]) -> Result<usize, isize> {
|
||||
Ok(ec as _)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod _simd {
|
||||
use std::arch::x86_64::_mm_loadu_si128;
|
||||
use std::arch::x86_64::_mm_shuffle_epi32;
|
||||
use std::ptr::null;
|
||||
|
||||
#[test]
|
||||
fn simd_test() {
|
||||
if is_x86_feature_detected!("sse") {
|
||||
eprintln!("have sse 1");
|
||||
}
|
||||
if is_x86_feature_detected!("sse2") {
|
||||
eprintln!("have sse 2");
|
||||
unsafe { simd_sse_2() };
|
||||
}
|
||||
if is_x86_feature_detected!("sse3") {
|
||||
eprintln!("have sse 3");
|
||||
unsafe { simd_sse_3() };
|
||||
}
|
||||
if is_x86_feature_detected!("sse4.1") {
|
||||
eprintln!("have sse 4.1");
|
||||
unsafe { simd_sse_4_1() };
|
||||
}
|
||||
if is_x86_feature_detected!("sse4.2") {
|
||||
eprintln!("have sse 4.2");
|
||||
unsafe { simd_sse_4_2() };
|
||||
}
|
||||
if is_x86_feature_detected!("sse4a") {
|
||||
eprintln!("have sse 4 a");
|
||||
}
|
||||
if is_x86_feature_detected!("avx") {
|
||||
eprintln!("have avx 1");
|
||||
}
|
||||
if is_x86_feature_detected!("avx2") {
|
||||
eprintln!("have avx 2");
|
||||
}
|
||||
}
|
||||
|
||||
#[target_feature(enable = "sse2")]
|
||||
unsafe fn simd_sse_2() {
|
||||
// _mm_loadu_si128(null());
|
||||
eprintln!("sse 2 done");
|
||||
}
|
||||
|
||||
#[target_feature(enable = "sse3")]
|
||||
unsafe fn simd_sse_3() {
|
||||
// core::arch::asm!();
|
||||
// core::arch::global_asm!();
|
||||
let a = core::arch::x86_64::_mm256_setzero_si256();
|
||||
let b = core::arch::x86_64::_mm256_set_epi32(7, 3, 9, 11, 17, 13, 19, 21);
|
||||
let x = core::arch::x86_64::_mm256_xor_si256(a, b);
|
||||
core::arch::x86_64::_mm256_loadu_si256(&x as *const _);
|
||||
// core::arch::x86_64::vpl!();
|
||||
// core::arch::x86_64::vps!();
|
||||
// let c = core::arch::x86_64::_mm256_shuffle_i32x4(a, b);
|
||||
eprintln!("sse 3 done");
|
||||
}
|
||||
|
||||
#[target_feature(enable = "sse4.1")]
|
||||
unsafe fn simd_sse_4_1() {
|
||||
// _mm_loadu_si128(null());
|
||||
eprintln!("sse 4.1 done");
|
||||
}
|
||||
|
||||
#[target_feature(enable = "sse4.2")]
|
||||
unsafe fn simd_sse_4_2() {
|
||||
// _mm_loadu_si128(null());
|
||||
eprintln!("sse 4.2 done");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user