Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / test / MC / Disassembler / Hexagon / nv_st.txt
1 # RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.7.2 NV/ST
3
4 # Store new-value byte
5 0x1f 0x40 0x7f 0x70 0x82 0xf5 0xb1 0x3b
6 # CHECK: r31 = r31
7 # CHECK-NEXT: memb(r17 + r21<<#3) = r31.new
8 0x1f 0x40 0x7f 0x70 0x11 0xc2 0xa0 0x48
9 # CHECK: r31 = r31
10 # CHECK-NEXT: memb(#17) = r31.new
11 0x1f 0x40 0x7f 0x70 0x15 0xc2 0xb1 0xa1
12 # CHECK: r31 = r31
13 # CHECK-NEXT: memb(r17+#21) = r31.new
14 0x1f 0x40 0x7f 0x70 0x02 0xe2 0xb1 0xa9
15 # CHECK: r31 = r31
16 # CHECK-NEXT: memb(r17 ++ I:circ(m1)) = r31.new
17 0x1f 0x40 0x7f 0x70 0x28 0xe2 0xb1 0xa9
18 # CHECK: r31 = r31
19 # CHECK-NEXT: memb(r17 ++ #5:circ(m1)) = r31.new
20 0x1f 0x40 0x7f 0x70 0x28 0xc2 0xb1 0xab
21 # CHECK: r31 = r31
22 # CHECK-NEXT: memb(r17++#5) = r31.new
23 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xad
24 # CHECK: r31 = r31
25 # CHECK-NEXT: memb(r17++m1) = r31.new
26 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xaf
27 # CHECK: r31 = r31
28 # CHECK-NEXT: memb(r17 ++ m1:brev) = r31.new
29
30 # Store new-value byte conditionally
31 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x34
32 # CHECK: r31 = r31
33 # CHECK-NEXT: if (p3) memb(r17+r21<<#3) = r31.new
34 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x35
35 # CHECK: r31 = r31
36 # CHECK-NEXT: if (!p3) memb(r17+r21<<#3) = r31.new
37 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x36
38 # CHECK: p3 = r5
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
42 # CHECK: p3 = r5
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
46 # CHECK: r31 = r31
47 # CHECK-NEXT: if (p3) memb(r17+#21) = r31.new
48 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x44
49 # CHECK: r31 = r31
50 # CHECK-NEXT: if (!p3) memb(r17+#21) = r31.new
51 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x42
52 # CHECK: p3 = r5
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
56 # CHECK: p3 = r5
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
60 # CHECK: r31 = r31
61 # CHECK-NEXT: if (p3) memb(r17++#5) = r31.new
62 0x1f 0x40 0x7f 0x70 0x2f 0xe2 0xb1 0xab
63 # CHECK: r31 = r31
64 # CHECK-NEXT: if (!p3) memb(r17++#5) = r31.new
65 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xe2 0xb1 0xab
66 # CHECK: p3 = r5
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
70 # CHECK: p3 = r5
71 # CHECK-NEXT: r31 = r31
72 # CHECK-NEXT: if (!p3.new) memb(r17++#5) = r31.new
73
74 # Store new-value halfword
75 0x1f 0x40 0x7f 0x70 0x8a 0xf5 0xb1 0x3b
76 # CHECK: r31 = r31
77 # CHECK-NEXT: memh(r17 + r21<<#3) = r31.new
78 0x1f 0x40 0x7f 0x70 0x15 0xca 0xa0 0x48
79 # CHECK: r31 = r31
80 # CHECK-NEXT: memh(#42) = r31.new
81 0x1f 0x40 0x7f 0x70 0x15 0xca 0xb1 0xa1
82 # CHECK: r31 = r31
83 # CHECK-NEXT: memh(r17+#42) = r31.new
84 0x1f 0x40 0x7f 0x70 0x02 0xea 0xb1 0xa9
85 # CHECK: r31 = r31
86 # CHECK-NEXT: memh(r17 ++ I:circ(m1)) = r31.new
87 0x1f 0x40 0x7f 0x70 0x28 0xea 0xb1 0xa9
88 # CHECK: r31 = r31
89 # CHECK-NEXT: memh(r17 ++ #10:circ(m1)) = r31.new
90 0x1f 0x40 0x7f 0x70 0x28 0xca 0xb1 0xab
91 # CHECK: r31 = r31
92 # CHECK-NEXT: memh(r17++#10) = r31.new
93 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xad
94 # CHECK: r31 = r31
95 # CHECK-NEXT: memh(r17++m1) = r31.new
96 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xaf
97 # CHECK: r31 = r31
98 # CHECK-NEXT: memh(r17 ++ m1:brev) = r31.new
99
100 # Store new-value halfword conditionally
101 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x34
102 # CHECK: r31 = r31
103 # CHECK-NEXT: if (p3) memh(r17+r21<<#3) = r31.new
104 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x35
105 # CHECK: r31 = r31
106 # CHECK-NEXT: if (!p3) memh(r17+r21<<#3) = r31.new
107 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x36
108 # CHECK: p3 = r5
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
112 # CHECK: p3 = r5
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
116 # CHECK: r31 = r31
117 # CHECK-NEXT: if (p3) memh(r17+#42) = r31.new
118 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x44
119 # CHECK: r31 = r31
120 # CHECK-NEXT: if (!p3) memh(r17+#42) = r31.new
121 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x42
122 # CHECK: p3 = r5
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
126 # CHECK: p3 = r5
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
130 # CHECK: r31 = r31
131 # CHECK-NEXT: if (p3) memh(r17++#10) = r31.new
132 0x1f 0x40 0x7f 0x70 0x2f 0xea 0xb1 0xab
133 # CHECK: r31 = r31
134 # CHECK-NEXT: if (!p3) memh(r17++#10) = r31.new
135 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xea 0xb1 0xab
136 # CHECK: p3 = r5
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
140 # CHECK: p3 = r5
141 # CHECK-NEXT: r31 = r31
142 # CHECK-NEXT: if (!p3.new) memh(r17++#10) = r31.new
143
144 # Store new-value word
145 0x1f 0x40 0x7f 0x70 0x92 0xf5 0xb1 0x3b
146 # CHECK: r31 = r31
147 # CHECK-NEXT: memw(r17 + r21<<#3) = r31.new
148 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xa0 0x48
149 # CHECK: r31 = r31
150 # CHECK-NEXT: memw(#84) = r31.new
151 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xb1 0xa1
152 # CHECK: r31 = r31
153 # CHECK-NEXT: memw(r17+#84) = r31.new
154 0x1f 0x40 0x7f 0x70 0x02 0xf2 0xb1 0xa9
155 # CHECK: r31 = r31
156 # CHECK-NEXT: memw(r17 ++ I:circ(m1)) = r31.new
157 0x1f 0x40 0x7f 0x70 0x28 0xf2 0xb1 0xa9
158 # CHECK: r31 = r31
159 # CHECK-NEXT: memw(r17 ++ #20:circ(m1)) = r31.new
160 0x1f 0x40 0x7f 0x70 0x28 0xd2 0xb1 0xab
161 # CHECK: r31 = r31
162 # CHECK-NEXT: memw(r17++#20) = r31.new
163 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xad
164 # CHECK: r31 = r31
165 # CHECK-NEXT: memw(r17++m1) = r31.new
166 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xaf
167 # CHECK: r31 = r31
168 # CHECK-NEXT: memw(r17 ++ m1:brev) = r31.new
169
170 # Store new-value word conditionally
171 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x34
172 # CHECK: r31 = r31
173 # CHECK-NEXT: if (p3) memw(r17+r21<<#3) = r31.new
174 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x35
175 # CHECK: r31 = r31
176 # CHECK-NEXT: if (!p3) memw(r17+r21<<#3) = r31.new
177 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x36
178 # CHECK: p3 = r5
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
182 # CHECK: p3 = r5
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
186 # CHECK: r31 = r31
187 # CHECK-NEXT: if (p3) memw(r17+#84) = r31.new
188 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x44
189 # CHECK: r31 = r31
190 # CHECK-NEXT: if (!p3) memw(r17+#84) = r31.new
191 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x42
192 # CHECK: p3 = r5
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
196 # CHECK: p3 = r5
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
200 # CHECK: r31 = r31
201 # CHECK-NEXT: if (p3) memw(r17++#20) = r31.new
202 0x1f 0x40 0x7f 0x70 0x2f 0xf2 0xb1 0xab
203 # CHECK: r31 = r31
204 # CHECK-NEXT: if (!p3) memw(r17++#20) = r31.new
205 0x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xf2 0xb1 0xab
206 # CHECK: p3 = r5
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
210 # CHECK: p3 = r5
211 # CHECK-NEXT: r31 = r31
212 # CHECK-NEXT: if (!p3.new) memw(r17++#20) = r31.new