diff --git a/crates/core_arch/src/arm_shared/neon/mod.rs b/crates/core_arch/src/arm_shared/neon/mod.rs index 15c659ded9b0b..d348125a2a4dd 100644 --- a/crates/core_arch/src/arm_shared/neon/mod.rs +++ b/crates/core_arch/src/arm_shared/neon/mod.rs @@ -4808,7 +4808,8 @@ pub unsafe fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t { /// 8-bit integer matrix multiply-accumulate #[inline] -#[target_feature(enable = "neon,i8mm")] +#[cfg_attr(not(bootstrap), target_feature(enable = "i8mm"))] +#[target_feature(enable = "neon")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))] #[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(smmla))] @@ -4827,7 +4828,8 @@ pub unsafe fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t /// 8-bit integer matrix multiply-accumulate #[inline] -#[target_feature(enable = "neon,i8mm")] +#[cfg_attr(not(bootstrap), target_feature(enable = "i8mm"))] +#[target_feature(enable = "neon")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))] #[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(ummla))] @@ -4846,7 +4848,8 @@ pub unsafe fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x /// Unsigned and signed 8-bit integer matrix multiply-accumulate #[inline] -#[target_feature(enable = "neon,i8mm")] +#[cfg_attr(not(bootstrap), target_feature(enable = "i8mm"))] +#[target_feature(enable = "neon")] #[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))] #[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))] #[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(usmmla))]