1 # RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.7.2 NV/ST
5 0x1f 0x40 0x7f 0x70 0x82 0xf5 0xb1 0x3b
7 # CHECK-NEXT: memb(r17+r21<<#3) = r31.new
8 0x1f 0x40 0x7f 0x70 0x11 0xc2 0xa0 0x48
10 # CHECK-NEXT: memb(gp+#17) = r31.new
11 0x1f 0x40 0x7f 0x70 0x15 0xc2 0xb1 0xa1
13 # CHECK-NEXT: memb(r17+#21) = r31.new
14 0x1f 0x40 0x7f 0x70 0x02 0xe2 0xb1 0xa9
16 # CHECK-NEXT: memb(r17++I:circ(m1)) = r31.new
17 0x1f 0x40 0x7f 0x70 0x28 0xe2 0xb1 0xa9
19 # CHECK-NEXT: memb(r17++#5:circ(m1)) = r31.new
20 0x1f 0x40 0x7f 0x70 0x28 0xc2 0xb1 0xab
22 # CHECK-NEXT: memb(r17++#5) = r31.new
23 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xad
25 # CHECK-NEXT: memb(r17++m1) = r31.new
26 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xaf
28 # CHECK-NEXT: memb(r17++m1:brev) = r31.new
30 # Store new-value byte conditionally
31 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x34
33 # CHECK-NEXT: if (p3) memb(r17+r21<<#3) = r31.new
34 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x35
36 # CHECK-NEXT: if (!p3) memb(r17+r21<<#3) = r31.new
37 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x36
39 # CHECK-NEXT: r31 = r31
40 # CHECK-NEXT: if (p3.new) memb(r17+r21<<#3) = r31.new
41 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x37
43 # CHECK-NEXT: r31 = r31
44 # CHECK-NEXT: if (!p3.new) memb(r17+r21<<#3) = r31.new
45 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x40
47 # CHECK-NEXT: if (p3) memb(r17+#21) = r31.new
48 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x44
50 # CHECK-NEXT: if (!p3) memb(r17+#21) = r31.new
51 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x42
53 # CHECK-NEXT: r31 = r31
54 # CHECK-NEXT: if (p3.new) memb(r17+#21) = r31.new
55 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x46
57 # CHECK-NEXT: r31 = r31
58 # CHECK-NEXT: if (!p3.new) memb(r17+#21) = r31.new
59 0x1f 0x40 0x7f 0x70 0x2b 0xe2 0xb1 0xab
61 # CHECK-NEXT: if (p3) memb(r17++#5) = r31.new
62 0x1f 0x40 0x7f 0x70 0x2f 0xe2 0xb1 0xab
64 # CHECK-NEXT: if (!p3) memb(r17++#5) = r31.new
65 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xe2 0xb1 0xab
67 # CHECK-NEXT: r31 = r31
68 # CHECK-NEXT: if (p3.new) memb(r17++#5) = r31.new
69 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xe2 0xb1 0xab
71 # CHECK-NEXT: r31 = r31
72 # CHECK-NEXT: if (!p3.new) memb(r17++#5) = r31.new
74 # Store new-value halfword
75 0x1f 0x40 0x7f 0x70 0x8a 0xf5 0xb1 0x3b
77 # CHECK-NEXT: memh(r17+r21<<#3) = r31.new
78 0x1f 0x40 0x7f 0x70 0x15 0xca 0xa0 0x48
80 # CHECK-NEXT: memh(gp+#42) = r31.new
81 0x1f 0x40 0x7f 0x70 0x15 0xca 0xb1 0xa1
83 # CHECK-NEXT: memh(r17+#42) = r31.new
84 0x1f 0x40 0x7f 0x70 0x02 0xea 0xb1 0xa9
86 # CHECK-NEXT: memh(r17++I:circ(m1)) = r31.new
87 0x1f 0x40 0x7f 0x70 0x28 0xea 0xb1 0xa9
89 # CHECK-NEXT: memh(r17++#10:circ(m1)) = r31.new
90 0x1f 0x40 0x7f 0x70 0x28 0xca 0xb1 0xab
92 # CHECK-NEXT: memh(r17++#10) = r31.new
93 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xad
95 # CHECK-NEXT: memh(r17++m1) = r31.new
96 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xaf
98 # CHECK-NEXT: memh(r17++m1:brev) = r31.new
100 # Store new-value halfword conditionally
101 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x34
103 # CHECK-NEXT: if (p3) memh(r17+r21<<#3) = r31.new
104 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x35
106 # CHECK-NEXT: if (!p3) memh(r17+r21<<#3) = r31.new
107 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x36
109 # CHECK-NEXT: r31 = r31
110 # CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r31.new
111 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x37
113 # CHECK-NEXT: r31 = r31
114 # CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r31.new
115 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x40
117 # CHECK-NEXT: if (p3) memh(r17+#42) = r31.new
118 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x44
120 # CHECK-NEXT: if (!p3) memh(r17+#42) = r31.new
121 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x42
123 # CHECK-NEXT: r31 = r31
124 # CHECK-NEXT: if (p3.new) memh(r17+#42) = r31.new
125 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x46
127 # CHECK-NEXT: r31 = r31
128 # CHECK-NEXT: if (!p3.new) memh(r17+#42) = r31.new
129 0x1f 0x40 0x7f 0x70 0x2b 0xea 0xb1 0xab
131 # CHECK-NEXT: if (p3) memh(r17++#10) = r31.new
132 0x1f 0x40 0x7f 0x70 0x2f 0xea 0xb1 0xab
134 # CHECK-NEXT: if (!p3) memh(r17++#10) = r31.new
135 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xea 0xb1 0xab
137 # CHECK-NEXT: r31 = r31
138 # CHECK-NEXT: if (p3.new) memh(r17++#10) = r31.new
139 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xea 0xb1 0xab
141 # CHECK-NEXT: r31 = r31
142 # CHECK-NEXT: if (!p3.new) memh(r17++#10) = r31.new
144 # Store new-value word
145 0x1f 0x40 0x7f 0x70 0x92 0xf5 0xb1 0x3b
147 # CHECK-NEXT: memw(r17+r21<<#3) = r31.new
148 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xa0 0x48
150 # CHECK-NEXT: memw(gp+#84) = r31.new
151 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xb1 0xa1
153 # CHECK-NEXT: memw(r17+#84) = r31.new
154 0x1f 0x40 0x7f 0x70 0x02 0xf2 0xb1 0xa9
156 # CHECK-NEXT: memw(r17++I:circ(m1)) = r31.new
157 0x1f 0x40 0x7f 0x70 0x28 0xf2 0xb1 0xa9
159 # CHECK-NEXT: memw(r17++#20:circ(m1)) = r31.new
160 0x1f 0x40 0x7f 0x70 0x28 0xd2 0xb1 0xab
162 # CHECK-NEXT: memw(r17++#20) = r31.new
163 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xad
165 # CHECK-NEXT: memw(r17++m1) = r31.new
166 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xaf
168 # CHECK-NEXT: memw(r17++m1:brev) = r31.new
170 # Store new-value word conditionally
171 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x34
173 # CHECK-NEXT: if (p3) memw(r17+r21<<#3) = r31.new
174 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x35
176 # CHECK-NEXT: if (!p3) memw(r17+r21<<#3) = r31.new
177 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x36
179 # CHECK-NEXT: r31 = r31
180 # CHECK-NEXT: if (p3.new) memw(r17+r21<<#3) = r31.new
181 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x37
183 # CHECK-NEXT: r31 = r31
184 # CHECK-NEXT: if (!p3.new) memw(r17+r21<<#3) = r31.new
185 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x40
187 # CHECK-NEXT: if (p3) memw(r17+#84) = r31.new
188 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x44
190 # CHECK-NEXT: if (!p3) memw(r17+#84) = r31.new
191 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x42
193 # CHECK-NEXT: r31 = r31
194 # CHECK-NEXT: if (p3.new) memw(r17+#84) = r31.new
195 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x46
197 # CHECK-NEXT: r31 = r31
198 # CHECK-NEXT: if (!p3.new) memw(r17+#84) = r31.new
199 0x1f 0x40 0x7f 0x70 0x2b 0xf2 0xb1 0xab
201 # CHECK-NEXT: if (p3) memw(r17++#20) = r31.new
202 0x1f 0x40 0x7f 0x70 0x2f 0xf2 0xb1 0xab
204 # CHECK-NEXT: if (!p3) memw(r17++#20) = r31.new
205 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xf2 0xb1 0xab
207 # CHECK-NEXT: r31 = r31
208 # CHECK-NEXT: if (p3.new) memw(r17++#20) = r31.new
209 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xf2 0xb1 0xab
211 # CHECK-NEXT: r31 = r31
212 # CHECK-NEXT: if (!p3.new) memw(r17++#20) = r31.new