This patch implements lowering for the Fortran 2008 bit-population count intrinsics POPCNT, POPPAR, LEADZ and TRAILZ.
POPCNT, LEADZ and TRAILZ are implemented using calls to the corresponding LLVM intrinsic.
POPVAR is implemented in terms of POPCNT.
The genMathOp function seems to switch between the libm version and the Math dialect Op version based on whether the setting of mathRuntimeVersion is precise or not. I believe the mathRuntimeVersion is for floating point intrinsics and probably not applicable for integer intrinsics. Adding @vzakhari for an opinion on this.