Lzu Tao | f5b16f6 | 2019-08-21 15:50:43 | [diff] [blame] | 1 | // This is test for more optimal Ord implementation for integers. |
| 2 | // See <https://github.com/rust-lang/rust/issues/63758> for more info. |
| 3 | |
| 4 | // compile-flags: -C opt-level=3 |
| 5 | |
| 6 | #![crate_type = "lib"] |
| 7 | |
| 8 | use std::cmp::Ordering; |
| 9 | |
| 10 | // CHECK-LABEL: @cmp_signed |
| 11 | #[no_mangle] |
| 12 | pub fn cmp_signed(a: i64, b: i64) -> Ordering { |
| 13 | // CHECK: icmp slt |
Lzu Tao | ade191c | 2019-08-29 03:52:18 | [diff] [blame] | 14 | // CHECK: icmp ne |
Lzu Tao | f5b16f6 | 2019-08-21 15:50:43 | [diff] [blame] | 15 | // CHECK: zext i1 |
| 16 | // CHECK: select i1 |
| 17 | a.cmp(&b) |
| 18 | } |
| 19 | |
| 20 | // CHECK-LABEL: @cmp_unsigned |
| 21 | #[no_mangle] |
| 22 | pub fn cmp_unsigned(a: u32, b: u32) -> Ordering { |
| 23 | // CHECK: icmp ult |
Lzu Tao | ade191c | 2019-08-29 03:52:18 | [diff] [blame] | 24 | // CHECK: icmp ne |
Lzu Tao | f5b16f6 | 2019-08-21 15:50:43 | [diff] [blame] | 25 | // CHECK: zext i1 |
| 26 | // CHECK: select i1 |
| 27 | a.cmp(&b) |
| 28 | } |