Skip to content

Various codegen fixes

Ben Gamari requested to merge wip/codegen-fixes into master

Here we fix a number of backend bugs to do with sub-word arithmetic, many of which involving signedness:

  • a bug in code generation for shifts on x86 (#20626 (closed))
  • some bugs in Cmm constant folding (#20634)
  • warn in Cmm lint on large shifts which are undefined behavior (#20637)
  • incorrect sign extension during loads in the AArch64 NCG (#20638)
  • incorrect signedness in arithmetic in the AArch64 NCG (#20644 (closed))
  • incorrect handling of pext and pdep by the LLVM backend (#20645)
  • a pair of bugs in the C backend (#20745)

This should allow bgamari/test-primops> to pass on all platforms.

TODO:

  • add tests
Edited by Ben Gamari

Merge request reports