xref: /llvm-project/llvm/test/MC/LoongArch/Basic/Float/d-conv.s (revision 9a8727df35da562a3bd18f7356647092f1059188)
1# RUN: llvm-mc %s --triple=loongarch32 --show-encoding \
2# RUN:     | FileCheck --check-prefixes=ASM-AND-OBJ,ASM %s
3# RUN: llvm-mc %s --triple=loongarch64 --show-encoding \
4# RUN:     | FileCheck --check-prefixes=ASM-AND-OBJ,ASM %s
5# RUN: llvm-mc %s --triple=loongarch32 --filetype=obj \
6# RUN:     | llvm-objdump -d - \
7# RUN:     | FileCheck --check-prefix=ASM-AND-OBJ %s
8# RUN: llvm-mc %s --triple=loongarch64 --filetype=obj \
9# RUN:     | llvm-objdump -d - \
10# RUN:     | FileCheck --check-prefix=ASM-AND-OBJ %s
11
12## Support for the 'D' extension implies support for 'F'
13# ASM-AND-OBJ: frint.s $fa5, $ft9
14# ASM: encoding: [0x25,0x46,0x1e,0x01]
15frint.s $fa5, $ft9
16
17# ASM-AND-OBJ: fcvt.s.d $ft4, $ft11
18# ASM: encoding: [0x6c,0x1a,0x19,0x01]
19fcvt.s.d $ft4, $ft11
20
21# ASM-AND-OBJ: fcvt.d.s $ft2, $fa6
22# ASM: encoding: [0xca,0x24,0x19,0x01]
23fcvt.d.s $ft2, $fa6
24
25# ASM-AND-OBJ: ffint.s.l $fa6, $fa5
26# ASM: encoding: [0xa6,0x18,0x1d,0x01]
27ffint.s.l $fa6, $fa5
28
29# ASM-AND-OBJ: ffint.d.w $fs0, $ft10
30# ASM: encoding: [0x58,0x22,0x1d,0x01]
31ffint.d.w $fs0, $ft10
32
33# ASM-AND-OBJ: ffint.d.l $ft15, $fs2
34# ASM: encoding: [0x57,0x2b,0x1d,0x01]
35ffint.d.l $ft15, $fs2
36
37# ASM-AND-OBJ: ftint.w.d $fa3, $ft6
38# ASM: encoding: [0xc3,0x09,0x1b,0x01]
39ftint.w.d $fa3, $ft6
40
41# ASM-AND-OBJ: ftint.l.s $fs7, $fs0
42# ASM: encoding: [0x1f,0x27,0x1b,0x01]
43ftint.l.s $fs7, $fs0
44
45# ASM-AND-OBJ: ftint.l.d $ft8, $fs0
46# ASM: encoding: [0x10,0x2b,0x1b,0x01]
47ftint.l.d $ft8, $fs0
48
49# ASM-AND-OBJ: ftintrm.w.d $fa7, $ft0
50# ASM: encoding: [0x07,0x09,0x1a,0x01]
51ftintrm.w.d $fa7, $ft0
52
53# ASM-AND-OBJ: ftintrm.l.s $fs0, $ft2
54# ASM: encoding: [0x58,0x25,0x1a,0x01]
55ftintrm.l.s $fs0, $ft2
56
57# ASM-AND-OBJ: ftintrm.l.d $ft1, $ft1
58# ASM: encoding: [0x29,0x29,0x1a,0x01]
59ftintrm.l.d $ft1, $ft1
60
61# ASM-AND-OBJ: ftintrp.w.d $ft4, $fa3
62# ASM: encoding: [0x6c,0x48,0x1a,0x01]
63ftintrp.w.d $ft4, $fa3
64
65# ASM-AND-OBJ: ftintrp.l.s $fa0, $ft8
66# ASM: encoding: [0x00,0x66,0x1a,0x01]
67ftintrp.l.s $fa0, $ft8
68
69# ASM-AND-OBJ: ftintrp.l.d $fa4, $fs5
70# ASM: encoding: [0xa4,0x6b,0x1a,0x01]
71ftintrp.l.d $fa4, $fs5
72
73# ASM-AND-OBJ: ftintrz.w.d $fs1, $fs0
74# ASM: encoding: [0x19,0x8b,0x1a,0x01]
75ftintrz.w.d $fs1, $fs0
76
77# ASM-AND-OBJ: ftintrz.l.s $ft15, $fa5
78# ASM: encoding: [0xb7,0xa4,0x1a,0x01]
79ftintrz.l.s $ft15, $fa5
80
81# ASM-AND-OBJ: ftintrz.l.d $fa3, $ft2
82# ASM: encoding: [0x43,0xa9,0x1a,0x01]
83ftintrz.l.d $fa3, $ft2
84
85# ASM-AND-OBJ: ftintrne.w.d $fs7, $ft4
86# ASM: encoding: [0x9f,0xc9,0x1a,0x01]
87ftintrne.w.d $fs7, $ft4
88
89# ASM-AND-OBJ: ftintrne.l.s $ft14, $fs3
90# ASM: encoding: [0x76,0xe7,0x1a,0x01]
91ftintrne.l.s $ft14, $fs3
92
93# ASM-AND-OBJ: ftintrne.l.d $fs4, $fa6
94# ASM: encoding: [0xdc,0xe8,0x1a,0x01]
95ftintrne.l.d $fs4, $fa6
96
97# ASM-AND-OBJ: frint.d $fs5, $fa2
98# ASM: encoding: [0x5d,0x48,0x1e,0x01]
99frint.d $fs5, $fa2
100