We can’t currently constant-fold away the initialization of StringObject’s 7-bit discriminator field, so string literal initialization is a bit more complicated on 32-bit platforms.
rdar://problem/45845142
The main part of this is to rewrite the small string literal-constructor to work with values (= shifting bytes) instead of setting bytes in memory.
This allows the compiler to fold away everything and end up with the optimal code for small string literals.