http://lists.libre-soc.org/pipermail/libre-soc-dev/2020-October/000721.html reported that it is a nmigen bug that sign-extension is not being respected. this is technically incorrect. because nmigen does not have this capability it is *our* reponsibility to call the utility function nmutil.extend.exts until such time as nmigen adds the capability to do what nmutil.extend.exts does.
putting the priority up a bit on this one as we're supposed to be under a functionality code-freeze (bar optional icache/dcache)
nmigen totally can sign extend if the lhs of an assignment is a signed Signal, the workaround I previously added passes the tests: https://git.libre-soc.org/?p=soc.git;a=commitdiff;h=18a56dd9d9b2c1566b460aacb0d9679bac3e4ccf nmigen's bug was using the lhs signedness instead of the rhs signedness to decide if it should sign or zero extend.