Skip to content

Commit 5d47941

Browse files
sayantnAmanieu
authored andcommitted
Use correct LLVM intrinsic for vmull and vaddv
1 parent 2665fe5 commit 5d47941

File tree

4 files changed

+36
-36
lines changed

4 files changed

+36
-36
lines changed

library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ pub fn vaddv_s8(a: int8x8_t) -> i8 {
623623
unsafe extern "unadjusted" {
624624
#[cfg_attr(
625625
any(target_arch = "aarch64", target_arch = "arm64ec"),
626-
link_name = "llvm.aarch64.neon.saddv.i32.v8i8"
626+
link_name = "llvm.aarch64.neon.saddv.i8.v8i8"
627627
)]
628628
fn _vaddv_s8(a: int8x8_t) -> i8;
629629
}
@@ -639,7 +639,7 @@ pub fn vaddvq_s8(a: int8x16_t) -> i8 {
639639
unsafe extern "unadjusted" {
640640
#[cfg_attr(
641641
any(target_arch = "aarch64", target_arch = "arm64ec"),
642-
link_name = "llvm.aarch64.neon.saddv.i32.v16i8"
642+
link_name = "llvm.aarch64.neon.saddv.i8.v16i8"
643643
)]
644644
fn _vaddvq_s8(a: int8x16_t) -> i8;
645645
}
@@ -655,7 +655,7 @@ pub fn vaddv_s16(a: int16x4_t) -> i16 {
655655
unsafe extern "unadjusted" {
656656
#[cfg_attr(
657657
any(target_arch = "aarch64", target_arch = "arm64ec"),
658-
link_name = "llvm.aarch64.neon.saddv.i32.v4i16"
658+
link_name = "llvm.aarch64.neon.saddv.i16.v4i16"
659659
)]
660660
fn _vaddv_s16(a: int16x4_t) -> i16;
661661
}
@@ -671,7 +671,7 @@ pub fn vaddvq_s16(a: int16x8_t) -> i16 {
671671
unsafe extern "unadjusted" {
672672
#[cfg_attr(
673673
any(target_arch = "aarch64", target_arch = "arm64ec"),
674-
link_name = "llvm.aarch64.neon.saddv.i32.v8i16"
674+
link_name = "llvm.aarch64.neon.saddv.i16.v8i16"
675675
)]
676676
fn _vaddvq_s16(a: int16x8_t) -> i16;
677677
}
@@ -719,7 +719,7 @@ pub fn vaddv_u8(a: uint8x8_t) -> u8 {
719719
unsafe extern "unadjusted" {
720720
#[cfg_attr(
721721
any(target_arch = "aarch64", target_arch = "arm64ec"),
722-
link_name = "llvm.aarch64.neon.uaddv.i32.v8i8"
722+
link_name = "llvm.aarch64.neon.uaddv.i8.v8i8"
723723
)]
724724
fn _vaddv_u8(a: uint8x8_t) -> u8;
725725
}
@@ -735,7 +735,7 @@ pub fn vaddvq_u8(a: uint8x16_t) -> u8 {
735735
unsafe extern "unadjusted" {
736736
#[cfg_attr(
737737
any(target_arch = "aarch64", target_arch = "arm64ec"),
738-
link_name = "llvm.aarch64.neon.uaddv.i32.v16i8"
738+
link_name = "llvm.aarch64.neon.uaddv.i8.v16i8"
739739
)]
740740
fn _vaddvq_u8(a: uint8x16_t) -> u8;
741741
}
@@ -751,7 +751,7 @@ pub fn vaddv_u16(a: uint16x4_t) -> u16 {
751751
unsafe extern "unadjusted" {
752752
#[cfg_attr(
753753
any(target_arch = "aarch64", target_arch = "arm64ec"),
754-
link_name = "llvm.aarch64.neon.uaddv.i32.v4i16"
754+
link_name = "llvm.aarch64.neon.uaddv.i16.v4i16"
755755
)]
756756
fn _vaddv_u16(a: uint16x4_t) -> u16;
757757
}
@@ -767,7 +767,7 @@ pub fn vaddvq_u16(a: uint16x8_t) -> u16 {
767767
unsafe extern "unadjusted" {
768768
#[cfg_attr(
769769
any(target_arch = "aarch64", target_arch = "arm64ec"),
770-
link_name = "llvm.aarch64.neon.uaddv.i32.v8i16"
770+
link_name = "llvm.aarch64.neon.uaddv.i16.v8i16"
771771
)]
772772
fn _vaddvq_u16(a: uint16x8_t) -> u16;
773773
}

library/stdarch/crates/core_arch/src/arm_shared/neon/generated.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34126,9 +34126,9 @@ pub fn vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
3412634126
unsafe extern "unadjusted" {
3412734127
#[cfg_attr(
3412834128
any(target_arch = "aarch64", target_arch = "arm64ec"),
34129-
link_name = "llvm.aarch64.neon.smull.v4i16"
34129+
link_name = "llvm.aarch64.neon.smull.v4i32"
3413034130
)]
34131-
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v4i16")]
34131+
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v4i32")]
3413234132
fn _vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
3413334133
}
3413434134
unsafe { _vmull_s16(a, b) }
@@ -34155,9 +34155,9 @@ pub fn vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
3415534155
unsafe extern "unadjusted" {
3415634156
#[cfg_attr(
3415734157
any(target_arch = "aarch64", target_arch = "arm64ec"),
34158-
link_name = "llvm.aarch64.neon.smull.v2i32"
34158+
link_name = "llvm.aarch64.neon.smull.v2i64"
3415934159
)]
34160-
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v2i32")]
34160+
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v2i64")]
3416134161
fn _vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
3416234162
}
3416334163
unsafe { _vmull_s32(a, b) }
@@ -34184,9 +34184,9 @@ pub fn vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
3418434184
unsafe extern "unadjusted" {
3418534185
#[cfg_attr(
3418634186
any(target_arch = "aarch64", target_arch = "arm64ec"),
34187-
link_name = "llvm.aarch64.neon.smull.v8i8"
34187+
link_name = "llvm.aarch64.neon.smull.v8i16"
3418834188
)]
34189-
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v8i8")]
34189+
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v8i16")]
3419034190
fn _vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t;
3419134191
}
3419234192
unsafe { _vmull_s8(a, b) }
@@ -34213,9 +34213,9 @@ pub fn vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
3421334213
unsafe extern "unadjusted" {
3421434214
#[cfg_attr(
3421534215
any(target_arch = "aarch64", target_arch = "arm64ec"),
34216-
link_name = "llvm.aarch64.neon.umull.v8i8"
34216+
link_name = "llvm.aarch64.neon.umull.v8i16"
3421734217
)]
34218-
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v8i8")]
34218+
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v8i16")]
3421934219
fn _vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t;
3422034220
}
3422134221
unsafe { _vmull_u8(a, b) }
@@ -34242,9 +34242,9 @@ pub fn vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
3424234242
unsafe extern "unadjusted" {
3424334243
#[cfg_attr(
3424434244
any(target_arch = "aarch64", target_arch = "arm64ec"),
34245-
link_name = "llvm.aarch64.neon.umull.v4i16"
34245+
link_name = "llvm.aarch64.neon.umull.v4i32"
3424634246
)]
34247-
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v4i16")]
34247+
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v4i32")]
3424834248
fn _vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t;
3424934249
}
3425034250
unsafe { _vmull_u16(a, b) }
@@ -34271,9 +34271,9 @@ pub fn vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
3427134271
unsafe extern "unadjusted" {
3427234272
#[cfg_attr(
3427334273
any(target_arch = "aarch64", target_arch = "arm64ec"),
34274-
link_name = "llvm.aarch64.neon.umull.v2i32"
34274+
link_name = "llvm.aarch64.neon.umull.v2i64"
3427534275
)]
34276-
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v2i32")]
34276+
#[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v2i64")]
3427734277
fn _vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t;
3427834278
}
3427934279
unsafe { _vmull_u32(a, b) }

library/stdarch/crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13183,16 +13183,16 @@ intrinsics:
1318313183
assert_instr: [addv]
1318413184
safety: safe
1318513185
types:
13186-
- [int8x8_t, i8, i32]
13187-
- [int16x4_t, i16, i32]
13188-
- [int8x16_t, i8, i32]
13189-
- [int16x8_t, i16, i32]
13190-
- [int32x4_t, i32, i32]
13186+
- [int8x8_t, i8]
13187+
- [int16x4_t, i16]
13188+
- [int8x16_t, i8]
13189+
- [int16x8_t, i16]
13190+
- [int32x4_t, i32]
1319113191
compose:
1319213192
- LLVMLink:
1319313193
name: "vaddv{neon_type[0].no}"
1319413194
links:
13195-
- link: "llvm.aarch64.neon.saddv.{type[2]}.{neon_type[0]}"
13195+
- link: "llvm.aarch64.neon.saddv.{type[1]}.{neon_type[0]}"
1319613196
arch: aarch64,arm64ec
1319713197

1319813198
- name: "vaddv{neon_type[0].no}"
@@ -13238,16 +13238,16 @@ intrinsics:
1323813238
assert_instr: [addv]
1323913239
safety: safe
1324013240
types:
13241-
- [uint8x8_t, u8, i32]
13242-
- [uint16x4_t, u16, i32]
13243-
- [uint8x16_t, u8, i32]
13244-
- [uint16x8_t, u16, i32]
13245-
- [uint32x4_t, u32, i32]
13241+
- [uint8x8_t, u8]
13242+
- [uint16x4_t, u16]
13243+
- [uint8x16_t, u8]
13244+
- [uint16x8_t, u16]
13245+
- [uint32x4_t, u32]
1324613246
compose:
1324713247
- LLVMLink:
1324813248
name: "vaddv{neon_type[0].no}"
1324913249
links:
13250-
- link: "llvm.aarch64.neon.uaddv.{type[2]}.{neon_type[0]}"
13250+
- link: "llvm.aarch64.neon.uaddv.{type[1]}.{neon_type[0]}"
1325113251
arch: aarch64,arm64ec
1325213252

1325313253
- name: "vaddv{neon_type[0].no}"

library/stdarch/crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6427,9 +6427,9 @@ intrinsics:
64276427
- LLVMLink:
64286428
name: "smull.{neon_type[1]}"
64296429
links:
6430-
- link: "llvm.aarch64.neon.smull.{neon_type[1]}"
6430+
- link: "llvm.aarch64.neon.smull.{neon_type[2]}"
64316431
arch: aarch64,arm64ec
6432-
- link: "llvm.arm.neon.vmulls.{neon_type[1]}"
6432+
- link: "llvm.arm.neon.vmulls.{neon_type[2]}"
64336433
arch: arm
64346434

64356435
- name: "vmull{neon_type[1].no}"
@@ -6451,9 +6451,9 @@ intrinsics:
64516451
- LLVMLink:
64526452
name: "smull.{neon_type[1]}"
64536453
links:
6454-
- link: "llvm.aarch64.neon.umull.{neon_type[1]}"
6454+
- link: "llvm.aarch64.neon.umull.{neon_type[2]}"
64556455
arch: aarch64,arm64ec
6456-
- link: "llvm.arm.neon.vmullu.{neon_type[1]}"
6456+
- link: "llvm.arm.neon.vmullu.{neon_type[2]}"
64576457
arch: arm
64586458

64596459
- name: "vmull{neon_type[1].no}"

0 commit comments

Comments
 (0)