Skip to content

Instantly share code, notes, and snippets.

@nemequ
Last active January 11, 2021 05:58
Show Gist options
  • Save nemequ/fe2f276e1e7d33659cbf77ae0d5526be to your computer and use it in GitHub Desktop.
Save nemequ/fe2f276e1e7d33659cbf77ae0d5526be to your computer and use it in GitHub Desktop.
NEON progress
  • abal_high
  • abal
  • aba
  • abdl_high
  • abdl
  • abd
  • abs
  • addhn_high
  • addhn
  • addl_high
  • addl
  • addlv
  • add
  • addv
  • addw_high
  • addw
  • aesd
  • aese
  • aesimc
  • aesmc
  • and
  • bcax
  • bfdot
  • bfdot_lane
  • bfmlalb
  • bfmlalb_lane
  • bfmlalt
  • bfmlalt_lane
  • bfmmla
  • bic
  • bsl
  • cadd
  • cage
  • cagt
  • cale
  • calt
  • ce
  • ceq
    • vceqq_f32
    • vceqq_f64
    • vceqq_s16
    • vceqq_s32
    • vceqq_s64
    • vceqq_s8
    • vceqq_u16
    • vceqq_u32
    • vceqq_u64
    • vceqq_u8
    • vceqd_f64
    • vceqd_s64
    • vceqd_u64
    • vceqs_f32
  • ceqz
    • vceqz_f32
    • vceqz_f64
    • vceqzq_f32
    • vceqzq_f64
    • vceqzq_s16
    • vceqzq_s32
    • vceqzq_s64
    • vceqzq_s8
    • vceqzq_u16
    • vceqzq_u32
    • vceqzq_u64
    • vceqzq_u8
    • vceqz_s16
    • vceqz_s32
    • vceqz_s64
    • vceqz_s8
    • vceqz_u16
    • vceqz_u32
    • vceqz_u64
    • vceqz_u8
    • vceqzd_f64
    • vceqzd_s64
    • vceqzd_u64
    • vceqzs_f32
  • cge
    • vcge_f32
    • vcge_f64
    • vcgeq_f32
    • vcgeq_f64
    • vcgeq_s16
    • vcgeq_s32
    • vcgeq_s64
    • vcgeq_s8
    • vcgeq_u16
    • vcgeq_u32
    • vcgeq_u64
    • vcgeq_u8
    • vcge_s16
    • vcge_s32
    • vcge_s64
    • vcge_s8
    • vcge_u16
    • vcge_u32
    • vcge_u64
    • vcge_u8
    • vcged_f64
    • vcged_s64
    • vcged_u64
    • vcges_f32
  • cgez
    • vcgez_f32
    • vcgez_f64
    • vcgezq_f32
    • vcgezq_f64
    • vcgezq_s16
    • vcgezq_s32
    • vcgezq_s64
    • vcgezq_s8
    • vcgez_s16
    • vcgez_s32
    • vcgez_s64
    • vcgez_s8
    • vcgezd_f64
    • vcgezd_s64
    • vcgezs_f32
  • cgt
    • vcgt_f32
    • vcgt_f64
    • vcgtq_f32
    • vcgtq_f64
    • vcgtq_s16
    • vcgtq_s32
    • vcgtq_s64
    • vcgtq_s8
    • vcgtq_u16
    • vcgtq_u32
    • vcgtq_u64
    • vcgtq_u8
    • vcgt_s16
    • vcgt_s32
    • vcgt_s64
    • vcgt_s8
    • vcgt_u16
    • vcgt_u32
    • vcgt_u64
    • vcgt_u8
    • vcgtd_f64
    • vcgtd_s64
    • vcgtd_u64
    • vcgts_f32
  • cgtz
    • vcgtz_f32
    • vcgtz_f64
    • vcgtzq_f32
    • vcgtzq_f64
    • vcgtzq_s16
    • vcgtzq_s32
    • vcgtzq_s64
    • vcgtzq_s8
    • vcgtz_s16
    • vcgtz_s32
    • vcgtz_s64
    • vcgtz_s8
    • vcgtzd_f64
    • vcgtzd_s64
    • vcgtzs_f32
  • cle
    • vcle_f32
    • vcle_f64
    • vcleq_f32
    • vcleq_f64
    • vcleq_s16
    • vcleq_s32
    • vcleq_s64
    • vcleq_s8
    • vcleq_u16
    • vcleq_u32
    • vcleq_u64
    • vcleq_u8
    • vcle_s16
    • vcle_s32
    • vcle_s64
    • vcle_s8
    • vcle_u16
    • vcle_u32
    • vcle_u64
    • vcle_u8
    • vcled_f64
    • vcled_s64
    • vcled_u64
    • vcles_f32
  • clez
    • vclez_f32
    • vclez_f64
    • vclezq_f32
    • vclezq_f64
    • vclezq_s16
    • vclezq_s32
    • vclezq_s64
    • vclezq_s8
    • vclez_s16
    • vclez_s32
    • vclez_s64
    • vclez_s8
    • vclezd_f64
    • vclezd_s64
    • vclezs_f32
  • cls
  • clt
    • vclt_f32
    • vclt_f64
    • vcltq_f32
    • vcltq_f64
    • vcltq_s16
    • vcltq_s32
    • vcltq_s64
    • vcltq_s8
    • vcltq_u16
    • vcltq_u32
    • vcltq_u64
    • vcltq_u8
    • vclt_s16
    • vclt_s32
    • vclt_s64
    • vclt_s8
    • vclt_u16
    • vclt_u32
    • vclt_u64
    • vclt_u8
    • vcltd_f64
    • vcltd_s64
    • vcltd_u64
    • vclts_f32
  • cltz
    • vcltz_f32
    • vcltz_f64
    • vcltzq_f32
    • vcltzq_f64
    • vcltzq_s16
    • vcltzq_s32
    • vcltzq_s64
    • vcltzq_s8
    • vcltz_s16
    • vcltz_s32
    • vcltz_s64
    • vcltz_s8
    • vcltzd_f64
    • vcltzd_s64
    • vcltzs_f32
  • clz
  • cmla
  • cmla_lane
  • cnt
  • combine
  • copy_lane
  • create
  • cvta
  • cvt
    • vcvt_f16_f32
    • vcvt_f16_s16
    • vcvt_f16_u16
    • vcvt_f32_f64
    • vcvt_f32_s32
    • vcvt_f32_u32
    • vcvt_f64_f32
    • vcvt_f64_s64
    • vcvt_f64_u64
    • vcvt_low_bf16_f32
    • vcvtq_f16_s16
    • vcvtq_f16_u16
    • vcvtq_f32_s32
    • vcvtq_f32_u32
    • vcvtq_f64_s64
    • vcvtq_f64_u64
    • vcvtq_low_bf16_f32
    • vcvtq_s32_f32
    • vcvtq_s64_f64
    • vcvtq_u32_f32
    • vcvtq_u64_f64
    • vcvt_s32_f32
    • vcvt_s64_f64
    • vcvt_u32_f32
    • vcvt_u64_f64
    • vcvtd_f64_s64
    • vcvtd_f64_u64
    • vcvtd_n_f64_s64
    • vcvtd_n_f64_u64
    • vcvtd_n_s64_f64
    • vcvtd_n_u64_f64
    • vcvtd_s64_f64
    • vcvtd_u64_f64
    • vcvth_bf16_f32
    • vcvth_f16_s16
    • vcvth_f16_s32
    • vcvth_f16_s64
    • vcvth_f16_u16
    • vcvth_f16_u32
    • vcvth_f16_u64
    • vcvth_n_f16_s16
    • vcvth_n_f16_s32
    • vcvth_n_f16_s64
    • vcvth_n_f16_u16
    • vcvth_n_f16_u32
    • vcvth_n_f16_u64
    • vcvts_f32_s32
    • vcvts_f32_u32
    • vcvts_n_f32_s32
    • vcvts_n_f32_u32
    • vcvts_n_s32_f32
    • vcvts_n_u32_f32
    • vcvts_s32_f32
    • vcvts_u32_f32
  • cvt_high
  • cvtm
  • cvt_n
  • cvtn
  • cvtp
  • cvtx
  • cvtx_high
  • div
  • dot_lane
    • vdot_laneq_s32
    • vdot_laneq_u32
    • vdot_lane_s32
    • vdot_lane_u32
    • vdotq_laneq_s32
    • vdotq_laneq_u32
    • vdotq_lane_s32
    • vdotq_lane_u32
  • dot
  • dup_lane
    • vdup_lane_f32
    • vdup_lane_f64
    • vdup_laneq_f32
    • vdup_laneq_f64
    • vdup_laneq_s16
    • vdup_laneq_s32
    • vdup_laneq_s64
    • vdup_laneq_s8
    • vdup_laneq_u16
    • vdup_laneq_u32
    • vdup_laneq_u64
    • vdup_laneq_u8
    • vdup_lane_s16
    • vdup_lane_s32
    • vdup_lane_s64
    • vdup_lane_s8
    • vdup_lane_u16
    • vdup_lane_u32
    • vdup_lane_u64
    • vdup_lane_u8
    • vdupq_lane_f32
    • vdupq_lane_f64
    • vdupq_laneq_f32
    • vdupq_laneq_f64
    • vdupq_laneq_s16
    • vdupq_laneq_s32
    • vdupq_laneq_s64
    • vdupq_laneq_s8
    • vdupq_laneq_u16
    • vdupq_laneq_u32
    • vdupq_laneq_u64
    • vdupq_laneq_u8
    • vdupq_lane_s16
    • vdupq_lane_s32
    • vdupq_lane_s64
    • vdupq_lane_s8
    • vdupq_lane_u16
    • vdupq_lane_u32
    • vdupq_lane_u64
    • vdupq_lane_u8
  • dup_n
  • eor3
  • eor
  • ext
  • fma
  • fma_lane
  • fma_n
  • fms
  • fms_lane
  • fms_n
  • get_high
  • get_lane
  • get
  • hadd
  • hsub
  • ld1
    • vld1_dup_f32
    • vld1_dup_f64
    • vld1_dup_s16
    • vld1_dup_s32
    • vld1_dup_s64
    • vld1_dup_s8
    • vld1_dup_u16
    • vld1_dup_u32
    • vld1_dup_u64
    • vld1_dup_u8
    • vld1_f32
    • vld1_f64
    • vld1q_dup_f32
    • vld1q_dup_f64
    • vld1q_dup_s16
    • vld1q_dup_s32
    • vld1q_dup_s64
    • vld1q_dup_s8
    • vld1q_dup_u16
    • vld1q_dup_u32
    • vld1q_dup_u64
    • vld1q_dup_u8
    • vld1q_f32
    • vld1q_f64
    • vld1q_s16
    • vld1q_s32
    • vld1q_s64
    • vld1q_s8
    • vld1q_u16
    • vld1q_u32
    • vld1q_u64
    • vld1q_u8
    • vld1_s16
    • vld1_s32
    • vld1_s64
    • vld1_s8
    • vld1_u16
    • vld1_u32
    • vld1_u64
    • vld1_u8
  • ld1_lane
  • ld2
  • ld2_lane
  • ld3
    • vld3_dup_f32
    • vld3_dup_f64
    • vld3_dup_s16
    • vld3_dup_s32
    • vld3_dup_s64
    • vld3_dup_s8
    • vld3_dup_u16
    • vld3_dup_u32
    • vld3_dup_u64
    • vld3_dup_u8
    • vld3_f32
    • vld3_f64
    • vld3q_dup_f32
    • vld3q_dup_f64
    • vld3q_dup_s16
    • vld3q_dup_s32
    • vld3q_dup_s64
    • vld3q_dup_s8
    • vld3q_dup_u16
    • vld3q_dup_u32
    • vld3q_dup_u64
    • vld3q_dup_u8
    • vld3q_f32
    • vld3q_f64
    • vld3q_s16
    • vld3q_s32
    • vld3q_s64
    • vld3q_s8
    • vld3q_u16
    • vld3q_u32
    • vld3q_u64
    • vld3q_u8
    • vld3_s16
    • vld3_s32
    • vld3_s64
    • vld3_s8
    • vld3_u16
    • vld3_u32
    • vld3_u64
    • vld3_u8
  • ld3_lane
  • ld4
    • vld4_dup_f32
    • vld4_dup_f64
    • vld4_dup_s16
    • vld4_dup_s32
    • vld4_dup_s64
    • vld4_dup_s8
    • vld4_dup_u16
    • vld4_dup_u32
    • vld4_dup_u64
    • vld4_dup_u8
    • vld4_f32
    • vld4_f64
    • vld4q_dup_f32
    • vld4q_dup_f64
    • vld4q_dup_s16
    • vld4q_dup_s32
    • vld4q_dup_s64
    • vld4q_dup_s8
    • vld4q_dup_u16
    • vld4q_dup_u32
    • vld4q_dup_u64
    • vld4q_dup_u8
    • vld4q_f32
    • vld4q_f64
    • vld4q_s16
    • vld4q_s32
    • vld4q_s64
    • vld4q_s8
    • vld4q_u16
    • vld4q_u32
    • vld4q_u64
    • vld4q_u8
    • vld4_s16
    • vld4_s32
    • vld4_s64
    • vld4_s8
    • vld4_u16
    • vld4_u32
    • vld4_u64
    • vld4_u8
  • ld4_lane
  • max
  • maxnm
  • maxnmv
  • maxv
  • min
  • minnm
  • minnmv
  • minv
  • mla
  • mla_lane
  • mlal_high
    • vmlal_high_laneq_s16
    • vmlal_high_laneq_s32
    • vmlal_high_laneq_u16
    • vmlal_high_laneq_u32
    • vmlal_high_lane_s16
    • vmlal_high_lane_s32
    • vmlal_high_lane_u16
    • vmlal_high_lane_u32
    • vmlal_high_s16
    • vmlal_high_s32
    • vmlal_high_s8
    • vmlal_high_u16
    • vmlal_high_u32
    • vmlal_high_u8
  • mlal_high_n
  • mlal_lane
  • mlal_n
  • mlal
  • mla_n
  • mlsl_high
    • vmlsl_high_laneq_s16
    • vmlsl_high_laneq_s32
    • vmlsl_high_laneq_u16
    • vmlsl_high_laneq_u32
    • vmlsl_high_lane_s16
    • vmlsl_high_lane_s32
    • vmlsl_high_lane_u16
    • vmlsl_high_lane_u32
    • vmlsl_high_s16
    • vmlsl_high_s32
    • vmlsl_high_s8
    • vmlsl_high_u16
    • vmlsl_high_u32
    • vmlsl_high_u8
  • mlsl_high_n
  • mlsl_lane
  • mlsl_n
  • mlsl
  • mls
    • vmlsq_f32
    • vmlsq_f64
    • vmlsq_s16
    • vmlsq_s32
    • vmlsq_s8
    • vmlsq_u16
    • vmlsq_u32
    • vmlsq_u8
    • vmls_f32
    • vmls_f64
    • vmls_lane_f32
    • vmls_laneq_f32
    • vmls_laneq_s16
    • vmls_laneq_s32
    • vmls_laneq_u16
    • vmls_laneq_u32
    • vmls_lane_s16
    • vmls_lane_s32
    • vmls_lane_u16
    • vmls_lane_u32
    • vmls_n_f32
    • vmls_n_s16
    • vmls_n_s32
    • vmls_n_u16
    • vmls_n_u32
    • vmls_s16
    • vmls_s32
    • vmls_s8
    • vmls_u16
    • vmls_u32
    • vmls_u8
  • mls_lane
  • mls_n
  • mmla
  • movl_high
  • movl
  • mov_n
  • movn_high
  • movn
  • mul
    • vmul_f32
    • vmul_f64
    • vmulq_f32
    • vmulq_f64
    • vmulq_s16
    • vmulq_s32
    • vmulq_s8
    • vmulq_u16
    • vmulq_u32
    • vmulq_u8
    • vmul_s16
    • vmul_s32
    • vmul_s8
    • vmul_u16
    • vmul_u32
    • vmul_u8
    • vmuld_lane_f64
    • vmuld_laneq_f64
    • vmuls_lane_f32
    • vmuls_laneq_f32
  • mul_lane
    • vmul_lane_f32
    • vmul_lane_f64
    • vmul_laneq_f32
    • vmul_laneq_f64
    • vmul_laneq_s16
    • vmul_laneq_s32
    • vmul_laneq_u16
    • vmul_laneq_u32
    • vmul_lane_s16
    • vmul_lane_s32
    • vmul_lane_u16
    • vmul_lane_u32
    • vmulq_lane_f32
    • vmulq_lane_f64
    • vmulq_laneq_f32
    • vmulq_laneq_f64
    • vmulq_laneq_s16
    • vmulq_laneq_s32
    • vmulq_laneq_u16
    • vmulq_laneq_u32
    • vmulq_lane_s16
    • vmulq_lane_s32
    • vmulq_lane_u16
    • vmulq_lane_u32
  • mull_high
    • vmull_high_laneq_s16
    • vmull_high_laneq_s32
    • vmull_high_laneq_u16
    • vmull_high_laneq_u32
    • vmull_high_lane_s16
    • vmull_high_lane_s32
    • vmull_high_lane_u16
    • vmull_high_lane_u32
    • vmull_high_s16
    • vmull_high_s32
    • vmull_high_s8
    • vmull_high_u16
    • vmull_high_u32
    • vmull_high_u8
  • mull_high_n
  • mull_lane
  • mull_n
  • mull
  • mul_n
  • mulx
  • mulx_lane
  • mvn
  • neg
    • vneg_f32
    • vneg_f64
    • vnegq_f32
    • vnegq_f64
    • vnegq_s16
    • vnegq_s32
    • vnegq_s64
    • vnegq_s8
    • vneg_s16
    • vneg_s32
    • vneg_s64
    • vneg_s8
    • vnegd_s64
  • orn
  • orr
  • padal
  • paddl
  • padd
    • vpaddq_f32
    • vpaddq_f64
    • vpaddq_s16
    • vpaddq_s32
    • vpaddq_s64
    • vpaddq_s8
    • vpaddq_u16
    • vpaddq_u32
    • vpaddq_u64
    • vpaddq_u8
    • vpaddd_f64
    • vpaddd_s64
    • vpaddd_u64
    • vpadd_f32
    • vpadd_s16
    • vpadd_s32
    • vpadd_s8
    • vpadds_f32
    • vpadd_u16
    • vpadd_u32
    • vpadd_u8
  • pmax
    • vpmax_f32
    • vpmaxq_f32
    • vpmaxq_f64
    • vpmaxq_s16
    • vpmaxq_s32
    • vpmaxq_s8
    • vpmaxq_u16
    • vpmaxq_u32
    • vpmaxq_u8
    • vpmax_s16
    • vpmax_s32
    • vpmax_s8
    • vpmax_u16
    • vpmax_u32
    • vpmax_u8
    • vpmaxs_f32
  • pmaxnm
  • pmin
    • vpmin_f32
    • vpminq_f32
    • vpminq_f64
    • vpminq_s16
    • vpminq_s32
    • vpminq_s8
    • vpminq_u16
    • vpminq_u32
    • vpminq_u8
    • vpmin_s16
    • vpmin_s32
    • vpmin_s8
    • vpmin_u16
    • vpmin_u32
    • vpmin_u8
    • vpmins_f32
  • pminnm
  • qabs
  • qadd
  • qdmlal_high
  • qdmlal_high_n
  • qdmlal_lane
  • qdmlal_n
  • qdmlal
  • qdmlsl_high
  • qdmlsl_high_n
  • qdmlsl_lane
  • qdmlsl_n
  • qdmlsl
  • qdmulh_lane
  • qdmulh_n
  • qdmulh
    • vqdmulhq_s16
    • vqdmulhq_s32
    • vqdmulhh_laneq_s16
    • vqdmulhh_lane_s16
    • vqdmulhh_s16
    • vqdmulh_laneq_s16
    • vqdmulh_laneq_s32
    • vqdmulh_lane_s16
    • vqdmulh_lane_s32
    • vqdmulh_n_s16
    • vqdmulh_n_s32
    • vqdmulh_s16
    • vqdmulh_s32
    • vqdmulhs_laneq_s32
    • vqdmulhs_lane_s32
    • vqdmulhs_s32
  • qdmull_high
  • qdmull_high_n
  • qdmull_lane
  • qdmull_n
  • qdmull
    • vqdmull_s16
    • vqdmull_s32
    • vqdmullh_laneq_s16
    • vqdmullh_lane_s16
    • vqdmullh_s16
    • vqdmulls_laneq_s32
    • vqdmulls_lane_s32
    • vqdmulls_s32
  • qmovn_high
  • qmovn
  • qmovun_high
  • qmovun
  • qneg
  • qrdmlah_lane
  • qrdmlah
  • qrdmlsh_lane
  • qrdmlsh
  • qrdmulh_lane
  • qrdmulh_n
  • qrdmulh
    • vqrdmulhq_s16
    • vqrdmulhq_s32
    • vqrdmulhh_laneq_s16
    • vqrdmulhh_lane_s16
    • vqrdmulhh_s16
    • vqrdmulh_laneq_s16
    • vqrdmulh_laneq_s32
    • vqrdmulh_lane_s16
    • vqrdmulh_lane_s32
    • vqrdmulh_n_s16
    • vqrdmulh_n_s32
    • vqrdmulh_s16
    • vqrdmulh_s32
    • vqrdmulhs_laneq_s32
    • vqrdmulhs_lane_s32
    • vqrdmulhs_s32
  • qrshl
  • qrshrn_high_n
  • qrshrn_n
  • qrshrun_high_n
  • qrshrun_n
  • qshl_n
  • qshl
    • vqshlq_s16
    • vqshlq_s32
    • vqshlq_s64
    • vqshlq_s8
    • vqshlq_u16
    • vqshlq_u32
    • vqshlq_u64
    • vqshlq_u8
    • vqshl_s16
    • vqshl_s32
    • vqshl_s64
    • vqshl_s8
    • vqshl_u16
    • vqshl_u32
    • vqshl_u64
    • vqshl_u8
    • vqshlb_n_s8
    • vqshlb_n_u8
    • vqshlb_s8
    • vqshlb_u8
    • vqshld_n_s64
    • vqshld_n_u64
    • vqshld_s64
    • vqshld_u64
    • vqshlh_n_s16
    • vqshlh_n_u16
    • vqshlh_s16
    • vqshlh_u16
    • vqshls_n_s32
    • vqshls_n_u32
    • vqshls_s32
    • vqshls_u32
  • qshlu_n
  • qshrn_high_n
  • qshrn_n
  • qshrun_high_n
  • qshrun_n
  • qsub
  • qtbl1
  • qtbl2
  • qtbl3
  • qtbl4
  • qtbx1
  • qtbx2
  • qtbx3
  • qtbx4
  • raddhn_high
  • raddhn
  • rax1
  • rbit
  • recpe
  • recps
  • reinterpret
    • vreinterpret_bf16_f32
    • vreinterpret_bf16_f64
    • vreinterpret_bf16_s16
    • vreinterpret_bf16_s32
    • vreinterpret_bf16_s64
    • vreinterpret_bf16_s8
    • vreinterpret_bf16_u16
    • vreinterpret_bf16_u32
    • vreinterpret_bf16_u64
    • vreinterpret_bf16_u8
    • vreinterpret_f16_f32
    • vreinterpret_f16_f64
    • vreinterpret_f16_s16
    • vreinterpret_f16_s32
    • vreinterpret_f16_s64
    • vreinterpret_f16_s8
    • vreinterpret_f16_u16
    • vreinterpret_f16_u32
    • vreinterpret_f16_u64
    • vreinterpret_f16_u8
    • vreinterpret_f32_f64
    • vreinterpret_f32_s16
    • vreinterpret_f32_s32
    • vreinterpret_f32_s64
    • vreinterpret_f32_s8
    • vreinterpret_f32_u16
    • vreinterpret_f32_u32
    • vreinterpret_f32_u64
    • vreinterpret_f32_u8
    • vreinterpret_f64_f32
    • vreinterpret_f64_s16
    • vreinterpret_f64_s32
    • vreinterpret_f64_s64
    • vreinterpret_f64_s8
    • vreinterpret_f64_u16
    • vreinterpret_f64_u32
    • vreinterpret_f64_u64
    • vreinterpret_f64_u8
    • vreinterpret_p16_f32
    • vreinterpret_p16_f64
    • vreinterpret_p16_s16
    • vreinterpret_p16_s32
    • vreinterpret_p16_s64
    • vreinterpret_p16_s8
    • vreinterpret_p16_u16
    • vreinterpret_p16_u32
    • vreinterpret_p16_u64
    • vreinterpret_p16_u8
    • vreinterpret_p64_f32
    • vreinterpret_p64_f64
    • vreinterpret_p64_s16
    • vreinterpret_p64_s32
    • vreinterpret_p64_s8
    • vreinterpret_p64_u16
    • vreinterpret_p64_u32
    • vreinterpret_p64_u64
    • vreinterpret_p64_u8
    • vreinterpret_p8_f32
    • vreinterpret_p8_f64
    • vreinterpret_p8_s16
    • vreinterpret_p8_s32
    • vreinterpret_p8_s64
    • vreinterpret_p8_s8
    • vreinterpret_p8_u16
    • vreinterpret_p8_u32
    • vreinterpret_p8_u64
    • vreinterpret_p8_u8
    • vreinterpretq_bf16_f32
    • vreinterpretq_bf16_f64
    • vreinterpretq_bf16_s16
    • vreinterpretq_bf16_s32
    • vreinterpretq_bf16_s64
    • vreinterpretq_bf16_s8
    • vreinterpretq_bf16_u16
    • vreinterpretq_bf16_u32
    • vreinterpretq_bf16_u64
    • vreinterpretq_bf16_u8
    • vreinterpretq_f16_f32
    • vreinterpretq_f16_f64
    • vreinterpretq_f16_s16
    • vreinterpretq_f16_s32
    • vreinterpretq_f16_s64
    • vreinterpretq_f16_s8
    • vreinterpretq_f16_u16
    • vreinterpretq_f16_u32
    • vreinterpretq_f16_u64
    • vreinterpretq_f16_u8
    • vreinterpretq_f32_f64
    • vreinterpretq_f32_s16
    • vreinterpretq_f32_s32
    • vreinterpretq_f32_s64
    • vreinterpretq_f32_s8
    • vreinterpretq_f32_u16
    • vreinterpretq_f32_u32
    • vreinterpretq_f32_u64
    • vreinterpretq_f32_u8
    • vreinterpretq_f64_f32
    • vreinterpretq_f64_s16
    • vreinterpretq_f64_s32
    • vreinterpretq_f64_s64
    • vreinterpretq_f64_s8
    • vreinterpretq_f64_u16
    • vreinterpretq_f64_u32
    • vreinterpretq_f64_u64
    • vreinterpretq_f64_u8
    • vreinterpretq_p128_f32
    • vreinterpretq_p128_f64
    • vreinterpretq_p128_s16
    • vreinterpretq_p128_s32
    • vreinterpretq_p128_s64
    • vreinterpretq_p128_s8
    • vreinterpretq_p128_u16
    • vreinterpretq_p128_u32
    • vreinterpretq_p128_u64
    • vreinterpretq_p128_u8
    • vreinterpretq_p16_f32
    • vreinterpretq_p16_f64
    • vreinterpretq_p16_s16
    • vreinterpretq_p16_s32
    • vreinterpretq_p16_s64
    • vreinterpretq_p16_s8
    • vreinterpretq_p16_u16
    • vreinterpretq_p16_u32
    • vreinterpretq_p16_u64
    • vreinterpretq_p16_u8
    • vreinterpretq_p64_f32
    • vreinterpretq_p64_f64
    • vreinterpretq_p64_s16
    • vreinterpretq_p64_s32
    • vreinterpretq_p64_s64
    • vreinterpretq_p64_s8
    • vreinterpretq_p64_u16
    • vreinterpretq_p64_u32
    • vreinterpretq_p64_u64
    • vreinterpretq_p64_u8
    • vreinterpretq_p8_f32
    • vreinterpretq_p8_f64
    • vreinterpretq_p8_s16
    • vreinterpretq_p8_s32
    • vreinterpretq_p8_s64
    • vreinterpretq_p8_s8
    • vreinterpretq_p8_u16
    • vreinterpretq_p8_u32
    • vreinterpretq_p8_u64
    • vreinterpretq_p8_u8
    • vreinterpretq_s16_f32
    • vreinterpretq_s16_f64
    • vreinterpretq_s16_s32
    • vreinterpretq_s16_s64
    • vreinterpretq_s16_s8
    • vreinterpretq_s16_u16
    • vreinterpretq_s16_u32
    • vreinterpretq_s16_u64
    • vreinterpretq_s16_u8
    • vreinterpretq_s32_f32
    • vreinterpretq_s32_f64
    • vreinterpretq_s32_s16
    • vreinterpretq_s32_s64
    • vreinterpretq_s32_s8
    • vreinterpretq_s32_u16
    • vreinterpretq_s32_u32
    • vreinterpretq_s32_u64
    • vreinterpretq_s32_u8
    • vreinterpretq_s64_f32
    • vreinterpretq_s64_f64
    • vreinterpretq_s64_s16
    • vreinterpretq_s64_s32
    • vreinterpretq_s64_s8
    • vreinterpretq_s64_u16
    • vreinterpretq_s64_u32
    • vreinterpretq_s64_u64
    • vreinterpretq_s64_u8
    • vreinterpretq_s8_f32
    • vreinterpretq_s8_f64
    • vreinterpretq_s8_s16
    • vreinterpretq_s8_s32
    • vreinterpretq_s8_s64
    • vreinterpretq_s8_u16
    • vreinterpretq_s8_u32
    • vreinterpretq_s8_u64
    • vreinterpretq_s8_u8
    • vreinterpretq_u16_f32
    • vreinterpretq_u16_f64
    • vreinterpretq_u16_s16
    • vreinterpretq_u16_s32
    • vreinterpretq_u16_s64
    • vreinterpretq_u16_s8
    • vreinterpretq_u16_u32
    • vreinterpretq_u16_u64
    • vreinterpretq_u16_u8
    • vreinterpretq_u32_f32
    • vreinterpretq_u32_f64
    • vreinterpretq_u32_s16
    • vreinterpretq_u32_s32
    • vreinterpretq_u32_s64
    • vreinterpretq_u32_s8
    • vreinterpretq_u32_u16
    • vreinterpretq_u32_u64
    • vreinterpretq_u32_u8
    • vreinterpretq_u64_f32
    • vreinterpretq_u64_f64
    • vreinterpretq_u64_s16
    • vreinterpretq_u64_s32
    • vreinterpretq_u64_s64
    • vreinterpretq_u64_s8
    • vreinterpretq_u64_u16
    • vreinterpretq_u64_u32
    • vreinterpretq_u64_u8
    • vreinterpretq_u8_f32
    • vreinterpretq_u8_f64
    • vreinterpretq_u8_s16
    • vreinterpretq_u8_s32
    • vreinterpretq_u8_s64
    • vreinterpretq_u8_s8
    • vreinterpretq_u8_u16
    • vreinterpretq_u8_u32
    • vreinterpretq_u8_u64
    • vreinterpret_s16_f32
    • vreinterpret_s16_f64
    • vreinterpret_s16_s32
    • vreinterpret_s16_s64
    • vreinterpret_s16_s8
    • vreinterpret_s16_u16
    • vreinterpret_s16_u32
    • vreinterpret_s16_u64
    • vreinterpret_s16_u8
    • vreinterpret_s32_f32
    • vreinterpret_s32_f64
    • vreinterpret_s32_s16
    • vreinterpret_s32_s64
    • vreinterpret_s32_s8
    • vreinterpret_s32_u16
    • vreinterpret_s32_u32
    • vreinterpret_s32_u64
    • vreinterpret_s32_u8
    • vreinterpret_s64_f32
    • vreinterpret_s64_f64
    • vreinterpret_s64_s16
    • vreinterpret_s64_s32
    • vreinterpret_s64_s8
    • vreinterpret_s64_u16
    • vreinterpret_s64_u32
    • vreinterpret_s64_u64
    • vreinterpret_s64_u8
    • vreinterpret_s8_f32
    • vreinterpret_s8_f64
    • vreinterpret_s8_s16
    • vreinterpret_s8_s32
    • vreinterpret_s8_s64
    • vreinterpret_s8_u16
    • vreinterpret_s8_u32
    • vreinterpret_s8_u64
    • vreinterpret_s8_u8
    • vreinterpret_u16_f32
    • vreinterpret_u16_f64
    • vreinterpret_u16_s16
    • vreinterpret_u16_s32
    • vreinterpret_u16_s64
    • vreinterpret_u16_s8
    • vreinterpret_u16_u32
    • vreinterpret_u16_u64
    • vreinterpret_u16_u8
    • vreinterpret_u32_f32
    • vreinterpret_u32_f64
    • vreinterpret_u32_s16
    • vreinterpret_u32_s32
    • vreinterpret_u32_s64
    • vreinterpret_u32_s8
    • vreinterpret_u32_u16
    • vreinterpret_u32_u64
    • vreinterpret_u32_u8
    • vreinterpret_u64_f32
    • vreinterpret_u64_f64
    • vreinterpret_u64_s16
    • vreinterpret_u64_s32
    • vreinterpret_u64_s64
    • vreinterpret_u64_s8
    • vreinterpret_u64_u16
    • vreinterpret_u64_u32
    • vreinterpret_u64_u8
    • vreinterpret_u8_f32
    • vreinterpret_u8_f64
    • vreinterpret_u8_s16
    • vreinterpret_u8_s32
    • vreinterpret_u8_s64
    • vreinterpret_u8_s8
    • vreinterpret_u8_u16
    • vreinterpret_u8_u32
    • vreinterpret_u8_u64
  • rev16
  • rev32
  • rev64
  • rhadd
  • rnd32x
  • rnd32z
  • rnd64x
  • rnd64z
  • rnda
  • rndi
  • rndm
  • rndn
    • vrndn_f32
    • vrndn_f64
    • vrndnq_f32
    • vrndnq_f64
    • vrndns_f32
  • rndp
  • rnd
  • rndx
  • rshl
    • vrshlq_s16
    • vrshlq_s32
    • vrshlq_s64
    • vrshlq_s8
    • vrshlq_u16
    • vrshlq_u32
    • vrshlq_u64
    • vrshlq_u8
    • vrshl_s16
    • vrshl_s32
    • vrshl_s64
    • vrshl_s8
    • vrshl_u16
    • vrshl_u32
    • vrshl_u64
    • vrshl_u8
    • vrshld_s64
    • vrshld_u64
  • rshrn_high_n
  • rshrn_n
  • rshr_n
  • rsqrte
  • rsqrts
  • rsra_n
  • rsubhn_high
  • rsubhn
  • set_lane
  • sha1c
  • sha1m
  • sha1p
  • sha1su0
  • sha1su1
  • sha256h2
  • sha256h
  • sha256su0
  • sha256su1
  • sha512h2
  • sha512h
  • sha512su0
  • sha512su1
  • shll_high_n
  • shll_n
  • shl_n
  • shl
    • vshlq_s16
    • vshlq_s32
    • vshlq_s64
    • vshlq_s8
    • vshlq_u16
    • vshlq_u32
    • vshlq_u64
    • vshlq_u8
    • vshl_s16
    • vshl_s32
    • vshl_s64
    • vshl_s8
    • vshl_u16
    • vshl_u32
    • vshl_u64
    • vshl_u8
    • vshld_n_s64
    • vshld_n_u64
    • vshld_s64
    • vshld_u64
  • shrn_high_n
  • shrn_n
  • shr_n
  • sli_n
  • sm3partw1
  • sm3partw2
  • sm3ss1
  • sm3tt1a
  • sm3tt1b
  • sm3tt2a
  • sm3tt2b
  • sm4ekey
  • sm4e
  • sqadd
  • sqrt
  • sra_n
  • sri_n
  • st1
  • st1_lane
  • st2
  • st2_lane
  • st3
  • st3_lane
  • st4
  • st4_lane
  • subhn_high
  • subhn
  • subl_high
  • subl
  • sub
    • vsubq_f32
    • vsubq_f64
    • vsubq_s16
    • vsubq_s32
    • vsubq_s64
    • vsubq_s8
    • vsubq_u16
    • vsubq_u32
    • vsubq_u64
    • vsubq_u8
    • vsubd_s64
    • vsubd_u64
    • vsub_f32
    • vsub_f64
    • vsub_s16
    • vsub_s32
    • vsub_s64
    • vsub_s8
    • vsub_u16
    • vsub_u32
    • vsub_u64
    • vsub_u8
  • subw_high
  • subw
  • sudot_lane
  • tbl1
  • tbl2
  • tbl3
  • tbl4
  • tbx1
  • tbx2
  • tbx3
  • tbx4
  • trn1
  • trn2
  • trn
  • tst
    • vtstq_s16
    • vtstq_s32
    • vtstq_s64
    • vtstq_s8
    • vtstq_u16
    • vtstq_u32
    • vtstq_u64
    • vtstq_u8
    • vtst_s16
    • vtst_s32
    • vtst_s64
    • vtst_s8
    • vtst_u16
    • vtst_u32
    • vtst_u64
    • vtst_u8
    • vtstd_s64
    • vtstd_u64
  • uqadd
  • usdot_lane
  • usdot
  • usmmla
  • uzp1
  • uzp2
  • uzp
  • xar
  • zip1
  • zip2
  • zip

110/300 (36%) of function families are fully implemented. Another 36 (12%) are partially implemented.

Overall, 1841/3193 (57%) of functions are implemented.

Note: this list does not include 897 functions for poly types or 16-bit floats; SIMDe doesn't support those yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment