xref: /llvm-project/llvm/test/MC/CSKY/compressed-inst.s (revision bdd7c53dc5e0fc3c3fde408df2fd187b11bb8330)
1# RUN: llvm-mc %s -triple=csky -show-encoding -csky-no-aliases -enable-csky-asm-compressed-inst=true -mattr=+e1 \
2# RUN: -mattr=+e2 -mattr=+2e3 -mattr=+btst16 | FileCheck -check-prefixes=CHECK-ASM %s
3
4# CHECK-ASM: addu16 a0, a1
5# CHECK-ASM: encoding: [0x04,0x60]
6addu32 a0, a0, a1
7
8# CHECK-ASM: addu16 a0, a1
9# CHECK-ASM: encoding: [0x04,0x60]
10addu32 a0, a1, a0
11
12# CHECK-ASM: addu16 a0, a1, a2
13# CHECK-ASM: encoding: [0x08,0x59]
14addu32 a0, a1, a2
15
16# CHECK-ASM: subu16 a0, a1
17# CHECK-ASM: encoding: [0x06,0x60]
18subu32 a0, a0, a1
19
20# CHECK-ASM: subu16 a0, a1, a2
21# CHECK-ASM: encoding: [0x09,0x59]
22subu32 a0, a1, a2
23
24# CHECK-ASM: addc16 a0, a1
25# CHECK-ASM: encoding: [0x05,0x60]
26addc32 a0, a0, a1
27
28# CHECK-ASM: subc16 a0, a1
29# CHECK-ASM: encoding: [0x07,0x60]
30subc32 a0, a0, a1
31
32# CHECK-ASM: addi16 a0, a1, 1
33# CHECK-ASM: encoding: [0x02,0x59]
34addi32 a0, a1, 1
35
36# CHECK-ASM: subi16 a0, a1, 1
37# CHECK-ASM: encoding: [0x03,0x59]
38subi32 a0, a1, 1
39
40# CHECK-ASM: addi16 a0, 10
41# CHECK-ASM: encoding: [0x09,0x20]
42addi32 a0, a0, 10
43
44# CHECK-ASM: subi16 a0, 10
45# CHECK-ASM: encoding: [0x09,0x28]
46subi32 a0, a0, 10
47
48# CHECK-ASM: addi16 sp, sp, 4
49# CHECK-ASM: encoding: [0x01,0x14]
50addi32 sp, sp, 4
51
52# CHECK-ASM: subi16 sp, sp, 4
53# CHECK-ASM: encoding: [0x21,0x14]
54subi32 sp, sp, 4
55
56# CHECK-ASM: addi16 a0, sp, 4
57# CHECK-ASM: encoding: [0x01,0x18]
58addi32 a0, sp, 4
59
60# CHECK-ASM: mult16 a0, a1
61# CHECK-ASM: encoding: [0x04,0x7c]
62mult32 a0, a0, a1
63
64# CHECK-ASM: mult16 a0, a1
65# CHECK-ASM: encoding: [0x04,0x7c]
66mult32 a0, a1, a0
67
68# CHECK-ASM: and16 a0, a1
69# CHECK-ASM: encoding: [0x04,0x68]
70and32 a0, a0, a1
71
72# CHECK-ASM: and16 a0, a1
73# CHECK-ASM: encoding: [0x04,0x68]
74and32 a0, a1, a0
75
76# CHECK-ASM: or16 a0, a1
77# CHECK-ASM: encoding: [0x04,0x6c]
78or32 a0, a0, a1
79
80# CHECK-ASM: or16 a0, a1
81# CHECK-ASM: encoding: [0x04,0x6c]
82or32 a0, a1, a0
83
84# CHECK-ASM: xor16 a0, a1
85# CHECK-ASM: encoding: [0x05,0x6c]
86xor32 a0, a0, a1
87
88# CHECK-ASM: xor16 a0, a1
89# CHECK-ASM: encoding: [0x05,0x6c]
90xor32 a0, a1, a0
91
92# CHECK-ASM: andn16 a0, a1
93# CHECK-ASM: encoding: [0x05,0x68]
94andn32 a0, a0, a1
95
96# CHECK-ASM: nor16 a0, a1
97# CHECK-ASM: encoding: [0x06,0x6c]
98nor32 a0, a0, a1
99
100# CHECK-ASM: lsl16 a0, a1
101# CHECK-ASM: encoding: [0x04,0x70]
102lsl32 a0, a0, a1
103
104# CHECK-ASM: lsr16 a0, a1
105# CHECK-ASM: encoding: [0x05,0x70]
106lsr32 a0, a0, a1
107
108# CHECK-ASM: asr16 a0, a1
109# CHECK-ASM: encoding: [0x06,0x70]
110asr32 a0, a0, a1
111
112# CHECK-ASM: rotl16 a0, a1
113# CHECK-ASM: encoding: [0x07,0x70]
114rotl32 a0, a0, a1
115
116# CHECK-ASM: revb16 a0, a1
117# CHECK-ASM: encoding: [0x06,0x78]
118revb32 a0, a1
119
120# CHECK-ASM: lsli16 a0, a1, 2
121# CHECK-ASM: encoding: [0x02,0x41]
122lsli32 a0, a1, 2
123
124# CHECK-ASM: lsri16 a0, a1, 2
125# CHECK-ASM: encoding: [0x02,0x49]
126lsri32 a0, a1, 2
127
128# CHECK-ASM: asri16 a0, a1, 2
129# CHECK-ASM: encoding: [0x02,0x51]
130asri32 a0, a1, 2
131
132# CHECK-ASM: cmphs16 a0, a1
133# CHECK-ASM: encoding: [0x40,0x64]
134cmphs32 a0, a1
135
136# CHECK-ASM: cmplt16 a0, a1
137# CHECK-ASM: encoding: [0x41,0x64]
138cmplt32 a0, a1
139
140# CHECK-ASM: cmpne16 a0, a1
141# CHECK-ASM: encoding: [0x42,0x64]
142cmpne32 a0, a1
143
144# CHECK-ASM: cmphsi16 a0, 1
145# CHECK-ASM: encoding: [0x00,0x38]
146cmphsi32 a0, 1
147
148# CHECK-ASM: cmplti16 a0, 1
149# CHECK-ASM: encoding: [0x20,0x38]
150cmplti32 a0, 1
151
152# CHECK-ASM: cmpnei16 a0, 1
153# CHECK-ASM: encoding: [0x41,0x38]
154cmpnei32 a0, 1
155
156# CHECK-ASM: jsr16 a0
157# CHECK-ASM: encoding: [0xc1,0x7b]
158jsr32 a0
159
160# CHECK-ASM: mvcv16 a0
161# CHECK-ASM: encoding: [0x03,0x64]
162mvcv32 a0
163
164# CHECK-ASM: movi16 a0, 1
165# CHECK-ASM: encoding: [0x01,0x30]
166movi32 a0, 1
167
168# CHECK-ASM: ld16.b a0, (a1, 1)
169# CHECK-ASM: encoding: [0x01,0x81]
170ld32.b a0, (a1, 1)
171
172# CHECK-ASM: ld16.h a0, (a1, 2)
173# CHECK-ASM: encoding: [0x01,0x89]
174ld32.h a0, (a1, 2)
175
176# CHECK-ASM: ld16.w a0, (a1, 4)
177# CHECK-ASM: encoding: [0x01,0x91]
178ld32.w a0, (a1, 4)
179
180# CHECK-ASM: ld16.w a0, (sp, 4)
181# CHECK-ASM: encoding: [0x01,0x98]
182ld32.w a0, (sp, 4)
183
184# CHECK-ASM: st16.b a0, (a1, 1)
185# CHECK-ASM: encoding: [0x01,0xa1]
186st32.b a0, (a1, 1)
187
188# CHECK-ASM: st16.h a0, (a1, 2)
189# CHECK-ASM: encoding: [0x01,0xa9]
190st32.h a0, (a1, 2)
191
192# CHECK-ASM: st16.w a0, (a1, 4)
193# CHECK-ASM: encoding: [0x01,0xb1]
194st32.w a0, (a1, 4)
195
196# CHECK-ASM: st16.w a0, (sp, 4)
197# CHECK-ASM: encoding: [0x01,0xb8]
198st32.w a0, (sp, 4)
199
200# CHECK-ASM: btsti16 a0, 1
201# CHECK-ASM: encoding: [0xc1,0x38]
202btsti32 a0, 1
203
204# CHECK-ASM: bclri16 a0, 1
205# CHECK-ASM: encoding: [0x81,0x38]
206bclri32 a0, a0, 1
207
208# CHECK-ASM: bseti16 a0, 1
209# CHECK-ASM: encoding: [0xa1,0x38]
210bseti32 a0, a0, 1
211