x as double = -1.0
Generates this:
ldc.r8 1. ldc.i4 -1 conv.r8 mul stloc.0
Instead of:
ldc.r8 -1. stloc.0
x = -x (with x an int)
ldloc.0 ldc.i4 -1 mul stloc.0
ldc.i4.0 ldloc.0 sub.ovf stloc.0
Or even (for unchecked blocks and any single/double):
ldloc.0 neg stloc.0
Fixed in rev. 3103
Fixed in rev. 3103