
idioms-arm64-jt4-O2.o:	file format elf64-littleaarch64

Disassembly of section .text:

0000000000000000 <div10u>:
       0: 529999a8     	mov	w8, #0xcccd             // =52429
       4: 72b99988     	movk	w8, #0xcccc, lsl #16
       8: 9ba87c08     	umull	x8, w0, w8
       c: d363fd00     	lsr	x0, x8, #35
      10: d65f03c0     	ret

0000000000000014 <div10s>:
      14: 528ccce8     	mov	w8, #0x6667             // =26215
      18: 72acccc8     	movk	w8, #0x6666, lsl #16
      1c: 9b287c08     	smull	x8, w0, w8
      20: d37ffd09     	lsr	x9, x8, #63
      24: 9362fd08     	asr	x8, x8, #34
      28: 0b090100     	add	w0, w8, w9
      2c: d65f03c0     	ret

0000000000000030 <div7u>:
      30: 528924a8     	mov	w8, #0x4925             // =18725
      34: 72a49248     	movk	w8, #0x2492, lsl #16
      38: 9ba87c08     	umull	x8, w0, w8
      3c: d360fd08     	lsr	x8, x8, #32
      40: 4b080009     	sub	w9, w0, w8
      44: 0b490508     	add	w8, w8, w9, lsr #1
      48: 53027d00     	lsr	w0, w8, #2
      4c: d65f03c0     	ret

0000000000000050 <div3s>:
      50: 528aaac8     	mov	w8, #0x5556             // =21846
      54: 72aaaaa8     	movk	w8, #0x5555, lsl #16
      58: 9b287c08     	smull	x8, w0, w8
      5c: d37ffd09     	lsr	x9, x8, #63
      60: d360fd08     	lsr	x8, x8, #32
      64: 0b090100     	add	w0, w8, w9
      68: d65f03c0     	ret

000000000000006c <mod10s>:
      6c: 528ccce8     	mov	w8, #0x6667             // =26215
      70: 72acccc8     	movk	w8, #0x6666, lsl #16
      74: 9b287c08     	smull	x8, w0, w8
      78: d37ffd09     	lsr	x9, x8, #63
      7c: 9362fd08     	asr	x8, x8, #34
      80: 0b090108     	add	w8, w8, w9
      84: 52800149     	mov	w9, #0xa                // =10
      88: 1b098100     	msub	w0, w8, w9, w0
      8c: d65f03c0     	ret

0000000000000090 <mod8s>:
      90: 6b0003e8     	negs	w8, w0
      94: 12000809     	and	w9, w0, #0x7
      98: 12000908     	and	w8, w8, #0x7
      9c: 5a884520     	csneg	w0, w9, w8, mi
      a0: d65f03c0     	ret

00000000000000a4 <mul9>:
      a4: 0b000c00     	add	w0, w0, w0, lsl #3
      a8: d65f03c0     	ret

00000000000000ac <linear_switch>:
      ac: 52800148     	mov	w8, #0xa                // =10
      b0: 52800149     	mov	w9, #0xa                // =10
      b4: 71001c1f     	cmp	w0, #0x7
      b8: 1b082408     	madd	w8, w0, w8, w9
      bc: 5a9f3100     	csinv	w0, w8, wzr, lo
      c0: d65f03c0     	ret

00000000000000c4 <table_switch>:
      c4: 7100181f     	cmp	w0, #0x6
      c8: 540000a8     	b.hi	0xdc <table_switch+0x18>
      cc: 90000008     	adrp	x8, 0x0 <div10u>
		00000000000000cc:  R_AARCH64_ADR_PREL_PG_HI21	.rodata
      d0: 91000108     	add	x8, x8, #0x0
		00000000000000d0:  R_AARCH64_ADD_ABS_LO12_NC	.rodata
      d4: b8605900     	ldr	w0, [x8, w0, uxtw #2]
      d8: d65f03c0     	ret
      dc: 12800000     	mov	w0, #-0x1               // =-1
      e0: d65f03c0     	ret

00000000000000e4 <call_switch>:
      e4: 7100041f     	cmp	w0, #0x1
      e8: 5400016d     	b.le	0x114 <call_switch+0x30>
      ec: 7100081f     	cmp	w0, #0x2
      f0: aa0303e1     	mov	x1, x3
      f4: 54000180     	b.eq	0x124 <call_switch+0x40>
      f8: 71000c1f     	cmp	w0, #0x3
      fc: aa0403e1     	mov	x1, x4
     100: 54000120     	b.eq	0x124 <call_switch+0x40>
     104: 7100101f     	cmp	w0, #0x4
     108: 54000101     	b.ne	0x128 <call_switch+0x44>
     10c: aa0503e1     	mov	x1, x5
     110: d61f0020     	br	x1
     114: 34000080     	cbz	w0, 0x124 <call_switch+0x40>
     118: 7100041f     	cmp	w0, #0x1
     11c: aa0203e1     	mov	x1, x2
     120: 54000041     	b.ne	0x128 <call_switch+0x44>
     124: d61f0020     	br	x1
     128: d65f03c0     	ret

000000000000012c <sparse_switch>:
     12c: 5284e1e8     	mov	w8, #0x270f             // =9999
     130: 6b08001f     	cmp	w0, w8
     134: 540001cd     	b.le	0x16c <sparse_switch+0x40>
     138: 5284e208     	mov	w8, #0x2710             // =10000
     13c: 6b08001f     	cmp	w0, w8
     140: 54000220     	b.eq	0x184 <sparse_switch+0x58>
     144: 52884808     	mov	w8, #0x4240             // =16960
     148: 72a001e8     	movk	w8, #0xf, lsl #16
     14c: 6b08001f     	cmp	w0, w8
     150: 540001e0     	b.eq	0x18c <sparse_switch+0x60>
     154: 529c2008     	mov	w8, #0xe100             // =57600
     158: 72a0bea8     	movk	w8, #0x5f5, lsl #16
     15c: 6b08001f     	cmp	w0, w8
     160: 540001a1     	b.ne	0x194 <sparse_switch+0x68>
     164: 528000a0     	mov	w0, #0x5                // =5
     168: d65f03c0     	ret
     16c: 7100041f     	cmp	w0, #0x1
     170: 54000140     	b.eq	0x198 <sparse_switch+0x6c>
     174: 7101901f     	cmp	w0, #0x64
     178: 540000e1     	b.ne	0x194 <sparse_switch+0x68>
     17c: 52800040     	mov	w0, #0x2                // =2
     180: d65f03c0     	ret
     184: 52800060     	mov	w0, #0x3                // =3
     188: d65f03c0     	ret
     18c: 52800080     	mov	w0, #0x4                // =4
     190: d65f03c0     	ret
     194: 2a1f03e0     	mov	w0, wzr
     198: d65f03c0     	ret

000000000000019c <two_cases>:
     19c: 52800128     	mov	w8, #0x9                // =9
     1a0: 7100101f     	cmp	w0, #0x4
     1a4: 528000e9     	mov	w9, #0x7                // =7
     1a8: 1a9f0108     	csel	w8, w8, wzr, eq
     1ac: 71000c1f     	cmp	w0, #0x3
     1b0: 1a880120     	csel	w0, w9, w8, eq
     1b4: d65f03c0     	ret

00000000000001b8 <clamp_max>:
     1b8: 6b01001f     	cmp	w0, w1
     1bc: 1a81c000     	csel	w0, w0, w1, gt
     1c0: d65f03c0     	ret

00000000000001c4 <abs_int>:
     1c4: 7100001f     	cmp	w0, #0x0
     1c8: 5a805400     	cneg	w0, w0, mi
     1cc: d65f03c0     	ret

00000000000001d0 <is_pos>:
     1d0: 7100001f     	cmp	w0, #0x0
     1d4: 1a9fd7e0     	cset	w0, gt
     1d8: d65f03c0     	ret

00000000000001dc <tail_caller>:
     1dc: 11000400     	add	w0, w0, #0x1
     1e0: 14000000     	b	0x1e0 <tail_caller+0x4>
		00000000000001e0:  R_AARCH64_JUMP26	tail_target

00000000000001e4 <leaf_add>:
     1e4: 0b000020     	add	w0, w1, w0
     1e8: d65f03c0     	ret

00000000000001ec <twice_sum>:
     1ec: 0b000028     	add	w8, w1, w0
     1f0: 531f7900     	lsl	w0, w8, #1
     1f4: d65f03c0     	ret

00000000000001f8 <sum_n>:
     1f8: 7100043f     	cmp	w1, #0x1
     1fc: 540000eb     	b.lt	0x218 <sum_n+0x20>
     200: 71001c3f     	cmp	w1, #0x7
     204: 2a0103e9     	mov	w9, w1
     208: 540000e8     	b.hi	0x224 <sum_n+0x2c>
     20c: aa1f03ea     	mov	x10, xzr
     210: 2a1f03e8     	mov	w8, wzr
     214: 14000014     	b	0x264 <sum_n+0x6c>
     218: 2a1f03e8     	mov	w8, wzr
     21c: 2a0803e0     	mov	w0, w8
     220: d65f03c0     	ret
     224: 6f00e400     	movi	v0.2d, #0000000000000000
     228: 6f00e401     	movi	v1.2d, #0000000000000000
     22c: 927d6d2a     	and	x10, x9, #0x7ffffff8
     230: 91004008     	add	x8, x0, #0x10
     234: aa0a03eb     	mov	x11, x10
     238: ad7f8d02     	ldp	q2, q3, [x8, #-0x10]
     23c: f100216b     	subs	x11, x11, #0x8
     240: 91008108     	add	x8, x8, #0x20
     244: 4ea08440     	add	v0.4s, v2.4s, v0.4s
     248: 4ea18461     	add	v1.4s, v3.4s, v1.4s
     24c: 54ffff61     	b.ne	0x238 <sum_n+0x40>
     250: 4ea08420     	add	v0.4s, v1.4s, v0.4s
     254: eb09015f     	cmp	x10, x9
     258: 4eb1b800     	addv	s0, v0.4s
     25c: 1e260008     	fmov	w8, s0
     260: 540000e0     	b.eq	0x27c <sum_n+0x84>
     264: 8b0a080b     	add	x11, x0, x10, lsl #2
     268: cb0a0129     	sub	x9, x9, x10
     26c: b840456a     	ldr	w10, [x11], #0x4
     270: f1000529     	subs	x9, x9, #0x1
     274: 0b080148     	add	w8, w10, w8
     278: 54ffffa1     	b.ne	0x26c <sum_n+0x74>
     27c: 2a0803e0     	mov	w0, w8
     280: d65f03c0     	ret

0000000000000284 <sum4>:
     284: 3dc00000     	ldr	q0, [x0]
     288: 4eb1b800     	addv	s0, v0.4s
     28c: 1e260000     	fmov	w0, s0
     290: d65f03c0     	ret

0000000000000294 <poly8>:
     294: 29402408     	ldp	w8, w9, [x0]
     298: 4b080129     	sub	w9, w9, w8
     29c: 0b081528     	add	w8, w9, w8, lsl #5
     2a0: 29412809     	ldp	w9, w10, [x0, #0x8]
     2a4: 4b080129     	sub	w9, w9, w8
     2a8: 0b081528     	add	w8, w9, w8, lsl #5
     2ac: 4b080149     	sub	w9, w10, w8
     2b0: 0b081528     	add	w8, w9, w8, lsl #5
     2b4: 29422809     	ldp	w9, w10, [x0, #0x10]
     2b8: 4b080129     	sub	w9, w9, w8
     2bc: 0b081528     	add	w8, w9, w8, lsl #5
     2c0: 4b080149     	sub	w9, w10, w8
     2c4: 0b081528     	add	w8, w9, w8, lsl #5
     2c8: 29432809     	ldp	w9, w10, [x0, #0x18]
     2cc: 4b080129     	sub	w9, w9, w8
     2d0: 0b081528     	add	w8, w9, w8, lsl #5
     2d4: 4b080149     	sub	w9, w10, w8
     2d8: 0b081520     	add	w0, w9, w8, lsl #5
     2dc: d65f03c0     	ret

00000000000002e0 <fill>:
     2e0: 7100043f     	cmp	w1, #0x1
     2e4: 5400008b     	b.lt	0x2f4 <fill+0x14>
     2e8: 2a0103e2     	mov	w2, w1
     2ec: 2a1f03e1     	mov	w1, wzr
     2f0: 14000000     	b	0x2f0 <fill+0x10>
		00000000000002f0:  R_AARCH64_JUMP26	memset
     2f4: d65f03c0     	ret

00000000000002f8 <copy_n>:
     2f8: 14000000     	b	0x2f8 <copy_n>
		00000000000002f8:  R_AARCH64_JUMP26	memcpy

00000000000002fc <copy16>:
     2fc: 3dc00020     	ldr	q0, [x1]
     300: 3d800000     	str	q0, [x0]
     304: d65f03c0     	ret

0000000000000308 <digest>:
     308: 7100043f     	cmp	w1, #0x1
     30c: 540000eb     	b.lt	0x328 <digest+0x20>
     310: 71001c3f     	cmp	w1, #0x7
     314: 2a0103e9     	mov	w9, w1
     318: 540000e8     	b.hi	0x334 <digest+0x2c>
     31c: aa1f03ea     	mov	x10, xzr
     320: 2a1f03e8     	mov	w8, wzr
     324: 14000014     	b	0x374 <digest+0x6c>
     328: 2a1f03e8     	mov	w8, wzr
     32c: 2a1f03e9     	mov	w9, wzr
     330: 1400002f     	b	0x3ec <digest+0xe4>
     334: 6f00e400     	movi	v0.2d, #0000000000000000
     338: 6f00e401     	movi	v1.2d, #0000000000000000
     33c: 927d6d2a     	and	x10, x9, #0x7ffffff8
     340: 91004008     	add	x8, x0, #0x10
     344: aa0a03eb     	mov	x11, x10
     348: ad7f8d02     	ldp	q2, q3, [x8, #-0x10]
     34c: f100216b     	subs	x11, x11, #0x8
     350: 91008108     	add	x8, x8, #0x20
     354: 4ea08440     	add	v0.4s, v2.4s, v0.4s
     358: 4ea18461     	add	v1.4s, v3.4s, v1.4s
     35c: 54ffff61     	b.ne	0x348 <digest+0x40>
     360: 4ea08420     	add	v0.4s, v1.4s, v0.4s
     364: eb09015f     	cmp	x10, x9
     368: 4eb1b800     	addv	s0, v0.4s
     36c: 1e260008     	fmov	w8, s0
     370: 540000e0     	b.eq	0x38c <digest+0x84>
     374: 8b0a080b     	add	x11, x0, x10, lsl #2
     378: cb0a0129     	sub	x9, x9, x10
     37c: b840456a     	ldr	w10, [x11], #0x4
     380: f1000529     	subs	x9, x9, #0x1
     384: 0b080148     	add	w8, w10, w8
     388: 54ffffa1     	b.ne	0x37c <digest+0x74>
     38c: 528ccce9     	mov	w9, #0x6667             // =26215
     390: 72acccc9     	movk	w9, #0x6666, lsl #16
     394: 9b297d09     	smull	x9, w8, w9
     398: d37ffd2a     	lsr	x10, x9, #63
     39c: 9362fd29     	asr	x9, x9, #34
     3a0: 0b0a0129     	add	w9, w9, w10
     3a4: 7100213f     	cmp	w9, #0x8
     3a8: 5400012c     	b.gt	0x3cc <digest+0xc4>
     3ac: 7100193f     	cmp	w9, #0x6
     3b0: 54000180     	b.eq	0x3e0 <digest+0xd8>
     3b4: 71001d3f     	cmp	w9, #0x7
     3b8: 54000180     	b.eq	0x3e8 <digest+0xe0>
     3bc: 7100213f     	cmp	w9, #0x8
     3c0: 54fffb61     	b.ne	0x32c <digest+0x24>
     3c4: 52800809     	mov	w9, #0x40               // =64
     3c8: 14000009     	b	0x3ec <digest+0xe4>
     3cc: 51002529     	sub	w9, w9, #0x9
     3d0: 7100093f     	cmp	w9, #0x2
     3d4: 54fffac2     	b.hs	0x32c <digest+0x24>
     3d8: 52801009     	mov	w9, #0x80               // =128
     3dc: 14000004     	b	0x3ec <digest+0xe4>
     3e0: 52800209     	mov	w9, #0x10               // =16
     3e4: 14000002     	b	0x3ec <digest+0xe4>
     3e8: 52800409     	mov	w9, #0x20               // =32
     3ec: 528cccea     	mov	w10, #0x6667            // =26215
     3f0: 72acccca     	movk	w10, #0x6666, lsl #16
     3f4: 9b2a7d0a     	smull	x10, w8, w10
     3f8: d37ffd4b     	lsr	x11, x10, #63
     3fc: 9362fd4a     	asr	x10, x10, #34
     400: 0b0b014a     	add	w10, w10, w11
     404: 5280014b     	mov	w11, #0xa               // =10
     408: 1b0ba148     	msub	w8, w10, w11, w8
     40c: 528000aa     	mov	w10, #0x5               // =5
     410: 7100151f     	cmp	w8, #0x5
     414: 1a8ab108     	csel	w8, w8, w10, lt
     418: 0b080120     	add	w0, w9, w8
     41c: d65f03c0     	ret
