Disassembly of section .text:
0000000000400410 <main>:
#include <math.h>
#include <stdio.h>
int main(int argc, char **argv) {
400410: 41 56 push %r14
400412: 41 55 push %r13
400414: 41 54 push %r12
400416: 55 push %rbp
400417: 53 push %rbx
400418: 48 83 ec 20 sub $0x20,%rsp
40041c: 45 31 ed xor %r13d,%r13d
40041f: 4d 89 ee mov %r13,%r14
400422: 66 49 0f 6e c5 movq %r13,%xmm0
for (int i = 0; i < 10000; i++) {
400427: 31 db xor %ebx,%ebx
400429: 48 bd 9a 99 99 99 99 movabs $0x3fc999999999999a,%rbp
400430: 99 c9 3f
#include <math.h>
#include <stdio.h>
int main(int argc, char **argv) {
400433: 49 bc 00 00 00 00 00 movabs $0x4330000000000000,%r12
40043a: 00 30 43
40043d: f2 0f 10 15 2b 03 00 movsd 0x32b(%rip),%xmm2 # 400770 <_IO_stdin_used+0x40>
400444: 00
400445: e9 c4 00 00 00 jmpq 40050e <main+0xfe>
40044a: f2 0f 2a cb cvtsi2sd %ebx,%xmm1
40044e: 66 48 0f 6e c5 movq %rbp,%xmm0
400453: f2 0f 59 c8 mulsd %xmm0,%xmm1
400457: 66 0f 28 c1 movapd %xmm1,%xmm0
40045b: 66 0f 28 d9 movapd %xmm1,%xmm3
40045f: 66 0f 54 da andpd %xmm2,%xmm3
400463: 66 49 0f 6e e4 movq %r12,%xmm4
400468: 66 0f 2e e3 ucomisd %xmm3,%xmm4
40046c: 76 23 jbe 400491 <main+0x81>
40046e: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax
400473: f2 48 0f 2a d8 cvtsi2sd %rax,%xmm3
400478: f2 0f 10 05 00 03 00 movsd 0x300(%rip),%xmm0 # 400780 <_IO_stdin_used+0x50>
40047f: 00
400480: 66 0f 28 e1 movapd %xmm1,%xmm4
400484: f2 0f c2 e3 06 cmpnlesd %xmm3,%xmm4
400489: 66 0f 54 c4 andpd %xmm4,%xmm0
40048d: f2 0f 58 c3 addsd %xmm3,%xmm0
400491: 66 0f 28 e1 movapd %xmm1,%xmm4
400495: 66 0f 28 d9 movapd %xmm1,%xmm3
400499: 66 0f 54 da andpd %xmm2,%xmm3
40049d: 66 49 0f 6e ec movq %r12,%xmm5
4004a2: 66 0f 2e eb ucomisd %xmm3,%xmm5
4004a6: 76 27 jbe 4004cf <main+0xbf>
4004a8: f2 48 0f 2c c1 cvttsd2si %xmm1,%rax
4004ad: f2 48 0f 2a d8 cvtsi2sd %rax,%xmm3
4004b2: 66 0f 28 e3 movapd %xmm3,%xmm4
4004b6: f2 0f c2 e1 06 cmpnlesd %xmm1,%xmm4
4004bb: f2 0f 10 2d bd 02 00 movsd 0x2bd(%rip),%xmm5 # 400780 <_IO_stdin_used+0x50>
4004c2: 00
4004c3: 66 0f 54 e5 andpd %xmm5,%xmm4
4004c7: f2 0f 5c dc subsd %xmm4,%xmm3
4004cb: 66 0f 28 e3 movapd %xmm3,%xmm4
4004cf: 66 49 0f 7e e6 movq %xmm4,%r14
4004d4: 66 0f 28 d9 movapd %xmm1,%xmm3
4004d8: 66 0f 54 da andpd %xmm2,%xmm3
4004dc: 66 49 0f 6e e4 movq %r12,%xmm4
4004e1: 66 0f 2e e3 ucomisd %xmm3,%xmm4
4004e5: 76 22 jbe 400509 <main+0xf9>
4004e7: f2 0f 58 1d 99 02 00 addsd 0x299(%rip),%xmm3 # 400788 <_IO_stdin_used+0x58>
4004ee: 00
4004ef: f2 48 0f 2c c3 cvttsd2si %xmm3,%rax
4004f4: f2 48 0f 2a d8 cvtsi2sd %rax,%xmm3
4004f9: 66 0f 28 ea movapd %xmm2,%xmm5
4004fd: 66 0f 55 e9 andnpd %xmm1,%xmm5
400501: 66 0f 28 cd movapd %xmm5,%xmm1
400505: 66 0f 56 cb orpd %xmm3,%xmm1
400509: 66 49 0f 7e cd movq %xmm1,%r13
for (int i = 0; i < 10000; i++) {
double y = (double)i / 5;
printf("==== %d/5 = %f ====\n");
40050e: bf 34 07 40 00 mov $0x400734,%edi
400513: 31 c0 xor %eax,%eax
400515: f2 0f 11 44 24 10 movsd %xmm0,0x10(%rsp)
40051b: f2 0f 11 14 24 movsd %xmm2,(%rsp)
400520: e8 bb fe ff ff callq 4003e0 <printf@plt>
printf("ceil : %f", ceil(y));
400525: f2 0f 10 44 24 10 movsd 0x10(%rsp),%xmm0
40052b: bf 49 07 40 00 mov $0x400749,%edi
400530: b8 01 00 00 00 mov $0x1,%eax
400535: e8 a6 fe ff ff callq 4003e0 <printf@plt>
printf(" floor : %f", floor(y));
40053a: 66 49 0f 6e c6 movq %r14,%xmm0
40053f: bf 53 07 40 00 mov $0x400753,%edi
400544: b8 01 00 00 00 mov $0x1,%eax
400549: e8 92 fe ff ff callq 4003e0 <printf@plt>
printf(" round : %f\n", round(y));
40054e: 66 49 0f 6e c5 movq %r13,%xmm0
400553: bf 5f 07 40 00 mov $0x40075f,%edi
400558: b8 01 00 00 00 mov $0x1,%eax
40055d: e8 7e fe ff ff callq 4003e0 <printf@plt>
#include <math.h>
#include <stdio.h>
int main(int argc, char **argv) {
for (int i = 0; i < 10000; i++) {
400562: 83 c3 01 add $0x1,%ebx
400565: 81 fb 10 27 00 00 cmp $0x2710,%ebx
40056b: f2 0f 10 14 24 movsd (%rsp),%xmm2
400570: 0f 85 d4 fe ff ff jne 40044a <main+0x3a>
printf("ceil : %f", ceil(y));
printf(" floor : %f", floor(y));
printf(" round : %f\n", round(y));
}
return 0;
}
400576: 31 c0 xor %eax,%eax
400578: 48 83 c4 20 add $0x20,%rsp
40057c: 5b pop %rbx
40057d: 5d pop %rbp
40057e: 41 5c pop %r12
400580: 41 5d pop %r13
400582: 41 5e pop %r14
400584: c3 retq
400585: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
40058c: 00 00 00
40058f: 90 nop