kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

icmp_cset_signed_long.c (619B)


      1 /* Signed 64-bit ordering comparisons materialized to booleans:
      2  *   <  -> cmp x,x + cset w, lt   <= -> le
      3  *   >  -> gt                     >= -> ge
      4  * Values straddle the 32-bit range so the 64-bit (x-register) compare is
      5  * required. volatile defeats folding.
      6  * Exit code: a=-5000000000, b=5000000000: lt=1 le=1 gt=0 ge=0
      7  *   1*10 + 1*10 + 0*100 + 0*100 + 22 = 42. */
      8 int test_main(void) {
      9   volatile long a = -5000000000L, b = 5000000000L;
     10   int lt = (a < b);  /* 1 */
     11   int le = (a <= b); /* 1 */
     12   int gt = (a > b);  /* 0 */
     13   int ge = (a >= b); /* 0 */
     14   return lt * 10 + le * 10 + gt * 100 + ge * 100 + 22;
     15 }