https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95453
Bug ID: 95453 Summary: Failure to avoid useless sign extension Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: gabravier at gmail dot com Target Milestone: --- void f2(int); void f1(short x) { f2(x); } With -O3, GCC outputs this : f1(short): movsx edi, di jmp f2(int) LLVM outputs this : f1(short): # @f1(short) jmp f2(int) # TAILCALL