https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67295
--- Comment #8 from ktkachov at gcc dot gnu.org --- Thanks for the analysis Jakub. This looks like its due to the fact that PROMOTE_MODE for arm performs an unsigned promotion while TARGET_PROMOTE_FUNCTION_MODE performs signed promotion. This is also the cause of PR 65932 and PR 67714 for which I'm planning to propose a fix soon that involves removing the unsigned promotion in PROMOTE_MODE to make it line up with TARGET_PROMOTE_FUNCTION_MODE, as proposed by Jim Wilson some time ago. I'm just analysing and fixing the various (small) codegen differences. That fix also fixes this testsuite failure.