1 # RUN: llvm-mc -triple=hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.7.2 NV/ST
6 # CHECK-NEXT: 82 f5 b1 3b
8 memb
(r17 + r21<<#3) = r31.new }
10 # CHECK-NEXT: 11 c2 a0 48
12 memb
(gp+
#17) = r31.new }
14 # CHECK-NEXT: 15 c2 b1 a1
16 memb
(r17+
#21) = r31.new }
18 # CHECK-NEXT: 02 e2 b1 a9
20 memb
(r17 ++ I
:circ
(m1
)) = r31.new
}
22 # CHECK-NEXT: 28 e2 b1 a9
24 memb
(r17 ++ #5:circ(m1)) = r31.new }
26 # CHECK-NEXT: 28 c2 b1 ab
28 memb
(r17+
+#5) = r31.new }
30 # CHECK-NEXT: 00 e2 b1 ad
32 memb
(r17+
+m1
) = r31.new
}
34 # CHECK-NEXT: 00 e2 b1 af
36 memb
(r17 ++ m1
:brev
) = r31.new
}
38 # Store new-value byte conditionally
40 # CHECK-NEXT: e2 f5 b1 34
42 if
(p3
) memb
(r17+
r21<<#3) = r31.new }
44 # CHECK-NEXT: e2 f5 b1 35
46 if
(!p3
) memb
(r17+
r21<<#3) = r31.new }
48 # CHECK-NEXT: 1f 40 7f 70
49 # CHECK-NEXT: e2 f5 b1 36
52 if
(p3.new
) memb
(r17+
r21<<#3) = r31.new }
54 # CHECK-NEXT: 1f 40 7f 70
55 # CHECK-NEXT: e2 f5 b1 37
58 if
(!p3.new
) memb
(r17+
r21<<#3) = r31.new }
60 # CHECK-NEXT: ab c2 b1 40
62 if
(p3
) memb
(r17+
#21) = r31.new }
64 # CHECK-NEXT: ab c2 b1 44
66 if
(!p3
) memb
(r17+
#21) = r31.new }
68 # CHECK-NEXT: 1f 40 7f 70
69 # CHECK-NEXT: ab c2 b1 42
72 if
(p3.new
) memb
(r17+
#21) = r31.new }
74 # CHECK-NEXT: 1f 40 7f 70
75 # CHECK-NEXT: ab c2 b1 46
78 if
(!p3.new
) memb
(r17+
#21) = r31.new }
80 # CHECK-NEXT: 2b e2 b1 ab
82 if
(p3
) memb
(r17+
+#5) = r31.new }
84 # CHECK-NEXT: 2f e2 b1 ab
86 if
(!p3
) memb
(r17+
+#5) = r31.new }
88 # CHECK-NEXT: 1f 40 7f 70
89 # CHECK-NEXT: ab e2 b1 ab
92 if
(p3.new
) memb
(r17+
+#5) = r31.new }
94 # CHECK-NEXT: 1f 40 7f 70
95 # CHECK-NEXT: af e2 b1 ab
98 if
(!p3.new
) memb
(r17+
+#5) = r31.new }
100 # Store new-value halfword
102 # CHECK-NEXT: 8a f5 b1 3b
104 memh
(r17 + r21<<#3) = r31.new }
106 # CHECK-NEXT: 15 ca a0 48
108 memh
(gp+
#42) = r31.new }
110 # CHECK-NEXT: 15 ca b1 a1
112 memh
(r17+
#42) = r31.new }
114 # CHECK-NEXT: 02 ea b1 a9
116 memh
(r17 ++ I
:circ
(m1
)) = r31.new
}
118 # CHECK-NEXT: 28 ea b1 a9
120 memh
(r17 ++ #10:circ(m1)) = r31.new }
122 # CHECK-NEXT: 28 ca b1 ab
124 memh
(r17+
+#10) = r31.new }
126 # CHECK-NEXT: 00 ea b1 ad
128 memh
(r17+
+m1
) = r31.new
}
130 # CHECK-NEXT: 00 ea b1 af
132 memh
(r17 ++ m1
:brev
) = r31.new
}
134 # Store new-value halfword conditionally
136 # CHECK-NEXT: ea f5 b1 34
138 if
(p3
) memh
(r17+
r21<<#3) = r31.new }
140 # CHECK-NEXT: ea f5 b1 35
142 if
(!p3
) memh
(r17+
r21<<#3) = r31.new }
144 # CHECK-NEXT: 1f 40 7f 70
145 # CHECK-NEXT: ea f5 b1 36
148 if
(p3.new
) memh
(r17+
r21<<#3) = r31.new }
150 # CHECK-NEXT: 1f 40 7f 70
151 # CHECK-NEXT: ea f5 b1 37
154 if
(!p3.new
) memh
(r17+
r21<<#3) = r31.new }
156 # CHECK-NEXT: ab ca b1 40
158 if
(p3
) memh
(r17+
#42) = r31.new }
160 # CHECK-NEXT: ab ca b1 44
162 if
(!p3
) memh
(r17+
#42) = r31.new }
164 # CHECK-NEXT: 1f 40 7f 70
165 # CHECK-NEXT: ab ca b1 42
168 if
(p3.new
) memh
(r17+
#42) = r31.new }
170 # CHECK-NEXT: 1f 40 7f 70
171 # CHECK-NEXT: ab ca b1 46
174 if
(!p3.new
) memh
(r17+
#42) = r31.new }
176 # CHECK-NEXT: 2b ea b1 ab
178 if
(p3
) memh
(r17+
+#10) = r31.new }
180 # CHECK-NEXT: 2f ea b1 ab
182 if
(!p3
) memh
(r17+
+#10) = r31.new }
184 # CHECK-NEXT: 1f 40 7f 70
185 # CHECK-NEXT: ab ea b1 ab
188 if
(p3.new
) memh
(r17+
+#10) = r31.new }
190 # CHECK-NEXT: 1f 40 7f 70
191 # CHECK-NEXT: af ea b1 ab
194 if
(!p3.new
) memh
(r17+
+#10) = r31.new }
196 # Store new-value word
198 # CHECK-NEXT: 92 f5 b1 3b
200 memw
(r17 + r21<<#3) = r31.new }
202 # CHECK-NEXT: 15 d2 a0 48
204 memw
(gp+
#84) = r31.new }
206 # CHECK-NEXT: 15 d2 b1 a1
208 memw
(r17+
#84) = r31.new }
210 # CHECK-NEXT: 02 f2 b1 a9
212 memw
(r17 ++ I
:circ
(m1
)) = r31.new
}
214 # CHECK-NEXT: 28 f2 b1 a9
216 memw
(r17 ++ #20:circ(m1)) = r31.new }
218 # CHECK-NEXT: 28 d2 b1 ab
220 memw
(r17+
+#20) = r31.new }
222 # CHECK-NEXT: 00 f2 b1 ad
224 memw
(r17+
+m1
) = r31.new
}
226 # CHECK-NEXT: 00 f2 b1 af
228 memw
(r17 ++ m1
:brev
) = r31.new
}
230 # Store new-value word conditionally
232 # CHECK-NEXT: f2 f5 b1 34
234 if
(p3
) memw
(r17+
r21<<#3) = r31.new }
236 # CHECK-NEXT: f2 f5 b1 35
238 if
(!p3
) memw
(r17+
r21<<#3) = r31.new }
240 # CHECK-NEXT: 1f 40 7f 70
241 # CHECK-NEXT: f2 f5 b1 36
244 if
(p3.new
) memw
(r17+
r21<<#3) = r31.new }
246 # CHECK-NEXT: 1f 40 7f 70
247 # CHECK-NEXT: f2 f5 b1 37
250 if
(!p3.new
) memw
(r17+
r21<<#3) = r31.new }
252 # CHECK-NEXT: ab d2 b1 40
254 if
(p3
) memw
(r17+
#84) = r31.new }
256 # CHECK-NEXT: ab d2 b1 44
258 if
(!p3
) memw
(r17+
#84) = r31.new }
260 # CHECK-NEXT: 1f 40 7f 70
261 # CHECK-NEXT: ab d2 b1 42
264 if
(p3.new
) memw
(r17+
#84) = r31.new }
266 # CHECK-NEXT: 1f 40 7f 70
267 # CHECK-NEXT: ab d2 b1 46
270 if
(!p3.new
) memw
(r17+
#84) = r31.new }
272 # CHECK-NEXT: 2b f2 b1 ab
274 if
(p3
) memw
(r17+
+#20) = r31.new }
276 # CHECK-NEXT: 2f f2 b1 ab
278 if
(!p3
) memw
(r17+
+#20) = r31.new }
280 # CHECK-NEXT: 1f 40 7f 70
281 # CHECK-NEXT: ab f2 b1 ab
284 if
(p3.new
) memw
(r17+
+#20) = r31.new }
286 # CHECK-NEXT: 1f 40 7f 70
287 # CHECK-NEXT: af f2 b1 ab
290 if
(!p3.new
) memw
(r17+
+#20) = r31.new }