[release/6.0] Add cast when replacing promoted struct with field in lowering (#58951)
* Add cast when replacing promoted struct with field in lowering
We may need to sign/zero-extend when we do this replacement very late.
Normally this cast would be inserted in morph.
Fix #58373
* Add test
* Fix formatting
* Fix test cases
* Type returned-struct-as-primitive correctly for normalization
Retyping it to the type of the ret node is not right when reinterpreting
small structs as a type that needs to be normalized.
* Fix assertion
* Run jit-format
Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>