]> git.lizzy.rs Git - rust.git/blob - tests/codegen/issue-73338-effecient-cmp.rs
Rollup merge of #107248 - erikdesjardins:addrspace, r=oli-obk
[rust.git] / tests / codegen / issue-73338-effecient-cmp.rs
1 // This test checks that comparison operation
2 // generated by #[derive(PartialOrd)]
3 // doesn't contain jumps for C enums
4
5 // compile-flags: -Copt-level=3
6
7 #![crate_type="lib"]
8
9 #[repr(u32)]
10 #[derive(Copy, Clone, Eq, PartialEq, PartialOrd)]
11 pub enum Foo {
12     Zero,
13     One,
14     Two,
15 }
16
17 #[no_mangle]
18 pub fn compare_less(a: Foo, b: Foo)->bool{
19     // CHECK-NOT: br {{.*}}
20     a < b
21 }
22
23 #[no_mangle]
24 pub fn compare_le(a: Foo, b: Foo)->bool{
25     // CHECK-NOT: br {{.*}}
26     a <= b
27 }
28
29 #[no_mangle]
30 pub fn compare_ge(a: Foo, b: Foo)->bool{
31     // CHECK-NOT: br {{.*}}
32     a >= b
33 }
34
35 #[no_mangle]
36 pub fn compare_greater(a: Foo, b: Foo)->bool{
37     // CHECK-NOT: br {{.*}}
38     a > b
39 }