1! RUN: not llvm-mc %s -arch=sparc   -show-encoding 2>&1 | FileCheck %s --check-prefix=V8
2! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s --check-prefix=V9
3
4        ! V8:      error: invalid instruction mnemonic
5        ! V8-NEXT: addc %g2, %g1, %g3
6        ! V9:      addx %g2, %g1, %g3              ! encoding: [0x86,0x40,0x80,0x01]
7        addc %g2, %g1, %g3
8
9        ! V8:      error: invalid instruction mnemonic
10        ! V8-NEXT: addccc %g1, %g2, %g3
11        ! V9:      addxcc %g1, %g2, %g3            ! encoding: [0x86,0xc0,0x40,0x02]
12        addccc %g1, %g2, %g3
13
14        ! V8:      error: invalid instruction mnemonic
15        ! V8-NEXT: subc %g2, %g1, %g3
16        ! V9:      subx %g2, %g1, %g3          ! encoding: [0x86,0x60,0x80,0x01]
17        subc %g2, %g1, %g3
18
19        ! V8:      error: invalid instruction mnemonic
20        ! V8-NEXT: subccc %g1, %g2, %g3
21        ! V9:      subxcc %g1, %g2, %g3         ! encoding: [0x86,0xe0,0x40,0x02]
22        subccc %g1, %g2, %g3
23
24        ! V8:      error: instruction requires a CPU feature not currently enabled
25        ! V8-NEXT: popc %g1, %g2
26        ! V9:      popc %g1, %g2                ! encoding: [0x85,0x70,0x00,0x01]
27        popc %g1, %g2
28
29
30        ! V8:      error: instruction requires a CPU feature not currently enabled
31        ! V8-NEXT: signx %g1, %g2
32        ! V9: sra %g1, %g0, %g2               ! encoding: [0x85,0x38,0x40,0x00]
33        signx %g1, %g2
34        ! V8:      error: instruction requires a CPU feature not currently enabled
35        ! V8-NEXT: signx %g1
36        ! V9: sra %g1, %g0, %g1               ! encoding: [0x83,0x38,0x40,0x00]
37        signx %g1
38
39        ! V8:      error: invalid instruction mnemonic
40        ! V8-NEXT: lduw [%i0 + %l6], %o2
41        ! V9: ld [%i0+%l6], %o2    ! encoding: [0xd4,0x06,0x00,0x16]
42        lduw [%i0 + %l6], %o2
43        ! V8:      error: invalid instruction mnemonic
44        ! V8-NEXT: lduw [%i0 + 32], %o2
45        ! V9: ld [%i0+32], %o2     ! encoding: [0xd4,0x06,0x20,0x20]
46        lduw [%i0 + 32], %o2
47        ! V8:      error: invalid instruction mnemonic
48        ! V8-NEXT: lduw [%g1], %o2
49        ! V9: ld [%g1], %o2        ! encoding: [0xd4,0x00,0x40,0x00]
50        lduw [%g1], %o2
51        ! V8:      error: invalid instruction mnemonic
52        ! V8-NEXT: lduwa [%i0 + %l6] 131, %o2
53        ! V9: lda [%i0+%l6] 131, %o2 ! encoding: [0xd4,0x86,0x10,0x76]
54        lduwa [%i0 + %l6] 131, %o2
55
56        ! V8:      error: instruction requires a CPU feature not currently enabled
57        ! V8-NEXT: lda [%l0] 0xf0, %f29
58        ! V9: lda [%l0] 240, %f29             ! encoding: [0xfb,0x84,0x1e,0x00]
59        lda [%l0] 0xf0, %f29
60
61        ! V8:      error: instruction requires a CPU feature not currently enabled
62        ! V8-NEXT: ldda [%l0] 0xf0, %f48
63        ! V9: ldda [%l0] 240, %f48            ! encoding: [0xe3,0x9c,0x1e,0x00]
64        ldda [%l0] 0xf0, %f48
65
66        ! V8:      error: instruction requires a CPU feature not currently enabled
67        ! V8-NEXT: ldqa [%l0] 0xf0, %f48
68        ! V8:      error: instruction requires a CPU feature not currently enabled
69        ! V8-NEXT: ldq [%l0], %f48
70        ! V9: ldqa [%l0] 240, %f48            ! encoding: [0xe3,0x94,0x1e,0x00]
71        ! V9: ldq [%l0], %f48                 ! encoding: [0xe3,0x14,0x00,0x00]
72        ldqa [%l0] 0xf0, %f48
73        ldq [%l0], %f48
74
75        ! V8:      error: instruction requires a CPU feature not currently enabled
76        ! V8-NEXT: sta %f29, [%l0] 0xf0
77        ! V9: sta %f29, [%l0] 240             ! encoding: [0xfb,0xa4,0x1e,0x00]
78        sta %f29, [%l0] 0xf0
79
80        ! V8:      error: instruction requires a CPU feature not currently enabled
81        ! V8-NEXT: stda %f48, [%l0] 0xf0
82        ! V9: stda %f48, [%l0] 240            ! encoding: [0xe3,0xbc,0x1e,0x00]
83        stda %f48, [%l0] 0xf0
84
85        ! V8:      error: instruction requires a CPU feature not currently enabled
86        ! V8-NEXT: stqa %f48, [%l0] 0xf0
87        ! V8:      error: instruction requires a CPU feature not currently enabled
88        ! V8-NEXT: stq %f48, [%l0]
89        ! V9: stqa %f48, [%l0] 240            ! encoding: [0xe3,0xb4,0x1e,0x00]
90        ! V9: stq %f48, [%l0]                 ! encoding: [0xe3,0x34,0x00,0x00]
91        stqa %f48, [%l0] 0xf0
92        stq %f48, [%l0]
93
94        ! V8:      error: instruction requires a CPU feature not currently enabled
95        ! V8-NEXT: ldx [%g2 + 20],%fsr
96        ! V9: ldx [%g2+20], %fsr    ! encoding: [0xc3,0x08,0xa0,0x14]
97        ldx [%g2 + 20],%fsr
98
99        ! V8:      error: instruction requires a CPU feature not currently enabled
100        ! V8-NEXT: ldx [%g2 + %i5],%fsr
101        ! V9: ldx [%g2+%i5], %fsr   ! encoding: [0xc3,0x08,0x80,0x1d]
102        ldx [%g2 + %i5],%fsr
103
104        ! V8:      error: instruction requires a CPU feature not currently enabled
105        ! V8-NEXT: stx %fsr,[%g2 + 20]
106        ! V9: stx %fsr, [%g2+20]    ! encoding: [0xc3,0x28,0xa0,0x14]
107        stx %fsr,[%g2 + 20]
108
109        ! V8:      error: instruction requires a CPU feature not currently enabled
110        ! V8-NEXT: stx %fsr,[%g2 + %i5]
111        ! V9: stx %fsr, [%g2+%i5]   ! encoding: [0xc3,0x28,0x80,0x1d]
112        stx %fsr,[%g2 + %i5]
113
114        ! V8:      error: instruction requires a CPU feature not currently enabled
115        ! V8-NEXT: wrpr %g6,%i6,%tpc
116        ! V9: wrpr %g6, %fp, %tpc        ! encoding: [0x81,0x91,0x80,0x1e]
117        wrpr %g6,%i6,%tpc
118        ! V8:      error: instruction requires a CPU feature not currently enabled
119        ! V8-NEXT: wrpr %g6,%i6,%tnpc
120        ! V9: wrpr %g6, %fp, %tnpc       ! encoding: [0x83,0x91,0x80,0x1e]
121        wrpr %g6,%i6,%tnpc
122        ! V8:      error: instruction requires a CPU feature not currently enabled
123        ! V8-NEXT: wrpr %g6,%i6,%tstate
124        ! V9: wrpr %g6, %fp, %tstate     ! encoding: [0x85,0x91,0x80,0x1e]
125        wrpr %g6,%i6,%tstate
126        ! V8:      error: instruction requires a CPU feature not currently enabled
127        ! V8-NEXT: wrpr %g6,%i6,%tt
128        ! V9: wrpr %g6, %fp, %tt         ! encoding: [0x87,0x91,0x80,0x1e]
129        wrpr %g6,%i6,%tt
130        ! V8:      error: instruction requires a CPU feature not currently enabled
131        ! V8-NEXT: wrpr %g6,%i6,%tick
132        ! V9: wrpr %g6, %fp, %tick       ! encoding: [0x89,0x91,0x80,0x1e]
133        wrpr %g6,%i6,%tick
134        ! V8:      error: instruction requires a CPU feature not currently enabled
135        ! V8-NEXT: wrpr %g6,%i6,%tba
136        ! V9: wrpr %g6, %fp, %tba        ! encoding: [0x8b,0x91,0x80,0x1e]
137        wrpr %g6,%i6,%tba
138        ! V8:      error: instruction requires a CPU feature not currently enabled
139        ! V8-NEXT: wrpr %g6,%i6,%pstate
140        ! V9: wrpr %g6, %fp, %pstate     ! encoding: [0x8d,0x91,0x80,0x1e]
141        wrpr %g6,%i6,%pstate
142        ! V8:      error: instruction requires a CPU feature not currently enabled
143        ! V8-NEXT: wrpr %g6,%i6,%tl
144        ! V9: wrpr %g6, %fp, %tl         ! encoding: [0x8f,0x91,0x80,0x1e]
145        wrpr %g6,%i6,%tl
146        ! V8:      error: instruction requires a CPU feature not currently enabled
147        ! V8-NEXT: wrpr %g6,%i6,%pil
148        ! V9: wrpr %g6, %fp, %pil        ! encoding: [0x91,0x91,0x80,0x1e]
149        wrpr %g6,%i6,%pil
150        ! V8:      error: instruction requires a CPU feature not currently enabled
151        ! V8-NEXT: wrpr %g6,%i6,%cwp
152        ! V9: wrpr %g6, %fp, %cwp        ! encoding: [0x93,0x91,0x80,0x1e]
153        wrpr %g6,%i6,%cwp
154        ! V8:      error: instruction requires a CPU feature not currently enabled
155        ! V8-NEXT: wrpr %g6,%i6,%cansave
156        ! V9: wrpr %g6, %fp, %cansave    ! encoding: [0x95,0x91,0x80,0x1e]
157        wrpr %g6,%i6,%cansave
158        ! V8:      error: instruction requires a CPU feature not currently enabled
159        ! V8-NEXT: wrpr %g6,%i6,%canrestore
160        ! V9: wrpr %g6, %fp, %canrestore ! encoding: [0x97,0x91,0x80,0x1e]
161        wrpr %g6,%i6,%canrestore
162        ! V8:      error: instruction requires a CPU feature not currently enabled
163        ! V8-NEXT: wrpr %g6,%i6,%cleanwin
164        ! V9: wrpr %g6, %fp, %cleanwin   ! encoding: [0x99,0x91,0x80,0x1e]
165        wrpr %g6,%i6,%cleanwin
166        ! V8:      error: instruction requires a CPU feature not currently enabled
167        ! V8-NEXT: wrpr %g6,%i6,%otherwin
168        ! V9: wrpr %g6, %fp, %otherwin   ! encoding: [0x9b,0x91,0x80,0x1e]
169        wrpr %g6,%i6,%otherwin
170        ! V8:      error: instruction requires a CPU feature not currently enabled
171        ! V8-NEXT: wrpr %g6,%i6,%wstate
172        ! V9: wrpr %g6, %fp, %wstate     ! encoding: [0x9d,0x91,0x80,0x1e]
173        wrpr %g6,%i6,%wstate
174
175        ! V8:      error: instruction requires a CPU feature not currently enabled
176        ! V8-NEXT: wrpr %g6,255,%tpc
177        ! V9: wrpr %g6, 255, %tpc        ! encoding: [0x81,0x91,0xa0,0xff]
178        wrpr %g6,255,%tpc
179        ! V8:      error: instruction requires a CPU feature not currently enabled
180        ! V8-NEXT: wrpr %g6,255,%tnpc
181        ! V9: wrpr %g6, 255, %tnpc       ! encoding: [0x83,0x91,0xa0,0xff]
182        wrpr %g6,255,%tnpc
183        ! V8:      error: instruction requires a CPU feature not currently enabled
184        ! V8-NEXT: wrpr %g6,255,%tstate
185        ! V9: wrpr %g6, 255, %tstate     ! encoding: [0x85,0x91,0xa0,0xff]
186        wrpr %g6,255,%tstate
187        ! V8:      error: instruction requires a CPU feature not currently enabled
188        ! V8-NEXT: wrpr %g6,255,%tt
189        ! V9: wrpr %g6, 255, %tt         ! encoding: [0x87,0x91,0xa0,0xff]
190        wrpr %g6,255,%tt
191        ! V8:      error: instruction requires a CPU feature not currently enabled
192        ! V8-NEXT: wrpr %g6,255,%tick
193        ! V9: wrpr %g6, 255, %tick       ! encoding: [0x89,0x91,0xa0,0xff]
194        wrpr %g6,255,%tick
195        ! V8:      error: instruction requires a CPU feature not currently enabled
196        ! V8-NEXT: wrpr %g6,255,%tba
197        ! V9: wrpr %g6, 255, %tba        ! encoding: [0x8b,0x91,0xa0,0xff]
198        wrpr %g6,255,%tba
199        ! V8:      error: instruction requires a CPU feature not currently enabled
200        ! V8-NEXT: wrpr %g6,255,%pstate
201        ! V9: wrpr %g6, 255, %pstate     ! encoding: [0x8d,0x91,0xa0,0xff]
202        wrpr %g6,255,%pstate
203        ! V8:      error: instruction requires a CPU feature not currently enabled
204        ! V8-NEXT: wrpr %g6,255,%tl
205        ! V9: wrpr %g6, 255, %tl         ! encoding: [0x8f,0x91,0xa0,0xff]
206        wrpr %g6,255,%tl
207        ! V8:      error: instruction requires a CPU feature not currently enabled
208        ! V8-NEXT: wrpr %g6,255,%pil
209        ! V9: wrpr %g6, 255, %pil        ! encoding: [0x91,0x91,0xa0,0xff]
210        wrpr %g6,255,%pil
211        ! V8:      error: instruction requires a CPU feature not currently enabled
212        ! V8-NEXT: wrpr %g6,255,%cwp
213        ! V9: wrpr %g6, 255, %cwp        ! encoding: [0x93,0x91,0xa0,0xff]
214        wrpr %g6,255,%cwp
215        ! V8:      error: instruction requires a CPU feature not currently enabled
216        ! V8-NEXT: wrpr %g6,255,%cansave
217        ! V9: wrpr %g6, 255, %cansave    ! encoding: [0x95,0x91,0xa0,0xff]
218        wrpr %g6,255,%cansave
219        ! V8:      error: instruction requires a CPU feature not currently enabled
220        ! V8-NEXT: wrpr %g6,255,%canrestore
221        ! V9: wrpr %g6, 255, %canrestore ! encoding: [0x97,0x91,0xa0,0xff]
222        wrpr %g6,255,%canrestore
223        ! V8:      error: instruction requires a CPU feature not currently enabled
224        ! V8-NEXT: wrpr %g6,255,%cleanwin
225        ! V9: wrpr %g6, 255, %cleanwin   ! encoding: [0x99,0x91,0xa0,0xff]
226        wrpr %g6,255,%cleanwin
227        ! V8:      error: instruction requires a CPU feature not currently enabled
228        ! V8-NEXT: wrpr %g6,255,%otherwin
229        ! V9: wrpr %g6, 255, %otherwin   ! encoding: [0x9b,0x91,0xa0,0xff]
230        wrpr %g6,255,%otherwin
231        ! V8:      error: instruction requires a CPU feature not currently enabled
232        ! V8-NEXT: wrpr %g6,255,%wstate
233        ! V9: wrpr %g6, 255, %wstate     ! encoding: [0x9d,0x91,0xa0,0xff]
234        wrpr %g6,255,%wstate
235
236        ! V8:      error: instruction requires a CPU feature not currently enabled
237        ! V8-NEXT: rdpr %tpc,%i5
238        ! V9: rdpr %tpc, %i5            ! encoding: [0xbb,0x50,0x00,0x00]
239        rdpr %tpc,%i5
240        ! V8:      error: instruction requires a CPU feature not currently enabled
241        ! V8-NEXT: rdpr %tnpc,%i5
242        ! V9: rdpr %tnpc, %i5           ! encoding: [0xbb,0x50,0x40,0x00]
243        rdpr %tnpc,%i5
244        ! V8:      error: instruction requires a CPU feature not currently enabled
245        ! V8-NEXT: rdpr %tstate,%i5
246        ! V9: rdpr %tstate, %i5         ! encoding: [0xbb,0x50,0x80,0x00]
247        rdpr %tstate,%i5
248        ! V8:      error: instruction requires a CPU feature not currently enabled
249        ! V8-NEXT: rdpr %tt,%i5
250        ! V9: rdpr %tt, %i5             ! encoding: [0xbb,0x50,0xc0,0x00]
251        rdpr %tt,%i5
252        ! V8:      error: instruction requires a CPU feature not currently enabled
253        ! V8-NEXT: rdpr %tick,%i5
254        ! V9: rdpr %tick, %i5           ! encoding: [0xbb,0x51,0x00,0x00]
255        rdpr %tick,%i5
256        ! V8:      error: instruction requires a CPU feature not currently enabled
257        ! V8-NEXT: rdpr %tba,%i5
258        ! V9: rdpr %tba, %i5            ! encoding: [0xbb,0x51,0x40,0x00]
259        rdpr %tba,%i5
260        ! V8:      error: instruction requires a CPU feature not currently enabled
261        ! V8-NEXT: rdpr %pstate,%i5
262        ! V9: rdpr %pstate, %i5         ! encoding: [0xbb,0x51,0x80,0x00]
263        rdpr %pstate,%i5
264        ! V8:      error: instruction requires a CPU feature not currently enabled
265        ! V8-NEXT: rdpr %tl,%i5
266        ! V9: rdpr %tl, %i5             ! encoding: [0xbb,0x51,0xc0,0x00]
267        rdpr %tl,%i5
268        ! V8:      error: instruction requires a CPU feature not currently enabled
269        ! V8-NEXT: rdpr %pil,%i5
270        ! V9: rdpr %pil, %i5            ! encoding: [0xbb,0x52,0x00,0x00]
271        rdpr %pil,%i5
272        ! V8:      error: instruction requires a CPU feature not currently enabled
273        ! V8-NEXT: rdpr %cwp,%i5
274        ! V9: rdpr %cwp, %i5            ! encoding: [0xbb,0x52,0x40,0x00]
275        rdpr %cwp,%i5
276        ! V8:      error: instruction requires a CPU feature not currently enabled
277        ! V8-NEXT: rdpr %cansave,%i5
278        ! V9: rdpr %cansave, %i5        ! encoding: [0xbb,0x52,0x80,0x00]
279        rdpr %cansave,%i5
280        ! V8:      error: instruction requires a CPU feature not currently enabled
281        ! V8-NEXT: rdpr %canrestore,%i5
282        ! V9: rdpr %canrestore, %i5     ! encoding: [0xbb,0x52,0xc0,0x00]
283        rdpr %canrestore,%i5
284        ! V8:      error: instruction requires a CPU feature not currently enabled
285        ! V8-NEXT: rdpr %cleanwin,%i5
286        ! V9: rdpr %cleanwin, %i5       ! encoding: [0xbb,0x53,0x00,0x00]
287        rdpr %cleanwin,%i5
288        ! V8:      error: instruction requires a CPU feature not currently enabled
289        ! V8-NEXT: rdpr %otherwin,%i5
290        ! V9: rdpr %otherwin, %i5       ! encoding: [0xbb,0x53,0x40,0x00]
291        rdpr %otherwin,%i5
292        ! V8:      error: instruction requires a CPU feature not currently enabled
293        ! V8-NEXT: rdpr %wstate,%i5
294        ! V9: rdpr %wstate, %i5         ! encoding: [0xbb,0x53,0x80,0x00]
295        rdpr %wstate,%i5
296