1 // assembly-output: emit-asm
2 // min-llvm-version: 14.0
4 // revisions: opt-speed opt-size
5 // [opt-speed] compile-flags: -Copt-level=1
6 // [opt-size] compile-flags: -Copt-level=s
9 #![feature(core_intrinsics)]
10 #![feature(pointer_is_aligned)]
12 // CHECK-LABEL: is_aligned_to_unchecked
18 pub unsafe fn is_aligned_to_unchecked(ptr: *const u8, align: usize) -> bool {
20 std::intrinsics::assume(align.is_power_of_two())
22 ptr.is_aligned_to(align)
25 // CHECK-LABEL: is_aligned_1
29 pub fn is_aligned_1(ptr: *const u8) -> bool {
33 // CHECK-LABEL: is_aligned_2
38 pub fn is_aligned_2(ptr: *const u16) -> bool {
42 // CHECK-LABEL: is_aligned_4
47 pub fn is_aligned_4(ptr: *const u32) -> bool {
51 // CHECK-LABEL: is_aligned_8
56 pub fn is_aligned_8(ptr: *const u64) -> bool {