#include <arm_neon.h>

FP8

FP8 conversions, dot products and multiply-accumulates that take an explicit fpm_t floating-point-mode operand.

intrinsic family of arm_neon.h
26 functions · 20 macros

functionvcvt1_bf16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
bfloat16x8_t vcvt1_bf16_mf8_fpm(mfloat8x8_t __p0, fpm_t __p1)

functionvcvt1_f16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
float16x8_t vcvt1_f16_mf8_fpm(mfloat8x8_t __p0, fpm_t __p1)

functionvcvt1_high_bf16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
bfloat16x8_t vcvt1_high_bf16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt1_high_f16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
float16x8_t vcvt1_high_f16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt1_low_bf16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
bfloat16x8_t vcvt1_low_bf16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt1_low_f16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
float16x8_t vcvt1_low_f16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt2_bf16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
bfloat16x8_t vcvt2_bf16_mf8_fpm(mfloat8x8_t __p0, fpm_t __p1)

functionvcvt2_f16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
float16x8_t vcvt2_f16_mf8_fpm(mfloat8x8_t __p0, fpm_t __p1)

functionvcvt2_high_bf16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
bfloat16x8_t vcvt2_high_bf16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt2_high_f16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
float16x8_t vcvt2_high_f16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt2_low_bf16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
bfloat16x8_t vcvt2_low_bf16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt2_low_f16_mf8_fpm

__ai __attribute__((target("fp8,neon")))
float16x8_t vcvt2_low_f16_mf8_fpm(mfloat8x16_t __p0, fpm_t __p1)

functionvcvt_high_mf8_f32_fpm

__ai __attribute__((target("fp8,neon")))
mfloat8x16_t vcvt_high_mf8_f32_fpm(
	mfloat8x8_t __p0,
	float32x4_t __p1,
	float32x4_t __p2,
	fpm_t __p3
)

functionvcvtq_mf8_f16_fpm

__ai __attribute__((target("fp8,neon")))
mfloat8x16_t vcvtq_mf8_f16_fpm(float16x8_t __p0, float16x8_t __p1, fpm_t __p2)

functionvcvt_mf8_f16_fpm

__ai __attribute__((target("fp8,neon")))
mfloat8x8_t vcvt_mf8_f16_fpm(float16x4_t __p0, float16x4_t __p1, fpm_t __p2)

functionvcvt_mf8_f32_fpm

__ai __attribute__((target("fp8,neon")))
mfloat8x8_t vcvt_mf8_f32_fpm(float32x4_t __p0, float32x4_t __p1, fpm_t __p2)

functionvdotq_f16_mf8_fpm

__ai __attribute__((target("fp8dot2,neon")))
float16x8_t vdotq_f16_mf8_fpm(
	float16x8_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

functionvdot_f16_mf8_fpm

__ai __attribute__((target("fp8dot2,neon")))
float16x4_t vdot_f16_mf8_fpm(
	float16x4_t __p0,
	mfloat8x8_t __p1,
	mfloat8x8_t __p2,
	fpm_t __p3
)

macrovdotq_lane_f16_mf8_fpm

#define vdotq_lane_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x8_t __ret;
  float16x8_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x8_t, __builtin_neon_vdotq_lane_f16_mf8_fpm(__builtin_bit_cast(int8x16_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

macrovdot_lane_f16_mf8_fpm

#define vdot_lane_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x4_t __ret;
  float16x4_t __s0 = __p0;
  mfloat8x8_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x4_t, __builtin_neon_vdot_lane_f16_mf8_fpm(__builtin_bit_cast(int8x8_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

macrovdotq_laneq_f16_mf8_fpm

#define vdotq_laneq_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x8_t __ret;
  float16x8_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x8_t, __builtin_neon_vdotq_laneq_f16_mf8_fpm(__builtin_bit_cast(int8x16_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

macrovdot_laneq_f16_mf8_fpm

#define vdot_laneq_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x4_t __ret;
  float16x4_t __s0 = __p0;
  mfloat8x8_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x4_t, __builtin_neon_vdot_laneq_f16_mf8_fpm(__builtin_bit_cast(int8x8_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

functionvdotq_f32_mf8_fpm

__ai __attribute__((target("fp8dot4,neon")))
float32x4_t vdotq_f32_mf8_fpm(
	float32x4_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

functionvdot_f32_mf8_fpm

__ai __attribute__((target("fp8dot4,neon")))
float32x2_t vdot_f32_mf8_fpm(
	float32x2_t __p0,
	mfloat8x8_t __p1,
	mfloat8x8_t __p2,
	fpm_t __p3
)

macrovdotq_lane_f32_mf8_fpm

#define vdotq_lane_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vdotq_lane_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovdot_lane_f32_mf8_fpm

#define vdot_lane_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x2_t __ret;
  float32x2_t __s0 = __p0;
  mfloat8x8_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x2_t, __builtin_neon_vdot_lane_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovdotq_laneq_f32_mf8_fpm

#define vdotq_laneq_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vdotq_laneq_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovdot_laneq_f32_mf8_fpm

#define vdot_laneq_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x2_t __ret;
  float32x2_t __s0 = __p0;
  mfloat8x8_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x2_t, __builtin_neon_vdot_laneq_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

functionvmlalbq_f16_mf8_fpm

__ai __attribute__((target("fp8fma,neon")))
float16x8_t vmlalbq_f16_mf8_fpm(
	float16x8_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

macrovmlalbq_lane_f16_mf8_fpm

#define vmlalbq_lane_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x8_t __ret;
  float16x8_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x8_t, __builtin_neon_vmlalbq_lane_f16_mf8_fpm(__builtin_bit_cast(int8x16_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

macrovmlalbq_laneq_f16_mf8_fpm

#define vmlalbq_laneq_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x8_t __ret;
  float16x8_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x8_t, __builtin_neon_vmlalbq_laneq_f16_mf8_fpm(__builtin_bit_cast(int8x16_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

functionvmlallbbq_f32_mf8_fpm

__ai __attribute__((target("fp8fma,neon")))
float32x4_t vmlallbbq_f32_mf8_fpm(
	float32x4_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

macrovmlallbbq_lane_f32_mf8_fpm

#define vmlallbbq_lane_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlallbbq_lane_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovmlallbbq_laneq_f32_mf8_fpm

#define vmlallbbq_laneq_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlallbbq_laneq_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

functionvmlallbtq_f32_mf8_fpm

__ai __attribute__((target("fp8fma,neon")))
float32x4_t vmlallbtq_f32_mf8_fpm(
	float32x4_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

macrovmlallbtq_lane_f32_mf8_fpm

#define vmlallbtq_lane_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlallbtq_lane_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovmlallbtq_laneq_f32_mf8_fpm

#define vmlallbtq_laneq_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlallbtq_laneq_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

functionvmlalltbq_f32_mf8_fpm

__ai __attribute__((target("fp8fma,neon")))
float32x4_t vmlalltbq_f32_mf8_fpm(
	float32x4_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

macrovmlalltbq_lane_f32_mf8_fpm

#define vmlalltbq_lane_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlalltbq_lane_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovmlalltbq_laneq_f32_mf8_fpm

#define vmlalltbq_laneq_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlalltbq_laneq_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

functionvmlallttq_f32_mf8_fpm

__ai __attribute__((target("fp8fma,neon")))
float32x4_t vmlallttq_f32_mf8_fpm(
	float32x4_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

macrovmlallttq_lane_f32_mf8_fpm

#define vmlallttq_lane_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlallttq_lane_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

macrovmlallttq_laneq_f32_mf8_fpm

#define vmlallttq_laneq_f32_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float32x4_t __ret;
  float32x4_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float32x4_t, __builtin_neon_vmlallttq_laneq_f32_mf8_fpm(__s0, __s1, __s2, __p3, __s4));
  __ret;
})

functionvmlaltq_f16_mf8_fpm

__ai __attribute__((target("fp8fma,neon")))
float16x8_t vmlaltq_f16_mf8_fpm(
	float16x8_t __p0,
	mfloat8x16_t __p1,
	mfloat8x16_t __p2,
	fpm_t __p3
)

macrovmlaltq_lane_f16_mf8_fpm

#define vmlaltq_lane_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x8_t __ret;
  float16x8_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x8_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x8_t, __builtin_neon_vmlaltq_lane_f16_mf8_fpm(__builtin_bit_cast(int8x16_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})

macrovmlaltq_laneq_f16_mf8_fpm

#define vmlaltq_laneq_f16_mf8_fpm(__p0, __p1, __p2, __p3, __p4) __extension__ ({
  float16x8_t __ret;
  float16x8_t __s0 = __p0;
  mfloat8x16_t __s1 = __p1;
  mfloat8x16_t __s2 = __p2;
  fpm_t __s4 = __p4;
  __ret = __builtin_bit_cast(float16x8_t, __builtin_neon_vmlaltq_laneq_f16_mf8_fpm(__builtin_bit_cast(int8x16_t, __s0), __s1, __s2, __p3, __s4));
  __ret;
})