double inv(double x) { return 1/x; } $ gcc -Wall soft.c -O2 -S -msoft-float $ cat soft.s (...) .LC0: .long 0 .long 1072693248 (...) inv: movlpd .LC0(%rip), %xmm1 divsd %xmm0, %xmm1 movsd %xmm1, %xmm0 ret
`-msoft-float -mno-sse2` is workaround to get library calls. inv: subq $8, %rsp movaps %xmm0, %xmm1 movlps .LC0(%rip), %xmm0 call __divdf3 addq $8, %rsp ret -- Summary: -msoft-float doesn't generate library calls. Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC build triplet: x86-64 GCC host triplet: x86-64 GCC target triplet: x86-64 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25749