[Bug c/103053] New: Unexpected ".global __divti3" emitted for unsigned 128 bit division

2021-11-02 Thread simonb at vmware dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103053

Bug ID: 103053
   Summary: Unexpected ".global __divti3" emitted for unsigned 128
bit division
   Product: gcc
   Version: 10.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: simonb at vmware dot com
  Target Milestone: ---

Created attachment 51725
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51725&action=edit
Preprocessed reproducer for the bug

When compiling the attached reproducer which contains an unsigned 128 bit
divide with any of gcc 7.5.0, 9.3.0, 10.3.0 for x86_64 or gcc 9.3.0 for aarch64
with -O2 it emits a
.globl  __divti3
even though there is no call to that function.

In the x86 asm output for the reproducer, there is:

.size   bar, .-bar
.globl  __udivti3
.globl  __divti3  <-- bogus .global emission
.globl  foo
...
call__udivti3


This occurs on at least:
  gcc 7.5.0 target x86_64--netbsd
  gcc 9.3.0 target x86_64--linux-gnu
  gcc 10.3.0 targets aarch64--netbsd x86_64--netbsd

No ".global __divti3" is emitted with:
  gcc 6.4.0 target x86_64--linux-gnu

[Bug middle-end/103053] Unexpected ".global __divti3" emitted for unsigned 128 bit division

2021-11-03 Thread simonb at vmware dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103053

--- Comment #4 from Simon Burge  ---
Thanks for the explanation Jakub.

As was inferred from Andrew's comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103053#c2 we are using a trimmed
down support library for this particular application.  We'll do as suggested
and add __divti3 to our support library.