Skip to content

Commit 1e6365d

Browse files
committed
Use bitwise XOR in to_ascii_uppercase
This saves an instruction compared to the previous approach, which was to unset the fifth bit with bitwise OR.
1 parent f4a7ce9 commit 1e6365d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

library/core/src/num/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,8 @@ impl u8 {
299299
#[rustc_const_stable(feature = "const_ascii_methods_on_intrinsics", since = "1.52.0")]
300300
#[inline]
301301
pub const fn to_ascii_uppercase(&self) -> u8 {
302-
// Unset the fifth bit if this is a lowercase letter
303-
*self & !((self.is_ascii_lowercase() as u8) * ASCII_CASE_MASK)
302+
// Toggle the fifth bit if this is a lowercase letter
303+
*self ^ ((self.is_ascii_lowercase() as u8) * ASCII_CASE_MASK)
304304
}
305305

306306
/// Makes a copy of the value in its ASCII lower case equivalent.

0 commit comments

Comments
 (0)