1 // compile-flags: -O -C target-feature=+avx
3 // ignore-debug: the debug assertions get in the way
9 // SIMD types are highly-aligned already, so make sure the swap code leaves their
10 // types alone and doesn't pessimize them (such as by swapping them as `usize`s).
12 use core::arch::x86_64::__m256;
14 // CHECK-LABEL: @swap_single_m256
16 pub fn swap_single_m256(x: &mut __m256, y: &mut __m256) {
18 // CHECK: load <8 x float>{{.+}}align 32
19 // CHECK: store <8 x float>{{.+}}align 32
23 // CHECK-LABEL: @swap_m256_slice
25 pub fn swap_m256_slice(x: &mut [__m256], y: &mut [__m256]) {
27 // CHECK: load <8 x float>{{.+}}align 32
28 // CHECK: store <8 x float>{{.+}}align 32
29 if x.len() == y.len() {