File: floating-point.s

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 2,245,044 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,666; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (334 lines) | stat: -rw-r--r-- 22,520 bytes parent folder | download | duplicates (2)
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=riscv64 -mcpu=spacemit-x60 -iterations=1 -instruction-tables=full < %s | FileCheck %s

# Floating-Point Load and Store Instructions
## Half-Precision
flh ft0, 0(a0)
fsh ft0, 0(a0)

## Single-Precision
flw ft0, 0(a0)
fsw ft0, 0(a0)

## Double-Precision
fld ft0, 0(a0)
fsd ft0, 0(a0)

# Floating-Point Computational Instructions
## Half-Precision
fadd.h f26, f27, f28
fsub.h f29, f30, f31
fmul.h ft0, ft1, ft2
fdiv.h ft3, ft4, ft5
fsqrt.h ft6, ft7
fmin.h fa5, fa6, fa7
fmax.h fs2, fs3, fs4
fmadd.h f10, f11, f12, f31
fmsub.h f14, f15, f16, f17
fnmsub.h f18, f19, f20, f21
fnmadd.h f22, f23, f24, f25

## Single-Precision
fadd.s f26, f27, f28
fsub.s f29, f30, f31
fmul.s ft0, ft1, ft2
fdiv.s ft3, ft4, ft5
fsqrt.s ft6, ft7
fmin.s fa5, fa6, fa7
fmax.s fs2, fs3, fs4
fmadd.s f10, f11, f12, f31
fmsub.s f14, f15, f16, f17
fnmsub.s f18, f19, f20, f21
fnmadd.s f22, f23, f24, f25

## Double-Precision
fadd.d f26, f27, f28
fsub.d f29, f30, f31
fmul.d ft0, ft1, ft2
fdiv.d ft3, ft4, ft5
fsqrt.d ft6, ft7
fmin.d fa5, fa6, fa7
fmax.d fs2, fs3, fs4
fmadd.d f10, f11, f12, f31
fmsub.d f14, f15, f16, f17
fnmsub.d f18, f19, f20, f21
fnmadd.d f22, f23, f24, f25

# Floating-Point Conversion and Move Instructions
## Half-Precision
fmv.x.h a2, fs7
fmv.h.x ft1, a6

fcvt.s.h fa0, ft0
fcvt.s.h fa0, ft0, rup

fcvt.h.s ft2, fa2
fcvt.d.h fa0, ft0

fcvt.d.h fa0, ft0, rup
fcvt.h.d ft2, fa2

## Single-Precision
fcvt.w.s a0, fs5
fcvt.wu.s a1, fs6
fcvt.s.w ft11, a4
fcvt.s.wu ft0, a5

fcvt.l.s a0, ft0
fcvt.lu.s a1, ft1
fcvt.s.l ft2, a2
fcvt.s.lu ft3, a3

fmv.x.w a2, fs7
fmv.w.x ft1, a6

fsgnj.s fs1, fa0, fa1
fsgnjn.s fa1, fa3, fa4

## Double-Precision
fcvt.wu.d a4, ft11
fcvt.w.d a4, ft11
fcvt.d.w ft0, a5
fcvt.d.wu ft1, a6

fcvt.s.d fs5, fs6
fcvt.d.s fs7, fs8

fcvt.l.d a0, ft0
fcvt.lu.d a1, ft1
fcvt.d.l ft3, a3
fcvt.d.lu ft4, a4

fmv.x.d a2, ft2
fmv.d.x ft5, a5

fsgnj.d fs1, fa0, fa1
fsgnjn.d fa1, fa3, fa4

# Floating-Point Compare Instructions
## Half-Precision
feq.h a1, fs8, fs9
flt.h a2, fs10, fs11
fle.h a3, ft8, ft9

## Single-Precision
feq.s a1, fs8, fs9
flt.s a2, fs10, fs11
fle.s a3, ft8, ft9

## Double-Precision
feq.d a1, fs8, fs9
flt.d a2, fs10, fs11
fle.d a3, ft8, ft9

# Floating-Point Classify Instruction
## Half-Precision
fclass.s a3, ft10
## Single-Precision
fclass.s a3, ft10
## Double-Precision
fclass.d a3, ft10

# CHECK:      Resources:
# CHECK-NEXT: [0]   - SMX60_FP:1
# CHECK-NEXT: [1]   - SMX60_IEU:2 SMX60_IEUA, SMX60_IEUB
# CHECK-NEXT: [2]   - SMX60_IEUA:1
# CHECK-NEXT: [3]   - SMX60_IEUB:1
# CHECK-NEXT: [4]   - SMX60_LS:2

# CHECK:      Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK-NEXT: [7]: Bypass Latency
# CHECK-NEXT: [8]: Resources (<Name> | <Name>[<ReleaseAtCycle>] | <Name>[<AcquireAtCycle>,<ReleaseAtCycle])
# CHECK-NEXT: [9]: LLVM Opcode Name

# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]                                        [9]                        Instructions:
# CHECK-NEXT:  1      4     0.50    *                    4     SMX60_LS                                   FLH                        flh	ft0, 0(a0)
# CHECK-NEXT:  1      4     0.50           *             4     SMX60_LS                                   FSH                        fsh	ft0, 0(a0)
# CHECK-NEXT:  1      4     0.50    *                    4     SMX60_LS                                   FLW                        flw	ft0, 0(a0)
# CHECK-NEXT:  1      4     0.50           *             4     SMX60_LS                                   FSW                        fsw	ft0, 0(a0)
# CHECK-NEXT:  1      4     0.50    *                    4     SMX60_LS                                   FLD                        fld	ft0, 0(a0)
# CHECK-NEXT:  1      4     0.50           *             4     SMX60_LS                                   FSD                        fsd	ft0, 0(a0)
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FADD_H                     fadd.h	fs10, fs11, ft8
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FSUB_H                     fsub.h	ft9, ft10, ft11
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMUL_H                     fmul.h	ft0, ft1, ft2
# CHECK-NEXT:  1      12    12.00                        12    SMX60_FP[12]                               FDIV_H                     fdiv.h	ft3, ft4, ft5
# CHECK-NEXT:  1      12    12.00                        12    SMX60_FP[12]                               FSQRT_H                    fsqrt.h	ft6, ft7
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMIN_H                     fmin.h	fa5, fa6, fa7
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMAX_H                     fmax.h	fs2, fs3, fs4
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FMADD_H                    fmadd.h	fa0, fa1, fa2, ft11
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FMSUB_H                    fmsub.h	fa4, fa5, fa6, fa7
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FNMSUB_H                   fnmsub.h	fs2, fs3, fs4, fs5
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FNMADD_H                   fnmadd.h	fs6, fs7, fs8, fs9
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FADD_S                     fadd.s	fs10, fs11, ft8
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FSUB_S                     fsub.s	ft9, ft10, ft11
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMUL_S                     fmul.s	ft0, ft1, ft2
# CHECK-NEXT:  1      15    15.00                        15    SMX60_FP[15]                               FDIV_S                     fdiv.s	ft3, ft4, ft5
# CHECK-NEXT:  1      15    15.00                        15    SMX60_FP[15]                               FSQRT_S                    fsqrt.s	ft6, ft7
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMIN_S                     fmin.s	fa5, fa6, fa7
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMAX_S                     fmax.s	fs2, fs3, fs4
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FMADD_S                    fmadd.s	fa0, fa1, fa2, ft11
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FMSUB_S                    fmsub.s	fa4, fa5, fa6, fa7
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FNMSUB_S                   fnmsub.s	fs2, fs3, fs4, fs5
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FNMADD_S                   fnmadd.s	fs6, fs7, fs8, fs9
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FADD_D                     fadd.d	fs10, fs11, ft8
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FSUB_D                     fsub.d	ft9, ft10, ft11
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FMUL_D                     fmul.d	ft0, ft1, ft2
# CHECK-NEXT:  1      22    22.00                        22    SMX60_FP[22]                               FDIV_D                     fdiv.d	ft3, ft4, ft5
# CHECK-NEXT:  1      22    22.00                        22    SMX60_FP[22]                               FSQRT_D                    fsqrt.d	ft6, ft7
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMIN_D                     fmin.d	fa5, fa6, fa7
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FMAX_D                     fmax.d	fs2, fs3, fs4
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FMADD_D                    fmadd.d	fa0, fa1, fa2, ft11
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FMSUB_D                    fmsub.d	fa4, fa5, fa6, fa7
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FNMSUB_D                   fnmsub.d	fs2, fs3, fs4, fs5
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FNMADD_D                   fnmadd.d	fs6, fs7, fs8, fs9
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FMV_X_H                    fmv.x.h	a2, fs7
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FMV_H_X                    fmv.h.x	ft1, a6
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_S_H                   fcvt.s.h	fa0, ft0
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_S_H                   fcvt.s.h	fa0, ft0, rup
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_H_S                   fcvt.h.s	ft2, fa2
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_D_H                   fcvt.d.h	fa0, ft0
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_D_H                   fcvt.d.h	fa0, ft0, rup
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_H_D                   fcvt.h.d	ft2, fa2
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_W_S                   fcvt.w.s	a0, fs5
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_WU_S                  fcvt.wu.s	a1, fs6
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_S_W                   fcvt.s.w	ft11, a4
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_S_WU                  fcvt.s.wu	ft0, a5
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_L_S                   fcvt.l.s	a0, ft0
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_LU_S                  fcvt.lu.s	a1, ft1
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_S_L                   fcvt.s.l	ft2, a2
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_S_LU                  fcvt.s.lu	ft3, a3
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FMV_X_W                    fmv.x.w	a2, fs7
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FMV_W_X                    fmv.w.x	ft1, a6
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FSGNJ_S                    fsgnj.s	fs1, fa0, fa1
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FSGNJN_S                   fsgnjn.s	fa1, fa3, fa4
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_WU_D                  fcvt.wu.d	a4, ft11
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_W_D                   fcvt.w.d	a4, ft11
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_D_W                   fcvt.d.w	ft0, a5
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_D_WU                  fcvt.d.wu	ft1, a6
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_S_D                   fcvt.s.d	fs5, fs6
# CHECK-NEXT:  1      4     1.00                         4     SMX60_FP                                   FCVT_D_S                   fcvt.d.s	fs7, fs8
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_L_D                   fcvt.l.d	a0, ft0
# CHECK-NEXT:  1      6     0.50                         6     SMX60_IEU                                  FCVT_LU_D                  fcvt.lu.d	a1, ft1
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_D_L                   fcvt.d.l	ft3, a3
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FCVT_D_LU                  fcvt.d.lu	ft4, a4
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FMV_X_D                    fmv.x.d	a2, ft2
# CHECK-NEXT:  1      4     0.50                         4     SMX60_IEU                                  FMV_D_X                    fmv.d.x	ft5, a5
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FSGNJ_D                    fsgnj.d	fs1, fa0, fa1
# CHECK-NEXT:  1      5     1.00                         5     SMX60_FP                                   FSGNJN_D                   fsgnjn.d	fa1, fa3, fa4
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FEQ_H                      feq.h	a1, fs8, fs9
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FLT_H                      flt.h	a2, fs10, fs11
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FLE_H                      fle.h	a3, ft8, ft9
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FEQ_S                      feq.s	a1, fs8, fs9
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FLT_S                      flt.s	a2, fs10, fs11
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FLE_S                      fle.s	a3, ft8, ft9
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FEQ_D                      feq.d	a1, fs8, fs9
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FLT_D                      flt.d	a2, fs10, fs11
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FLE_D                      fle.d	a3, ft8, ft9
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FCLASS_S                   fclass.s	a3, ft10
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FCLASS_S                   fclass.s	a3, ft10
# CHECK-NEXT:  1      6     1.00                         6     SMX60_FP                                   FCLASS_D                   fclass.d	a3, ft10

# CHECK:      Resources:
# CHECK-NEXT: [0]   - SMX60_FP
# CHECK-NEXT: [1]   - SMX60_IEUA
# CHECK-NEXT: [2]   - SMX60_IEUB
# CHECK-NEXT: [3.0] - SMX60_LS
# CHECK-NEXT: [3.1] - SMX60_LS

# CHECK:      Resource pressure per iteration:
# CHECK-NEXT: [0]    [1]    [2]    [3.0]  [3.1]
# CHECK-NEXT: 149.00 11.00  11.00  3.00   3.00

# CHECK:      Resource pressure by instruction:
# CHECK-NEXT: [0]    [1]    [2]    [3.0]  [3.1]  Instructions:
# CHECK-NEXT:  -      -      -     0.50   0.50   flh	ft0, 0(a0)
# CHECK-NEXT:  -      -      -     0.50   0.50   fsh	ft0, 0(a0)
# CHECK-NEXT:  -      -      -     0.50   0.50   flw	ft0, 0(a0)
# CHECK-NEXT:  -      -      -     0.50   0.50   fsw	ft0, 0(a0)
# CHECK-NEXT:  -      -      -     0.50   0.50   fld	ft0, 0(a0)
# CHECK-NEXT:  -      -      -     0.50   0.50   fsd	ft0, 0(a0)
# CHECK-NEXT: 1.00    -      -      -      -     fadd.h	fs10, fs11, ft8
# CHECK-NEXT: 1.00    -      -      -      -     fsub.h	ft9, ft10, ft11
# CHECK-NEXT: 1.00    -      -      -      -     fmul.h	ft0, ft1, ft2
# CHECK-NEXT: 12.00   -      -      -      -     fdiv.h	ft3, ft4, ft5
# CHECK-NEXT: 12.00   -      -      -      -     fsqrt.h	ft6, ft7
# CHECK-NEXT: 1.00    -      -      -      -     fmin.h	fa5, fa6, fa7
# CHECK-NEXT: 1.00    -      -      -      -     fmax.h	fs2, fs3, fs4
# CHECK-NEXT: 1.00    -      -      -      -     fmadd.h	fa0, fa1, fa2, ft11
# CHECK-NEXT: 1.00    -      -      -      -     fmsub.h	fa4, fa5, fa6, fa7
# CHECK-NEXT: 1.00    -      -      -      -     fnmsub.h	fs2, fs3, fs4, fs5
# CHECK-NEXT: 1.00    -      -      -      -     fnmadd.h	fs6, fs7, fs8, fs9
# CHECK-NEXT: 1.00    -      -      -      -     fadd.s	fs10, fs11, ft8
# CHECK-NEXT: 1.00    -      -      -      -     fsub.s	ft9, ft10, ft11
# CHECK-NEXT: 1.00    -      -      -      -     fmul.s	ft0, ft1, ft2
# CHECK-NEXT: 15.00   -      -      -      -     fdiv.s	ft3, ft4, ft5
# CHECK-NEXT: 15.00   -      -      -      -     fsqrt.s	ft6, ft7
# CHECK-NEXT: 1.00    -      -      -      -     fmin.s	fa5, fa6, fa7
# CHECK-NEXT: 1.00    -      -      -      -     fmax.s	fs2, fs3, fs4
# CHECK-NEXT: 1.00    -      -      -      -     fmadd.s	fa0, fa1, fa2, ft11
# CHECK-NEXT: 1.00    -      -      -      -     fmsub.s	fa4, fa5, fa6, fa7
# CHECK-NEXT: 1.00    -      -      -      -     fnmsub.s	fs2, fs3, fs4, fs5
# CHECK-NEXT: 1.00    -      -      -      -     fnmadd.s	fs6, fs7, fs8, fs9
# CHECK-NEXT: 1.00    -      -      -      -     fadd.d	fs10, fs11, ft8
# CHECK-NEXT: 1.00    -      -      -      -     fsub.d	ft9, ft10, ft11
# CHECK-NEXT: 1.00    -      -      -      -     fmul.d	ft0, ft1, ft2
# CHECK-NEXT: 22.00   -      -      -      -     fdiv.d	ft3, ft4, ft5
# CHECK-NEXT: 22.00   -      -      -      -     fsqrt.d	ft6, ft7
# CHECK-NEXT: 1.00    -      -      -      -     fmin.d	fa5, fa6, fa7
# CHECK-NEXT: 1.00    -      -      -      -     fmax.d	fs2, fs3, fs4
# CHECK-NEXT: 1.00    -      -      -      -     fmadd.d	fa0, fa1, fa2, ft11
# CHECK-NEXT: 1.00    -      -      -      -     fmsub.d	fa4, fa5, fa6, fa7
# CHECK-NEXT: 1.00    -      -      -      -     fnmsub.d	fs2, fs3, fs4, fs5
# CHECK-NEXT: 1.00    -      -      -      -     fnmadd.d	fs6, fs7, fs8, fs9
# CHECK-NEXT:  -     0.50   0.50    -      -     fmv.x.h	a2, fs7
# CHECK-NEXT:  -     0.50   0.50    -      -     fmv.h.x	ft1, a6
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.s.h	fa0, ft0
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.s.h	fa0, ft0, rup
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.h.s	ft2, fa2
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.d.h	fa0, ft0
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.d.h	fa0, ft0, rup
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.h.d	ft2, fa2
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.w.s	a0, fs5
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.wu.s	a1, fs6
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.s.w	ft11, a4
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.s.wu	ft0, a5
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.l.s	a0, ft0
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.lu.s	a1, ft1
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.s.l	ft2, a2
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.s.lu	ft3, a3
# CHECK-NEXT:  -     0.50   0.50    -      -     fmv.x.w	a2, fs7
# CHECK-NEXT:  -     0.50   0.50    -      -     fmv.w.x	ft1, a6
# CHECK-NEXT: 1.00    -      -      -      -     fsgnj.s	fs1, fa0, fa1
# CHECK-NEXT: 1.00    -      -      -      -     fsgnjn.s	fa1, fa3, fa4
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.wu.d	a4, ft11
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.w.d	a4, ft11
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.d.w	ft0, a5
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.d.wu	ft1, a6
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.s.d	fs5, fs6
# CHECK-NEXT: 1.00    -      -      -      -     fcvt.d.s	fs7, fs8
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.l.d	a0, ft0
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.lu.d	a1, ft1
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.d.l	ft3, a3
# CHECK-NEXT:  -     0.50   0.50    -      -     fcvt.d.lu	ft4, a4
# CHECK-NEXT:  -     0.50   0.50    -      -     fmv.x.d	a2, ft2
# CHECK-NEXT:  -     0.50   0.50    -      -     fmv.d.x	ft5, a5
# CHECK-NEXT: 1.00    -      -      -      -     fsgnj.d	fs1, fa0, fa1
# CHECK-NEXT: 1.00    -      -      -      -     fsgnjn.d	fa1, fa3, fa4
# CHECK-NEXT: 1.00    -      -      -      -     feq.h	a1, fs8, fs9
# CHECK-NEXT: 1.00    -      -      -      -     flt.h	a2, fs10, fs11
# CHECK-NEXT: 1.00    -      -      -      -     fle.h	a3, ft8, ft9
# CHECK-NEXT: 1.00    -      -      -      -     feq.s	a1, fs8, fs9
# CHECK-NEXT: 1.00    -      -      -      -     flt.s	a2, fs10, fs11
# CHECK-NEXT: 1.00    -      -      -      -     fle.s	a3, ft8, ft9
# CHECK-NEXT: 1.00    -      -      -      -     feq.d	a1, fs8, fs9
# CHECK-NEXT: 1.00    -      -      -      -     flt.d	a2, fs10, fs11
# CHECK-NEXT: 1.00    -      -      -      -     fle.d	a3, ft8, ft9
# CHECK-NEXT: 1.00    -      -      -      -     fclass.s	a3, ft10
# CHECK-NEXT: 1.00    -      -      -      -     fclass.s	a3, ft10
# CHECK-NEXT: 1.00    -      -      -      -     fclass.d	a3, ft10