Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

AArch64 NCG: possible clobbering in MO_S_Mul2
As discovered when reviewing !15619, the code generation for `MO_S_Mul2` on AArch64 suffers from possible clobbering https://gitlab.haskell.org/ghc/ghc/-/blob/18fd0df60d827ec1c4c84aad2283570e7635222b/compiler/GHC/CmmToAsm/AArch64/CodeGen.hs?page=2#L1819 ```hs return $ code_x `appOL` code_y `snocOL` MUL (OpReg W64 lo) (OpReg W64 reg_a) (OpReg W64 reg_b) `snocOL` SMULH (OpReg W64 hi) (OpReg W64 reg_a) (OpReg W64 reg_b) `snocOL` -- Are all high bits equal to the sign bit of the low word? -- nd = (hi == ASR(lo,width-1)) ? 1 : 0 CMP (OpReg W64 hi) (OpRegShift W64 lo SASR (widthInBits w - 1)) `snocOL` CSET (OpReg W64 nd) NE ``` There is no guarantee that `lo` is definitely not the same register as `reg_a` or `reg_b`, so writing to `lo` with the `MUL` may clobber the contents of `reg_a`/`reg_b`. I don't have a reproducer for the bug here at this time, but it seems obviously wrong to me.
issue