	.arch armv8-a+fp+simd
	.file	"fcp.c"
	.text
	.align	2
	.p2align 3,,7
	.global	fcp
	.type	fcp, %function
fcp:
	stp	d8, d9, [sp, -64]!
	cmp	w0, wzr
	mov	x7, 56
	ldr	x6, [x1, 48]
	stp	d10, d11, [sp, 16]
	stp	d12, d13, [sp, 32]
	stp	d14, d15, [sp, 48]
	ble	.L15
	.p2align 2
.L9:
	ldp	x3, x2, [x1, 24]
	cmp	x6, x3
	bcc	.L6
	sub	x5, x6, x3
	mov	x4, x3
	lsr	x5, x5, 7
	add	x5, x5, 1
	add	x9, x3, x5, lsl 7
	add	x8, x2, x5, lsl 9
	cmp	x2, x9
	ccmp	x3, x8, 2, cc
	ccmp	x5, x7, 0, cs
	bls	.L7
	mov	x3, 0
	.p2align 2
.L5:
	ldr	q7, [x4]
	add	x3, x3, 1
	ldr	q6, [x4, 16]
	cmp	x5, x3
	ldr	q5, [x4, 32]
	add	x4, x4, 128
	ldr	q4, [x4, -80]
	ldr	q3, [x4, -64]
	ldr	q2, [x4, -48]
	ushll	v23.8h, v7.8b, 0
	ldr	q1, [x4, -32]
	ushll	v22.8h, v6.8b, 0
	ldr	q0, [x4, -16]
	ushll	v21.8h, v5.8b, 0
	ushll	v20.8h, v4.8b, 0
	ushll	v19.8h, v3.8b, 0
	ushll	v18.8h, v2.8b, 0
	ushll2	v7.8h, v7.16b, 0
	ushll2	v6.8h, v6.16b, 0
	ushll2	v5.8h, v5.16b, 0
	ushll2	v4.8h, v4.16b, 0
	ushll2	v3.8h, v3.16b, 0
	ushll2	v2.8h, v2.16b, 0
	ushll	v17.8h, v1.8b, 0
	ushll	v16.8h, v0.8b, 0
	ushll2	v1.8h, v1.16b, 0
	ushll2	v0.8h, v0.16b, 0
	ushll	v10.4s, v23.4h, 0
	ushll	v9.4s, v7.4h, 0
	ushll	v11.4s, v22.4h, 0
	ushll	v8.4s, v6.4h, 0
	ushll	v12.4s, v21.4h, 0
	ushll	v31.4s, v5.4h, 0
	ushll	v13.4s, v20.4h, 0
	ushll	v30.4s, v4.4h, 0
	ushll	v14.4s, v19.4h, 0
	ushll	v29.4s, v3.4h, 0
	ushll	v15.4s, v18.4h, 0
	ushll	v28.4s, v2.4h, 0
	ushll2	v23.4s, v23.8h, 0
	ushll2	v7.4s, v7.8h, 0
	ushll2	v22.4s, v22.8h, 0
	ushll2	v6.4s, v6.8h, 0
	ushll2	v21.4s, v21.8h, 0
	ushll2	v5.4s, v5.8h, 0
	ushll2	v20.4s, v20.8h, 0
	ushll2	v4.4s, v4.8h, 0
	ushll2	v19.4s, v19.8h, 0
	ushll2	v3.4s, v3.8h, 0
	ushll2	v18.4s, v18.8h, 0
	ushll2	v2.4s, v2.8h, 0
	ushll	v27.4s, v17.4h, 0
	ushll	v26.4s, v1.4h, 0
	ushll	v25.4s, v16.4h, 0
	ushll	v24.4s, v0.4h, 0
	ushll2	v17.4s, v17.8h, 0
	ushll2	v1.4s, v1.8h, 0
	ushll2	v16.4s, v16.8h, 0
	ushll2	v0.4s, v0.8h, 0
	str	q10, [x2]
	str	q23, [x2, 16]
	str	q9, [x2, 32]
	str	q7, [x2, 48]
	str	q11, [x2, 64]
	str	q22, [x2, 80]
	str	q8, [x2, 96]
	str	q6, [x2, 112]
	str	q12, [x2, 128]
	str	q21, [x2, 144]
	str	q31, [x2, 160]
	str	q5, [x2, 176]
	str	q13, [x2, 192]
	str	q20, [x2, 208]
	str	q30, [x2, 224]
	str	q4, [x2, 240]
	add	x2, x2, 512
	str	q14, [x2, -256]
	str	q19, [x2, -240]
	str	q29, [x2, -224]
	str	q3, [x2, -208]
	str	q15, [x2, -192]
	str	q18, [x2, -176]
	str	q28, [x2, -160]
	str	q2, [x2, -144]
	str	q27, [x2, -128]
	str	q17, [x2, -112]
	str	q26, [x2, -96]
	str	q1, [x2, -80]
	str	q25, [x2, -64]
	str	q16, [x2, -48]
	str	q24, [x2, -32]
	str	q0, [x2, -16]
	bhi	.L5
.L6:
	sub	w0, w0, #1
	cmp	w0, wzr
	bgt	.L9
.L15:
	ldp	d10, d11, [sp, 16]
	ldp	d12, d13, [sp, 32]
	ldp	d14, d15, [sp, 48]
	ldp	d8, d9, [sp], 64
	ret
	.p2align 3
.L7:
	ldrb	w4, [x3]
	add	x3, x3, 128
	str	w4, [x2]
	cmp	x6, x3
	ldrb	w4, [x3, -127]
	str	w4, [x2, 4]
	ldrb	w4, [x3, -126]
	str	w4, [x2, 8]
	ldrb	w4, [x3, -125]
	str	w4, [x2, 12]
	ldrb	w4, [x3, -124]
	str	w4, [x2, 16]
	ldrb	w4, [x3, -123]
	str	w4, [x2, 20]
	ldrb	w4, [x3, -122]
	str	w4, [x2, 24]
	ldrb	w4, [x3, -121]
	str	w4, [x2, 28]
	ldrb	w4, [x3, -120]
	str	w4, [x2, 32]
	ldrb	w4, [x3, -119]
	str	w4, [x2, 36]
	ldrb	w4, [x3, -118]
	str	w4, [x2, 40]
	ldrb	w4, [x3, -117]
	str	w4, [x2, 44]
	ldrb	w4, [x3, -116]
	str	w4, [x2, 48]
	ldrb	w4, [x3, -115]
	str	w4, [x2, 52]
	ldrb	w4, [x3, -114]
	str	w4, [x2, 56]
	ldrb	w4, [x3, -113]
	str	w4, [x2, 60]
	ldrb	w4, [x3, -112]
	str	w4, [x2, 64]
	ldrb	w4, [x3, -111]
	str	w4, [x2, 68]
	ldrb	w4, [x3, -110]
	str	w4, [x2, 72]
	ldrb	w4, [x3, -109]
	str	w4, [x2, 76]
	ldrb	w4, [x3, -108]
	str	w4, [x2, 80]
	ldrb	w4, [x3, -107]
	str	w4, [x2, 84]
	ldrb	w4, [x3, -106]
	str	w4, [x2, 88]
	ldrb	w4, [x3, -105]
	str	w4, [x2, 92]
	ldrb	w4, [x3, -104]
	str	w4, [x2, 96]
	ldrb	w4, [x3, -103]
	str	w4, [x2, 100]
	ldrb	w4, [x3, -102]
	str	w4, [x2, 104]
	ldrb	w4, [x3, -101]
	str	w4, [x2, 108]
	ldrb	w4, [x3, -100]
	str	w4, [x2, 112]
	ldrb	w4, [x3, -99]
	str	w4, [x2, 116]
	ldrb	w4, [x3, -98]
	str	w4, [x2, 120]
	ldrb	w4, [x3, -97]
	str	w4, [x2, 124]
	ldrb	w4, [x3, -96]
	str	w4, [x2, 128]
	ldrb	w4, [x3, -95]
	str	w4, [x2, 132]
	ldrb	w4, [x3, -94]
	str	w4, [x2, 136]
	ldrb	w4, [x3, -93]
	str	w4, [x2, 140]
	ldrb	w4, [x3, -92]
	str	w4, [x2, 144]
	ldrb	w4, [x3, -91]
	str	w4, [x2, 148]
	ldrb	w4, [x3, -90]
	str	w4, [x2, 152]
	ldrb	w4, [x3, -89]
	str	w4, [x2, 156]
	ldrb	w4, [x3, -88]
	str	w4, [x2, 160]
	ldrb	w4, [x3, -87]
	str	w4, [x2, 164]
	ldrb	w4, [x3, -86]
	str	w4, [x2, 168]
	ldrb	w4, [x3, -85]
	str	w4, [x2, 172]
	ldrb	w4, [x3, -84]
	str	w4, [x2, 176]
	ldrb	w4, [x3, -83]
	str	w4, [x2, 180]
	ldrb	w4, [x3, -82]
	str	w4, [x2, 184]
	ldrb	w4, [x3, -81]
	str	w4, [x2, 188]
	ldrb	w4, [x3, -80]
	str	w4, [x2, 192]
	ldrb	w4, [x3, -79]
	str	w4, [x2, 196]
	ldrb	w4, [x3, -78]
	str	w4, [x2, 200]
	ldrb	w4, [x3, -77]
	str	w4, [x2, 204]
	ldrb	w4, [x3, -76]
	str	w4, [x2, 208]
	ldrb	w4, [x3, -75]
	str	w4, [x2, 212]
	ldrb	w4, [x3, -74]
	str	w4, [x2, 216]
	ldrb	w4, [x3, -73]
	str	w4, [x2, 220]
	ldrb	w4, [x3, -72]
	str	w4, [x2, 224]
	ldrb	w4, [x3, -71]
	str	w4, [x2, 228]
	ldrb	w4, [x3, -70]
	str	w4, [x2, 232]
	ldrb	w4, [x3, -69]
	str	w4, [x2, 236]
	ldrb	w4, [x3, -68]
	str	w4, [x2, 240]
	ldrb	w4, [x3, -67]
	str	w4, [x2, 244]
	ldrb	w4, [x3, -66]
	str	w4, [x2, 248]
	ldrb	w4, [x3, -65]
	str	w4, [x2, 252]
	add	x2, x2, 512
	ldrb	w4, [x3, -64]
	str	w4, [x2, -256]
	ldrb	w4, [x3, -63]
	str	w4, [x2, -252]
	ldrb	w4, [x3, -62]
	str	w4, [x2, -248]
	ldrb	w4, [x3, -61]
	str	w4, [x2, -244]
	ldrb	w4, [x3, -60]
	str	w4, [x2, -240]
	ldrb	w4, [x3, -59]
	str	w4, [x2, -236]
	ldrb	w4, [x3, -58]
	str	w4, [x2, -232]
	ldrb	w4, [x3, -57]
	str	w4, [x2, -228]
	ldrb	w4, [x3, -56]
	str	w4, [x2, -224]
	ldrb	w4, [x3, -55]
	str	w4, [x2, -220]
	ldrb	w4, [x3, -54]
	str	w4, [x2, -216]
	ldrb	w4, [x3, -53]
	str	w4, [x2, -212]
	ldrb	w4, [x3, -52]
	str	w4, [x2, -208]
	ldrb	w4, [x3, -51]
	str	w4, [x2, -204]
	ldrb	w4, [x3, -50]
	str	w4, [x2, -200]
	ldrb	w4, [x3, -49]
	str	w4, [x2, -196]
	ldrb	w4, [x3, -48]
	str	w4, [x2, -192]
	ldrb	w4, [x3, -47]
	str	w4, [x2, -188]
	ldrb	w4, [x3, -46]
	str	w4, [x2, -184]
	ldrb	w4, [x3, -45]
	str	w4, [x2, -180]
	ldrb	w4, [x3, -44]
	str	w4, [x2, -176]
	ldrb	w4, [x3, -43]
	str	w4, [x2, -172]
	ldrb	w4, [x3, -42]
	str	w4, [x2, -168]
	ldrb	w4, [x3, -41]
	str	w4, [x2, -164]
	ldrb	w4, [x3, -40]
	str	w4, [x2, -160]
	ldrb	w4, [x3, -39]
	str	w4, [x2, -156]
	ldrb	w4, [x3, -38]
	str	w4, [x2, -152]
	ldrb	w4, [x3, -37]
	str	w4, [x2, -148]
	ldrb	w4, [x3, -36]
	str	w4, [x2, -144]
	ldrb	w4, [x3, -35]
	str	w4, [x2, -140]
	ldrb	w4, [x3, -34]
	str	w4, [x2, -136]
	ldrb	w4, [x3, -33]
	str	w4, [x2, -132]
	ldrb	w4, [x3, -32]
	str	w4, [x2, -128]
	ldrb	w4, [x3, -31]
	str	w4, [x2, -124]
	ldrb	w4, [x3, -30]
	str	w4, [x2, -120]
	ldrb	w4, [x3, -29]
	str	w4, [x2, -116]
	ldrb	w4, [x3, -28]
	str	w4, [x2, -112]
	ldrb	w4, [x3, -27]
	str	w4, [x2, -108]
	ldrb	w4, [x3, -26]
	str	w4, [x2, -104]
	ldrb	w4, [x3, -25]
	str	w4, [x2, -100]
	ldrb	w4, [x3, -24]
	str	w4, [x2, -96]
	ldrb	w4, [x3, -23]
	str	w4, [x2, -92]
	ldrb	w4, [x3, -22]
	str	w4, [x2, -88]
	ldrb	w4, [x3, -21]
	str	w4, [x2, -84]
	ldrb	w4, [x3, -20]
	str	w4, [x2, -80]
	ldrb	w4, [x3, -19]
	str	w4, [x2, -76]
	ldrb	w4, [x3, -18]
	str	w4, [x2, -72]
	ldrb	w4, [x3, -17]
	str	w4, [x2, -68]
	ldrb	w4, [x3, -16]
	str	w4, [x2, -64]
	ldrb	w4, [x3, -15]
	str	w4, [x2, -60]
	ldrb	w4, [x3, -14]
	str	w4, [x2, -56]
	ldrb	w4, [x3, -13]
	str	w4, [x2, -52]
	ldrb	w4, [x3, -12]
	str	w4, [x2, -48]
	ldrb	w4, [x3, -11]
	str	w4, [x2, -44]
	ldrb	w4, [x3, -10]
	str	w4, [x2, -40]
	ldrb	w4, [x3, -9]
	str	w4, [x2, -36]
	ldrb	w4, [x3, -8]
	str	w4, [x2, -32]
	ldrb	w4, [x3, -7]
	str	w4, [x2, -28]
	ldrb	w4, [x3, -6]
	str	w4, [x2, -24]
	ldrb	w4, [x3, -5]
	str	w4, [x2, -20]
	ldrb	w4, [x3, -4]
	str	w4, [x2, -16]
	ldrb	w4, [x3, -3]
	str	w4, [x2, -12]
	ldrb	w4, [x3, -2]
	str	w4, [x2, -8]
	ldrb	w4, [x3, -1]
	str	w4, [x2, -4]
	bcs	.L7
	b	.L6
	.size	fcp, .-fcp
	.ident	"GCC: (Linaro GCC 5.1-5.1-2015.06-1.tar.xz-snapshot-2015.06-1) 5.1.1 20150608"
	.section	.note.GNU-stack,"",%progbits
