Two questions for now, what to do to fill the data from `vals` into `a` import nimsimd/avx2 when defined(gcc) or defined(clang): {.localPassc: "-mavx2".} proc test(vals: seq[float32])= let a = mm256_load_ps(vals.what_goes_here_??) b = mm256_set1_ps(-2.0) c = mm256_mul_ps(a, b) d = mm256_andnot_ps(mm256_set1_ps(-0.0), c) #abs echo cast[array[8, float32]](d) test(@[1.0.float32, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]) Run
how to adapt `mm256_abs_ps` to make it work? proc mm256_abs_ps(x: M256): M256 = mm256_andnot_ps(mm256_set1_ps(-0.0), x) let a = mm256_setr_ps(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0) b = mm256_set1_ps(-2.0) c = mm256_mul_ps(a, b) d = mm256_abs_ps(c) echo cast[array[8, float32]](d) #SIGSEGV: Illegal storage access. (Attempt to read from nil?) @ d Run