@@ -13381,14 +13381,7 @@ pub fn vmaxvq_f64(a: float64x2_t) -> f64 {
13381
13381
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13382
13382
#[cfg_attr(test, assert_instr(smaxv))]
13383
13383
pub fn vmaxv_s8(a: int8x8_t) -> i8 {
13384
- unsafe extern "unadjusted" {
13385
- #[cfg_attr(
13386
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13387
- link_name = "llvm.aarch64.neon.smaxv.i8.v8i8"
13388
- )]
13389
- fn _vmaxv_s8(a: int8x8_t) -> i8;
13390
- }
13391
- unsafe { _vmaxv_s8(a) }
13384
+ unsafe { simd_reduce_max(a) }
13392
13385
}
13393
13386
#[doc = "Horizontal vector max."]
13394
13387
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s8)"]
@@ -13397,14 +13390,7 @@ pub fn vmaxv_s8(a: int8x8_t) -> i8 {
13397
13390
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13398
13391
#[cfg_attr(test, assert_instr(smaxv))]
13399
13392
pub fn vmaxvq_s8(a: int8x16_t) -> i8 {
13400
- unsafe extern "unadjusted" {
13401
- #[cfg_attr(
13402
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13403
- link_name = "llvm.aarch64.neon.smaxv.i8.v16i8"
13404
- )]
13405
- fn _vmaxvq_s8(a: int8x16_t) -> i8;
13406
- }
13407
- unsafe { _vmaxvq_s8(a) }
13393
+ unsafe { simd_reduce_max(a) }
13408
13394
}
13409
13395
#[doc = "Horizontal vector max."]
13410
13396
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_s16)"]
@@ -13413,14 +13399,7 @@ pub fn vmaxvq_s8(a: int8x16_t) -> i8 {
13413
13399
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13414
13400
#[cfg_attr(test, assert_instr(smaxv))]
13415
13401
pub fn vmaxv_s16(a: int16x4_t) -> i16 {
13416
- unsafe extern "unadjusted" {
13417
- #[cfg_attr(
13418
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13419
- link_name = "llvm.aarch64.neon.smaxv.i16.v4i16"
13420
- )]
13421
- fn _vmaxv_s16(a: int16x4_t) -> i16;
13422
- }
13423
- unsafe { _vmaxv_s16(a) }
13402
+ unsafe { simd_reduce_max(a) }
13424
13403
}
13425
13404
#[doc = "Horizontal vector max."]
13426
13405
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s16)"]
@@ -13429,14 +13408,7 @@ pub fn vmaxv_s16(a: int16x4_t) -> i16 {
13429
13408
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13430
13409
#[cfg_attr(test, assert_instr(smaxv))]
13431
13410
pub fn vmaxvq_s16(a: int16x8_t) -> i16 {
13432
- unsafe extern "unadjusted" {
13433
- #[cfg_attr(
13434
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13435
- link_name = "llvm.aarch64.neon.smaxv.i16.v8i16"
13436
- )]
13437
- fn _vmaxvq_s16(a: int16x8_t) -> i16;
13438
- }
13439
- unsafe { _vmaxvq_s16(a) }
13411
+ unsafe { simd_reduce_max(a) }
13440
13412
}
13441
13413
#[doc = "Horizontal vector max."]
13442
13414
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_s32)"]
@@ -13445,14 +13417,7 @@ pub fn vmaxvq_s16(a: int16x8_t) -> i16 {
13445
13417
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13446
13418
#[cfg_attr(test, assert_instr(smaxp))]
13447
13419
pub fn vmaxv_s32(a: int32x2_t) -> i32 {
13448
- unsafe extern "unadjusted" {
13449
- #[cfg_attr(
13450
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13451
- link_name = "llvm.aarch64.neon.smaxv.i32.v2i32"
13452
- )]
13453
- fn _vmaxv_s32(a: int32x2_t) -> i32;
13454
- }
13455
- unsafe { _vmaxv_s32(a) }
13420
+ unsafe { simd_reduce_max(a) }
13456
13421
}
13457
13422
#[doc = "Horizontal vector max."]
13458
13423
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s32)"]
@@ -13461,14 +13426,7 @@ pub fn vmaxv_s32(a: int32x2_t) -> i32 {
13461
13426
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13462
13427
#[cfg_attr(test, assert_instr(smaxv))]
13463
13428
pub fn vmaxvq_s32(a: int32x4_t) -> i32 {
13464
- unsafe extern "unadjusted" {
13465
- #[cfg_attr(
13466
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13467
- link_name = "llvm.aarch64.neon.smaxv.i32.v4i32"
13468
- )]
13469
- fn _vmaxvq_s32(a: int32x4_t) -> i32;
13470
- }
13471
- unsafe { _vmaxvq_s32(a) }
13429
+ unsafe { simd_reduce_max(a) }
13472
13430
}
13473
13431
#[doc = "Horizontal vector max."]
13474
13432
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u8)"]
@@ -13477,14 +13435,7 @@ pub fn vmaxvq_s32(a: int32x4_t) -> i32 {
13477
13435
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13478
13436
#[cfg_attr(test, assert_instr(umaxv))]
13479
13437
pub fn vmaxv_u8(a: uint8x8_t) -> u8 {
13480
- unsafe extern "unadjusted" {
13481
- #[cfg_attr(
13482
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13483
- link_name = "llvm.aarch64.neon.umaxv.i8.v8i8"
13484
- )]
13485
- fn _vmaxv_u8(a: uint8x8_t) -> u8;
13486
- }
13487
- unsafe { _vmaxv_u8(a) }
13438
+ unsafe { simd_reduce_max(a) }
13488
13439
}
13489
13440
#[doc = "Horizontal vector max."]
13490
13441
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u8)"]
@@ -13493,14 +13444,7 @@ pub fn vmaxv_u8(a: uint8x8_t) -> u8 {
13493
13444
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13494
13445
#[cfg_attr(test, assert_instr(umaxv))]
13495
13446
pub fn vmaxvq_u8(a: uint8x16_t) -> u8 {
13496
- unsafe extern "unadjusted" {
13497
- #[cfg_attr(
13498
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13499
- link_name = "llvm.aarch64.neon.umaxv.i8.v16i8"
13500
- )]
13501
- fn _vmaxvq_u8(a: uint8x16_t) -> u8;
13502
- }
13503
- unsafe { _vmaxvq_u8(a) }
13447
+ unsafe { simd_reduce_max(a) }
13504
13448
}
13505
13449
#[doc = "Horizontal vector max."]
13506
13450
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u16)"]
@@ -13509,14 +13453,7 @@ pub fn vmaxvq_u8(a: uint8x16_t) -> u8 {
13509
13453
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13510
13454
#[cfg_attr(test, assert_instr(umaxv))]
13511
13455
pub fn vmaxv_u16(a: uint16x4_t) -> u16 {
13512
- unsafe extern "unadjusted" {
13513
- #[cfg_attr(
13514
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13515
- link_name = "llvm.aarch64.neon.umaxv.i16.v4i16"
13516
- )]
13517
- fn _vmaxv_u16(a: uint16x4_t) -> u16;
13518
- }
13519
- unsafe { _vmaxv_u16(a) }
13456
+ unsafe { simd_reduce_max(a) }
13520
13457
}
13521
13458
#[doc = "Horizontal vector max."]
13522
13459
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u16)"]
@@ -13525,14 +13462,7 @@ pub fn vmaxv_u16(a: uint16x4_t) -> u16 {
13525
13462
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13526
13463
#[cfg_attr(test, assert_instr(umaxv))]
13527
13464
pub fn vmaxvq_u16(a: uint16x8_t) -> u16 {
13528
- unsafe extern "unadjusted" {
13529
- #[cfg_attr(
13530
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13531
- link_name = "llvm.aarch64.neon.umaxv.i16.v8i16"
13532
- )]
13533
- fn _vmaxvq_u16(a: uint16x8_t) -> u16;
13534
- }
13535
- unsafe { _vmaxvq_u16(a) }
13465
+ unsafe { simd_reduce_max(a) }
13536
13466
}
13537
13467
#[doc = "Horizontal vector max."]
13538
13468
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u32)"]
@@ -13541,14 +13471,7 @@ pub fn vmaxvq_u16(a: uint16x8_t) -> u16 {
13541
13471
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13542
13472
#[cfg_attr(test, assert_instr(umaxp))]
13543
13473
pub fn vmaxv_u32(a: uint32x2_t) -> u32 {
13544
- unsafe extern "unadjusted" {
13545
- #[cfg_attr(
13546
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13547
- link_name = "llvm.aarch64.neon.umaxv.i32.v2i32"
13548
- )]
13549
- fn _vmaxv_u32(a: uint32x2_t) -> u32;
13550
- }
13551
- unsafe { _vmaxv_u32(a) }
13474
+ unsafe { simd_reduce_max(a) }
13552
13475
}
13553
13476
#[doc = "Horizontal vector max."]
13554
13477
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u32)"]
@@ -13557,14 +13480,7 @@ pub fn vmaxv_u32(a: uint32x2_t) -> u32 {
13557
13480
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13558
13481
#[cfg_attr(test, assert_instr(umaxv))]
13559
13482
pub fn vmaxvq_u32(a: uint32x4_t) -> u32 {
13560
- unsafe extern "unadjusted" {
13561
- #[cfg_attr(
13562
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13563
- link_name = "llvm.aarch64.neon.umaxv.i32.v4i32"
13564
- )]
13565
- fn _vmaxvq_u32(a: uint32x4_t) -> u32;
13566
- }
13567
- unsafe { _vmaxvq_u32(a) }
13483
+ unsafe { simd_reduce_max(a) }
13568
13484
}
13569
13485
#[doc = "Minimum (vector)"]
13570
13486
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f64)"]
@@ -13773,14 +13689,7 @@ pub fn vminvq_f64(a: float64x2_t) -> f64 {
13773
13689
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13774
13690
#[cfg_attr(test, assert_instr(sminv))]
13775
13691
pub fn vminv_s8(a: int8x8_t) -> i8 {
13776
- unsafe extern "unadjusted" {
13777
- #[cfg_attr(
13778
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13779
- link_name = "llvm.aarch64.neon.sminv.i8.v8i8"
13780
- )]
13781
- fn _vminv_s8(a: int8x8_t) -> i8;
13782
- }
13783
- unsafe { _vminv_s8(a) }
13692
+ unsafe { simd_reduce_min(a) }
13784
13693
}
13785
13694
#[doc = "Horizontal vector min."]
13786
13695
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s8)"]
@@ -13789,14 +13698,7 @@ pub fn vminv_s8(a: int8x8_t) -> i8 {
13789
13698
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13790
13699
#[cfg_attr(test, assert_instr(sminv))]
13791
13700
pub fn vminvq_s8(a: int8x16_t) -> i8 {
13792
- unsafe extern "unadjusted" {
13793
- #[cfg_attr(
13794
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13795
- link_name = "llvm.aarch64.neon.sminv.i8.v16i8"
13796
- )]
13797
- fn _vminvq_s8(a: int8x16_t) -> i8;
13798
- }
13799
- unsafe { _vminvq_s8(a) }
13701
+ unsafe { simd_reduce_min(a) }
13800
13702
}
13801
13703
#[doc = "Horizontal vector min."]
13802
13704
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_s16)"]
@@ -13805,14 +13707,7 @@ pub fn vminvq_s8(a: int8x16_t) -> i8 {
13805
13707
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13806
13708
#[cfg_attr(test, assert_instr(sminv))]
13807
13709
pub fn vminv_s16(a: int16x4_t) -> i16 {
13808
- unsafe extern "unadjusted" {
13809
- #[cfg_attr(
13810
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13811
- link_name = "llvm.aarch64.neon.sminv.i16.v4i16"
13812
- )]
13813
- fn _vminv_s16(a: int16x4_t) -> i16;
13814
- }
13815
- unsafe { _vminv_s16(a) }
13710
+ unsafe { simd_reduce_min(a) }
13816
13711
}
13817
13712
#[doc = "Horizontal vector min."]
13818
13713
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s16)"]
@@ -13821,14 +13716,7 @@ pub fn vminv_s16(a: int16x4_t) -> i16 {
13821
13716
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13822
13717
#[cfg_attr(test, assert_instr(sminv))]
13823
13718
pub fn vminvq_s16(a: int16x8_t) -> i16 {
13824
- unsafe extern "unadjusted" {
13825
- #[cfg_attr(
13826
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13827
- link_name = "llvm.aarch64.neon.sminv.i16.v8i16"
13828
- )]
13829
- fn _vminvq_s16(a: int16x8_t) -> i16;
13830
- }
13831
- unsafe { _vminvq_s16(a) }
13719
+ unsafe { simd_reduce_min(a) }
13832
13720
}
13833
13721
#[doc = "Horizontal vector min."]
13834
13722
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_s32)"]
@@ -13837,14 +13725,7 @@ pub fn vminvq_s16(a: int16x8_t) -> i16 {
13837
13725
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13838
13726
#[cfg_attr(test, assert_instr(sminp))]
13839
13727
pub fn vminv_s32(a: int32x2_t) -> i32 {
13840
- unsafe extern "unadjusted" {
13841
- #[cfg_attr(
13842
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13843
- link_name = "llvm.aarch64.neon.sminv.i32.v2i32"
13844
- )]
13845
- fn _vminv_s32(a: int32x2_t) -> i32;
13846
- }
13847
- unsafe { _vminv_s32(a) }
13728
+ unsafe { simd_reduce_min(a) }
13848
13729
}
13849
13730
#[doc = "Horizontal vector min."]
13850
13731
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s32)"]
@@ -13853,14 +13734,7 @@ pub fn vminv_s32(a: int32x2_t) -> i32 {
13853
13734
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13854
13735
#[cfg_attr(test, assert_instr(sminv))]
13855
13736
pub fn vminvq_s32(a: int32x4_t) -> i32 {
13856
- unsafe extern "unadjusted" {
13857
- #[cfg_attr(
13858
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13859
- link_name = "llvm.aarch64.neon.sminv.i32.v4i32"
13860
- )]
13861
- fn _vminvq_s32(a: int32x4_t) -> i32;
13862
- }
13863
- unsafe { _vminvq_s32(a) }
13737
+ unsafe { simd_reduce_min(a) }
13864
13738
}
13865
13739
#[doc = "Horizontal vector min."]
13866
13740
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u8)"]
@@ -13869,14 +13743,7 @@ pub fn vminvq_s32(a: int32x4_t) -> i32 {
13869
13743
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13870
13744
#[cfg_attr(test, assert_instr(uminv))]
13871
13745
pub fn vminv_u8(a: uint8x8_t) -> u8 {
13872
- unsafe extern "unadjusted" {
13873
- #[cfg_attr(
13874
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13875
- link_name = "llvm.aarch64.neon.uminv.i8.v8i8"
13876
- )]
13877
- fn _vminv_u8(a: uint8x8_t) -> u8;
13878
- }
13879
- unsafe { _vminv_u8(a) }
13746
+ unsafe { simd_reduce_min(a) }
13880
13747
}
13881
13748
#[doc = "Horizontal vector min."]
13882
13749
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u8)"]
@@ -13885,14 +13752,7 @@ pub fn vminv_u8(a: uint8x8_t) -> u8 {
13885
13752
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13886
13753
#[cfg_attr(test, assert_instr(uminv))]
13887
13754
pub fn vminvq_u8(a: uint8x16_t) -> u8 {
13888
- unsafe extern "unadjusted" {
13889
- #[cfg_attr(
13890
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13891
- link_name = "llvm.aarch64.neon.uminv.i8.v16i8"
13892
- )]
13893
- fn _vminvq_u8(a: uint8x16_t) -> u8;
13894
- }
13895
- unsafe { _vminvq_u8(a) }
13755
+ unsafe { simd_reduce_min(a) }
13896
13756
}
13897
13757
#[doc = "Horizontal vector min."]
13898
13758
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u16)"]
@@ -13901,14 +13761,7 @@ pub fn vminvq_u8(a: uint8x16_t) -> u8 {
13901
13761
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13902
13762
#[cfg_attr(test, assert_instr(uminv))]
13903
13763
pub fn vminv_u16(a: uint16x4_t) -> u16 {
13904
- unsafe extern "unadjusted" {
13905
- #[cfg_attr(
13906
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13907
- link_name = "llvm.aarch64.neon.uminv.i16.v4i16"
13908
- )]
13909
- fn _vminv_u16(a: uint16x4_t) -> u16;
13910
- }
13911
- unsafe { _vminv_u16(a) }
13764
+ unsafe { simd_reduce_min(a) }
13912
13765
}
13913
13766
#[doc = "Horizontal vector min."]
13914
13767
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u16)"]
@@ -13917,14 +13770,7 @@ pub fn vminv_u16(a: uint16x4_t) -> u16 {
13917
13770
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13918
13771
#[cfg_attr(test, assert_instr(uminv))]
13919
13772
pub fn vminvq_u16(a: uint16x8_t) -> u16 {
13920
- unsafe extern "unadjusted" {
13921
- #[cfg_attr(
13922
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13923
- link_name = "llvm.aarch64.neon.uminv.i16.v8i16"
13924
- )]
13925
- fn _vminvq_u16(a: uint16x8_t) -> u16;
13926
- }
13927
- unsafe { _vminvq_u16(a) }
13773
+ unsafe { simd_reduce_min(a) }
13928
13774
}
13929
13775
#[doc = "Horizontal vector min."]
13930
13776
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u32)"]
@@ -13933,14 +13779,7 @@ pub fn vminvq_u16(a: uint16x8_t) -> u16 {
13933
13779
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13934
13780
#[cfg_attr(test, assert_instr(uminp))]
13935
13781
pub fn vminv_u32(a: uint32x2_t) -> u32 {
13936
- unsafe extern "unadjusted" {
13937
- #[cfg_attr(
13938
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13939
- link_name = "llvm.aarch64.neon.uminv.i32.v2i32"
13940
- )]
13941
- fn _vminv_u32(a: uint32x2_t) -> u32;
13942
- }
13943
- unsafe { _vminv_u32(a) }
13782
+ unsafe { simd_reduce_min(a) }
13944
13783
}
13945
13784
#[doc = "Horizontal vector min."]
13946
13785
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u32)"]
@@ -13949,14 +13788,7 @@ pub fn vminv_u32(a: uint32x2_t) -> u32 {
13949
13788
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13950
13789
#[cfg_attr(test, assert_instr(uminv))]
13951
13790
pub fn vminvq_u32(a: uint32x4_t) -> u32 {
13952
- unsafe extern "unadjusted" {
13953
- #[cfg_attr(
13954
- any(target_arch = "aarch64", target_arch = "arm64ec"),
13955
- link_name = "llvm.aarch64.neon.uminv.i32.v4i32"
13956
- )]
13957
- fn _vminvq_u32(a: uint32x4_t) -> u32;
13958
- }
13959
- unsafe { _vminvq_u32(a) }
13791
+ unsafe { simd_reduce_min(a) }
13960
13792
}
13961
13793
#[doc = "Floating-point multiply-add to accumulator"]
13962
13794
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f64)"]
0 commit comments