1*e88b412bSchristos# mach: aarch64
2*e88b412bSchristos
3*e88b412bSchristos# Check the FP convert to longer precision: fcvtl, fcvtl2.
4*e88b412bSchristos# Test values 1.5, -1.5, INTMAX, and INT_MIN.
5*e88b412bSchristos
6*e88b412bSchristos.include "testutils.inc"
7*e88b412bSchristos
8*e88b412bSchristos	.data
9*e88b412bSchristos	.align 4
10*e88b412bSchristosinput:
11*e88b412bSchristos	.word	1069547520
12*e88b412bSchristos	.word	3217031168
13*e88b412bSchristos	.word	1325400064
14*e88b412bSchristos	.word	3472883712
15*e88b412bSchristosd1p5:
16*e88b412bSchristos	.word	0
17*e88b412bSchristos	.word	1073217536
18*e88b412bSchristosdm1p5:
19*e88b412bSchristos	.word	0
20*e88b412bSchristos	.word	-1074266112
21*e88b412bSchristosdimax:
22*e88b412bSchristos	.word	0
23*e88b412bSchristos	.word	1105199104
24*e88b412bSchristosdimin:
25*e88b412bSchristos	.word	0
26*e88b412bSchristos	.word	-1042284544
27*e88b412bSchristos
28*e88b412bSchristos	start
29*e88b412bSchristos	adrp x0, input
30*e88b412bSchristos	add x0, x0, #:lo12:input
31*e88b412bSchristos	ld1 {v0.4s}, [x0]
32*e88b412bSchristos
33*e88b412bSchristos	fcvtl v1.2d, v0.2s
34*e88b412bSchristos	mov x1, v1.d[0]
35*e88b412bSchristos	adrp x2, d1p5
36*e88b412bSchristos	ldr x3, [x2, #:lo12:d1p5]
37*e88b412bSchristos	cmp x1, x3
38*e88b412bSchristos	bne .Lfailure
39*e88b412bSchristos	mov x1, v1.d[1]
40*e88b412bSchristos	adrp x2, dm1p5
41*e88b412bSchristos	ldr x3, [x2, #:lo12:dm1p5]
42*e88b412bSchristos	cmp x1, x3
43*e88b412bSchristos	bne .Lfailure
44*e88b412bSchristos
45*e88b412bSchristos	fcvtl2 v2.2d, v0.4s
46*e88b412bSchristos	mov x1, v2.d[0]
47*e88b412bSchristos	adrp x2, dimax
48*e88b412bSchristos	ldr x3, [x2, #:lo12:dimax]
49*e88b412bSchristos	cmp x1, x3
50*e88b412bSchristos	bne .Lfailure
51*e88b412bSchristos	mov x1, v2.d[1]
52*e88b412bSchristos	adrp x2, dimin
53*e88b412bSchristos	ldr x3, [x2, #:lo12:dimin]
54*e88b412bSchristos	cmp x1, x3
55*e88b412bSchristos	bne .Lfailure
56*e88b412bSchristos
57*e88b412bSchristos	pass
58*e88b412bSchristos.Lfailure:
59*e88b412bSchristos	fail
60