1 # RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \
2 # RUN: | extract-section .text \
3 # RUN: | FileCheck %s -check-prefixes=MOV8JK,MOV32JK,MOV8JQ,MOV32JQ,MOV8FF,MOV32FF
4 # RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \
5 # RUN: | extract-section .text \
6 # RUN: | FileCheck %s -check-prefixes=MOV8PP,MOV32PP,MOV8JJ,MOV32JJ,MOV8OO,MOV32OO
7 # RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=obj -o - \
8 # RUN: | extract-section .text \
9 # RUN: | FileCheck %s -check-prefixes=MOV8EE,MOV32EE,MOV8BB,MOV32BB
11 #------------------------------------------------------------------------------
12 # MxMove_MM is used for moving data from memory to memory
13 #------------------------------------------------------------------------------
16 # ---------------------------+-----------+-----------+-----------
17 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
18 # -------+-------+-----------+-----------+-----------+-----------
19 # | | DESTINATION | SOURCE
20 # 0 0 | SIZE | REG | MODE | MODE | REG
21 # -------+-------+-----------+-----------+-----------+-----------
22 # MOV8JK: 0 0 0 1 0 0 0 0 . 1 0 1 1 1 0 1 1
23 # MOV8JK-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0
24 # ---------------------------------------------------------------
25 # MOV8JK-SAME: 0 0 0 1 0 0 0 0 . 1 0 1 1 1 0 1 1
26 # MOV8JK-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1
27 # ---------------------------------------------------------------
28 # MOV32JK-SAME: 0 0 1 0 0 0 0 0 . 1 0 1 1 1 0 1 1
29 # MOV32JK-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0
30 # ---------------------------------------------------------------
31 # MOV32JK-SAME: 0 0 1 0 0 0 1 0 . 1 0 1 1 1 0 1 1
32 # MOV32JK-SAME: 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 0
33 # ---+-----------+---+-------+---+-------------------------------
34 # BRIEF DA | REG | L | SCALE | 0 | DISPLACEMENT
35 # ---+-----------+---+-------+---+-------------------------------
36 name: MxMove_RM_ARI_PCI
39 MOV8jk $a0, 0, $d1, implicit-def $ccr
40 MOV8jk $a0, -1, $d1, implicit-def $ccr
41 MOV32jk $a0, 0, $d1, implicit-def $ccr
42 MOV32jk $a1, 0, $a2, implicit-def $ccr
46 # ---------------------------+-----------+-----------+-----------
47 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
48 # -------+-------+-----------+-----------+-----------+-----------
49 # | | DESTINATION | SOURCE
50 # 0 0 | SIZE | REG | MODE | MODE | REG
51 # -------+-------+-----------+-----------+-----------+-----------
52 # MOV8JQ-SAME: 0 0 0 1 0 0 0 0 . 1 0 1 1 1 0 1 0
53 # MOV8JQ-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
54 # ---------------------------------------------------------------
55 # MOV32JQ-SAME: 0 0 1 0 0 0 0 0 . 1 0 1 1 1 0 1 0
56 # MOV32JQ-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
57 # ---------------------------------------------------------------
58 # MOV32JQ-SAME: 0 0 1 0 0 0 0 0 . 1 0 1 1 1 0 1 0
59 # MOV32JQ-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
63 MOV8jq $a0, 0, implicit-def $ccr
64 MOV32jq $a0, -1, implicit-def $ccr
65 MOV32jq $a0, -1, implicit-def $ccr
69 # ---------------------------+-----------+-----------+-----------
70 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
71 # -------+-------+-----------+-----------+-----------+-----------
72 # | | DESTINATION | SOURCE
73 # 0 0 | SIZE | REG | MODE | MODE | REG
74 # -------+-------+-----------+-----------+-----------+-----------
75 # MOV8FF: 0 0 0 1 0 0 0 1 . 1 0 1 1 0 0 0 0
76 # MOV8FF-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0
77 # MOV8FF-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1
78 # ---------------------------------------------------------------
79 # MOV8FF-SAME: 0 0 0 1 0 0 0 1 . 1 0 1 1 0 0 0 0
80 # MOV8FF-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1
81 # MOV8FF-SAME: 0 0 0 1 1 0 0 0 . 1 1 1 1 1 1 1 1
82 # ---------------------------------------------------------------
83 # MOV32FF-SAME: 0 0 1 0 0 0 1 1 . 1 0 1 1 0 0 0 1
84 # MOV32FF-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0
85 # MOV32FF-SAME: 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0
86 # ---------------------------------------------------------------
87 # MOV32FF-SAME: 0 0 1 0 0 1 0 1 . 1 0 1 1 0 0 1 0
88 # MOV32FF-SAME: 1 0 1 0 1 0 0 0 . 0 0 1 0 1 0 1 0
89 # MOV32FF-SAME: 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 0
90 # ---+-----------+---+-------+---+-------------------------------
91 # BRIEF DA | REG | L | SCALE | 0 | DISPLACEMENT
92 # ---+-----------+---+-------+---+-------------------------------
93 name: MxMove_RM_ARII_ARII
96 MOV8ff -1, $a0, $d1, 0, $a0, $d1, implicit-def $ccr
97 MOV8ff -1, $a0, $d1, -1, $a0, $d1, implicit-def $ccr
98 MOV32ff 0, $a1, $d1, 0, $a1, $d1, implicit-def $ccr
99 MOV32ff 0, $a2, $a2, 42, $a2, $a2, implicit-def $ccr
103 # ---------------------------+-----------+-----------+-----------
104 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
105 # -------+-------+-----------+-----------+-----------+-----------
106 # | | DESTINATION | SOURCE
107 # 0 0 | SIZE | REG | MODE | MODE | REG
108 # -------+-------+-----------+-----------+-----------+-----------
109 # MOV8PP: 0 0 0 1 0 0 0 1 . 0 1 1 0 1 0 0 0
110 # MOV8PP-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
111 # MOV8PP-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
112 # ---------------------------------------------------------------
113 # MOV32PP-SAME: 0 0 1 0 0 0 1 1 . 0 1 1 0 1 0 0 1
114 # MOV32PP-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
115 # MOV32PP-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
116 # ---------------------------------------------------------------
117 # MOV32PP-SAME: 0 0 1 0 0 0 1 1 . 0 1 1 0 1 0 0 1
118 # MOV32PP-SAME: 0 0 0 0 0 0 0 0 . 0 0 1 0 1 0 1 0
119 # MOV32PP-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
123 MOV8pp 0, $a0, 0, $a0, implicit-def $ccr
124 MOV32pp 0, $a1, -1, $a1, implicit-def $ccr
125 MOV32pp -1, $a1, 42, $a1, implicit-def $ccr
129 # ---------------------------+-----------+-----------+-----------
130 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
131 # -------+-------+-----------+-----------+-----------+-----------
132 # | | DESTINATION | SOURCE
133 # 0 0 | SIZE | REG | MODE | MODE | REG
134 # -------+-------+-----------+-----------+-----------+-----------
135 # MOV8EE: 0 0 0 1 0 0 0 1 . 0 0 1 0 0 0 0 0
136 # ---------------------------------------------------------------
137 # MOV32EE-SAME: 0 0 1 0 0 0 1 1 . 0 0 1 0 0 0 0 1
138 # ---------------------------------------------------------------
139 # MOV32EE-SAME: 0 0 1 0 0 0 1 1 . 0 0 1 0 0 0 0 1
140 name: MxMove_RM_ARIPD
143 MOV8ee $a0, $a0, implicit-def $ccr
144 MOV32ee $a1, $a1, implicit-def $ccr
145 MOV32ee $a1, $a1, implicit-def $ccr
149 # ---------------------------+-----------+-----------+-----------
150 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
151 # -------+-------+-----------+-----------+-----------+-----------
152 # | | DESTINATION | SOURCE
153 # 0 0 | SIZE | REG | MODE | MODE | REG
154 # -------+-------+-----------+-----------+-----------+-----------
155 # MOV8OO-SAME: 0 0 0 1 0 0 0 0 . 1 1 0 1 1 0 0 0
156 # ---------------------------------------------------------------
157 # MOV32OO-SAME: 0 0 1 0 0 0 1 0 . 1 1 0 1 1 0 0 1
158 # ---------------------------------------------------------------
159 # MOV32OO-SAME: 0 0 1 0 0 0 1 0 . 1 1 0 1 1 0 0 1
160 name: MxMove_RM_ARIPI
163 MOV8oo $a0, $a0, implicit-def $ccr
164 MOV32oo $a1, $a1, implicit-def $ccr
165 MOV32oo $a1, $a1, implicit-def $ccr
169 # ---------------------------+-----------+-----------+-----------
170 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
171 # -------+-------+-----------+-----------+-----------+-----------
172 # | | DESTINATION | SOURCE
173 # 0 0 | SIZE | REG | MODE | MODE | REG
174 # -------+-------+-----------+-----------+-----------+-----------
175 # MOV8JJ-SAME: 0 0 0 1 0 0 0 0 . 1 0 0 1 0 0 0 0
176 # ---------------------------------------------------------------
177 # MOV32JJ-SAME: 0 0 1 0 0 0 1 0 . 1 0 0 1 0 0 0 1
178 # ---------------------------------------------------------------
179 # MOV32JJ-SAME: 0 0 1 0 0 0 1 0 . 1 0 0 1 0 0 0 1
183 MOV8jj $a0, $a0, implicit-def $ccr
184 MOV32jj $a1, $a1, implicit-def $ccr
185 MOV32jj $a1, $a1, implicit-def $ccr
189 # ---------------------------+-----------+-----------+-----------
190 # F E | D C | B A 9 | 8 7 6 | 5 4 3 | 2 1 0
191 # -------+-------+-----------+-----------+-----------+-----------
192 # | | DESTINATION | SOURCE
193 # 0 0 | SIZE | REG | MODE | MODE | REG
194 # -------+-------+-----------+-----------+-----------+-----------
195 # MOV8BB-SAME: 0 0 0 1 0 0 1 1 . 1 1 1 1 1 0 0 1
196 # MOV8BB-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
197 # MOV8BB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
198 # ---------------------------------------------------------------
199 # MOV32BB-SAME: 0 0 1 0 0 0 1 1 . 1 1 1 1 1 0 0 1
200 # MOV32BB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
201 # MOV32BB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
202 # MOV32BB-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
203 # MOV32BB-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
204 # ---------------------------------------------------------------
205 # MOV32BB-SAME: 0 0 1 0 0 0 1 1 . 1 1 1 1 1 0 0 1
206 # MOV32BB-SAME: 0 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
207 # MOV32BB-SAME: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1
208 # MOV32BB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
209 # MOV32BB-SAME: 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
213 MOV8bb 0, -1, implicit-def $ccr
214 MOV32bb -1, 0, implicit-def $ccr
215 MOV32bb 0, 2147483647, implicit-def $ccr