arduano / simdeez

easy simd
MIT License
331 stars 25 forks source link

Finish Scalar Fallback #8

Closed jackmott closed 5 years ago

jackmott commented 5 years ago

I've got the bulk of a scalar fallback implemented in branch "scalar". This will let you generate normal scalar code on platforms that have no simd at all. This will let SIMDeez build on ARM, which currently it can't since there is no NEON instruction set yet.

We need to make sure all the cast and conversion operations make sense, and figure out how to do unpack and mullhi. We also need some test coverage.

jackmott commented 5 years ago

I've done some basic testing, running scalar through it's paces with fractal brownian motion and cellular noise and all is well. unpack and the multiply operations still need finishing though.

also, I was using the libm crate to handling things like floor/ceil/sqrt, since I want to keep simdeez as nostd, however there are some bugs relating to overflow behavior in that crate, and fixes haven't been merged in months, so I pulled the code directly into simdeez with overflow fixes. There might be more that are needed. And if libm gets active again or goes 1.0 we could revert back to using the crate.

jackmott commented 5 years ago

have this pretty well sorted now.