In IR bitcode, the alignment is stored log2, biased by one (to represent 'default' alignment),
in 5 bits (would one/two extra bits cause the sky to fall?).
But that means that the maximal alignment exponent is (1<<5)-2, which is 30, not 29.
And indeed, alignment of 1073741824 rountrips IR serialization-deserialization.
While this doesn't seem all that important, this doubles the maximal supported alignment
from 512MiB to 1GiB, and there's actually one noticeable use-case for that;
On X86, the huge pages can have sizes of 2MiB and 1GiB (!).
So while this doesn't add support for truly huge alignments,
i think this adds zero-cost support for a not-trivially-dismissable case.
I don't believe we need any upgrade infrastructure,
and since we don't explicitly record the IR version, we don't need to bump one.
Should use -run-pass=none, and go in test/CodeGen/MIR/X86