xref: /llvm-project/llvm/test/MC/LoongArch/Basic/Float/f-arith.s (revision 84bdee2875da364be7eb2144b1ae530f6a05f0e2)
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# ASM-AND-OBJ: fadd.s $fs5, $ft7, $fs1
13# ASM: encoding: [0xfd,0xe5,0x00,0x01]
14fadd.s $fs5, $ft7, $fs1
15
16# ASM-AND-OBJ: fsub.s $ft6, $fa6, $fs7
17# ASM: encoding: [0xce,0xfc,0x02,0x01]
18fsub.s $ft6, $fa6, $fs7
19
20# ASM-AND-OBJ: fmul.s $fa0, $fa7, $ft9
21# ASM: encoding: [0xe0,0xc4,0x04,0x01]
22fmul.s $fa0, $fa7, $ft9
23
24# ASM-AND-OBJ: fdiv.s $ft12, $fs0, $ft11
25# ASM: encoding: [0x14,0xcf,0x06,0x01]
26fdiv.s $ft12, $fs0, $ft11
27
28# ASM-AND-OBJ: fmadd.s $fa3, $ft8, $fa3, $ft7
29# ASM: encoding: [0x03,0x8e,0x17,0x08]
30fmadd.s $fa3, $ft8, $fa3, $ft7
31
32# ASM-AND-OBJ: fmsub.s $ft15, $ft3, $ft13, $fa4
33# ASM: encoding: [0x77,0x55,0x52,0x08]
34fmsub.s $ft15, $ft3, $ft13, $fa4
35
36# ASM-AND-OBJ: fnmadd.s $fs5, $fa1, $fs0, $ft12
37# ASM: encoding: [0x3d,0x60,0x9a,0x08]
38fnmadd.s $fs5, $fa1, $fs0, $ft12
39
40# ASM-AND-OBJ: fnmsub.s $ft0, $fa4, $fs0, $fs1
41# ASM: encoding: [0x88,0xe0,0xdc,0x08]
42fnmsub.s $ft0, $fa4, $fs0, $fs1
43
44# ASM-AND-OBJ: fmax.s $ft14, $fa6, $fs3
45# ASM: encoding: [0xd6,0xec,0x08,0x01]
46fmax.s $ft14, $fa6, $fs3
47
48# ASM-AND-OBJ: fmin.s $ft6, $ft2, $ft11
49# ASM: encoding: [0x4e,0xcd,0x0a,0x01]
50fmin.s $ft6, $ft2, $ft11
51
52# ASM-AND-OBJ: fmaxa.s $ft1, $fs3, $fs7
53# ASM: encoding: [0x69,0xff,0x0c,0x01]
54fmaxa.s $ft1, $fs3, $fs7
55
56# ASM-AND-OBJ: fmina.s $ft7, $ft10, $fa1
57# ASM: encoding: [0x4f,0x86,0x0e,0x01]
58fmina.s $ft7, $ft10, $fa1
59
60# ASM-AND-OBJ: fabs.s $fs4, $ft4
61# ASM: encoding: [0x9c,0x05,0x14,0x01]
62fabs.s $fs4, $ft4
63
64# ASM-AND-OBJ: fneg.s $ft13, $fs0
65# ASM: encoding: [0x15,0x17,0x14,0x01]
66fneg.s $ft13, $fs0
67
68# ASM-AND-OBJ: fsqrt.s $fs3, $ft10
69# ASM: encoding: [0x5b,0x46,0x14,0x01]
70fsqrt.s $fs3, $ft10
71
72# ASM-AND-OBJ: frecip.s $ft9, $fs3
73# ASM: encoding: [0x71,0x57,0x14,0x01]
74frecip.s $ft9, $fs3
75
76# ASM-AND-OBJ: frecipe.s $fa0, $fa0
77# ASM: encoding: [0x00,0x74,0x14,0x01]
78frecipe.s $fa0, $fa0
79
80# ASM-AND-OBJ: frsqrt.s $fs1, $ft4
81# ASM: encoding: [0x99,0x65,0x14,0x01]
82frsqrt.s $fs1, $ft4
83
84# ASM-AND-OBJ: frsqrte.s $fa1, $fa1
85# ASM: encoding: [0x21,0x84,0x14,0x01]
86frsqrte.s $fa1, $fa1
87
88# ASM-AND-OBJ: fscaleb.s $ft13, $ft15, $fa6
89# ASM: encoding: [0xf5,0x9a,0x10,0x01]
90fscaleb.s $ft13, $ft15, $fa6
91
92# ASM-AND-OBJ: flogb.s $fs7, $ft15
93# ASM: encoding: [0xff,0x26,0x14,0x01]
94flogb.s $fs7, $ft15
95
96# ASM-AND-OBJ: fcopysign.s $ft5, $fs0, $ft15
97# ASM: encoding: [0x0d,0xdf,0x12,0x01]
98fcopysign.s $ft5, $fs0, $ft15
99
100# ASM-AND-OBJ: fclass.s $ft12, $ft1
101# ASM: encoding: [0x34,0x35,0x14,0x01]
102fclass.s $ft12, $ft1
103