[Hexagon] Adding doubleword multiplies with and without accumulation.
[oota-llvm.git] / test / MC / Disassembler / Hexagon / xtype_mpy.txt
1 # RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s
2
3 0xf1 0xc3 0x15 0xe0
4 # CHECK: r17 =+ mpyi(r21, #31)
5 0xf1 0xc3 0x95 0xe0
6 # CHECK: r17 =- mpyi(r21, #31)
7 0xf1 0xc3 0x15 0xe1
8 # CHECK: r17 += mpyi(r21, #31)
9 0xf1 0xc3 0x95 0xe1
10 # CHECK: r17 -= mpyi(r21, #31)
11 0x11 0xdf 0x15 0xed
12 # CHECK: r17 = mpyi(r21, r31)
13 0x11 0xdf 0x15 0xef
14 # CHECK: r17 += mpyi(r21, r31)
15 0x10 0xdf 0x95 0xe4
16 # CHECK: r17:16 = mpy(r21.l, r31.l):<<1
17 0x30 0xdf 0x95 0xe4
18 # CHECK: r17:16 = mpy(r21.l, r31.h):<<1
19 0x50 0xdf 0x95 0xe4
20 # CHECK: r17:16 = mpy(r21.h, r31.l):<<1
21 0x70 0xdf 0x95 0xe4
22 # CHECK: r17:16 = mpy(r21.h, r31.h):<<1
23 0x10 0xdf 0xb5 0xe4
24 # CHECK: r17:16 = mpy(r21.l, r31.l):<<1:rnd
25 0x30 0xdf 0xb5 0xe4
26 # CHECK: r17:16 = mpy(r21.l, r31.h):<<1:rnd
27 0x50 0xdf 0xb5 0xe4
28 # CHECK: r17:16 = mpy(r21.h, r31.l):<<1:rnd
29 0x70 0xdf 0xb5 0xe4
30 # CHECK: r17:16 = mpy(r21.h, r31.h):<<1:rnd
31 0x10 0xdf 0x95 0xe6
32 # CHECK: r17:16 += mpy(r21.l, r31.l):<<1
33 0x30 0xdf 0x95 0xe6
34 # CHECK: r17:16 += mpy(r21.l, r31.h):<<1
35 0x50 0xdf 0x95 0xe6
36 # CHECK: r17:16 += mpy(r21.h, r31.l):<<1
37 0x70 0xdf 0x95 0xe6
38 # CHECK: r17:16 += mpy(r21.h, r31.h):<<1
39 0x10 0xdf 0xb5 0xe6
40 # CHECK: r17:16 -= mpy(r21.l, r31.l):<<1
41 0x30 0xdf 0xb5 0xe6
42 # CHECK: r17:16 -= mpy(r21.l, r31.h):<<1
43 0x50 0xdf 0xb5 0xe6
44 # CHECK: r17:16 -= mpy(r21.h, r31.l):<<1
45 0x70 0xdf 0xb5 0xe6
46 # CHECK: r17:16 -= mpy(r21.h, r31.h):<<1
47 0x11 0xdf 0x95 0xec
48 # CHECK: r17 = mpy(r21.l, r31.l):<<1
49 0x31 0xdf 0x95 0xec
50 # CHECK: r17 = mpy(r21.l, r31.h):<<1
51 0x51 0xdf 0x95 0xec
52 # CHECK: r17 = mpy(r21.h, r31.l):<<1
53 0x71 0xdf 0x95 0xec
54 # CHECK: r17 = mpy(r21.h, r31.h):<<1
55 0x91 0xdf 0x95 0xec
56 # CHECK: r17 = mpy(r21.l, r31.l):<<1:sat
57 0xb1 0xdf 0x95 0xec
58 # CHECK: r17 = mpy(r21.l, r31.h):<<1:sat
59 0xd1 0xdf 0x95 0xec
60 # CHECK: r17 = mpy(r21.h, r31.l):<<1:sat
61 0xf1 0xdf 0x95 0xec
62 # CHECK: r17 = mpy(r21.h, r31.h):<<1:sat
63 0x11 0xdf 0xb5 0xec
64 # CHECK: r17 = mpy(r21.l, r31.l):<<1:rnd
65 0x31 0xdf 0xb5 0xec
66 # CHECK: r17 = mpy(r21.l, r31.h):<<1:rnd
67 0x51 0xdf 0xb5 0xec
68 # CHECK: r17 = mpy(r21.h, r31.l):<<1:rnd
69 0x71 0xdf 0xb5 0xec
70 # CHECK: r17 = mpy(r21.h, r31.h):<<1:rnd
71 0x91 0xdf 0xb5 0xec
72 # CHECK: r17 = mpy(r21.l, r31.l):<<1:rnd:sat
73 0xb1 0xdf 0xb5 0xec
74 # CHECK: r17 = mpy(r21.l, r31.h):<<1:rnd:sat
75 0xd1 0xdf 0xb5 0xec
76 # CHECK: r17 = mpy(r21.h, r31.l):<<1:rnd:sat
77 0xf1 0xdf 0xb5 0xec
78 # CHECK: r17 = mpy(r21.h, r31.h):<<1:rnd:sat
79 0x11 0xdf 0x95 0xee
80 # CHECK: r17 += mpy(r21.l, r31.l):<<1
81 0x31 0xdf 0x95 0xee
82 # CHECK: r17 += mpy(r21.l, r31.h):<<1
83 0x51 0xdf 0x95 0xee
84 # CHECK: r17 += mpy(r21.h, r31.l):<<1
85 0x71 0xdf 0x95 0xee
86 # CHECK: r17 += mpy(r21.h, r31.h):<<1
87 0x91 0xdf 0x95 0xee
88 # CHECK: r17 += mpy(r21.l, r31.l):<<1:sat
89 0xb1 0xdf 0x95 0xee
90 # CHECK: r17 += mpy(r21.l, r31.h):<<1:sat
91 0xd1 0xdf 0x95 0xee
92 # CHECK: r17 += mpy(r21.h, r31.l):<<1:sat
93 0xf1 0xdf 0x95 0xee
94 # CHECK: r17 += mpy(r21.h, r31.h):<<1:sat
95 0x11 0xdf 0xb5 0xee
96 # CHECK: r17 -= mpy(r21.l, r31.l):<<1
97 0x31 0xdf 0xb5 0xee
98 # CHECK: r17 -= mpy(r21.l, r31.h):<<1
99 0x51 0xdf 0xb5 0xee
100 # CHECK: r17 -= mpy(r21.h, r31.l):<<1
101 0x71 0xdf 0xb5 0xee
102 # CHECK: r17 -= mpy(r21.h, r31.h):<<1
103 0x91 0xdf 0xb5 0xee
104 # CHECK: r17 -= mpy(r21.l, r31.l):<<1:sat
105 0xb1 0xdf 0xb5 0xee
106 # CHECK: r17 -= mpy(r21.l, r31.h):<<1:sat
107 0xd1 0xdf 0xb5 0xee
108 # CHECK: r17 -= mpy(r21.h, r31.l):<<1:sat
109 0xf1 0xdf 0xb5 0xee
110 # CHECK: r17 -= mpy(r21.h, r31.h):<<1:sat
111 0x10 0xdf 0xd5 0xe4
112 # CHECK: r17:16 = mpyu(r21.l, r31.l):<<1
113 0x30 0xdf 0xd5 0xe4
114 # CHECK: r17:16 = mpyu(r21.l, r31.h):<<1
115 0x50 0xdf 0xd5 0xe4
116 # CHECK: r17:16 = mpyu(r21.h, r31.l):<<1
117 0x70 0xdf 0xd5 0xe4
118 # CHECK: r17:16 = mpyu(r21.h, r31.h):<<1
119 0x10 0xdf 0xd5 0xe6
120 # CHECK: r17:16 += mpyu(r21.l, r31.l):<<1
121 0x30 0xdf 0xd5 0xe6
122 # CHECK: r17:16 += mpyu(r21.l, r31.h):<<1
123 0x50 0xdf 0xd5 0xe6
124 # CHECK: r17:16 += mpyu(r21.h, r31.l):<<1
125 0x70 0xdf 0xd5 0xe6
126 # CHECK: r17:16 += mpyu(r21.h, r31.h):<<1
127 0x10 0xdf 0xf5 0xe6
128 # CHECK: r17:16 -= mpyu(r21.l, r31.l):<<1
129 0x30 0xdf 0xf5 0xe6
130 # CHECK: r17:16 -= mpyu(r21.l, r31.h):<<1
131 0x50 0xdf 0xf5 0xe6
132 # CHECK: r17:16 -= mpyu(r21.h, r31.l):<<1
133 0x70 0xdf 0xf5 0xe6
134 # CHECK: r17:16 -= mpyu(r21.h, r31.h):<<1
135 0x11 0xdf 0xd5 0xec
136 # CHECK: r17 = mpyu(r21.l, r31.l):<<1
137 0x31 0xdf 0xd5 0xec
138 # CHECK: r17 = mpyu(r21.l, r31.h):<<1
139 0x51 0xdf 0xd5 0xec
140 # CHECK: r17 = mpyu(r21.h, r31.l):<<1
141 0x71 0xdf 0xd5 0xec
142 # CHECK: r17 = mpyu(r21.h, r31.h):<<1
143 0x11 0xdf 0xd5 0xee
144 # CHECK: r17 += mpyu(r21.l, r31.l):<<1
145 0x31 0xdf 0xd5 0xee
146 # CHECK: r17 += mpyu(r21.l, r31.h):<<1
147 0x51 0xdf 0xd5 0xee
148 # CHECK: r17 += mpyu(r21.h, r31.l):<<1
149 0x71 0xdf 0xd5 0xee
150 # CHECK: r17 += mpyu(r21.h, r31.h):<<1
151 0x11 0xdf 0xf5 0xee
152 # CHECK: r17 -= mpyu(r21.l, r31.l):<<1
153 0x31 0xdf 0xf5 0xee
154 # CHECK: r17 -= mpyu(r21.l, r31.h):<<1
155 0x51 0xdf 0xf5 0xee
156 # CHECK: r17 -= mpyu(r21.h, r31.l):<<1
157 0x71 0xdf 0xf5 0xee
158 # CHECK: r17 -= mpyu(r21.h, r31.h):<<1
159 0x31 0xdf 0x15 0xed
160 # CHECK: r17 = mpy(r21, r31)
161 0x31 0xdf 0x35 0xed
162 # CHECK: r17 = mpy(r21, r31):rnd
163 0x31 0xdf 0x55 0xed
164 # CHECK: r17 = mpyu(r21, r31)
165 0x31 0xdf 0x75 0xed
166 # CHECK: r17 = mpysu(r21, r31)
167 0x11 0xdf 0xb5 0xed
168 # CHECK: r17 = mpy(r21, r31.h):<<1:sat
169 0x31 0xdf 0xb5 0xed
170 # CHECK: r17 = mpy(r21, r31.l):<<1:sat
171 0x11 0xdf 0xf5 0xed
172 # CHECK: r17 = mpy(r21, r31):<<1:sat
173 0x91 0xdf 0xb5 0xed
174 # CHECK: r17 = mpy(r21, r31.h):<<1:rnd:sat
175 0x91 0xdf 0xf5 0xed
176 # CHECK: r17 = mpy(r21, r31.l):<<1:rnd:sat
177 0x10 0xdf 0x15 0xe5
178 # CHECK: r17:16 = mpy(r21, r31)
179 0x10 0xdf 0x55 0xe5
180 # CHECK: r17:16 = mpyu(r21, r31)
181 0x10 0xdf 0x15 0xe7
182 # CHECK: r17:16 += mpy(r21, r31)
183 0x10 0xdf 0x35 0xe7
184 # CHECK: r17:16 -= mpy(r21, r31)
185 0x10 0xdf 0x55 0xe7
186 # CHECK: r17:16 += mpyu(r21, r31)
187 0x10 0xdf 0x75 0xe7
188 # CHECK: r17:16 -= mpyu(r21, r31)