]> git.proxmox.com Git - rustc.git/blob - tests/codegen/issue-73338-effecient-cmp.rs
New upstream version 1.68.2+dfsg1
[rustc.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 }