Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 44 additions & 16 deletions crates/core_arch/src/arm_shared/neon/generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9597,7 +9597,7 @@ pub fn vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t {
#[rustc_legacy_const_generics(3)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand All @@ -9622,7 +9622,7 @@ pub fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x8_t) ->
#[rustc_legacy_const_generics(3)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand All @@ -9647,7 +9647,7 @@ pub fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x8_t)
#[rustc_legacy_const_generics(3)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand All @@ -9672,7 +9672,7 @@ pub fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t)
#[rustc_legacy_const_generics(3)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand All @@ -9695,7 +9695,14 @@ pub fn vdotq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x8_
assert_instr(sdot, LANE = 0)
)]
#[rustc_legacy_const_generics(3)]
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub fn vdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x16_t) -> int32x2_t {
static_assert_uimm_bits!(LANE, 2);
let c = vreinterpretq_s32_s8(c);
Expand All @@ -9713,7 +9720,14 @@ pub fn vdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x16_t)
assert_instr(sdot, LANE = 0)
)]
#[rustc_legacy_const_generics(3)]
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub fn vdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
static_assert_uimm_bits!(LANE, 2);
let c = vreinterpretq_s32_s8(c);
Expand All @@ -9731,7 +9745,14 @@ pub fn vdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x16_t
assert_instr(udot, LANE = 0)
)]
#[rustc_legacy_const_generics(3)]
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub fn vdot_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x16_t) -> uint32x2_t {
static_assert_uimm_bits!(LANE, 2);
let c = vreinterpretq_u32_u8(c);
Expand All @@ -9749,7 +9770,14 @@ pub fn vdot_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x16_
assert_instr(udot, LANE = 0)
)]
#[rustc_legacy_const_generics(3)]
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
#[cfg_attr(
not(target_arch = "arm"),
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
pub fn vdotq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
static_assert_uimm_bits!(LANE, 2);
let c = vreinterpretq_u32_u8(c);
Expand All @@ -9769,7 +9797,7 @@ pub fn vdotq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x1
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9799,7 +9827,7 @@ pub fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9835,7 +9863,7 @@ pub fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9865,7 +9893,7 @@ pub fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9903,7 +9931,7 @@ pub fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9933,7 +9961,7 @@ pub fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9969,7 +9997,7 @@ pub fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down Expand Up @@ -9999,7 +10027,7 @@ pub fn vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
)]
#[cfg_attr(
not(target_arch = "arm"),
unstable(feature = "stdarch_neon_dotprod", issue = "117224")
stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")
)]
#[cfg_attr(
target_arch = "arm",
Expand Down
22 changes: 16 additions & 6 deletions crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ neon-stable: &neon-stable
neon-stable-fp16: &neon-stable-fp16
FnCall: [stable, ['feature = "stdarch_neon_fp16"', 'since = "1.94.0"']]

# #[stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION")]
neon-stable-dotprod: &neon-stable-dotprod
FnCall: [stable, ['feature = "stdarch_neon_dotprod"', 'since = "CURRENT_RUSTC_VERSION"']]

# #[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
neon-cfg-arm-unstable: &neon-cfg-arm-unstable
FnCall: ['cfg_attr', ['target_arch = "arm"', {FnCall: ['unstable', ['feature = "stdarch_arm_neon_intrinsics"', 'issue = "111800"']]}]]
Expand Down Expand Up @@ -59,6 +63,10 @@ neon-not-arm-stable: &neon-not-arm-stable
neon-not-arm-stable-fp16: &neon-not-arm-stable-fp16
FnCall: [cfg_attr, [{ FnCall: [not, ['target_arch = "arm"']]}, {FnCall: [stable, ['feature = "stdarch_neon_fp16"', 'since = "1.94.0"']]}]]

# #[cfg_attr(not(target_arch = "arm"), stable(feature = "stdarch_neon_dotprod", since = "CURRENT_RUSTC_VERSION"))]
neon-not-arm-stable-dotprod: &neon-not-arm-stable-dotprod
FnCall: [cfg_attr, [{ FnCall: [not, ['target_arch = "arm"']]}, {FnCall: [stable, ['feature = "stdarch_neon_dotprod"', 'since = "CURRENT_RUSTC_VERSION"']]}]]

# #[cfg_attr(all(test, not(target_env = "msvc"))]
msvc-disabled: &msvc-disabled
FnCall: [all, [test, {FnCall: [not, ['target_env = "msvc"']]}]]
Expand Down Expand Up @@ -7033,7 +7041,8 @@ intrinsics:
- FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vsdot, 'LANE = 0']]}]]
- FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [sdot, 'LANE = 0']]}]]
- FnCall: [rustc_legacy_const_generics, ['3']]
- FnCall: [unstable, ['feature = "stdarch_neon_dotprod"', 'issue = "117224"']]
- *neon-not-arm-stable-dotprod
- *neon-cfg-arm-unstable
safety: safe
types:
- [int32x2_t, int8x8_t, int8x16_t, '']
Expand Down Expand Up @@ -7063,7 +7072,8 @@ intrinsics:
- FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vudot, 'LANE = 0']]}]]
- FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [udot, 'LANE = 0']]}]]
- FnCall: [rustc_legacy_const_generics, ['3']]
- FnCall: [unstable, ['feature = "stdarch_neon_dotprod"', 'issue = "117224"']]
- *neon-not-arm-stable-dotprod
- *neon-cfg-arm-unstable
safety: safe
types:
- [uint32x2_t, uint8x8_t, uint8x16_t, '']
Expand Down Expand Up @@ -7091,7 +7101,7 @@ intrinsics:
- FnCall: [target_feature, ['enable = "neon,dotprod"']]
- FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vsdot]]}]]
- FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [sdot]]}]]
- FnCall: [cfg_attr, [{FnCall: [not, ['target_arch = "arm"']]}, {FnCall: [unstable, ['feature = "stdarch_neon_dotprod"', 'issue = "117224"']]}]]
- *neon-not-arm-stable-dotprod
- *neon-cfg-arm-unstable
safety: safe
big_endian_inverse: true
Expand All @@ -7116,7 +7126,7 @@ intrinsics:
- FnCall: [target_feature, ['enable = "neon,dotprod"']]
- FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vudot]]}]]
- FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [udot]]}]]
- FnCall: [cfg_attr, [{FnCall: [not, ['target_arch = "arm"']]}, {FnCall: [unstable, ['feature = "stdarch_neon_dotprod"', 'issue = "117224"']]}]]
- *neon-not-arm-stable-dotprod
- *neon-cfg-arm-unstable
safety: safe
big_endian_inverse: true
Expand All @@ -7143,7 +7153,7 @@ intrinsics:
- FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vsdot, 'LANE = 0']]}]]
- FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [sdot, 'LANE = 0']]}]]
- FnCall: [rustc_legacy_const_generics, ['3']]
- FnCall: [cfg_attr, [{FnCall: [not, ['target_arch = "arm"']]}, {FnCall: [unstable, ['feature = "stdarch_neon_dotprod"', 'issue = "117224"']]}]]
- *neon-not-arm-stable-dotprod
- *neon-cfg-arm-unstable
safety: safe
types:
Expand Down Expand Up @@ -7174,7 +7184,7 @@ intrinsics:
- FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vudot, 'LANE = 0']]}]]
- FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [udot, 'LANE = 0']]}]]
- FnCall: [rustc_legacy_const_generics, ['3']]
- FnCall: [cfg_attr, [{FnCall: [not, ['target_arch = "arm"']]}, {FnCall: [unstable, ['feature = "stdarch_neon_dotprod"', 'issue = "117224"']]}]]
- *neon-not-arm-stable-dotprod
- *neon-cfg-arm-unstable
safety: safe
types:
Expand Down
Loading