]> git.lizzy.rs Git - rust.git/blob - tests/codegen/option-nonzero-eq.rs
Rollup merge of #106958 - jyn514:labels, r=m-ou-se
[rust.git] / tests / codegen / option-nonzero-eq.rs
1 // compile-flags: -O -Zmerge-functions=disabled
2
3 #![crate_type = "lib"]
4
5 extern crate core;
6 use core::num::{NonZeroU32, NonZeroI64};
7 use core::ptr::NonNull;
8
9 // CHECK-lABEL: @non_zero_eq
10 #[no_mangle]
11 pub fn non_zero_eq(l: Option<NonZeroU32>, r: Option<NonZeroU32>) -> bool {
12     // CHECK: start:
13     // CHECK-NEXT: icmp eq i32
14     // CHECK-NEXT: ret i1
15     l == r
16 }
17
18 // CHECK-lABEL: @non_zero_signed_eq
19 #[no_mangle]
20 pub fn non_zero_signed_eq(l: Option<NonZeroI64>, r: Option<NonZeroI64>) -> bool {
21     // CHECK: start:
22     // CHECK-NEXT: icmp eq i64
23     // CHECK-NEXT: ret i1
24     l == r
25 }
26
27 // CHECK-lABEL: @non_null_eq
28 #[no_mangle]
29 pub fn non_null_eq(l: Option<NonNull<u8>>, r: Option<NonNull<u8>>) -> bool {
30     // CHECK: start:
31     // CHECK-NEXT: icmp eq {{(i8\*|ptr)}}
32     // CHECK-NEXT: ret i1
33     l == r
34 }