added ARM NEON implementation