aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/aarch64/fcvtl.s
blob: 8febc08673f53bac68285a22047fc809c4ef40a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# mach: aarch64

# Check the FP convert to longer precision: fcvtl, fcvtl2.
# Test values 1.5, -1.5, INTMAX, and INT_MIN.

.include "testutils.inc"

	.data
	.align 4
input:
	.word	1069547520
	.word	3217031168
	.word	1325400064
	.word	3472883712
d1p5:
	.word	0
	.word	1073217536
dm1p5:
	.word	0
	.word	-1074266112
dimax:
	.word	0
	.word	1105199104
dimin:
	.word	0
	.word	-1042284544

	start
	adrp x0, input
	add x0, x0, #:lo12:input
	ld1 {v0.4s}, [x0]

	fcvtl v1.2d, v0.2s
	mov x1, v1.d[0]
	adrp x2, d1p5
	ldr x3, [x2, #:lo12:d1p5]
	cmp x1, x3
	bne .Lfailure
	mov x1, v1.d[1]
	adrp x2, dm1p5
	ldr x3, [x2, #:lo12:dm1p5]
	cmp x1, x3
	bne .Lfailure

	fcvtl2 v2.2d, v0.4s
	mov x1, v2.d[0]
	adrp x2, dimax
	ldr x3, [x2, #:lo12:dimax]
	cmp x1, x3
	bne .Lfailure
	mov x1, v2.d[1]
	adrp x2, dimin
	ldr x3, [x2, #:lo12:dimin]
	cmp x1, x3
	bne .Lfailure

	pass
.Lfailure:
	fail