
idioms-x86_64-novec-O2.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+0x24
      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 14                        	jle	0x208 <sum_n+0x18>
     1f4: 41 89 f0                     	movl	%esi, %r8d
     1f7: 44 89 c1                     	movl	%r8d, %ecx
     1fa: 83 e1 07                     	andl	$0x7, %ecx
     1fd: 83 fe 08                     	cmpl	$0x8, %esi
     200: 73 09                        	jae	0x20b <sum_n+0x1b>
     202: 31 d2                        	xorl	%edx, %edx
     204: 31 c0                        	xorl	%eax, %eax
     206: eb 40                        	jmp	0x248 <sum_n+0x58>
     208: 31 c0                        	xorl	%eax, %eax
     20a: c3                           	retq
     20b: 41 81 e0 f8 ff ff 7f         	andl	$0x7ffffff8, %r8d       # imm = 0x7FFFFFF8
     212: 31 d2                        	xorl	%edx, %edx
     214: 31 c0                        	xorl	%eax, %eax
     216: 66 2e 0f 1f 84 00 00 00 00 00	nopw	%cs:(%rax,%rax)
     220: 03 04 97                     	addl	(%rdi,%rdx,4), %eax
     223: 03 44 97 04                  	addl	0x4(%rdi,%rdx,4), %eax
     227: 03 44 97 08                  	addl	0x8(%rdi,%rdx,4), %eax
     22b: 03 44 97 0c                  	addl	0xc(%rdi,%rdx,4), %eax
     22f: 03 44 97 10                  	addl	0x10(%rdi,%rdx,4), %eax
     233: 03 44 97 14                  	addl	0x14(%rdi,%rdx,4), %eax
     237: 03 44 97 18                  	addl	0x18(%rdi,%rdx,4), %eax
     23b: 03 44 97 1c                  	addl	0x1c(%rdi,%rdx,4), %eax
     23f: 48 83 c2 08                  	addq	$0x8, %rdx
     243: 49 39 d0                     	cmpq	%rdx, %r8
     246: 75 d8                        	jne	0x220 <sum_n+0x30>
     248: 48 85 c9                     	testq	%rcx, %rcx
     24b: 74 1e                        	je	0x26b <sum_n+0x7b>
     24d: 48 8d 14 97                  	leaq	(%rdi,%rdx,4), %rdx
     251: 31 f6                        	xorl	%esi, %esi
     253: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00       	nopw	%cs:(%rax,%rax)
     260: 03 04 b2                     	addl	(%rdx,%rsi,4), %eax
     263: 48 ff c6                     	incq	%rsi
     266: 48 39 f1                     	cmpq	%rsi, %rcx
     269: 75 f5                        	jne	0x260 <sum_n+0x70>
     26b: c3                           	retq
     26c: 0f 1f 40 00                  	nopl	(%rax)

0000000000000270 <sum4>:
     270: 8b 47 04                     	movl	0x4(%rdi), %eax
     273: 03 07                        	addl	(%rdi), %eax
     275: 03 47 08                     	addl	0x8(%rdi), %eax
     278: 03 47 0c                     	addl	0xc(%rdi), %eax
     27b: c3                           	retq
     27c: 0f 1f 40 00                  	nopl	(%rax)

0000000000000280 <poly8>:
     280: 8b 07                        	movl	(%rdi), %eax
     282: 89 c1                        	movl	%eax, %ecx
     284: c1 e1 05                     	shll	$0x5, %ecx
     287: 29 c1                        	subl	%eax, %ecx
     289: 03 4f 04                     	addl	0x4(%rdi), %ecx
     28c: 89 c8                        	movl	%ecx, %eax
     28e: c1 e0 05                     	shll	$0x5, %eax
     291: 29 c8                        	subl	%ecx, %eax
     293: 03 47 08                     	addl	0x8(%rdi), %eax
     296: 89 c1                        	movl	%eax, %ecx
     298: c1 e1 05                     	shll	$0x5, %ecx
     29b: 29 c1                        	subl	%eax, %ecx
     29d: 03 4f 0c                     	addl	0xc(%rdi), %ecx
     2a0: 89 c8                        	movl	%ecx, %eax
     2a2: c1 e0 05                     	shll	$0x5, %eax
     2a5: 29 c8                        	subl	%ecx, %eax
     2a7: 03 47 10                     	addl	0x10(%rdi), %eax
     2aa: 89 c1                        	movl	%eax, %ecx
     2ac: c1 e1 05                     	shll	$0x5, %ecx
     2af: 29 c1                        	subl	%eax, %ecx
     2b1: 03 4f 14                     	addl	0x14(%rdi), %ecx
     2b4: 89 ca                        	movl	%ecx, %edx
     2b6: c1 e2 05                     	shll	$0x5, %edx
     2b9: 29 ca                        	subl	%ecx, %edx
     2bb: 03 57 18                     	addl	0x18(%rdi), %edx
     2be: 89 d0                        	movl	%edx, %eax
     2c0: c1 e0 05                     	shll	$0x5, %eax
     2c3: 29 d0                        	subl	%edx, %eax
     2c5: 03 47 1c                     	addl	0x1c(%rdi), %eax
     2c8: c3                           	retq
     2c9: 0f 1f 80 00 00 00 00         	nopl	(%rax)

00000000000002d0 <fill>:
     2d0: 85 f6                        	testl	%esi, %esi
     2d2: 7e 09                        	jle	0x2dd <fill+0xd>
     2d4: 89 f2                        	movl	%esi, %edx
     2d6: 31 f6                        	xorl	%esi, %esi
     2d8: e9 00 00 00 00               	jmp	0x2dd <fill+0xd>
		00000000000002d9:  R_X86_64_PLT32	memset-0x4
     2dd: c3                           	retq
     2de: 66 90                        	nop

00000000000002e0 <copy_n>:
     2e0: e9 00 00 00 00               	jmp	0x2e5 <copy_n+0x5>
		00000000000002e1:  R_X86_64_PLT32	memcpy-0x4
     2e5: 66 66 2e 0f 1f 84 00 00 00 00 00     	nopw	%cs:(%rax,%rax)

00000000000002f0 <copy16>:
     2f0: 0f 10 06                     	movups	(%rsi), %xmm0
     2f3: 0f 11 07                     	movups	%xmm0, (%rdi)
     2f6: c3                           	retq
     2f7: 66 0f 1f 84 00 00 00 00 00   	nopw	(%rax,%rax)

0000000000000300 <digest>:
     300: 31 c9                        	xorl	%ecx, %ecx
     302: b8 00 00 00 00               	movl	$0x0, %eax
     307: 85 f6                        	testl	%esi, %esi
     309: 0f 8e b5 00 00 00            	jle	0x3c4 <digest+0xc4>
     30f: 41 89 f0                     	movl	%esi, %r8d
     312: 44 89 c2                     	movl	%r8d, %edx
     315: 83 e2 07                     	andl	$0x7, %edx
     318: 83 fe 08                     	cmpl	$0x8, %esi
     31b: 73 06                        	jae	0x323 <digest+0x23>
     31d: 31 f6                        	xorl	%esi, %esi
     31f: 31 c0                        	xorl	%eax, %eax
     321: eb 35                        	jmp	0x358 <digest+0x58>
     323: 41 81 e0 f8 ff ff 7f         	andl	$0x7ffffff8, %r8d       # imm = 0x7FFFFFF8
     32a: 31 f6                        	xorl	%esi, %esi
     32c: 31 c0                        	xorl	%eax, %eax
     32e: 66 90                        	nop
     330: 03 04 b7                     	addl	(%rdi,%rsi,4), %eax
     333: 03 44 b7 04                  	addl	0x4(%rdi,%rsi,4), %eax
     337: 03 44 b7 08                  	addl	0x8(%rdi,%rsi,4), %eax
     33b: 03 44 b7 0c                  	addl	0xc(%rdi,%rsi,4), %eax
     33f: 03 44 b7 10                  	addl	0x10(%rdi,%rsi,4), %eax
     343: 03 44 b7 14                  	addl	0x14(%rdi,%rsi,4), %eax
     347: 03 44 b7 18                  	addl	0x18(%rdi,%rsi,4), %eax
     34b: 03 44 b7 1c                  	addl	0x1c(%rdi,%rsi,4), %eax
     34f: 48 83 c6 08                  	addq	$0x8, %rsi
     353: 49 39 f0                     	cmpq	%rsi, %r8
     356: 75 d8                        	jne	0x330 <digest+0x30>
     358: 48 85 d2                     	testq	%rdx, %rdx
     35b: 74 1e                        	je	0x37b <digest+0x7b>
     35d: 48 8d 34 b7                  	leaq	(%rdi,%rsi,4), %rsi
     361: 31 ff                        	xorl	%edi, %edi
     363: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00       	nopw	%cs:(%rax,%rax)
     370: 03 04 be                     	addl	(%rsi,%rdi,4), %eax
     373: 48 ff c7                     	incq	%rdi
     376: 48 39 fa                     	cmpq	%rdi, %rdx
     379: 75 f5                        	jne	0x370 <digest+0x70>
     37b: 48 63 d0                     	movslq	%eax, %rdx
     37e: 48 69 d2 67 66 66 66         	imulq	$0x66666667, %rdx, %rdx # imm = 0x66666667
     385: 48 89 d6                     	movq	%rdx, %rsi
     388: 48 c1 fe 22                  	sarq	$0x22, %rsi
     38c: 48 c1 ea 3f                  	shrq	$0x3f, %rdx
     390: 01 f2                        	addl	%esi, %edx
     392: 83 c2 fa                     	addl	$-0x6, %edx
     395: 83 fa 04                     	cmpl	$0x4, %edx
     398: 77 2a                        	ja	0x3c4 <digest+0xc4>
     39a: 48 8d 0d 00 00 00 00         	leaq	(%rip), %rcx            # 0x3a1 <digest+0xa1>
		000000000000039d:  R_X86_64_PC32	.rodata+0x10
     3a1: 48 63 14 91                  	movslq	(%rcx,%rdx,4), %rdx
     3a5: 48 01 ca                     	addq	%rcx, %rdx
     3a8: ff e2                        	jmpq	*%rdx
     3aa: b9 80 00 00 00               	movl	$0x80, %ecx
     3af: eb 13                        	jmp	0x3c4 <digest+0xc4>
     3b1: b9 40 00 00 00               	movl	$0x40, %ecx
     3b6: eb 0c                        	jmp	0x3c4 <digest+0xc4>
     3b8: b9 10 00 00 00               	movl	$0x10, %ecx
     3bd: eb 05                        	jmp	0x3c4 <digest+0xc4>
     3bf: b9 20 00 00 00               	movl	$0x20, %ecx
     3c4: 48 63 d0                     	movslq	%eax, %rdx
     3c7: 48 69 c2 67 66 66 66         	imulq	$0x66666667, %rdx, %rax # imm = 0x66666667
     3ce: 48 89 c6                     	movq	%rax, %rsi
     3d1: 48 c1 ee 3f                  	shrq	$0x3f, %rsi
     3d5: 48 c1 f8 22                  	sarq	$0x22, %rax
     3d9: 01 f0                        	addl	%esi, %eax
     3db: 01 c0                        	addl	%eax, %eax
     3dd: 8d 04 80                     	leal	(%rax,%rax,4), %eax
     3e0: 29 c2                        	subl	%eax, %edx
     3e2: 83 fa 05                     	cmpl	$0x5, %edx
     3e5: b8 05 00 00 00               	movl	$0x5, %eax
     3ea: 0f 4c c2                     	cmovll	%edx, %eax
     3ed: 01 c8                        	addl	%ecx, %eax
     3ef: c3                           	retq
