
idioms-x86_64-O1.o:	file format elf64-x86-64

Disassembly of section .text:

0000000000000000 <div10u>:
       0: 89 f9                        	movl	%edi, %ecx
       2: b8 cd cc cc cc               	movl	$0xcccccccd, %eax       # imm = 0xCCCCCCCD
       7: 48 0f af c1                  	imulq	%rcx, %rax
       b: 48 c1 e8 23                  	shrq	$0x23, %rax
       f: c3                           	retq

0000000000000010 <div10s>:
      10: 48 63 c7                     	movslq	%edi, %rax
      13: 48 69 c0 67 66 66 66         	imulq	$0x66666667, %rax, %rax # imm = 0x66666667
      1a: 48 89 c1                     	movq	%rax, %rcx
      1d: 48 c1 e9 3f                  	shrq	$0x3f, %rcx
      21: 48 c1 f8 22                  	sarq	$0x22, %rax
      25: 01 c8                        	addl	%ecx, %eax
      27: c3                           	retq
      28: 0f 1f 84 00 00 00 00 00      	nopl	(%rax,%rax)

0000000000000030 <div7u>:
      30: 89 f8                        	movl	%edi, %eax
      32: 48 69 c0 25 49 92 24         	imulq	$0x24924925, %rax, %rax # imm = 0x24924925
      39: 48 c1 e8 20                  	shrq	$0x20, %rax
      3d: 29 c7                        	subl	%eax, %edi
      3f: d1 ef                        	shrl	%edi
      41: 01 f8                        	addl	%edi, %eax
      43: c1 e8 02                     	shrl	$0x2, %eax
      46: c3                           	retq
      47: 66 0f 1f 84 00 00 00 00 00   	nopw	(%rax,%rax)

0000000000000050 <div3s>:
      50: 48 63 c7                     	movslq	%edi, %rax
      53: 48 69 c0 56 55 55 55         	imulq	$0x55555556, %rax, %rax # imm = 0x55555556
      5a: 48 89 c1                     	movq	%rax, %rcx
      5d: 48 c1 e9 3f                  	shrq	$0x3f, %rcx
      61: 48 c1 e8 20                  	shrq	$0x20, %rax
      65: 01 c8                        	addl	%ecx, %eax
      67: c3                           	retq
      68: 0f 1f 84 00 00 00 00 00      	nopl	(%rax,%rax)

0000000000000070 <mod10s>:
      70: 48 63 c7                     	movslq	%edi, %rax
      73: 48 69 c8 67 66 66 66         	imulq	$0x66666667, %rax, %rcx # imm = 0x66666667
      7a: 48 89 ca                     	movq	%rcx, %rdx
      7d: 48 c1 ea 3f                  	shrq	$0x3f, %rdx
      81: 48 c1 f9 22                  	sarq	$0x22, %rcx
      85: 01 d1                        	addl	%edx, %ecx
      87: 01 c9                        	addl	%ecx, %ecx
      89: 8d 0c 89                     	leal	(%rcx,%rcx,4), %ecx
      8c: 29 c8                        	subl	%ecx, %eax
      8e: c3                           	retq
      8f: 90                           	nop

0000000000000090 <mod8s>:
      90: 89 f8                        	movl	%edi, %eax
      92: 8d 48 07                     	leal	0x7(%rax), %ecx
      95: 85 ff                        	testl	%edi, %edi
      97: 0f 49 cf                     	cmovnsl	%edi, %ecx
      9a: 83 e1 f8                     	andl	$-0x8, %ecx
      9d: 29 c8                        	subl	%ecx, %eax
      9f: c3                           	retq

00000000000000a0 <mul9>:
      a0: 8d 04 ff                     	leal	(%rdi,%rdi,8), %eax
      a3: c3                           	retq
      a4: 66 66 66 2e 0f 1f 84 00 00 00 00 00  	nopw	%cs:(%rax,%rax)

00000000000000b0 <linear_switch>:
      b0: 83 ff 07                     	cmpl	$0x7, %edi
      b3: 8d 04 bf                     	leal	(%rdi,%rdi,4), %eax
      b6: 8d 4c 00 0a                  	leal	0xa(%rax,%rax), %ecx
      ba: b8 ff ff ff ff               	movl	$0xffffffff, %eax       # imm = 0xFFFFFFFF
      bf: 0f 42 c1                     	cmovbl	%ecx, %eax
      c2: c3                           	retq
      c3: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00       	nopw	%cs:(%rax,%rax)

00000000000000d0 <table_switch>:
      d0: b8 ff ff ff ff               	movl	$0xffffffff, %eax       # imm = 0xFFFFFFFF
      d5: 83 ff 06                     	cmpl	$0x6, %edi
      d8: 77 0c                        	ja	0xe6 <table_switch+0x16>
      da: 89 f8                        	movl	%edi, %eax
      dc: 48 8d 0d 00 00 00 00         	leaq	(%rip), %rcx            # 0xe3 <table_switch+0x13>
		00000000000000df:  R_X86_64_PC32	.rodata+0x10
      e3: 8b 04 81                     	movl	(%rcx,%rax,4), %eax
      e6: c3                           	retq
      e7: 66 0f 1f 84 00 00 00 00 00   	nopw	(%rax,%rax)

00000000000000f0 <call_switch>:
      f0: 83 ff 04                     	cmpl	$0x4, %edi
      f3: 77 1e                        	ja	0x113 <call_switch+0x23>
      f5: 89 f8                        	movl	%edi, %eax
      f7: 48 8d 3d 00 00 00 00         	leaq	(%rip), %rdi            # 0xfe <call_switch+0xe>
		00000000000000fa:  R_X86_64_PC32	.rodata-0x4
      fe: 48 63 04 87                  	movslq	(%rdi,%rax,4), %rax
     102: 48 01 f8                     	addq	%rdi, %rax
     105: ff e0                        	jmpq	*%rax
     107: ff e2                        	jmpq	*%rdx
     109: 4c 89 ce                     	movq	%r9, %rsi
     10c: ff e6                        	jmpq	*%rsi
     10e: ff e1                        	jmpq	*%rcx
     110: 41 ff e0                     	jmpq	*%r8
     113: c3                           	retq
     114: 66 66 66 2e 0f 1f 84 00 00 00 00 00  	nopw	%cs:(%rax,%rax)

0000000000000120 <sparse_switch>:
     120: 89 f8                        	movl	%edi, %eax
     122: 81 ff 0f 27 00 00            	cmpl	$0x270f, %edi           # imm = 0x270F
     128: 7e 1b                        	jle	0x145 <sparse_switch+0x25>
     12a: 3d 10 27 00 00               	cmpl	$0x2710, %eax           # imm = 0x2710
     12f: 74 24                        	je	0x155 <sparse_switch+0x35>
     131: 3d 40 42 0f 00               	cmpl	$0xf4240, %eax          # imm = 0xF4240
     136: 74 23                        	je	0x15b <sparse_switch+0x3b>
     138: 3d 00 e1 f5 05               	cmpl	$0x5f5e100, %eax        # imm = 0x5F5E100
     13d: 75 22                        	jne	0x161 <sparse_switch+0x41>
     13f: b8 05 00 00 00               	movl	$0x5, %eax
     144: c3                           	retq
     145: 83 f8 01                     	cmpl	$0x1, %eax
     148: 74 19                        	je	0x163 <sparse_switch+0x43>
     14a: 83 f8 64                     	cmpl	$0x64, %eax
     14d: 75 12                        	jne	0x161 <sparse_switch+0x41>
     14f: b8 02 00 00 00               	movl	$0x2, %eax
     154: c3                           	retq
     155: b8 03 00 00 00               	movl	$0x3, %eax
     15a: c3                           	retq
     15b: b8 04 00 00 00               	movl	$0x4, %eax
     160: c3                           	retq
     161: 31 c0                        	xorl	%eax, %eax
     163: c3                           	retq
     164: 66 66 66 2e 0f 1f 84 00 00 00 00 00  	nopw	%cs:(%rax,%rax)

0000000000000170 <two_cases>:
     170: 31 c0                        	xorl	%eax, %eax
     172: 83 ff 04                     	cmpl	$0x4, %edi
     175: 0f 94 c0                     	sete	%al
     178: 8d 0c c0                     	leal	(%rax,%rax,8), %ecx
     17b: 83 ff 03                     	cmpl	$0x3, %edi
     17e: b8 07 00 00 00               	movl	$0x7, %eax
     183: 0f 45 c1                     	cmovnel	%ecx, %eax
     186: c3                           	retq
     187: 66 0f 1f 84 00 00 00 00 00   	nopw	(%rax,%rax)

0000000000000190 <clamp_max>:
     190: 89 f0                        	movl	%esi, %eax
     192: 39 f7                        	cmpl	%esi, %edi
     194: 0f 4f c7                     	cmovgl	%edi, %eax
     197: c3                           	retq
     198: 0f 1f 84 00 00 00 00 00      	nopl	(%rax,%rax)

00000000000001a0 <abs_int>:
     1a0: 89 f8                        	movl	%edi, %eax
     1a2: f7 d8                        	negl	%eax
     1a4: 0f 48 c7                     	cmovsl	%edi, %eax
     1a7: c3                           	retq
     1a8: 0f 1f 84 00 00 00 00 00      	nopl	(%rax,%rax)

00000000000001b0 <is_pos>:
     1b0: 31 c0                        	xorl	%eax, %eax
     1b2: 85 ff                        	testl	%edi, %edi
     1b4: 0f 9f c0                     	setg	%al
     1b7: c3                           	retq
     1b8: 0f 1f 84 00 00 00 00 00      	nopl	(%rax,%rax)

00000000000001c0 <tail_caller>:
     1c0: ff c7                        	incl	%edi
     1c2: e9 00 00 00 00               	jmp	0x1c7 <tail_caller+0x7>
		00000000000001c3:  R_X86_64_PLT32	tail_target-0x4
     1c7: 66 0f 1f 84 00 00 00 00 00   	nopw	(%rax,%rax)

00000000000001d0 <leaf_add>:
     1d0: 8d 04 37                     	leal	(%rdi,%rsi), %eax
     1d3: c3                           	retq
     1d4: 66 66 66 2e 0f 1f 84 00 00 00 00 00  	nopw	%cs:(%rax,%rax)

00000000000001e0 <twice_sum>:
     1e0: 8d 04 37                     	leal	(%rdi,%rsi), %eax
     1e3: 01 c0                        	addl	%eax, %eax
     1e5: c3                           	retq
     1e6: 66 2e 0f 1f 84 00 00 00 00 00	nopw	%cs:(%rax,%rax)

00000000000001f0 <sum_n>:
     1f0: 85 f6                        	testl	%esi, %esi
     1f2: 7e 18                        	jle	0x20c <sum_n+0x1c>
     1f4: 89 f1                        	movl	%esi, %ecx
     1f6: 31 d2                        	xorl	%edx, %edx
     1f8: 31 c0                        	xorl	%eax, %eax
     1fa: 66 0f 1f 44 00 00            	nopw	(%rax,%rax)
     200: 03 04 97                     	addl	(%rdi,%rdx,4), %eax
     203: 48 ff c2                     	incq	%rdx
     206: 48 39 d1                     	cmpq	%rdx, %rcx
     209: 75 f5                        	jne	0x200 <sum_n+0x10>
     20b: c3                           	retq
     20c: 31 c0                        	xorl	%eax, %eax
     20e: c3                           	retq
     20f: 90                           	nop

0000000000000210 <sum4>:
     210: 31 c9                        	xorl	%ecx, %ecx
     212: 31 c0                        	xorl	%eax, %eax
     214: 66 66 66 2e 0f 1f 84 00 00 00 00 00  	nopw	%cs:(%rax,%rax)
     220: 03 04 8f                     	addl	(%rdi,%rcx,4), %eax
     223: 48 ff c1                     	incq	%rcx
     226: 48 83 f9 04                  	cmpq	$0x4, %rcx
     22a: 75 f4                        	jne	0x220 <sum4+0x10>
     22c: c3                           	retq
     22d: 0f 1f 00                     	nopl	(%rax)

0000000000000230 <poly8>:
     230: 31 c9                        	xorl	%ecx, %ecx
     232: 31 c0                        	xorl	%eax, %eax
     234: 66 66 66 2e 0f 1f 84 00 00 00 00 00  	nopw	%cs:(%rax,%rax)
     240: 89 c2                        	movl	%eax, %edx
     242: c1 e2 05                     	shll	$0x5, %edx
     245: 29 c2                        	subl	%eax, %edx
     247: 89 d0                        	movl	%edx, %eax
     249: 03 04 8f                     	addl	(%rdi,%rcx,4), %eax
     24c: 48 ff c1                     	incq	%rcx
     24f: 48 83 f9 08                  	cmpq	$0x8, %rcx
     253: 75 eb                        	jne	0x240 <poly8+0x10>
     255: c3                           	retq
     256: 66 2e 0f 1f 84 00 00 00 00 00	nopw	%cs:(%rax,%rax)

0000000000000260 <fill>:
     260: 85 f6                        	testl	%esi, %esi
     262: 7e 09                        	jle	0x26d <fill+0xd>
     264: 89 f2                        	movl	%esi, %edx
     266: 31 f6                        	xorl	%esi, %esi
     268: e9 00 00 00 00               	jmp	0x26d <fill+0xd>
		0000000000000269:  R_X86_64_PLT32	memset-0x4
     26d: c3                           	retq
     26e: 66 90                        	nop

0000000000000270 <copy_n>:
     270: e9 00 00 00 00               	jmp	0x275 <copy_n+0x5>
		0000000000000271:  R_X86_64_PLT32	memcpy-0x4
     275: 66 66 2e 0f 1f 84 00 00 00 00 00     	nopw	%cs:(%rax,%rax)

0000000000000280 <copy16>:
     280: 0f 10 06                     	movups	(%rsi), %xmm0
     283: 0f 11 07                     	movups	%xmm0, (%rdi)
     286: c3                           	retq
     287: 66 0f 1f 84 00 00 00 00 00   	nopw	(%rax,%rax)

0000000000000290 <digest>:
     290: 31 c9                        	xorl	%ecx, %ecx
     292: b8 00 00 00 00               	movl	$0x0, %eax
     297: 85 f6                        	testl	%esi, %esi
     299: 7e 20                        	jle	0x2bb <digest+0x2b>
     29b: 89 f2                        	movl	%esi, %edx
     29d: 31 f6                        	xorl	%esi, %esi
     29f: 31 c0                        	xorl	%eax, %eax
     2a1: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 	nopw	%cs:(%rax,%rax)
     2b0: 03 04 b7                     	addl	(%rdi,%rsi,4), %eax
     2b3: 48 ff c6                     	incq	%rsi
     2b6: 48 39 f2                     	cmpq	%rsi, %rdx
     2b9: 75 f5                        	jne	0x2b0 <digest+0x20>
     2bb: 48 63 d0                     	movslq	%eax, %rdx
     2be: 48 69 c2 67 66 66 66         	imulq	$0x66666667, %rdx, %rax # imm = 0x66666667
     2c5: 48 89 c6                     	movq	%rax, %rsi
     2c8: 48 c1 ee 3f                  	shrq	$0x3f, %rsi
     2cc: 48 c1 f8 22                  	sarq	$0x22, %rax
     2d0: 8d 3c 30                     	leal	(%rax,%rsi), %edi
     2d3: 01 ff                        	addl	%edi, %edi
     2d5: 8d 3c bf                     	leal	(%rdi,%rdi,4), %edi
     2d8: 29 fa                        	subl	%edi, %edx
     2da: 01 f0                        	addl	%esi, %eax
     2dc: 83 c0 fa                     	addl	$-0x6, %eax
     2df: 83 f8 05                     	cmpl	$0x5, %eax
     2e2: 73 0c                        	jae	0x2f0 <digest+0x60>
     2e4: 89 c0                        	movl	%eax, %eax
     2e6: 48 8d 0d 00 00 00 00         	leaq	(%rip), %rcx            # 0x2ed <digest+0x5d>
		00000000000002e9:  R_X86_64_PC32	.rodata+0x2c
     2ed: 8b 0c 81                     	movl	(%rcx,%rax,4), %ecx
     2f0: 83 fa 05                     	cmpl	$0x5, %edx
     2f3: b8 05 00 00 00               	movl	$0x5, %eax
     2f8: 0f 4c c2                     	cmovll	%edx, %eax
     2fb: 01 c8                        	addl	%ecx, %eax
     2fd: c3                           	retq
