Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / Sparc / sparc-special-registers.s
blob54f416211de3c83e6cc4a9dbface175063c85efa
1 ! RUN: llvm-mc %s -triple=sparc -show-encoding | FileCheck %s --check-prefixes=CHECK,V8
2 ! RUN: llvm-mc %s -triple=sparcv9 -show-encoding | FileCheck %s --check-prefixes=CHECK,V9
4 ! CHECK: rd %y, %i0 ! encoding: [0xb1,0x40,0x00,0x00]
5 rd %y, %i0
7 ! CHECK: rd %asr1, %i0 ! encoding: [0xb1,0x40,0x40,0x00]
8 rd %asr1, %i0
10 ! CHECK: wr %i0, 5, %y ! encoding: [0x81,0x86,0x20,0x05]
11 wr %i0, 5, %y
13 ! CHECK: wr %i0, %i1, %asr15 ! encoding: [0x9f,0x86,0x00,0x19]
14 wr %i0, %i1, %asr15
16 ! CHECK: rd %asr15, %g0 ! encoding: [0x81,0x43,0xc0,0x00]
17 rd %asr15, %g0
19 ! CHECK: rd %psr, %i0 ! encoding: [0xb1,0x48,0x00,0x00]
20 rd %psr, %i0
22 ! CHECK: rd %wim, %i0 ! encoding: [0xb1,0x50,0x00,0x00]
23 rd %wim, %i0
25 ! CHECK: rd %tbr, %i0 ! encoding: [0xb1,0x58,0x00,0x00]
26 rd %tbr, %i0
28 ! CHECK: wr %i0, 5, %psr ! encoding: [0x81,0x8e,0x20,0x05]
29 wr %i0, 5, %psr
31 ! CHECK: wr %i0, 5, %wim ! encoding: [0x81,0x96,0x20,0x05]
32 wr %i0, 5, %wim
34 ! CHECK: wr %i0, 5, %tbr ! encoding: [0x81,0x9e,0x20,0x05]
35 wr %i0, 5, %tbr
37 ! CHECK: ld [%g2+20], %fsr ! encoding: [0xc1,0x08,0xa0,0x14]
38 ld [%g2 + 20],%fsr
40 ! CHECK: ld [%g2+%i5], %fsr ! encoding: [0xc1,0x08,0x80,0x1d]
41 ld [%g2 + %i5],%fsr
43 ! CHECK: st %fsr, [%g2+20] ! encoding: [0xc1,0x28,0xa0,0x14]
44 st %fsr,[%g2 + 20]
46 ! CHECK: st %fsr, [%g2+%i5] ! encoding: [0xc1,0x28,0x80,0x1d]
47 st %fsr,[%g2 + %i5]
49 ! CHECK: std %fq, [%g6+%i2] ! encoding: [0xc1,0x31,0x80,0x1a]
50 std %fq, [%g6 + %i2]
52 !! Those instructions are processed differently on V8 and V9.
54 ! V8: rd %asr2, %i0 ! encoding: [0xb1,0x40,0x80,0x00]
55 ! V9: rd %ccr, %i0 ! encoding: [0xb1,0x40,0x80,0x00]
56 rd %asr2, %i0
57 ! V8: wr %i0, 7, %asr2 ! encoding: [0x85,0x86,0x20,0x07]
58 ! V9: wr %i0, 7, %ccr ! encoding: [0x85,0x86,0x20,0x07]
59 wr %i0, 7, %asr2
61 ! V8: rd %asr3, %i0 ! encoding: [0xb1,0x40,0xc0,0x00]
62 ! V9: rd %asi, %i0 ! encoding: [0xb1,0x40,0xc0,0x00]
63 rd %asr3, %i0
64 ! V8: wr %i0, 7, %asr3 ! encoding: [0x87,0x86,0x20,0x07]
65 ! V9: wr %i0, 7, %asi ! encoding: [0x87,0x86,0x20,0x07]
66 wr %i0, 7, %asr3
68 ! V8: rd %asr4, %i0 ! encoding: [0xb1,0x41,0x00,0x00]
69 ! V9: rd %tick, %i0 ! encoding: [0xb1,0x41,0x00,0x00]
70 rd %asr4, %i0
71 ! V8: wr %i0, 7, %asr4 ! encoding: [0x89,0x86,0x20,0x07]
72 ! V9: wr %i0, 7, %tick ! encoding: [0x89,0x86,0x20,0x07]
73 wr %i0, 7, %asr4
75 ! V8: rd %asr5, %i0 ! encoding: [0xb1,0x41,0x40,0x00]
76 ! V9: rd %pc, %i0 ! encoding: [0xb1,0x41,0x40,0x00]
77 rd %asr5, %i0
78 ! V8: wr %i0, 7, %asr5 ! encoding: [0x8b,0x86,0x20,0x07]
79 ! V9: wr %i0, 7, %pc ! encoding: [0x8b,0x86,0x20,0x07]
80 wr %i0, 7, %asr5
82 ! V8: rd %asr6, %i0 ! encoding: [0xb1,0x41,0x80,0x00]
83 ! V9: rd %fprs, %i0 ! encoding: [0xb1,0x41,0x80,0x00]
84 rd %asr6, %i0
85 ! V8: wr %i0, 7, %asr6 ! encoding: [0x8d,0x86,0x20,0x07]
86 ! V9: wr %i0, 7, %fprs ! encoding: [0x8d,0x86,0x20,0x07]
87 wr %i0, 7, %asr6
89 !! Alternate names for %asr2-%asr6 are only for V9.
90 !! TODO: make sure that using alternate names returns
91 !! an error on V8 (currently it doesn't, see SparcRegisterInfo.td).
93 ! V9: rd %ccr, %i0 ! encoding: [0xb1,0x40,0x80,0x00]
94 rd %ccr, %i0
95 ! V9: wr %i0, 7, %ccr ! encoding: [0x85,0x86,0x20,0x07]
96 wr %i0, 7, %ccr
98 ! V9: rd %asi, %i0 ! encoding: [0xb1,0x40,0xc0,0x00]
99 rd %asi, %i0
100 ! V9: wr %i0, 7, %asi ! encoding: [0x87,0x86,0x20,0x07]
101 wr %i0, 7, %asi
103 ! V9: rd %tick, %i0 ! encoding: [0xb1,0x41,0x00,0x00]
104 rd %tick, %i0
105 ! V9: wr %i0, 7, %tick ! encoding: [0x89,0x86,0x20,0x07]
106 wr %i0, 7, %tick
108 ! V9: rd %pc, %i0 ! encoding: [0xb1,0x41,0x40,0x00]
109 rd %pc, %i0
110 ! V9: wr %i0, 7, %pc ! encoding: [0x8b,0x86,0x20,0x07]
111 wr %i0, 7, %pc
113 ! V9: rd %fprs, %i0 ! encoding: [0xb1,0x41,0x80,0x00]
114 rd %fprs, %i0
115 ! V9: wr %i0, 7, %fprs ! encoding: [0x8d,0x86,0x20,0x07]
116 wr %i0, 7, %fprs