kit

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

conv_int_double.c (482B)


      1 /* int <-> double round-trip: SCVTF (int->double, 32-bit src) and FCVTZS
      2  * (double->int). Doubles represent every 32-bit int exactly so the values are
      3  * deterministic across opt levels. volatile operands defeat folding.
      4  *
      5  *   i = 84 : d = (double)i = 84.0  (scvtf d,w)
      6  *   back   : (int)(d/2)    = 42    (fcvtzs w,d) */
      7 int test_main(void) {
      8   volatile int i = 84;
      9   double d = (double)i;      /* scvtf d,w */
     10   int back = (int)(d / 2.0); /* 42, fcvtzs w,d */
     11   return back;
     12 }