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) = r2.new
8 0x1f 0x40 0x7f 0x70 0x15 0xc2 0xb1 0xa1
10 # CHECK-NEXT: memb(r17+#21) = r2.new
11 0x1f 0x40 0x7f 0x70 0x02 0xe2 0xb1 0xa9
13 # CHECK-NEXT: memb(r17 ++ I:circ(m1)) = r2.new
14 0x1f 0x40 0x7f 0x70 0x28 0xe2 0xb1 0xa9
16 # CHECK-NEXT: memb(r17 ++ #5:circ(m1)) = r2.new
17 0x1f 0x40 0x7f 0x70 0x28 0xc2 0xb1 0xab
19 # CHECK-NEXT: memb(r17++#5) = r2.new
20 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xad
22 # CHECK-NEXT: memb(r17++m1) = r2.new
23 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xaf
25 # CHECK-NEXT: memb(r17 ++ m1:brev) = r2.new
27 # Store new-value byte conditionally
28 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x34
30 # CHECK-NEXT: if (p3) memb(r17+r21<<#3) = r2.new
31 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x35
33 # CHECK-NEXT: if (!p3) memb(r17+r21<<#3) = r2.new
34 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x36
36 # CHECK-NEXT: r31 = r31
37 # CHECK-NEXT: if (p3.new) memb(r17+r21<<#3) = r2.new
38 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x37
40 # CHECK-NEXT: r31 = r31
41 # CHECK-NEXT: if (!p3.new) memb(r17+r21<<#3) = r2.new
42 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x40
44 # CHECK-NEXT: if (p3) memb(r17+#21) = r2.new
45 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x44
47 # CHECK-NEXT: if (!p3) memb(r17+#21) = r2.new
48 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x42
50 # CHECK-NEXT: r31 = r31
51 # CHECK-NEXT: if (p3.new) memb(r17+#21) = r2.new
52 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x46
54 # CHECK-NEXT: r31 = r31
55 # CHECK-NEXT: if (!p3.new) memb(r17+#21) = r2.new
56 0x1f 0x40 0x7f 0x70 0x2b 0xe2 0xb1 0xab
58 # CHECK-NEXT: if (p3) memb(r17++#5) = r2.new
59 0x1f 0x40 0x7f 0x70 0x2f 0xe2 0xb1 0xab
61 # CHECK-NEXT: if (!p3) memb(r17++#5) = r2.new
62 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xe2 0xb1 0xab
64 # CHECK-NEXT: r31 = r31
65 # CHECK-NEXT: if (p3.new) memb(r17++#5) = r2.new
66 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xe2 0xb1 0xab
68 # CHECK-NEXT: r31 = r31
69 # CHECK-NEXT: if (!p3.new) memb(r17++#5) = r2.new
71 # Store new-value halfword
72 0x1f 0x40 0x7f 0x70 0x8a 0xf5 0xb1 0x3b
74 # CHECK-NEXT: memh(r17 + r21<<#3) = r2.new
75 0x1f 0x40 0x7f 0x70 0x15 0xca 0xb1 0xa1
77 # CHECK-NEXT: memh(r17+#42) = r2.new
78 0x1f 0x40 0x7f 0x70 0x02 0xea 0xb1 0xa9
80 # CHECK-NEXT: memh(r17 ++ I:circ(m1)) = r2.new
81 0x1f 0x40 0x7f 0x70 0x28 0xea 0xb1 0xa9
83 # CHECK-NEXT: memh(r17 ++ #10:circ(m1)) = r2.new
84 0x1f 0x40 0x7f 0x70 0x28 0xca 0xb1 0xab
86 # CHECK-NEXT: memh(r17++#10) = r2.new
87 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xad
89 # CHECK-NEXT: memh(r17++m1) = r2.new
90 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xaf
92 # CHECK-NEXT: memh(r17 ++ m1:brev) = r2.new
94 # Store new-value halfword conditionally
95 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x34
97 # CHECK-NEXT: if (p3) memh(r17+r21<<#3) = r2.new
98 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x35
100 # CHECK-NEXT: if (!p3) memh(r17+r21<<#3) = r2.new
101 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x36
103 # CHECK-NEXT: r31 = r31
104 # CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r2.new
105 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x37
107 # CHECK-NEXT: r31 = r31
108 # CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r2.new
109 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x40
111 # CHECK-NEXT: if (p3) memh(r17+#42) = r2.new
112 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x44
114 # CHECK-NEXT: if (!p3) memh(r17+#42) = r2.new
115 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x42
117 # CHECK-NEXT: r31 = r31
118 # CHECK-NEXT: if (p3.new) memh(r17+#42) = r2.new
119 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x46
121 # CHECK-NEXT: r31 = r31
122 # CHECK-NEXT: if (!p3.new) memh(r17+#42) = r2.new
123 0x1f 0x40 0x7f 0x70 0x2b 0xea 0xb1 0xab
125 # CHECK-NEXT: if (p3) memh(r17++#10) = r2.new
126 0x1f 0x40 0x7f 0x70 0x2f 0xea 0xb1 0xab
128 # CHECK-NEXT: if (!p3) memh(r17++#10) = r2.new
129 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xea 0xb1 0xab
131 # CHECK-NEXT: r31 = r31
132 # CHECK-NEXT: if (p3.new) memh(r17++#10) = r2.new
133 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xea 0xb1 0xab
135 # CHECK-NEXT: r31 = r31
136 # CHECK-NEXT: if (!p3.new) memh(r17++#10) = r2.new
138 # Store new-value word
139 0x1f 0x40 0x7f 0x70 0x92 0xf5 0xb1 0x3b
141 # CHECK-NEXT: memw(r17 + r21<<#3) = r2.new
142 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xb1 0xa1
144 # CHECK-NEXT: memw(r17+#84) = r2.new
145 0x1f 0x40 0x7f 0x70 0x28 0xf2 0xb1 0xa9
147 # CHECK-NEXT: memw(r17 ++ #20:circ(m1)) = r2.new
148 0x1f 0x40 0x7f 0x70 0x02 0xf2 0xb1 0xa9
150 # CHECK-NEXT: memw(r17 ++ I:circ(m1)) = r2.new
151 0x1f 0x40 0x7f 0x70 0x28 0xd2 0xb1 0xab
153 # CHECK-NEXT: memw(r17++#20) = r2.new
154 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xad
156 # CHECK-NEXT: memw(r17++m1) = r2.new
157 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xaf
159 # CHECK-NEXT: memw(r17 ++ m1:brev) = r2.new
161 # Store new-value word conditionally
162 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x34
164 # CHECK-NEXT: if (p3) memw(r17+r21<<#3) = r2.new
165 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x35
167 # CHECK-NEXT: if (!p3) memw(r17+r21<<#3) = r2.new
168 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x36
170 # CHECK-NEXT: r31 = r31
171 # CHECK-NEXT: if (p3.new) memw(r17+r21<<#3) = r2.new
172 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x37
174 # CHECK-NEXT: r31 = r31
175 # CHECK-NEXT: if (!p3.new) memw(r17+r21<<#3) = r2.new
176 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x40
178 # CHECK-NEXT: if (p3) memw(r17+#84) = r2.new
179 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x44
181 # CHECK-NEXT: if (!p3) memw(r17+#84) = r2.new
182 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x42
184 # CHECK-NEXT: r31 = r31
185 # CHECK-NEXT: if (p3.new) memw(r17+#84) = r2.new
186 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x46
188 # CHECK-NEXT: r31 = r31
189 # CHECK-NEXT: if (!p3.new) memw(r17+#84) = r2.new
190 0x1f 0x40 0x7f 0x70 0x2b 0xf2 0xb1 0xab
192 # CHECK-NEXT: if (p3) memw(r17++#20) = r2.new
193 0x1f 0x40 0x7f 0x70 0x2f 0xf2 0xb1 0xab
195 # CHECK-NEXT: if (!p3) memw(r17++#20) = r2.new
196 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xf2 0xb1 0xab
198 # CHECK-NEXT: r31 = r31
199 # CHECK-NEXT: if (p3.new) memw(r17++#20) = r2.new
200 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xf2 0xb1 0xab
202 # CHECK-NEXT: r31 = r31
203 # CHECK-NEXT: if (!p3.new) memw(r17++#20) = r2.new