Cycles is Blender's physically-based path tracer for production rendering. Recently, Apple Inc. sent Aarch64 patch to Blender developer as shown on D8237: Cycles: support neon instructions for arm64 processors. However, file intern/cycles/util/util_sse_to_neon.h provided by D8237 was incomplete, and Blender developers were discussing the integration of sse2neon.
Missing intrinsics in SSE2NEON required for building Cycles:
[x] _mm_cmpnle_ps
[x] _mm_cmpnlt_ps
[x] _mm_fmadd_ps (FMA)
[x] _mm_fmsub_ps (FMA)
[ ] _mm_fnmadd_ps (FMA)
[ ] _mm_fnmsub_ps (FMA)
[x] _mm_floor_ps
[x] _mm_ceil_ps
[x] _mm_castps_pd
[x] _mm_stream_ps
[x] _mm_blendv_ps
[x] _mm_dp_ps
[x] _mm_stream_load_si128
D8237 also defines _mm_cmple_epi32 and _mm_cmpge_epi32, which are not part of SSE intrinsics.
Fortunately, the simplified implementations are available in D8237.
Cycles is Blender's physically-based path tracer for production rendering. Recently, Apple Inc. sent Aarch64 patch to Blender developer as shown on D8237: Cycles: support neon instructions for arm64 processors. However, file
intern/cycles/util/util_sse_to_neon.h
provided by D8237 was incomplete, and Blender developers were discussing the integration of sse2neon.Missing intrinsics in SSE2NEON required for building Cycles:
_mm_cmpnle_ps
_mm_cmpnlt_ps
_mm_fmadd_ps
(FMA)_mm_fmsub_ps
(FMA)_mm_fnmadd_ps
(FMA)_mm_fnmsub_ps
(FMA)_mm_floor_ps
_mm_ceil_ps
_mm_castps_pd
_mm_stream_ps
_mm_blendv_ps
_mm_dp_ps
_mm_stream_load_si128
D8237 also defines
_mm_cmple_epi32
and_mm_cmpge_epi32
, which are not part of SSE intrinsics.Fortunately, the simplified implementations are available in D8237.