When determining the initial value of the object, use the constant folding API to load a given type at a given offset in the global initializer. This makes it work for cases where the load doesn't directly correspond to an aggregate member.
This appears to regress the static_global_simplifiable_2 test though, any idea why?
You exposed a bug, the above should be correct and avoid the regression. If we load any bytes from a null value we get null.