1# RUN: llvm-mc %s -triple=mips64-unknown-linux -show-encoding -mcpu=mips64r2 | \
2# RUN:   FileCheck %s
3# RUN: llvm-mc %s -triple=mips64-unknown-linux -show-encoding -mcpu=mips64r6 | \
4# RUN:   FileCheck %s
5
6bits_32_to_47_0x0000:           # CHECK-LABEL: bits_32_to_47_0x0000:
7dla $5, 0x0000000000000001      # CHECK: daddiu $5, $zero, 1         # encoding: [0x64,0x05,0x00,0x01]
8dla $5, 0x0000000000000002      # CHECK: daddiu $5, $zero, 2         # encoding: [0x64,0x05,0x00,0x02]
9dla $5, 0x0000000000004000      # CHECK: daddiu $5, $zero, 16384     # encoding: [0x64,0x05,0x40,0x00]
10dla $5, 0x0000000000008000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
11dla $5, 0x00000000ffff8000      # CHECK: ori $5, $zero, 65535        # encoding: [0x34,0x05,0xff,0xff]
12                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
13                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
14dla $5, 0x00000000ffffc000      # CHECK: ori $5, $zero, 65535        # encoding: [0x34,0x05,0xff,0xff]
15                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
16                                # CHECK: ori $5, $5, 49152           # encoding: [0x34,0xa5,0xc0,0x00]
17dla $5, 0x00000000fffffffe      # CHECK: ori $5, $zero, 65535        # encoding: [0x34,0x05,0xff,0xff]
18                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
19                                # CHECK: ori $5, $5, 65534           # encoding: [0x34,0xa5,0xff,0xfe]
20dla $5, 0x00000000ffffffff      # CHECK: lui $5, 65535               # encoding: [0x3c,0x05,0xff,0xff]
21                                # CHECK: dsrl32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3e]
22dla $5, 0x0000000000010000      # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
23dla $5, 0x0000000000020000      # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
24dla $5, 0x0000000040000000      # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
25dla $5, 0x0000000080000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
26                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
27dla $5, 0x00000000c0000000      # CHECK: ori $5, $zero, 49152        # encoding: [0x34,0x05,0xc0,0x00]
28                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
29dla $5, 0x00000000fffe0000      # CHECK: ori $5, $zero, 65534        # encoding: [0x34,0x05,0xff,0xfe]
30                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
31dla $5, 0x00000000ffff0000      # CHECK: ori $5, $zero, 65535        # encoding: [0x34,0x05,0xff,0xff]
32                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
33dla $5, 0x0000000000010001      # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
34                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
35dla $5, 0x0000000000020001      # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
36                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
37dla $5, 0x0000000040000001      # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
38                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
39dla $5, 0x0000000080000001      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
40                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
41                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
42dla $5, 0x0000000000010002      # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
43                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
44dla $5, 0x0000000000020002      # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
45                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
46dla $5, 0x0000000040000002      # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
47                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
48dla $5, 0x0000000080000002      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
49                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
50                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
51dla $5, 0x0000000000014000      # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
52                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
53dla $5, 0x0000000000024000      # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
54                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
55dla $5, 0x0000000040004000      # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
56                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
57dla $5, 0x0000000080004000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
58                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
59                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
60dla $5, 0x0000000000018000      # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
61                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
62dla $5, 0x0000000000028000      # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
63                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
64dla $5, 0x0000000040008000      # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
65                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
66dla $5, 0x0000000080008000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
67                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
68                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
69dla $5, 0x00000000c0008000      # CHECK: ori $5, $zero, 49152        # encoding: [0x34,0x05,0xc0,0x00]
70                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
71                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
72dla $5, 0x00000000fffe8000      # CHECK: ori $5, $zero, 65534        # encoding: [0x34,0x05,0xff,0xfe]
73                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
74                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
75dla $5, 0x00000000ffff8000      # CHECK: ori $5, $zero, 65535        # encoding: [0x34,0x05,0xff,0xff]
76                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
77                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
78bits_32_to_47_0x0001:           # CHECK-LABEL: bits_32_to_47_0x0001:
79dla $5, 0x0000000100000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
80                                # CHECK: dsll $5, $5, 17             # encoding: [0x00,0x05,0x2c,0x78]
81dla $5, 0x0000000100000001      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
82                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
83                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
84dla $5, 0x0000000100000002      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
85                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
86                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
87dla $5, 0x0000000100004000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
88                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
89                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
90dla $5, 0x0000000100008000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
91                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
92                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
93dla $5, 0x0000000100010000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
94                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
95                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
96                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
97dla $5, 0x0000000100010001      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
98                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
99                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
100                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
101                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
102dla $5, 0x0000000100010002      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
103                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
104                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
105                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
106                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
107dla $5, 0x0000000100014000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
108                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
109                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
110                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
111                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
112dla $5, 0x0000000100018000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
113                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
114                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
115                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
116                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
117dla $5, 0x0000000100020000      # CHECK: ori $5, $zero, 32769        # encoding: [0x34,0x05,0x80,0x01]
118                                # CHECK: dsll $5, $5, 17             # encoding: [0x00,0x05,0x2c,0x78]
119dla $5, 0x0000000100020001      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
120                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
121                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
122                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
123                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
124dla $5, 0x0000000100020002      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
125                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
126                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
127                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
128                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
129dla $5, 0x0000000100024000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
130                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
131                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
132                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
133                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
134dla $5, 0x0000000100028000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
135                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
136                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
137                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
138                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
139dla $5, 0x0000000140000000      # CHECK: ori $5, $zero, 40960        # encoding: [0x34,0x05,0xa0,0x00]
140                                # CHECK: dsll $5, $5, 17             # encoding: [0x00,0x05,0x2c,0x78]
141dla $5, 0x0000000140000001      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
142                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
143                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
144                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
145                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
146dla $5, 0x0000000140000002      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
147                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
148                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
149                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
150                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
151dla $5, 0x0000000140004000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
152                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
153                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
154                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
155                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
156dla $5, 0x0000000140008000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
157                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
158                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
159                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
160                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
161dla $5, 0x0000000180000000      # CHECK: ori $5, $zero, 49152        # encoding: [0x34,0x05,0xc0,0x00]
162                                # CHECK: dsll $5, $5, 17             # encoding: [0x00,0x05,0x2c,0x78]
163dla $5, 0x0000000180000001      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
164                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
165                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
166                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
167                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
168dla $5, 0x0000000180000002      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
169                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
170                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
171                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
172                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
173dla $5, 0x0000000180004000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
174                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
175                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
176                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
177                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
178dla $5, 0x0000000180008000      # CHECK: addiu $5, $zero, 1          # encoding: [0x24,0x05,0x00,0x01]
179                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
180                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
181                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
182                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
183bits_32_to_47_0x0002:           # CHECK-LABEL: bits_32_to_47_0x0002:
184dla $5, 0x0000000200000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
185                                # CHECK: dsll $5, $5, 18             # encoding: [0x00,0x05,0x2c,0xb8]
186dla $5, 0x0000000200000001      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
187                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
188                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
189dla $5, 0x0000000200000002      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
190                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
191                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
192dla $5, 0x0000000200004000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
193                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
194                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
195dla $5, 0x0000000200008000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
196                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
197                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
198dla $5, 0x0000000200010000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
199                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
200                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
201                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
202dla $5, 0x0000000200010001      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
203                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
204                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
205                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
206                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
207dla $5, 0x0000000200010002      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
208                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
209                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
210                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
211                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
212dla $5, 0x0000000200014000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
213                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
214                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
215                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
216                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
217dla $5, 0x0000000200018000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
218                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
219                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
220                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
221                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
222dla $5, 0x0000000200020000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
223                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
224                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
225                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
226dla $5, 0x0000000200020001      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
227                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
228                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
229                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
230                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
231dla $5, 0x0000000200020002      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
232                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
233                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
234                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
235                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
236dla $5, 0x0000000200024000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
237                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
238                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
239                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
240                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
241dla $5, 0x0000000200028000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
242                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
243                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
244                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
245                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
246dla $5, 0x0000000240000000      # CHECK: ori $5, $zero, 36864        # encoding: [0x34,0x05,0x90,0x00]
247                                # CHECK: dsll $5, $5, 18             # encoding: [0x00,0x05,0x2c,0xb8]
248dla $5, 0x0000000240000001      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
249                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
250                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
251                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
252                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
253dla $5, 0x0000000240000002      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
254                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
255                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
256                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
257                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
258dla $5, 0x0000000240004000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
259                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
260                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
261                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
262                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
263dla $5, 0x0000000240008000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
264                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
265                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
266                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
267                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
268dla $5, 0x0000000280000000      # CHECK: ori $5, $zero, 40960        # encoding: [0x34,0x05,0xa0,0x00]
269                                # CHECK: dsll $5, $5, 18             # encoding: [0x00,0x05,0x2c,0xb8]
270dla $5, 0x0000000280000001      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
271                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
272                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
273                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
274                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
275dla $5, 0x0000000280000002      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
276                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
277                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
278                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
279                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
280dla $5, 0x0000000280004000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
281                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
282                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
283                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
284                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
285dla $5, 0x0000000280008000      # CHECK: addiu $5, $zero, 2          # encoding: [0x24,0x05,0x00,0x02]
286                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
287                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
288                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
289                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
290bits_32_to_47_0x4000:           # CHECK-LABEL: bits_32_to_47_0x4000:
291dla $5, 0x0000400000000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
292                                # CHECK: dsll $5, $5, 31             # encoding: [0x00,0x05,0x2f,0xf8]
293dla $5, 0x0000400000000001      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
294                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
295                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
296dla $5, 0x0000400000000002      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
297                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
298                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
299dla $5, 0x0000400000004000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
300                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
301                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
302dla $5, 0x0000400000008000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
303                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
304                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
305dla $5, 0x0000400000010000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
306                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
307                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
308                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
309dla $5, 0x0000400000010001      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
310                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
311                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
312                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
313                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
314dla $5, 0x0000400000010002      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
315                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
316                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
317                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
318                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
319dla $5, 0x0000400000014000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
320                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
321                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
322                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
323                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
324dla $5, 0x0000400000018000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
325                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
326                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
327                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
328                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
329dla $5, 0x0000400000020000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
330                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
331                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
332                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
333dla $5, 0x0000400000020001      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
334                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
335                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
336                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
337                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
338dla $5, 0x0000400000020002      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
339                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
340                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
341                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
342                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
343dla $5, 0x0000400000024000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
344                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
345                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
346                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
347                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
348dla $5, 0x0000400000028000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
349                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
350                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
351                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
352                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
353dla $5, 0x0000400040000000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
354                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
355                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
356                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
357dla $5, 0x0000400040000001      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
358                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
359                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
360                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
361                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
362dla $5, 0x0000400040000002      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
363                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
364                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
365                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
366                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
367dla $5, 0x0000400040004000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
368                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
369                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
370                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
371                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
372dla $5, 0x0000400040008000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
373                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
374                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
375                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
376                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
377dla $5, 0x0000400080000000      # CHECK: ori $5, $zero, 32769        # encoding: [0x34,0x05,0x80,0x01]
378                                # CHECK: dsll $5, $5, 31             # encoding: [0x00,0x05,0x2f,0xf8]
379dla $5, 0x0000400080000001      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
380                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
381                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
382                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
383                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
384dla $5, 0x0000400080000002      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
385                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
386                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
387                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
388                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
389dla $5, 0x0000400080004000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
390                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
391                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
392                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
393                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
394dla $5, 0x0000400080008000      # CHECK: addiu $5, $zero, 16384      # encoding: [0x24,0x05,0x40,0x00]
395                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
396                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
397                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
398                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
399bits_32_to_47_0x8000:           # CHECK-LABEL: bits_32_to_47_0x8000:
400dla $5, 0x0000800000000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
401                                # CHECK: dsll $5, $5, 32             # encoding: [0x00,0x05,0x28,0x3c]
402dla $5, 0x0000800000000001      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
403                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
404                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
405dla $5, 0x0000800000000002      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
406                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
407                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
408dla $5, 0x0000800000004000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
409                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
410                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
411dla $5, 0x0000800000008000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
412                                # CHECK: dsll32 $5, $5, 0            # encoding: [0x00,0x05,0x28,0x3c]
413                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
414dla $5, 0x0000800000010000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
415                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
416                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
417                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
418dla $5, 0x0000800000010001      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
419                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
420                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
421                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
422                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
423dla $5, 0x0000800000010002      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
424                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
425                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
426                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
427                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
428dla $5, 0x0000800000014000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
429                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
430                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
431                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
432                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
433dla $5, 0x0000800000018000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
434                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
435                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
436                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
437                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
438dla $5, 0x0000800000020000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
439                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
440                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
441                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
442dla $5, 0x0000800000020001      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
443                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
444                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
445                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
446                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
447dla $5, 0x0000800000020002      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
448                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
449                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
450                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
451                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
452dla $5, 0x0000800000024000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
453                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
454                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
455                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
456                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
457dla $5, 0x0000800000028000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
458                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
459                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
460                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
461                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
462dla $5, 0x0000800040000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
463                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
464                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
465                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
466dla $5, 0x0000800040000001      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
467                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
468                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
469                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
470                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
471dla $5, 0x0000800040000002      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
472                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
473                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
474                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
475                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
476dla $5, 0x0000800040004000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
477                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
478                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
479                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
480                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
481dla $5, 0x0000800040008000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
482                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
483                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
484                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
485                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
486dla $5, 0x0000800080000000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
487                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
488                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
489                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
490dla $5, 0x0000800080000001      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
491                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
492                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
493                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
494                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
495dla $5, 0x0000800080000002      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
496                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
497                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
498                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
499                                # CHECK: ori $5, $5, 2               # encoding: [0x34,0xa5,0x00,0x02]
500dla $5, 0x0000800080004000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
501                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
502                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
503                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
504                                # CHECK: ori $5, $5, 16384           # encoding: [0x34,0xa5,0x40,0x00]
505dla $5, 0x0000800080008000      # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
506                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
507                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
508                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
509                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
510# Only test a few with bits 48-63 non-zero. It just adds an lui to the cases we've already done.
511dla $5, 0x0001800080008000      # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
512                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
513                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
514                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
515                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
516                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
517dla $5, 0x0002800080008000      # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
518                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
519                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
520                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
521                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
522                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
523dla $5, 0x4000800080008000      # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
524                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
525                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
526                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
527                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
528                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
529dla $5, 0x8000800080008000      # CHECK: lui $5, 32768               # encoding: [0x3c,0x05,0x80,0x00]
530                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
531                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
532                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
533                                # CHECK: dsll $5, $5, 16             # encoding: [0x00,0x05,0x2c,0x38]
534                                # CHECK: ori $5, $5, 32768           # encoding: [0x34,0xa5,0x80,0x00]
535
536dla $5, 0x000000000($6)         # CHECK: daddiu $5, $6, 0            # encoding: [0x64,0xc5,0x00,0x00]
537dla $5, 0x00000001($6)          # CHECK: daddiu $5, $6, 1            # encoding: [0x64,0xc5,0x00,0x01]
538dla $5, 0x00000002($6)          # CHECK: daddiu $5, $6, 2            # encoding: [0x64,0xc5,0x00,0x02]
539dla $5, 0x00004000($6)          # CHECK: daddiu $5, $6, 16384        # encoding: [0x64,0xc5,0x40,0x00]
540dla $5, 0x00008000($6)          # CHECK: ori $5, $zero, 32768        # encoding: [0x34,0x05,0x80,0x00]
541                                # CHECK: daddu $5, $5, $6            # encoding: [0x00,0xa6,0x28,0x2d]
542dla $5, 0xffffffff($6)          # CHECK: lui     $5, 65535           # encoding: [0x3c,0x05,0xff,0xff]
543                                # CHECK: dsrl32  $5, $5, 0           # encoding: [0x00,0x05,0x28,0x3e]
544                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
545dla $5, 0xfffffffe($6)          # CHECK: ori     $5, $zero, 65535    # encoding: [0x34,0x05,0xff,0xff]
546                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
547                                # CHECK: ori     $5, $5, 65534       # encoding: [0x34,0xa5,0xff,0xfe]
548                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
549dla $5, 0xffffc000($6)          # CHECK: ori     $5, $zero, 65535    # encoding: [0x34,0x05,0xff,0xff]
550                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
551                                # CHECK: ori     $5, $5, 49152       # encoding: [0x34,0xa5,0xc0,0x00]
552                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
553dla $5, 0xffff8000($6)          # CHECK: ori     $5, $zero, 65535    # encoding: [0x34,0x05,0xff,0xff]
554                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
555                                # CHECK: ori     $5, $5, 32768       # encoding: [0x34,0xa5,0x80,0x00]
556                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
557
558dla $5, 0x00010000($6)          # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
559                                # CHECK: daddu $5, $5, $6            # encoding: [0x00,0xa6,0x28,0x2d]
560dla $5, 0x00020000($6)          # CHECK: lui $5, 2                   # encoding: [0x3c,0x05,0x00,0x02]
561                                # CHECK: daddu $5, $5, $6            # encoding: [0x00,0xa6,0x28,0x2d]
562dla $5, 0x40000000($6)          # CHECK: lui $5, 16384               # encoding: [0x3c,0x05,0x40,0x00]
563                                # CHECK: daddu $5, $5, $6            # encoding: [0x00,0xa6,0x28,0x2d]
564dla $5, 0x80000000($6)          # CHECK: ori     $5, $zero, 32768    # encoding: [0x34,0x05,0x80,0x00]
565                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
566                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
567dla $5, 0xffff0000($6)          # CHECK: ori     $5, $zero, 65535    # encoding: [0x34,0x05,0xff,0xff]
568                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
569                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
570dla $5, 0xfffe0000($6)          # CHECK: ori     $5, $zero, 65534    # encoding: [0x34,0x05,0xff,0xfe]
571                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
572                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
573dla $5, 0xc0000000($6)          # CHECK: ori     $5, $zero, 49152    # encoding: [0x34,0x05,0xc0,0x00]
574                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
575                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
576dla $5, 0x80000000($6)          # CHECK: ori     $5, $zero, 32768    # encoding: [0x34,0x05,0x80,0x00]
577                                # CHECK: dsll    $5, $5, 16          # encoding: [0x00,0x05,0x2c,0x38]
578                                # CHECK: daddu   $5, $5, $6          # encoding: [0x00,0xa6,0x28,0x2d]
579
580dla $5, 0x00010001($6)          # CHECK: lui $5, 1                   # encoding: [0x3c,0x05,0x00,0x01]
581                                # CHECK: ori $5, $5, 1               # encoding: [0x34,0xa5,0x00,0x01]
582                                # CHECK: daddu $5, $5, $6            # encoding: [0x00,0xa6,0x28,0x2d]
583# There are no further interesting immediates.
584
585dla $6, 0x00000001($6)          # CHECK: daddiu $6, $6, 1            # encoding: [0x64,0xc6,0x00,0x01]
586dla $6, 0x00000002($6)          # CHECK: daddiu $6, $6, 2            # encoding: [0x64,0xc6,0x00,0x02]
587dla $6, 0x00004000($6)          # CHECK: daddiu $6, $6, 16384        # encoding: [0x64,0xc6,0x40,0x00]
588dla $6, 0x00008000($6)          # CHECK: ori $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
589                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
590dla $6, 0xffffffff($6)          # CHECK: lui     $1, 65535           # encoding: [0x3c,0x01,0xff,0xff]
591                                # CHECK: dsrl32  $1, $1, 0           # encoding: [0x00,0x01,0x08,0x3e]
592                                # CHECK: daddu   $6, $1, $6          # encoding: [0x00,0x26,0x30,0x2d]
593dla $6, 0xfffffffe($6)          # CHECK: ori     $1, $zero, 65535    # encoding: [0x34,0x01,0xff,0xff]
594                                # CHECK: dsll    $1, $1, 16          # encoding: [0x00,0x01,0x0c,0x38]
595                                # CHECK: ori     $1, $1, 65534       # encoding: [0x34,0x21,0xff,0xfe]
596                                # CHECK: daddu   $6, $1, $6          # encoding: [0x00,0x26,0x30,0x2d]
597dla $6, 0xffffc000($6)          # CHECK: ori     $1, $zero, 65535    # encoding: [0x34,0x01,0xff,0xff]
598                                # CHECK: dsll    $1, $1, 16          # encoding: [0x00,0x01,0x0c,0x38]
599                                # CHECK: ori     $1, $1, 49152       # encoding: [0x34,0x21,0xc0,0x00]
600                                # CHECK: daddu   $6, $1, $6          # encoding: [0x00,0x26,0x30,0x2d]
601dla $6, 0xffff8000($6)          # CHECK: ori     $1, $zero, 65535    # encoding: [0x34,0x01,0xff,0xff]
602                                # CHECK: dsll    $1, $1, 16          # encoding: [0x00,0x01,0x0c,0x38]
603                                # CHECK: ori     $1, $1, 32768       # encoding: [0x34,0x21,0x80,0x00]
604                                # CHECK: daddu   $6, $1, $6          # encoding: [0x00,0x26,0x30,0x2d]
605
606dla $6, 0x00010000($6)          # CHECK: lui $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
607                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
608dla $6, 0x00020000($6)          # CHECK: lui $1, 2                   # encoding: [0x3c,0x01,0x00,0x02]
609                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
610dla $6, 0x40000000($6)          # CHECK: lui $1, 16384               # encoding: [0x3c,0x01,0x40,0x00]
611                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
612dla $6, 0x80000000($6)          # CHECK: ori   $1, $zero, 32768      # encoding: [0x34,0x01,0x80,0x00]
613                                # CHECK: dsll  $1, $1, 16            # encoding: [0x00,0x01,0x0c,0x38]
614                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
615dla $6, 0xffff0000($6)          # CHECK: ori   $1, $zero, 65535      # encoding: [0x34,0x01,0xff,0xff]
616                                # CHECK: dsll  $1, $1, 16            # encoding: [0x00,0x01,0x0c,0x38]
617                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
618dla $6, 0xfffe0000($6)          # CHECK: ori   $1, $zero, 65534      # encoding: [0x34,0x01,0xff,0xfe]
619                                # CHECK: dsll  $1, $1, 16            # encoding: [0x00,0x01,0x0c,0x38]
620                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
621dla $6, 0xc0000000($6)          # CHECK: ori   $1, $zero, 49152      # encoding: [0x34,0x01,0xc0,0x00]
622                                # CHECK: dsll  $1, $1, 16            # encoding: [0x00,0x01,0x0c,0x38]
623                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
624dla $6, 0x80000000($6)          # CHECK: ori   $1, $zero, 32768      # encoding: [0x34,0x01,0x80,0x00]
625                                # CHECK: dsll  $1, $1, 16            # encoding: [0x00,0x01,0x0c,0x38]
626                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
627
628dla $6, 0x00010001($6)          # CHECK: lui $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
629                                # CHECK: ori $1, $1, 1               # encoding: [0x34,0x21,0x00,0x01]
630                                # CHECK: daddu $6, $1, $6            # encoding: [0x00,0x26,0x30,0x2d]
631# There are no further interesting immediates.
632
633symbol:           # CHECK-LABEL: symbol:
634.extern extern_sym
635.option pic0
636dla $5, extern_sym     # CHECK: lui $5, %highest(extern_sym)       # encoding: [0x3c,0x05,A,A]
637                       # CHECK:                                    # fixup A - offset: 0, value: %highest(extern_sym), kind: fixup_Mips_HIGHEST
638                       # CHECK: lui $1, %hi(extern_sym)            # encoding: [0x3c,0x01,A,A]
639                       # CHECK:                                    # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
640                       # CHECK: daddiu $5, $5, %higher(extern_sym) # encoding: [0x64,0xa5,A,A]
641                       # CHECK:                                    # fixup A - offset: 0, value: %higher(extern_sym), kind: fixup_Mips_HIGHER
642                       # CHECK: daddiu $1, $1, %lo(extern_sym)     # encoding: [0x64,0x21,A,A]
643                       # CHECK:                                    # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
644                       # CHECK: dsll32  $5, $5, 0                  # encoding: [0x00,0x05,0x28,0x3c]
645                       # CHECK: daddu   $5, $5, $1                 # encoding: [0x00,0xa1,0x28,0x2d]
646
647dla $5, extern_sym($8) # CHECK: lui $5, %highest(extern_sym)       # encoding: [0x3c,0x05,A,A]
648                       # CHECK:                                    # fixup A - offset: 0, value: %highest(extern_sym), kind: fixup_Mips_HIGHEST
649                       # CHECK: lui $1, %hi(extern_sym)            # encoding: [0x3c,0x01,A,A]
650                       # CHECK:                                    # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
651                       # CHECK: daddiu $5, $5, %higher(extern_sym) # encoding: [0x64,0xa5,A,A]
652                       # CHECK:                                    # fixup A - offset: 0, value: %higher(extern_sym), kind: fixup_Mips_HIGHER
653                       # CHECK: daddiu $1, $1, %lo(extern_sym)     # encoding: [0x64,0x21,A,A]
654                       # CHECK:                                    # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
655                       # CHECK: dsll32  $5, $5, 0                  # encoding: [0x00,0x05,0x28,0x3c]
656                       # CHECK: daddu   $5, $5, $1                 # encoding: [0x00,0xa1,0x28,0x2d]
657                       # CHECK: daddu   $5, $5, $8                 # encoding: [0x00,0xa8,0x28,0x2d]
658
659dla $5, extern_sym($5) # CHECK: lui $1, %highest(extern_sym)       # encoding: [0x3c,0x01,A,A]
660                       # CHECK:                                    # fixup A - offset: 0, value: %highest(extern_sym), kind: fixup_Mips_HIGHEST
661                       # CHECK: daddiu $1, $1, %higher(extern_sym) # encoding: [0x64,0x21,A,A]
662                       # CHECK:                                    # fixup A - offset: 0, value: %higher(extern_sym), kind: fixup_Mips_HIGHER
663                       # CHECK: dsll $1, $1, 16                    # encoding: [0x00,0x01,0x0c,0x38]
664                       # CHECK: daddiu $1, $1, %hi(extern_sym)     # encoding: [0x64,0x21,A,A]
665                       # CHECK:                                    # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
666                       # CHECK: dsll $1, $1, 16                    # encoding: [0x00,0x01,0x0c,0x38]
667                       # CHECK: daddiu $1, $1, %lo(extern_sym)     # encoding: [0x64,0x21,A,A]
668                       # CHECK:                                    # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
669                       # CHECK: daddu   $5, $1, $5                 # encoding: [0x00,0x25,0x28,0x2d]
670
671dla $5, extern_sym+8     # CHECK: lui $5, %highest(extern_sym+8)       # encoding: [0x3c,0x05,A,A]
672                         # CHECK:                                      # fixup A - offset: 0, value: %highest(extern_sym+8), kind: fixup_Mips_HIGHEST
673                         # CHECK: lui $1, %hi(extern_sym+8)            # encoding: [0x3c,0x01,A,A]
674                         # CHECK:                                      # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
675                         # CHECK: daddiu $5, $5, %higher(extern_sym+8) # encoding: [0x64,0xa5,A,A]
676                         # CHECK:                                      # fixup A - offset: 0, value: %higher(extern_sym+8), kind: fixup_Mips_HIGHER
677                         # CHECK: daddiu $1, $1, %lo(extern_sym+8)     # encoding: [0x64,0x21,A,A]
678                         # CHECK:                                      # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
679                         # CHECK: dsll32  $5, $5, 0                    # encoding: [0x00,0x05,0x28,0x3c]
680                         # CHECK: daddu   $5, $5, $1                   # encoding: [0x00,0xa1,0x28,0x2d]
681
682dla $5, extern_sym+8($8) # CHECK: lui $5, %highest(extern_sym+8)       # encoding: [0x3c,0x05,A,A]
683                         # CHECK:                                      # fixup A - offset: 0, value: %highest(extern_sym+8), kind: fixup_Mips_HIGHEST
684                         # CHECK: lui $1, %hi(extern_sym+8)            # encoding: [0x3c,0x01,A,A]
685                         # CHECK:                                      # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
686                         # CHECK: daddiu $5, $5, %higher(extern_sym+8) # encoding: [0x64,0xa5,A,A]
687                         # CHECK:                                      # fixup A - offset: 0, value: %higher(extern_sym+8), kind: fixup_Mips_HIGHER
688                         # CHECK: daddiu $1, $1, %lo(extern_sym+8)     # encoding: [0x64,0x21,A,A]
689                         # CHECK:                                      # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
690                         # CHECK: dsll32  $5, $5, 0                    # encoding: [0x00,0x05,0x28,0x3c]
691                         # CHECK: daddu   $5, $5, $1                   # encoding: [0x00,0xa1,0x28,0x2d]
692                         # CHECK: daddu   $5, $5, $8                   # encoding: [0x00,0xa8,0x28,0x2d]
693
694dla $5, extern_sym+8($5) # CHECK: lui $1, %highest(extern_sym+8)       # encoding: [0x3c,0x01,A,A]
695                         # CHECK:                                      # fixup A - offset: 0, value: %highest(extern_sym+8), kind: fixup_Mips_HIGHEST
696                         # CHECK: daddiu $1, $1, %higher(extern_sym+8) # encoding: [0x64,0x21,A,A]
697                         # CHECK:                                      # fixup A - offset: 0, value: %higher(extern_sym+8), kind: fixup_Mips_HIGHER
698                         # CHECK: dsll $1, $1, 16                      # encoding: [0x00,0x01,0x0c,0x38]
699                         # CHECK: daddiu $1, $1, %hi(extern_sym+8)     # encoding: [0x64,0x21,A,A]
700                         # CHECK:                                      # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
701                         # CHECK: dsll $1, $1, 16                      # encoding: [0x00,0x01,0x0c,0x38]
702                         # CHECK: daddiu $1, $1, %lo(extern_sym+8)     # encoding: [0x64,0x21,A,A]
703                         # CHECK:                                      # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
704                         # CHECK: daddu   $5, $1, $5                   # encoding: [0x00,0x25,0x28,0x2d]
705.set noat
706dla $5, extern_sym       # CHECK: lui $5, %highest(extern_sym)         # encoding: [0x3c,0x05,A,A]
707                         # CHECK:                                      # fixup A - offset: 0, value: %highest(extern_sym), kind: fixup_Mips_HIGHEST
708                         # CHECK: daddiu  $5, $5, %higher(extern_sym)  # encoding: [0x64,0xa5,A,A]
709                         # CHECK:                                      # fixup A - offset: 0, value: %higher(extern_sym), kind: fixup_Mips_HIGHER
710                         # CHECK: dsll  $5, $5, 16                     # encoding: [0x00,0x05,0x2c,0x38]
711                         # CHECK: daddiu  $5, $5, %hi(extern_sym)      # encoding: [0x64,0xa5,A,A]
712                         # CHECK:                                      # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
713                         # CHECK: dsll  $5, $5, 16                     # encoding: [0x00,0x05,0x2c,0x38]
714                         # CHECK: daddiu  $5, $5, %lo(extern_sym)      # encoding: [0x64,0xa5,A,A]
715                         # CHECK:                                      # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
716
717dla $5, extern_sym+8     # CHECK: lui $5, %highest(extern_sym+8)        # encoding: [0x3c,0x05,A,A]
718                         # CHECK:                                       # fixup A - offset: 0, value: %highest(extern_sym+8), kind: fixup_Mips_HIGHEST
719                         # CHECK: daddiu  $5, $5, %higher(extern_sym+8) # encoding: [0x64,0xa5,A,A]
720                         # CHECK:                                       # fixup A - offset: 0, value: %higher(extern_sym+8), kind: fixup_Mips_HIGHER
721                         # CHECK: dsll  $5, $5, 16                      # encoding: [0x00,0x05,0x2c,0x38]
722                         # CHECK: daddiu  $5, $5, %hi(extern_sym+8)     # encoding: [0x64,0xa5,A,A]
723                         # CHECK:                                       # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
724                         # CHECK: dsll  $5, $5, 16                      # encoding: [0x00,0x05,0x2c,0x38]
725                         # CHECK: daddiu  $5, $5, %lo(extern_sym+8)     # encoding: [0x64,0xa5,A,A]
726                         # CHECK:                                       # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
727
728dla $5, extern_sym($6)   # CHECK: lui $5, %highest(extern_sym)          # encoding: [0x3c,0x05,A,A]
729                         # CHECK:                                       # fixup A - offset: 0, value: %highest(extern_sym), kind: fixup_Mips_HIGHEST
730                         # CHECK: daddiu  $5, $5, %higher(extern_sym)   # encoding: [0x64,0xa5,A,A]
731                         # CHECK:                                       # fixup A - offset: 0, value: %higher(extern_sym), kind: fixup_Mips_HIGHER
732                         # CHECK: dsll  $5, $5, 16                      # encoding: [0x00,0x05,0x2c,0x38]
733                         # CHECK: daddiu  $5, $5, %hi(extern_sym)       # encoding: [0x64,0xa5,A,A]
734                         # CHECK:                                       # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
735                         # CHECK: dsll  $5, $5, 16                      # encoding: [0x00,0x05,0x2c,0x38]
736                         # CHECK: daddiu  $5, $5, %lo(extern_sym)       # encoding: [0x64,0xa5,A,A]
737                         # CHECK:                                       # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
738                         # CHECK: daddu $5, $5, $6                      # encoding: [0x00,0xa6,0x28,0x2d]
739
740dla $4, extern_sym+8($6) # CHECK: lui $4, %highest(extern_sym+8)        # encoding: [0x3c,0x04,A,A]
741                         # CHECK:                                       # fixup A - offset: 0, value: %highest(extern_sym+8), kind: fixup_Mips_HIGHEST
742                         # CHECK: daddiu  $4, $4, %higher(extern_sym+8) # encoding: [0x64,0x84,A,A]
743                         # CHECK:                                       # fixup A - offset: 0, value: %higher(extern_sym+8), kind: fixup_Mips_HIGHER
744                         # CHECK: dsll  $4, $4, 16                      # encoding: [0x00,0x04,0x24,0x38]
745                         # CHECK: daddiu  $4, $4, %hi(extern_sym+8)     # encoding: [0x64,0x84,A,A]
746                         # CHECK:                                       # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
747                         # CHECK: dsll  $4, $4, 16                      # encoding: [0x00,0x04,0x24,0x38]
748                         # CHECK: daddiu  $4, $4, %lo(extern_sym+8)     # encoding: [0x64,0x84,A,A]
749                         # CHECK:                                       # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
750                         # CHECK: daddu $4, $4, $6                      # encoding: [0x00,0x86,0x20,0x2d]
751
752.set at
753
754.option pic2
755#dla $5, symbol
756