about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLzu Tao <taolzu@gmail.com>2019-08-29 03:52:18 +0000
committerLzu Tao <taolzu@gmail.com>2019-08-29 03:52:18 +0000
commitade191c70a51f6699b64423e0bc8e0f307de9ecd (patch)
treee51436dd128c8a3ee92af6a67d72023de7820ac8
parent0414dfa0aa072b6e1153ae60f94de852c07bb803 (diff)
downloadrust-ade191c70a51f6699b64423e0bc8e0f307de9ecd.tar.gz
rust-ade191c70a51f6699b64423e0bc8e0f307de9ecd.zip
Small improvement for Ord implementation of integers
-rw-r--r--src/libcore/cmp.rs4
-rw-r--r--src/test/codegen/integer-cmp.rs4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/libcore/cmp.rs b/src/libcore/cmp.rs
index 167a9dd1c36..607427a85d6 100644
--- a/src/libcore/cmp.rs
+++ b/src/libcore/cmp.rs
@@ -1015,8 +1015,8 @@ mod impls {
                     // The order here is important to generate more optimal assembly.
                     // See <https://github.com/rust-lang/rust/issues/63758> for more info.
                     if *self < *other { Less }
-                    else if *self > *other { Greater }
-                    else { Equal }
+                    else if *self == *other { Equal }
+                    else { Greater }
                 }
             }
         )*)
diff --git a/src/test/codegen/integer-cmp.rs b/src/test/codegen/integer-cmp.rs
index 1373b12e372..8ada3cf09d0 100644
--- a/src/test/codegen/integer-cmp.rs
+++ b/src/test/codegen/integer-cmp.rs
@@ -11,7 +11,7 @@ use std::cmp::Ordering;
 #[no_mangle]
 pub fn cmp_signed(a: i64, b: i64) -> Ordering {
 // CHECK: icmp slt
-// CHECK: icmp sgt
+// CHECK: icmp ne
 // CHECK: zext i1
 // CHECK: select i1
     a.cmp(&b)
@@ -21,7 +21,7 @@ pub fn cmp_signed(a: i64, b: i64) -> Ordering {
 #[no_mangle]
 pub fn cmp_unsigned(a: u32, b: u32) -> Ordering {
 // CHECK: icmp ult
-// CHECK: icmp ugt
+// CHECK: icmp ne
 // CHECK: zext i1
 // CHECK: select i1
     a.cmp(&b)