summaryrefslogtreecommitdiff
path: root/test/MC/ARM/vfp-aliases-diagnostics.s
blob: d1ab18e99828b2eee6e9823f6db9d44b3b2b0777 (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
@ RUN: not llvm-mc -triple armv7-eabi -filetype asm -o /dev/null %s 2>&1 \
@ RUN:   | FileCheck %s

	.syntax unified
	.fpu vfp

	.type aliases,%function
aliases:
	fstmfdd sp!, {s0}
	fstmead sp!, {s0}
	fstmdbd sp!, {s0}
	fstmiad sp!, {s0}
	fstmfds sp!, {d0}
	fstmeas sp!, {d0}
	fstmdbs sp!, {d0}
	fstmias sp!, {d0}

	fldmias sp!, {d0}
	fldmdbs sp!, {d0}
	fldmeas sp!, {d0}
	fldmfds sp!, {d0}
	fldmiad sp!, {s0}
	fldmdbd sp!, {s0}
	fldmead sp!, {s0}
	fldmfdd sp!, {s0}

	fstmeax sp!, {s0}
	fldmfdx sp!, {s0}

	fstmfdx sp!, {s0}
	fldmeax sp!, {s0}

@ CHECK-LABEL: aliases
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fstmfdd sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fstmead sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fstmdbd sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fstmiad sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fstmfds sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fstmeas sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fstmdbs sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fstmias sp!, {d0}
@ CHECK:                     ^

@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fldmias sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fldmdbs sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fldmeas sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon single precision register expected
@ CHECK:	fldmfds sp!, {d0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fldmiad sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fldmdbd sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fldmead sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fldmfdd sp!, {s0}
@ CHECK:                     ^

@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fstmeax sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fldmfdx sp!, {s0}
@ CHECK:                     ^

@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fstmfdx sp!, {s0}
@ CHECK:                     ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK:	fldmeax sp!, {s0}
@ CHECK:                     ^

	fstmiaxcs r0, {s0}
	fstmiaxhs r0, {s0}
	fstmiaxls r0, {s0}
	fstmiaxvs r0, {s0}
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK: 	fstmiaxcs r0, {s0}
@ CHECK:                      ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK: 	fstmiaxhs r0, {s0}
@ CHECK:                      ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK: 	fstmiaxls r0, {s0}
@ CHECK:                      ^
@ CHECK: error: VFP/Neon double precision register expected
@ CHECK: 	fstmiaxvs r0, {s0}
@ CHECK:                      ^