On x86, long double has 6 unused trailing bytes. This patch changes the constant evaluator to treat them as though they were padding bytes, so reading from them results in an indeterminate value, and nothing is written for them. Also, fix a similar bug with bool, but instead of treating the unused bits as padding, enforce that they're zero.
Fixes a bug Louis pointed out in: https://reviews.llvm.org/D75960
semanticsSizeInBits is the number of bits actually used in the type?