]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
sort: tune diff_reversed
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 25 May 2022 18:23:39 +0000 (11:23 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 25 May 2022 18:24:09 +0000 (11:24 -0700)
* src/sort.c (diff_reversed): Tune.  On x86-64 with GCC, this
saves a conditional branch and shortens the generated machine code.

src/sort.c

index 0cd22f931315257179abb9516dfa7d93a2c7a0d2..0a6b557ac96edf1a947ac427d5f294df27d445b0 100644 (file)
@@ -2607,7 +2607,7 @@ key_warnings (struct keyfield const *gkey, bool gkey_only)
 static int
 diff_reversed (int diff, bool reversed)
 {
-  return reversed ? (diff < 0 ? 1 : -diff) : diff;
+  return reversed ? (diff < 0) - (diff > 0) : diff;
 }
 
 /* Compare two lines A and B trying every key in sequence until there