[mips] Implement NaCl sandboxing of indirect jumps:
[oota-llvm.git] / test / MC / PowerPC / ppc64-encoding-fp.s
1
2 # RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
3
4 # Floating-point facility
5
6 # Floating-point load instructions
7
8 # CHECK: lfs 2, 128(4)                   # encoding: [0xc0,0x44,0x00,0x80]
9          lfs 2, 128(4)
10 # CHECK: lfsx 2, 3, 4                    # encoding: [0x7c,0x43,0x24,0x2e]
11          lfsx 2, 3, 4
12 # CHECK: lfsu 2, 128(4)                  # encoding: [0xc4,0x44,0x00,0x80]
13          lfsu 2, 128(4)
14 # CHECK: lfsux 2, 3, 4                   # encoding: [0x7c,0x43,0x24,0x6e]
15          lfsux 2, 3, 4
16 # CHECK: lfd 2, 128(4)                   # encoding: [0xc8,0x44,0x00,0x80]
17          lfd 2, 128(4)
18 # CHECK: lfdx 2, 3, 4                    # encoding: [0x7c,0x43,0x24,0xae]
19          lfdx 2, 3, 4
20 # CHECK: lfdu 2, 128(4)                  # encoding: [0xcc,0x44,0x00,0x80]
21          lfdu 2, 128(4)
22 # CHECK: lfdux 2, 3, 4                   # encoding: [0x7c,0x43,0x24,0xee]
23          lfdux 2, 3, 4
24 # CHECK: lfiwax 2, 3, 4                  # encoding: [0x7c,0x43,0x26,0xae]
25          lfiwax 2, 3, 4
26 # CHECK: lfiwzx 2, 3, 4                  # encoding: [0x7c,0x43,0x26,0xee]
27          lfiwzx 2, 3, 4
28
29 # Floating-point store instructions
30
31 # CHECK: stfs 2, 128(4)                  # encoding: [0xd0,0x44,0x00,0x80]
32          stfs 2, 128(4)
33 # CHECK: stfsx 2, 3, 4                   # encoding: [0x7c,0x43,0x25,0x2e]
34          stfsx 2, 3, 4
35 # CHECK: stfsu 2, 128(4)                 # encoding: [0xd4,0x44,0x00,0x80]
36          stfsu 2, 128(4)
37 # CHECK: stfsux 2, 3, 4                  # encoding: [0x7c,0x43,0x25,0x6e]
38          stfsux 2, 3, 4
39 # CHECK: stfd 2, 128(4)                  # encoding: [0xd8,0x44,0x00,0x80]
40          stfd 2, 128(4)
41 # CHECK: stfdx 2, 3, 4                   # encoding: [0x7c,0x43,0x25,0xae]
42          stfdx 2, 3, 4
43 # CHECK: stfdu 2, 128(4)                 # encoding: [0xdc,0x44,0x00,0x80]
44          stfdu 2, 128(4)
45 # CHECK: stfdux 2, 3, 4                  # encoding: [0x7c,0x43,0x25,0xee]
46          stfdux 2, 3, 4
47 # CHECK: stfiwx 2, 3, 4                  # encoding: [0x7c,0x43,0x27,0xae]
48          stfiwx 2, 3, 4
49
50 # Floating-point move instructions
51
52 # CHECK: fmr 2, 3                        # encoding: [0xfc,0x40,0x18,0x90]
53          fmr 2, 3
54 # CHECK: fmr. 2, 3                       # encoding: [0xfc,0x40,0x18,0x91]
55          fmr. 2, 3
56 # CHECK: fneg 2, 3                       # encoding: [0xfc,0x40,0x18,0x50]
57          fneg 2, 3
58 # CHECK: fneg. 2, 3                      # encoding: [0xfc,0x40,0x18,0x51]
59          fneg. 2, 3
60 # CHECK: fabs 2, 3                       # encoding: [0xfc,0x40,0x1a,0x10]
61          fabs 2, 3
62 # CHECK: fabs. 2, 3                      # encoding: [0xfc,0x40,0x1a,0x11]
63          fabs. 2, 3
64 # CHECK: fnabs 2, 3                      # encoding: [0xfc,0x40,0x19,0x10]
65          fnabs 2, 3
66 # CHECK: fnabs. 2, 3                     # encoding: [0xfc,0x40,0x19,0x11]
67          fnabs. 2, 3
68 # CHECK: fcpsgn 2, 3, 4                  # encoding: [0xfc,0x43,0x20,0x10]
69          fcpsgn 2, 3, 4
70 # CHECK: fcpsgn. 2, 3, 4                 # encoding: [0xfc,0x43,0x20,0x11]
71          fcpsgn. 2, 3, 4
72
73 # Floating-point arithmetic instructions
74
75 # CHECK: fadd 2, 3, 4                    # encoding: [0xfc,0x43,0x20,0x2a]
76          fadd 2, 3, 4
77 # CHECK: fadd. 2, 3, 4                   # encoding: [0xfc,0x43,0x20,0x2b]
78          fadd. 2, 3, 4
79 # CHECK: fadds 2, 3, 4                   # encoding: [0xec,0x43,0x20,0x2a]
80          fadds 2, 3, 4
81 # CHECK: fadds. 2, 3, 4                  # encoding: [0xec,0x43,0x20,0x2b]
82          fadds. 2, 3, 4
83 # CHECK: fsub 2, 3, 4                    # encoding: [0xfc,0x43,0x20,0x28]
84          fsub 2, 3, 4
85 # CHECK: fsub. 2, 3, 4                   # encoding: [0xfc,0x43,0x20,0x29]
86          fsub. 2, 3, 4
87 # CHECK: fsubs 2, 3, 4                   # encoding: [0xec,0x43,0x20,0x28]
88          fsubs 2, 3, 4
89 # CHECK: fsubs. 2, 3, 4                  # encoding: [0xec,0x43,0x20,0x29]
90          fsubs. 2, 3, 4
91
92 # CHECK: fmul 2, 3, 4                    # encoding: [0xfc,0x43,0x01,0x32]
93          fmul 2, 3, 4
94 # CHECK: fmul. 2, 3, 4                   # encoding: [0xfc,0x43,0x01,0x33]
95          fmul. 2, 3, 4
96 # CHECK: fmuls 2, 3, 4                   # encoding: [0xec,0x43,0x01,0x32]
97          fmuls 2, 3, 4
98 # CHECK: fmuls. 2, 3, 4                  # encoding: [0xec,0x43,0x01,0x33]
99          fmuls. 2, 3, 4
100 # CHECK: fdiv 2, 3, 4                    # encoding: [0xfc,0x43,0x20,0x24]
101          fdiv 2, 3, 4
102 # CHECK: fdiv. 2, 3, 4                   # encoding: [0xfc,0x43,0x20,0x25]
103          fdiv. 2, 3, 4
104 # CHECK: fdivs 2, 3, 4                   # encoding: [0xec,0x43,0x20,0x24]
105          fdivs 2, 3, 4
106 # CHECK: fdivs. 2, 3, 4                  # encoding: [0xec,0x43,0x20,0x25]
107          fdivs. 2, 3, 4
108 # CHECK: fsqrt 2, 3                      # encoding: [0xfc,0x40,0x18,0x2c]
109          fsqrt 2, 3
110 # CHECK: fsqrt. 2, 3                     # encoding: [0xfc,0x40,0x18,0x2d]
111          fsqrt. 2, 3
112 # CHECK: fsqrts 2, 3                     # encoding: [0xec,0x40,0x18,0x2c]
113          fsqrts 2, 3
114 # CHECK: fsqrts. 2, 3                    # encoding: [0xec,0x40,0x18,0x2d]
115          fsqrts. 2, 3
116
117 # CHECK: fre 2, 3                        # encoding: [0xfc,0x40,0x18,0x30]
118          fre 2, 3
119 # CHECK: fre. 2, 3                       # encoding: [0xfc,0x40,0x18,0x31]
120          fre. 2, 3
121 # CHECK: fres 2, 3                       # encoding: [0xec,0x40,0x18,0x30]
122          fres 2, 3
123 # CHECK: fres. 2, 3                      # encoding: [0xec,0x40,0x18,0x31]
124          fres. 2, 3
125 # CHECK: frsqrte 2, 3                    # encoding: [0xfc,0x40,0x18,0x34]
126          frsqrte 2, 3
127 # CHECK: frsqrte. 2, 3                   # encoding: [0xfc,0x40,0x18,0x35]
128          frsqrte. 2, 3
129 # CHECK: frsqrtes 2, 3                   # encoding: [0xec,0x40,0x18,0x34]
130          frsqrtes 2, 3
131 # CHECK: frsqrtes. 2, 3                  # encoding: [0xec,0x40,0x18,0x35]
132          frsqrtes. 2, 3
133 # FIXME: ftdiv 2, 3, 4
134 # FIXME: ftsqrt 2, 3, 4
135
136 # CHECK: fmadd 2, 3, 4, 5                # encoding: [0xfc,0x43,0x29,0x3a]
137          fmadd 2, 3, 4, 5
138 # CHECK: fmadd. 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x3b]
139          fmadd. 2, 3, 4, 5
140 # CHECK: fmadds 2, 3, 4, 5               # encoding: [0xec,0x43,0x29,0x3a]
141          fmadds 2, 3, 4, 5
142 # CHECK: fmadds. 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x3b]
143          fmadds. 2, 3, 4, 5
144 # CHECK: fmsub 2, 3, 4, 5                # encoding: [0xfc,0x43,0x29,0x38]
145          fmsub 2, 3, 4, 5
146 # CHECK: fmsub. 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x39]
147          fmsub. 2, 3, 4, 5
148 # CHECK: fmsubs 2, 3, 4, 5               # encoding: [0xec,0x43,0x29,0x38]
149          fmsubs 2, 3, 4, 5
150 # CHECK: fmsubs. 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x39]
151          fmsubs. 2, 3, 4, 5
152 # CHECK: fnmadd 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x3e]
153          fnmadd 2, 3, 4, 5
154 # CHECK: fnmadd. 2, 3, 4, 5              # encoding: [0xfc,0x43,0x29,0x3f]
155          fnmadd. 2, 3, 4, 5
156 # CHECK: fnmadds 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x3e]
157          fnmadds 2, 3, 4, 5
158 # CHECK: fnmadds. 2, 3, 4, 5             # encoding: [0xec,0x43,0x29,0x3f]
159          fnmadds. 2, 3, 4, 5
160 # CHECK: fnmsub 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x3c]
161          fnmsub 2, 3, 4, 5
162 # CHECK: fnmsub. 2, 3, 4, 5              # encoding: [0xfc,0x43,0x29,0x3d]
163          fnmsub. 2, 3, 4, 5
164 # CHECK: fnmsubs 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x3c]
165          fnmsubs 2, 3, 4, 5
166 # CHECK: fnmsubs. 2, 3, 4, 5             # encoding: [0xec,0x43,0x29,0x3d]
167          fnmsubs. 2, 3, 4, 5
168
169 # Floating-point rounding and conversion instructions
170
171 # CHECK: frsp 2, 3                       # encoding: [0xfc,0x40,0x18,0x18]
172          frsp 2, 3
173 # CHECK: frsp. 2, 3                      # encoding: [0xfc,0x40,0x18,0x19]
174          frsp. 2, 3
175
176 # CHECK: fctid 2, 3                      # encoding: [0xfc,0x40,0x1e,0x5c]
177          fctid 2, 3
178 # CHECK: fctid. 2, 3                     # encoding: [0xfc,0x40,0x1e,0x5d]
179          fctid. 2, 3
180 # CHECK: fctidz 2, 3                     # encoding: [0xfc,0x40,0x1e,0x5e]
181          fctidz 2, 3
182 # CHECK: fctidz. 2, 3                    # encoding: [0xfc,0x40,0x1e,0x5f]
183          fctidz. 2, 3
184 # FIXME: fctidu 2, 3
185 # FIXME: fctidu. 2, 3
186 # CHECK: fctiduz 2, 3                    # encoding: [0xfc,0x40,0x1f,0x5e]
187          fctiduz 2, 3
188 # CHECK: fctiduz. 2, 3                   # encoding: [0xfc,0x40,0x1f,0x5f]
189          fctiduz. 2, 3
190 # CHECK: fctiw 2, 3                      # encoding: [0xfc,0x40,0x18,0x1c]
191          fctiw 2, 3
192 # CHECK: fctiw. 2, 3                     # encoding: [0xfc,0x40,0x18,0x1d]
193          fctiw. 2, 3
194 # CHECK: fctiwz 2, 3                     # encoding: [0xfc,0x40,0x18,0x1e]
195          fctiwz 2, 3
196 # CHECK: fctiwz. 2, 3                    # encoding: [0xfc,0x40,0x18,0x1f]
197          fctiwz. 2, 3
198 # FIXME: fctiwu 2, 3
199 # FIXME: fctiwu. 2, 3
200 # CHECK: fctiwuz 2, 3                    # encoding: [0xfc,0x40,0x19,0x1e]
201          fctiwuz 2, 3
202 # CHECK: fctiwuz. 2, 3                   # encoding: [0xfc,0x40,0x19,0x1f]
203          fctiwuz. 2, 3
204 # CHECK: fcfid 2, 3                      # encoding: [0xfc,0x40,0x1e,0x9c]
205          fcfid 2, 3
206 # CHECK: fcfid. 2, 3                     # encoding: [0xfc,0x40,0x1e,0x9d]
207          fcfid. 2, 3
208 # CHECK: fcfidu 2, 3                     # encoding: [0xfc,0x40,0x1f,0x9c]
209          fcfidu 2, 3
210 # CHECK: fcfidu. 2, 3                    # encoding: [0xfc,0x40,0x1f,0x9d]
211          fcfidu. 2, 3
212 # CHECK: fcfids 2, 3                     # encoding: [0xec,0x40,0x1e,0x9c]
213          fcfids 2, 3
214 # CHECK: fcfids. 2, 3                    # encoding: [0xec,0x40,0x1e,0x9d]
215          fcfids. 2, 3
216 # CHECK: fcfidus 2, 3                    # encoding: [0xec,0x40,0x1f,0x9c]
217          fcfidus 2, 3
218 # CHECK: fcfidus. 2, 3                   # encoding: [0xec,0x40,0x1f,0x9d]
219          fcfidus. 2, 3
220 # CHECK: frin 2, 3                       # encoding: [0xfc,0x40,0x1b,0x10]
221          frin 2, 3
222 # CHECK: frin. 2, 3                      # encoding: [0xfc,0x40,0x1b,0x11]
223          frin. 2, 3
224 # CHECK: frip 2, 3                       # encoding: [0xfc,0x40,0x1b,0x90]
225          frip 2, 3
226 # CHECK: frip. 2, 3                      # encoding: [0xfc,0x40,0x1b,0x91]
227          frip. 2, 3
228 # CHECK: friz 2, 3                       # encoding: [0xfc,0x40,0x1b,0x50]
229          friz 2, 3
230 # CHECK: friz. 2, 3                      # encoding: [0xfc,0x40,0x1b,0x51]
231          friz. 2, 3
232 # CHECK: frim 2, 3                       # encoding: [0xfc,0x40,0x1b,0xd0]
233          frim 2, 3
234 # CHECK: frim. 2, 3                      # encoding: [0xfc,0x40,0x1b,0xd1]
235          frim. 2, 3
236
237 # Floating-point compare instructions
238
239 # CHECK: fcmpu 2, 3, 4                   # encoding: [0xfd,0x03,0x20,0x00]
240          fcmpu 2, 3, 4
241 # FIXME: fcmpo 2, 3, 4
242
243 # Floating-point select instruction
244
245 # CHECK: fsel 2, 3, 4, 5                 # encoding: [0xfc,0x43,0x29,0x2e]
246          fsel 2, 3, 4, 5
247 # CHECK: fsel. 2, 3, 4, 5                # encoding: [0xfc,0x43,0x29,0x2f]
248          fsel. 2, 3, 4, 5
249
250 # Floating-point status and control register instructions
251
252 # CHECK: mffs 2                          # encoding: [0xfc,0x40,0x04,0x8e]
253          mffs 2
254 # FIXME: mffs. 2
255
256 # FIXME: mcrfs 2, 3
257
258 # FIXME: mtfsfi 2, 3, 1
259 # FIXME: mtfsfi. 2, 3, 1
260 # FIXME: mtfsf 2, 3, 1, 1
261 # FIXME: mtfsf. 2, 3, 1, 1
262
263 # CHECK: mtfsb0 31                       # encoding: [0xff,0xe0,0x00,0x8c]
264          mtfsb0 31
265 # FIXME: mtfsb0. 31
266 # CHECK: mtfsb1 31                       # encoding: [0xff,0xe0,0x00,0x4c]
267          mtfsb1 31
268 # FIXME: mtfsb1. 31
269