@@ -7925,7 +7925,7 @@ pub fn vcvth_f16_u64(a: u64) -> f16 {
7925
7925
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
7926
7926
pub fn vcvth_n_f16_s16<const N: i32>(a: i16) -> f16 {
7927
7927
static_assert!(N >= 1 && N <= 16);
7928
- vcvth_n_f16_s32::<N>(a as i32) as f16
7928
+ vcvth_n_f16_s32::<N>(a as i32)
7929
7929
}
7930
7930
#[doc = "Fixed-point convert to floating-point"]
7931
7931
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvth_n_f16_s32)"]
@@ -7972,7 +7972,7 @@ pub fn vcvth_n_f16_s64<const N: i32>(a: i64) -> f16 {
7972
7972
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
7973
7973
pub fn vcvth_n_f16_u16<const N: i32>(a: u16) -> f16 {
7974
7974
static_assert!(N >= 1 && N <= 16);
7975
- vcvth_n_f16_u32::<N>(a as u32) as f16
7975
+ vcvth_n_f16_u32::<N>(a as u32)
7976
7976
}
7977
7977
#[doc = "Fixed-point convert to floating-point"]
7978
7978
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvth_n_f16_u32)"]
@@ -17157,8 +17157,7 @@ pub fn vqdmlalh_s16(a: i32, b: i16, c: i16) -> i32 {
17157
17157
#[cfg_attr(test, assert_instr(sqdmlal))]
17158
17158
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17159
17159
pub fn vqdmlals_s32(a: i64, b: i32, c: i32) -> i64 {
17160
- let x: i64 = vqaddd_s64(a, vqdmulls_s32(b, c));
17161
- x as i64
17160
+ vqaddd_s64(a, vqdmulls_s32(b, c))
17162
17161
}
17163
17162
#[doc = "Signed saturating doubling multiply-subtract long"]
17164
17163
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_high_lane_s16)"]
@@ -17323,8 +17322,7 @@ pub fn vqdmlslh_s16(a: i32, b: i16, c: i16) -> i32 {
17323
17322
#[cfg_attr(test, assert_instr(sqdmlsl))]
17324
17323
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17325
17324
pub fn vqdmlsls_s32(a: i64, b: i32, c: i32) -> i64 {
17326
- let x: i64 = vqsubd_s64(a, vqdmulls_s32(b, c));
17327
- x as i64
17325
+ vqsubd_s64(a, vqdmulls_s32(b, c))
17328
17326
}
17329
17327
#[doc = "Vector saturating doubling multiply high by scalar"]
17330
17328
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_lane_s16)"]
@@ -19491,49 +19489,115 @@ pub fn vqtbl1q_s8(a: int8x16_t, b: uint8x16_t) -> int8x16_t {
19491
19489
#[doc = "Table look-up"]
19492
19490
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_u8)"]
19493
19491
#[inline]
19492
+ #[cfg(target_endian = "little")]
19493
+ #[target_feature(enable = "neon")]
19494
+ #[cfg_attr(test, assert_instr(tbl))]
19495
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19496
+ pub fn vqtbl1_u8(a: uint8x16_t, b: uint8x8_t) -> uint8x8_t {
19497
+ unsafe { transmute(vqtbl1(transmute(a), b)) }
19498
+ }
19499
+ #[doc = "Table look-up"]
19500
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_u8)"]
19501
+ #[inline]
19502
+ #[cfg(target_endian = "big")]
19494
19503
#[target_feature(enable = "neon")]
19495
19504
#[cfg_attr(test, assert_instr(tbl))]
19496
19505
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19497
19506
pub fn vqtbl1_u8(a: uint8x16_t, b: uint8x8_t) -> uint8x8_t {
19507
+ let a: uint8x16_t =
19508
+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19509
+ let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
19498
19510
unsafe {
19499
- let x = transmute(vqtbl1(transmute(a), b));
19500
- x
19511
+ let ret_val: uint8x8_t = transmute(vqtbl1(transmute(a), b));
19512
+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
19501
19513
}
19502
19514
}
19503
19515
#[doc = "Table look-up"]
19504
19516
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_u8)"]
19505
19517
#[inline]
19518
+ #[cfg(target_endian = "little")]
19506
19519
#[target_feature(enable = "neon")]
19507
19520
#[cfg_attr(test, assert_instr(tbl))]
19508
19521
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19509
19522
pub fn vqtbl1q_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
19523
+ unsafe { transmute(vqtbl1q(transmute(a), b)) }
19524
+ }
19525
+ #[doc = "Table look-up"]
19526
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_u8)"]
19527
+ #[inline]
19528
+ #[cfg(target_endian = "big")]
19529
+ #[target_feature(enable = "neon")]
19530
+ #[cfg_attr(test, assert_instr(tbl))]
19531
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19532
+ pub fn vqtbl1q_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
19533
+ let a: uint8x16_t =
19534
+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19535
+ let b: uint8x16_t =
19536
+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19510
19537
unsafe {
19511
- let x = transmute(vqtbl1q(transmute(a), b));
19512
- x
19538
+ let ret_val: uint8x16_t = transmute(vqtbl1q(transmute(a), b));
19539
+ simd_shuffle!(
19540
+ ret_val,
19541
+ ret_val,
19542
+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19543
+ )
19513
19544
}
19514
19545
}
19515
19546
#[doc = "Table look-up"]
19516
19547
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_p8)"]
19517
19548
#[inline]
19549
+ #[cfg(target_endian = "little")]
19550
+ #[target_feature(enable = "neon")]
19551
+ #[cfg_attr(test, assert_instr(tbl))]
19552
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19553
+ pub fn vqtbl1_p8(a: poly8x16_t, b: uint8x8_t) -> poly8x8_t {
19554
+ unsafe { transmute(vqtbl1(transmute(a), b)) }
19555
+ }
19556
+ #[doc = "Table look-up"]
19557
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_p8)"]
19558
+ #[inline]
19559
+ #[cfg(target_endian = "big")]
19518
19560
#[target_feature(enable = "neon")]
19519
19561
#[cfg_attr(test, assert_instr(tbl))]
19520
19562
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19521
19563
pub fn vqtbl1_p8(a: poly8x16_t, b: uint8x8_t) -> poly8x8_t {
19564
+ let a: poly8x16_t =
19565
+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19566
+ let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
19522
19567
unsafe {
19523
- let x = transmute(vqtbl1(transmute(a), b));
19524
- x
19568
+ let ret_val: poly8x8_t = transmute(vqtbl1(transmute(a), b));
19569
+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
19525
19570
}
19526
19571
}
19527
19572
#[doc = "Table look-up"]
19528
19573
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_p8)"]
19529
19574
#[inline]
19575
+ #[cfg(target_endian = "little")]
19530
19576
#[target_feature(enable = "neon")]
19531
19577
#[cfg_attr(test, assert_instr(tbl))]
19532
19578
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19533
19579
pub fn vqtbl1q_p8(a: poly8x16_t, b: uint8x16_t) -> poly8x16_t {
19580
+ unsafe { transmute(vqtbl1q(transmute(a), b)) }
19581
+ }
19582
+ #[doc = "Table look-up"]
19583
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_p8)"]
19584
+ #[inline]
19585
+ #[cfg(target_endian = "big")]
19586
+ #[target_feature(enable = "neon")]
19587
+ #[cfg_attr(test, assert_instr(tbl))]
19588
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19589
+ pub fn vqtbl1q_p8(a: poly8x16_t, b: uint8x16_t) -> poly8x16_t {
19590
+ let a: poly8x16_t =
19591
+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19592
+ let b: uint8x16_t =
19593
+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19534
19594
unsafe {
19535
- let x = transmute(vqtbl1q(transmute(a), b));
19536
- x
19595
+ let ret_val: poly8x16_t = transmute(vqtbl1q(transmute(a), b));
19596
+ simd_shuffle!(
19597
+ ret_val,
19598
+ ret_val,
19599
+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19600
+ )
19537
19601
}
19538
19602
}
19539
19603
#[doc = "Table look-up"]
@@ -20393,49 +20457,121 @@ pub fn vqtbx1q_s8(a: int8x16_t, b: int8x16_t, c: uint8x16_t) -> int8x16_t {
20393
20457
#[doc = "Extended table look-up"]
20394
20458
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_u8)"]
20395
20459
#[inline]
20460
+ #[cfg(target_endian = "little")]
20396
20461
#[target_feature(enable = "neon")]
20397
20462
#[cfg_attr(test, assert_instr(tbx))]
20398
20463
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20399
20464
pub fn vqtbx1_u8(a: uint8x8_t, b: uint8x16_t, c: uint8x8_t) -> uint8x8_t {
20465
+ unsafe { transmute(vqtbx1(transmute(a), transmute(b), c)) }
20466
+ }
20467
+ #[doc = "Extended table look-up"]
20468
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_u8)"]
20469
+ #[inline]
20470
+ #[cfg(target_endian = "big")]
20471
+ #[target_feature(enable = "neon")]
20472
+ #[cfg_attr(test, assert_instr(tbx))]
20473
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20474
+ pub fn vqtbx1_u8(a: uint8x8_t, b: uint8x16_t, c: uint8x8_t) -> uint8x8_t {
20475
+ let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
20476
+ let b: uint8x16_t =
20477
+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20478
+ let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
20400
20479
unsafe {
20401
- let x = transmute(vqtbx1(transmute(a), transmute(b), c));
20402
- x
20480
+ let ret_val: uint8x8_t = transmute(vqtbx1(transmute(a), transmute(b), c));
20481
+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
20403
20482
}
20404
20483
}
20405
20484
#[doc = "Extended table look-up"]
20406
20485
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_u8)"]
20407
20486
#[inline]
20487
+ #[cfg(target_endian = "little")]
20408
20488
#[target_feature(enable = "neon")]
20409
20489
#[cfg_attr(test, assert_instr(tbx))]
20410
20490
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20411
20491
pub fn vqtbx1q_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
20492
+ unsafe { transmute(vqtbx1q(transmute(a), transmute(b), c)) }
20493
+ }
20494
+ #[doc = "Extended table look-up"]
20495
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_u8)"]
20496
+ #[inline]
20497
+ #[cfg(target_endian = "big")]
20498
+ #[target_feature(enable = "neon")]
20499
+ #[cfg_attr(test, assert_instr(tbx))]
20500
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20501
+ pub fn vqtbx1q_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
20502
+ let a: uint8x16_t =
20503
+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20504
+ let b: uint8x16_t =
20505
+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20506
+ let c: uint8x16_t =
20507
+ unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20412
20508
unsafe {
20413
- let x = transmute(vqtbx1q(transmute(a), transmute(b), c));
20414
- x
20509
+ let ret_val: uint8x16_t = transmute(vqtbx1q(transmute(a), transmute(b), c));
20510
+ simd_shuffle!(
20511
+ ret_val,
20512
+ ret_val,
20513
+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20514
+ )
20415
20515
}
20416
20516
}
20417
20517
#[doc = "Extended table look-up"]
20418
20518
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_p8)"]
20419
20519
#[inline]
20520
+ #[cfg(target_endian = "little")]
20420
20521
#[target_feature(enable = "neon")]
20421
20522
#[cfg_attr(test, assert_instr(tbx))]
20422
20523
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20423
20524
pub fn vqtbx1_p8(a: poly8x8_t, b: poly8x16_t, c: uint8x8_t) -> poly8x8_t {
20525
+ unsafe { transmute(vqtbx1(transmute(a), transmute(b), c)) }
20526
+ }
20527
+ #[doc = "Extended table look-up"]
20528
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_p8)"]
20529
+ #[inline]
20530
+ #[cfg(target_endian = "big")]
20531
+ #[target_feature(enable = "neon")]
20532
+ #[cfg_attr(test, assert_instr(tbx))]
20533
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20534
+ pub fn vqtbx1_p8(a: poly8x8_t, b: poly8x16_t, c: uint8x8_t) -> poly8x8_t {
20535
+ let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
20536
+ let b: poly8x16_t =
20537
+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20538
+ let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
20424
20539
unsafe {
20425
- let x = transmute(vqtbx1(transmute(a), transmute(b), c));
20426
- x
20540
+ let ret_val: poly8x8_t = transmute(vqtbx1(transmute(a), transmute(b), c));
20541
+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
20427
20542
}
20428
20543
}
20429
20544
#[doc = "Extended table look-up"]
20430
20545
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_p8)"]
20431
20546
#[inline]
20547
+ #[cfg(target_endian = "little")]
20548
+ #[target_feature(enable = "neon")]
20549
+ #[cfg_attr(test, assert_instr(tbx))]
20550
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20551
+ pub fn vqtbx1q_p8(a: poly8x16_t, b: poly8x16_t, c: uint8x16_t) -> poly8x16_t {
20552
+ unsafe { transmute(vqtbx1q(transmute(a), transmute(b), c)) }
20553
+ }
20554
+ #[doc = "Extended table look-up"]
20555
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_p8)"]
20556
+ #[inline]
20557
+ #[cfg(target_endian = "big")]
20432
20558
#[target_feature(enable = "neon")]
20433
20559
#[cfg_attr(test, assert_instr(tbx))]
20434
20560
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20435
20561
pub fn vqtbx1q_p8(a: poly8x16_t, b: poly8x16_t, c: uint8x16_t) -> poly8x16_t {
20562
+ let a: poly8x16_t =
20563
+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20564
+ let b: poly8x16_t =
20565
+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20566
+ let c: uint8x16_t =
20567
+ unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20436
20568
unsafe {
20437
- let x = transmute(vqtbx1q(transmute(a), transmute(b), c));
20438
- x
20569
+ let ret_val: poly8x16_t = transmute(vqtbx1q(transmute(a), transmute(b), c));
20570
+ simd_shuffle!(
20571
+ ret_val,
20572
+ ret_val,
20573
+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20574
+ )
20439
20575
}
20440
20576
}
20441
20577
#[doc = "Extended table look-up"]
@@ -24082,7 +24218,6 @@ pub fn vrsqrtes_f32(a: f32) -> f32 {
24082
24218
#[doc = "Reciprocal square-root estimate."]
24083
24219
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteh_f16)"]
24084
24220
#[inline]
24085
- #[target_feature(enable = "neon,fp16")]
24086
24221
#[cfg_attr(test, assert_instr(frsqrte))]
24087
24222
#[target_feature(enable = "neon,fp16")]
24088
24223
#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
0 commit comments