bitmanip.FloatRep functions not inlined?

Guillaume Chatelet via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Fri Jul 7 11:34:50 PDT 2017


Please have a look at the following (incorrect) code:

struct half {
   import std.bitmanip;
     enum uint bias = 15, fractionBits = 10, exponentBits = 5, 
signBits = 1;

     this(float value) {
         const f_rep = FloatRep(value);
         sign = f_rep.sign;
         exponent = cast(ubyte)(f_rep.exponent - FloatRep.bias + 
bias);
         fraction = f_rep.fraction;
     }

private:
     mixin(bitfields!(
               uint,  "fraction", fractionBits,
               ubyte, "exponent", exponentBits,
               bool,  "sign",     signBits));
}

Any idea why LDC wouldn't inline the FloatRep's functions ?
https://godbolt.org/g/Pzoebd


More information about the digitalmars-d-ldc mailing list