Skip to content

Commit 76c1085

Browse files
committed
Make abm, bmi1, bmi2, bswap and tbm functions const
1 parent ee353b2 commit 76c1085

File tree

10 files changed

+78
-39
lines changed

10 files changed

+78
-39
lines changed

crates/core_arch/src/x86/abm.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ use stdarch_test::assert_instr;
2929
#[target_feature(enable = "lzcnt")]
3030
#[cfg_attr(test, assert_instr(lzcnt))]
3131
#[stable(feature = "simd_x86", since = "1.27.0")]
32-
pub fn _lzcnt_u32(x: u32) -> u32 {
32+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
33+
pub const fn _lzcnt_u32(x: u32) -> u32 {
3334
x.leading_zeros()
3435
}
3536

@@ -40,7 +41,8 @@ pub fn _lzcnt_u32(x: u32) -> u32 {
4041
#[target_feature(enable = "popcnt")]
4142
#[cfg_attr(test, assert_instr(popcnt))]
4243
#[stable(feature = "simd_x86", since = "1.27.0")]
43-
pub fn _popcnt32(x: i32) -> i32 {
44+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
45+
pub const fn _popcnt32(x: i32) -> i32 {
4446
x.count_ones() as i32
4547
}
4648

crates/core_arch/src/x86/bmi1.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ pub fn _bextr2_u32(a: u32, control: u32) -> u32 {
4646
#[target_feature(enable = "bmi1")]
4747
#[cfg_attr(test, assert_instr(andn))]
4848
#[stable(feature = "simd_x86", since = "1.27.0")]
49-
pub fn _andn_u32(a: u32, b: u32) -> u32 {
49+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
50+
pub const fn _andn_u32(a: u32, b: u32) -> u32 {
5051
!a & b
5152
}
5253

@@ -57,7 +58,8 @@ pub fn _andn_u32(a: u32, b: u32) -> u32 {
5758
#[target_feature(enable = "bmi1")]
5859
#[cfg_attr(test, assert_instr(blsi))]
5960
#[stable(feature = "simd_x86", since = "1.27.0")]
60-
pub fn _blsi_u32(x: u32) -> u32 {
61+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
62+
pub const fn _blsi_u32(x: u32) -> u32 {
6163
x & x.wrapping_neg()
6264
}
6365

@@ -68,7 +70,8 @@ pub fn _blsi_u32(x: u32) -> u32 {
6870
#[target_feature(enable = "bmi1")]
6971
#[cfg_attr(test, assert_instr(blsmsk))]
7072
#[stable(feature = "simd_x86", since = "1.27.0")]
71-
pub fn _blsmsk_u32(x: u32) -> u32 {
73+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
74+
pub const fn _blsmsk_u32(x: u32) -> u32 {
7275
x ^ (x.wrapping_sub(1_u32))
7376
}
7477

@@ -81,7 +84,8 @@ pub fn _blsmsk_u32(x: u32) -> u32 {
8184
#[target_feature(enable = "bmi1")]
8285
#[cfg_attr(test, assert_instr(blsr))]
8386
#[stable(feature = "simd_x86", since = "1.27.0")]
84-
pub fn _blsr_u32(x: u32) -> u32 {
87+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
88+
pub const fn _blsr_u32(x: u32) -> u32 {
8589
x & (x.wrapping_sub(1))
8690
}
8791

@@ -94,7 +98,8 @@ pub fn _blsr_u32(x: u32) -> u32 {
9498
#[target_feature(enable = "bmi1")]
9599
#[cfg_attr(test, assert_instr(tzcnt))]
96100
#[stable(feature = "simd_x86_updates", since = "1.82.0")]
97-
pub fn _tzcnt_u16(x: u16) -> u16 {
101+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
102+
pub const fn _tzcnt_u16(x: u16) -> u16 {
98103
x.trailing_zeros() as u16
99104
}
100105

@@ -107,7 +112,8 @@ pub fn _tzcnt_u16(x: u16) -> u16 {
107112
#[target_feature(enable = "bmi1")]
108113
#[cfg_attr(test, assert_instr(tzcnt))]
109114
#[stable(feature = "simd_x86", since = "1.27.0")]
110-
pub fn _tzcnt_u32(x: u32) -> u32 {
115+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
116+
pub const fn _tzcnt_u32(x: u32) -> u32 {
111117
x.trailing_zeros()
112118
}
113119

@@ -120,7 +126,8 @@ pub fn _tzcnt_u32(x: u32) -> u32 {
120126
#[target_feature(enable = "bmi1")]
121127
#[cfg_attr(test, assert_instr(tzcnt))]
122128
#[stable(feature = "simd_x86", since = "1.27.0")]
123-
pub fn _mm_tzcnt_32(x: u32) -> i32 {
129+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
130+
pub const fn _mm_tzcnt_32(x: u32) -> i32 {
124131
x.trailing_zeros() as i32
125132
}
126133

crates/core_arch/src/x86/bmi2.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ use stdarch_test::assert_instr;
2525
#[cfg_attr(all(test, target_arch = "x86"), assert_instr(mul))]
2626
#[target_feature(enable = "bmi2")]
2727
#[stable(feature = "simd_x86", since = "1.27.0")]
28-
pub fn _mulx_u32(a: u32, b: u32, hi: &mut u32) -> u32 {
28+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
29+
pub const fn _mulx_u32(a: u32, b: u32, hi: &mut u32) -> u32 {
2930
let result: u64 = (a as u64) * (b as u64);
3031
*hi = (result >> 32) as u32;
3132
result as u32

crates/core_arch/src/x86/bswap.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ use stdarch_test::assert_instr;
1010
#[inline]
1111
#[cfg_attr(test, assert_instr(bswap))]
1212
#[stable(feature = "simd_x86", since = "1.27.0")]
13-
pub unsafe fn _bswap(x: i32) -> i32 {
13+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
14+
pub const unsafe fn _bswap(x: i32) -> i32 {
1415
x.swap_bytes()
1516
}
1617

crates/core_arch/src/x86/tbm.rs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ pub unsafe fn _bextri_u32<const CONTROL: u32>(a: u32) -> u32 {
4242
#[target_feature(enable = "tbm")]
4343
#[cfg_attr(test, assert_instr(blcfill))]
4444
#[stable(feature = "simd_x86", since = "1.27.0")]
45-
pub unsafe fn _blcfill_u32(x: u32) -> u32 {
45+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
46+
pub const unsafe fn _blcfill_u32(x: u32) -> u32 {
4647
x & (x.wrapping_add(1))
4748
}
4849

@@ -53,7 +54,8 @@ pub unsafe fn _blcfill_u32(x: u32) -> u32 {
5354
#[target_feature(enable = "tbm")]
5455
#[cfg_attr(test, assert_instr(blci))]
5556
#[stable(feature = "simd_x86", since = "1.27.0")]
56-
pub unsafe fn _blci_u32(x: u32) -> u32 {
57+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
58+
pub const unsafe fn _blci_u32(x: u32) -> u32 {
5759
x | !x.wrapping_add(1)
5860
}
5961

@@ -64,7 +66,8 @@ pub unsafe fn _blci_u32(x: u32) -> u32 {
6466
#[target_feature(enable = "tbm")]
6567
#[cfg_attr(test, assert_instr(blcic))]
6668
#[stable(feature = "simd_x86", since = "1.27.0")]
67-
pub unsafe fn _blcic_u32(x: u32) -> u32 {
69+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
70+
pub const unsafe fn _blcic_u32(x: u32) -> u32 {
6871
!x & x.wrapping_add(1)
6972
}
7073

@@ -76,7 +79,8 @@ pub unsafe fn _blcic_u32(x: u32) -> u32 {
7679
#[target_feature(enable = "tbm")]
7780
#[cfg_attr(test, assert_instr(blcmsk))]
7881
#[stable(feature = "simd_x86", since = "1.27.0")]
79-
pub unsafe fn _blcmsk_u32(x: u32) -> u32 {
82+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
83+
pub const unsafe fn _blcmsk_u32(x: u32) -> u32 {
8084
x ^ x.wrapping_add(1)
8185
}
8286

@@ -87,7 +91,8 @@ pub unsafe fn _blcmsk_u32(x: u32) -> u32 {
8791
#[target_feature(enable = "tbm")]
8892
#[cfg_attr(test, assert_instr(blcs))]
8993
#[stable(feature = "simd_x86", since = "1.27.0")]
90-
pub unsafe fn _blcs_u32(x: u32) -> u32 {
94+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
95+
pub const unsafe fn _blcs_u32(x: u32) -> u32 {
9196
x | x.wrapping_add(1)
9297
}
9398

@@ -98,7 +103,8 @@ pub unsafe fn _blcs_u32(x: u32) -> u32 {
98103
#[target_feature(enable = "tbm")]
99104
#[cfg_attr(test, assert_instr(blsfill))]
100105
#[stable(feature = "simd_x86", since = "1.27.0")]
101-
pub unsafe fn _blsfill_u32(x: u32) -> u32 {
106+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
107+
pub const unsafe fn _blsfill_u32(x: u32) -> u32 {
102108
x | x.wrapping_sub(1)
103109
}
104110

@@ -109,7 +115,8 @@ pub unsafe fn _blsfill_u32(x: u32) -> u32 {
109115
#[target_feature(enable = "tbm")]
110116
#[cfg_attr(test, assert_instr(blsic))]
111117
#[stable(feature = "simd_x86", since = "1.27.0")]
112-
pub unsafe fn _blsic_u32(x: u32) -> u32 {
118+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
119+
pub const unsafe fn _blsic_u32(x: u32) -> u32 {
113120
!x | x.wrapping_sub(1)
114121
}
115122

@@ -121,7 +128,8 @@ pub unsafe fn _blsic_u32(x: u32) -> u32 {
121128
#[target_feature(enable = "tbm")]
122129
#[cfg_attr(test, assert_instr(t1mskc))]
123130
#[stable(feature = "simd_x86", since = "1.27.0")]
124-
pub unsafe fn _t1mskc_u32(x: u32) -> u32 {
131+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
132+
pub const unsafe fn _t1mskc_u32(x: u32) -> u32 {
125133
!x | x.wrapping_add(1)
126134
}
127135

@@ -133,7 +141,8 @@ pub unsafe fn _t1mskc_u32(x: u32) -> u32 {
133141
#[target_feature(enable = "tbm")]
134142
#[cfg_attr(test, assert_instr(tzmsk))]
135143
#[stable(feature = "simd_x86", since = "1.27.0")]
136-
pub unsafe fn _tzmsk_u32(x: u32) -> u32 {
144+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
145+
pub const unsafe fn _tzmsk_u32(x: u32) -> u32 {
137146
!x & x.wrapping_sub(1)
138147
}
139148

crates/core_arch/src/x86_64/abm.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ use stdarch_test::assert_instr;
2929
#[target_feature(enable = "lzcnt")]
3030
#[cfg_attr(test, assert_instr(lzcnt))]
3131
#[stable(feature = "simd_x86", since = "1.27.0")]
32-
pub fn _lzcnt_u64(x: u64) -> u64 {
32+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
33+
pub const fn _lzcnt_u64(x: u64) -> u64 {
3334
x.leading_zeros() as u64
3435
}
3536

@@ -40,7 +41,8 @@ pub fn _lzcnt_u64(x: u64) -> u64 {
4041
#[target_feature(enable = "popcnt")]
4142
#[cfg_attr(test, assert_instr(popcnt))]
4243
#[stable(feature = "simd_x86", since = "1.27.0")]
43-
pub fn _popcnt64(x: i64) -> i32 {
44+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
45+
pub const fn _popcnt64(x: i64) -> i32 {
4446
x.count_ones() as i32
4547
}
4648

crates/core_arch/src/x86_64/bmi.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ pub fn _bextr2_u64(a: u64, control: u64) -> u64 {
4848
#[target_feature(enable = "bmi1")]
4949
#[cfg_attr(test, assert_instr(andn))]
5050
#[stable(feature = "simd_x86", since = "1.27.0")]
51-
pub fn _andn_u64(a: u64, b: u64) -> u64 {
51+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
52+
pub const fn _andn_u64(a: u64, b: u64) -> u64 {
5253
!a & b
5354
}
5455

@@ -60,7 +61,8 @@ pub fn _andn_u64(a: u64, b: u64) -> u64 {
6061
#[cfg_attr(test, assert_instr(blsi))]
6162
#[cfg(not(target_arch = "x86"))] // generates lots of instructions
6263
#[stable(feature = "simd_x86", since = "1.27.0")]
63-
pub fn _blsi_u64(x: u64) -> u64 {
64+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
65+
pub const fn _blsi_u64(x: u64) -> u64 {
6466
x & x.wrapping_neg()
6567
}
6668

@@ -72,7 +74,8 @@ pub fn _blsi_u64(x: u64) -> u64 {
7274
#[cfg_attr(test, assert_instr(blsmsk))]
7375
#[cfg(not(target_arch = "x86"))] // generates lots of instructions
7476
#[stable(feature = "simd_x86", since = "1.27.0")]
75-
pub fn _blsmsk_u64(x: u64) -> u64 {
77+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
78+
pub const fn _blsmsk_u64(x: u64) -> u64 {
7679
x ^ (x.wrapping_sub(1_u64))
7780
}
7881

@@ -86,7 +89,8 @@ pub fn _blsmsk_u64(x: u64) -> u64 {
8689
#[cfg_attr(test, assert_instr(blsr))]
8790
#[cfg(not(target_arch = "x86"))] // generates lots of instructions
8891
#[stable(feature = "simd_x86", since = "1.27.0")]
89-
pub fn _blsr_u64(x: u64) -> u64 {
92+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
93+
pub const fn _blsr_u64(x: u64) -> u64 {
9094
x & (x.wrapping_sub(1))
9195
}
9296

@@ -99,7 +103,8 @@ pub fn _blsr_u64(x: u64) -> u64 {
99103
#[target_feature(enable = "bmi1")]
100104
#[cfg_attr(test, assert_instr(tzcnt))]
101105
#[stable(feature = "simd_x86", since = "1.27.0")]
102-
pub fn _tzcnt_u64(x: u64) -> u64 {
106+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
107+
pub const fn _tzcnt_u64(x: u64) -> u64 {
103108
x.trailing_zeros() as u64
104109
}
105110

@@ -112,7 +117,8 @@ pub fn _tzcnt_u64(x: u64) -> u64 {
112117
#[target_feature(enable = "bmi1")]
113118
#[cfg_attr(test, assert_instr(tzcnt))]
114119
#[stable(feature = "simd_x86", since = "1.27.0")]
115-
pub fn _mm_tzcnt_64(x: u64) -> i64 {
120+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
121+
pub const fn _mm_tzcnt_64(x: u64) -> i64 {
116122
x.trailing_zeros() as i64
117123
}
118124

crates/core_arch/src/x86_64/bmi2.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ use stdarch_test::assert_instr;
2424
#[target_feature(enable = "bmi2")]
2525
#[cfg(not(target_arch = "x86"))] // calls an intrinsic
2626
#[stable(feature = "simd_x86", since = "1.27.0")]
27-
pub fn _mulx_u64(a: u64, b: u64, hi: &mut u64) -> u64 {
27+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
28+
pub const fn _mulx_u64(a: u64, b: u64, hi: &mut u64) -> u64 {
2829
let result: u128 = (a as u128) * (b as u128);
2930
*hi = (result >> 64) as u64;
3031
result as u64

crates/core_arch/src/x86_64/bswap.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ use stdarch_test::assert_instr;
1111
#[inline]
1212
#[cfg_attr(test, assert_instr(bswap))]
1313
#[stable(feature = "simd_x86", since = "1.27.0")]
14-
pub unsafe fn _bswap64(x: i64) -> i64 {
14+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
15+
pub const unsafe fn _bswap64(x: i64) -> i64 {
1516
x.swap_bytes()
1617
}
1718

crates/core_arch/src/x86_64/tbm.rs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ pub unsafe fn _bextri_u64<const CONTROL: u64>(a: u64) -> u64 {
4242
#[target_feature(enable = "tbm")]
4343
#[cfg_attr(test, assert_instr(blcfill))]
4444
#[stable(feature = "simd_x86", since = "1.27.0")]
45-
pub unsafe fn _blcfill_u64(x: u64) -> u64 {
45+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
46+
pub const unsafe fn _blcfill_u64(x: u64) -> u64 {
4647
x & x.wrapping_add(1)
4748
}
4849

@@ -53,7 +54,8 @@ pub unsafe fn _blcfill_u64(x: u64) -> u64 {
5354
#[target_feature(enable = "tbm")]
5455
#[cfg_attr(test, assert_instr(blci))]
5556
#[stable(feature = "simd_x86", since = "1.27.0")]
56-
pub unsafe fn _blci_u64(x: u64) -> u64 {
57+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
58+
pub const unsafe fn _blci_u64(x: u64) -> u64 {
5759
x | !x.wrapping_add(1)
5860
}
5961

@@ -64,7 +66,8 @@ pub unsafe fn _blci_u64(x: u64) -> u64 {
6466
#[target_feature(enable = "tbm")]
6567
#[cfg_attr(test, assert_instr(blcic))]
6668
#[stable(feature = "simd_x86", since = "1.27.0")]
67-
pub unsafe fn _blcic_u64(x: u64) -> u64 {
69+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
70+
pub const unsafe fn _blcic_u64(x: u64) -> u64 {
6871
!x & x.wrapping_add(1)
6972
}
7073

@@ -76,7 +79,8 @@ pub unsafe fn _blcic_u64(x: u64) -> u64 {
7679
#[target_feature(enable = "tbm")]
7780
#[cfg_attr(test, assert_instr(blcmsk))]
7881
#[stable(feature = "simd_x86", since = "1.27.0")]
79-
pub unsafe fn _blcmsk_u64(x: u64) -> u64 {
82+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
83+
pub const unsafe fn _blcmsk_u64(x: u64) -> u64 {
8084
x ^ x.wrapping_add(1)
8185
}
8286

@@ -87,7 +91,8 @@ pub unsafe fn _blcmsk_u64(x: u64) -> u64 {
8791
#[target_feature(enable = "tbm")]
8892
#[cfg_attr(test, assert_instr(blcs))]
8993
#[stable(feature = "simd_x86", since = "1.27.0")]
90-
pub unsafe fn _blcs_u64(x: u64) -> u64 {
94+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
95+
pub const unsafe fn _blcs_u64(x: u64) -> u64 {
9196
x | x.wrapping_add(1)
9297
}
9398

@@ -98,7 +103,8 @@ pub unsafe fn _blcs_u64(x: u64) -> u64 {
98103
#[target_feature(enable = "tbm")]
99104
#[cfg_attr(test, assert_instr(blsfill))]
100105
#[stable(feature = "simd_x86", since = "1.27.0")]
101-
pub unsafe fn _blsfill_u64(x: u64) -> u64 {
106+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
107+
pub const unsafe fn _blsfill_u64(x: u64) -> u64 {
102108
x | x.wrapping_sub(1)
103109
}
104110

@@ -109,7 +115,8 @@ pub unsafe fn _blsfill_u64(x: u64) -> u64 {
109115
#[target_feature(enable = "tbm")]
110116
#[cfg_attr(test, assert_instr(blsic))]
111117
#[stable(feature = "simd_x86", since = "1.27.0")]
112-
pub unsafe fn _blsic_u64(x: u64) -> u64 {
118+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
119+
pub const unsafe fn _blsic_u64(x: u64) -> u64 {
113120
!x | x.wrapping_sub(1)
114121
}
115122

@@ -121,7 +128,8 @@ pub unsafe fn _blsic_u64(x: u64) -> u64 {
121128
#[target_feature(enable = "tbm")]
122129
#[cfg_attr(test, assert_instr(t1mskc))]
123130
#[stable(feature = "simd_x86", since = "1.27.0")]
124-
pub unsafe fn _t1mskc_u64(x: u64) -> u64 {
131+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
132+
pub const unsafe fn _t1mskc_u64(x: u64) -> u64 {
125133
!x | x.wrapping_add(1)
126134
}
127135

@@ -133,7 +141,8 @@ pub unsafe fn _t1mskc_u64(x: u64) -> u64 {
133141
#[target_feature(enable = "tbm")]
134142
#[cfg_attr(test, assert_instr(tzmsk))]
135143
#[stable(feature = "simd_x86", since = "1.27.0")]
136-
pub unsafe fn _tzmsk_u64(x: u64) -> u64 {
144+
#[rustc_const_unstable(feature = "stdarch_const_intrinsics", issue = "none")]
145+
pub const unsafe fn _tzmsk_u64(x: u64) -> u64 {
137146
!x & x.wrapping_sub(1)
138147
}
139148

0 commit comments

Comments
 (0)