use crate::{
formats::{Abgr32, Rgba32},
math::*,
op::{avx::*, binary_map_pixel_data_with},
prelude::*,
};
pub fn avx_rgba32_abgr32(
write_data: &mut dyn BitmapRawDataMut,
read_data: &dyn BitmapRawData,
params: &(PixelBox, PixelPoint),
) {
binary_map_pixel_data_with::<8, Rgba32, Abgr32>(
write_data,
read_data,
params.0.size(),
params.1,
params.0.min,
|w, r| unsafe {
(rgba32_abgr32_simple)(
&mut *(w.as_mut_ptr() as *mut [u8; 32]),
&*(r.as_ptr() as *const [u8; 32]),
)
},
)
}
#[inline]
#[target_feature(enable = "avx2")]
fn rgba32_abgr32_simple(e: &mut [u8; 32], s: &[u8; 32]) {
Ri8x32::load32(s).swap_endianness().store32(e)
}