[Hexagon] Adding accumulating add/sub, doubleword logic-not variants, doubleword...
[oota-llvm.git] / test / MC / Disassembler / Hexagon / xtype_alu.txt
1 # RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s
2
3 0xd0 0xc0 0x94 0x80
4 # CHECK: r17:16 = abs(r21:20)
5 0x91 0xc0 0x95 0x8c
6 # CHECK: r17 = abs(r21)
7 0xb1 0xc0 0x95 0x8c
8 # CHECK: r17 = abs(r21):sat
9 0xff 0xd1 0x35 0xdb
10 # CHECK: r17 = add(r21, add(r31, #23))
11 0xff 0xd1 0xb5 0xdb
12 # CHECK: r17 = add(r21, sub(#23, r31))
13 0xf1 0xc2 0x15 0xe2
14 # CHECK: r17 += add(r21, #23)
15 0xf1 0xc2 0x95 0xe2
16 # CHECK: r17 -= add(r21, #23)
17 0x31 0xdf 0x15 0xef
18 # CHECK: r17 += add(r21, r31)
19 0x31 0xdf 0x95 0xef
20 # CHECK: r17 -= add(r21, r31)
21 0xf0 0xde 0x14 0xd3
22 # CHECK: r17:16 = add(r21:20, r31:30)
23 0x11 0xd5 0x1f 0xd5
24 # CHECK: r17 = add(r21.l, r31.l)
25 0x51 0xd5 0x1f 0xd5
26 # CHECK: r17 = add(r21.l, r31.h)
27 0x91 0xd5 0x1f 0xd5
28 # CHECK: r17 = add(r21.l, r31.l):sat
29 0xd1 0xd5 0x1f 0xd5
30 # CHECK: r17 = add(r21.l, r31.h):sat
31 0x11 0xd5 0x5f 0xd5
32 # CHECK: r17 = add(r21.l, r31.l):<<16
33 0x31 0xd5 0x5f 0xd5
34 # CHECK: r17 = add(r21.l, r31.h):<<16
35 0x51 0xd5 0x5f 0xd5
36 # CHECK: r17 = add(r21.h, r31.l):<<16
37 0x71 0xd5 0x5f 0xd5
38 # CHECK: r17 = add(r21.h, r31.h):<<16
39 0x91 0xd5 0x5f 0xd5
40 # CHECK: r17 = add(r21.l, r31.l):sat:<<16
41 0xb1 0xd5 0x5f 0xd5
42 # CHECK: r17 = add(r21.l, r31.h):sat:<<16
43 0xd1 0xd5 0x5f 0xd5
44 # CHECK: r17 = add(r21.h, r31.l):sat:<<16
45 0xf1 0xd5 0x5f 0xd5
46 # CHECK: r17 = add(r21.h, r31.h):sat:<<16
47 0x90 0xc0 0x94 0x80
48 # CHECK: r17:16 = not(r21:20)
49 0xf0 0xde 0x14 0xd3
50 # CHECK: r17:16 = add(r21:20, r31:30)
51 0xb0 0xde 0x74 0xd3
52 # CHECK: r17:16 = add(r21:20, r31:30):sat
53 0xd0 0xde 0x74 0xd3
54 # CHECK: r17:16 = add(r21:20, r31:30):raw:lo
55 0xf0 0xde 0x74 0xd3
56 # CHECK: r17:16 = add(r21:20, r31:30):raw:hi
57 0x10 0xde 0xf4 0xd3
58 # CHECK: r17:16 = and(r21:20, r31:30)
59 0x30 0xd4 0xfe 0xd3
60 # CHECK: r17:16 = and(r21:20, ~r31:30)
61 0x50 0xde 0xf4 0xd3
62 # CHECK: r17:16 = or(r21:20, r31:30)
63 0x70 0xd4 0xfe 0xd3
64 # CHECK: r17:16 = or(r21:20, ~r31:30)
65 0x10 0xde 0x94 0xca
66 # CHECK: r17:16 ^= xor(r21:20, r31:30)
67 0x71 0xdf 0x95 0xef
68 # CHECK: r17 ^= xor(r21, r31)
69 0x11 0xdf 0xd5 0xd5
70 # CHECK: r17 = max(r21, r31)
71 0x91 0xdf 0xd5 0xd5
72 # CHECK: r17 = maxu(r21, r31)
73 0x90 0xde 0xd4 0xd3
74 # CHECK: r17:16 = max(r21:20, r31:30)
75 0xb0 0xde 0xd4 0xd3
76 # CHECK: r17:16 = maxu(r21:20, r31:30)
77 0x11 0xd5 0xbf 0xd5
78 # CHECK: r17 = min(r21, r31)
79 0x91 0xd5 0xbf 0xd5
80 # CHECK: r17 = minu(r21, r31)
81 0xd0 0xd4 0xbe 0xd3
82 # CHECK: r17:16 = min(r21:20, r31:30)
83 0xf0 0xd4 0xbe 0xd3
84 # CHECK: r17:16 = minu(r21:20, r31:30)
85 0xb0 0xc0 0x94 0x80
86 # CHECK: r17:16 = neg(r21:20)
87 0xd1 0xc0 0x95 0x8c
88 # CHECK: r17 = neg(r21):sat
89 0x71 0xd5 0x1f 0xef
90 # CHECK: r17 += sub(r21, r31)
91 0x11 0xd5 0x3f 0xd5
92 # CHECK: r17 = sub(r21.l, r31.l)
93 0x51 0xd5 0x3f 0xd5
94 # CHECK: r17 = sub(r21.l, r31.h)
95 0x91 0xd5 0x3f 0xd5
96 # CHECK: r17 = sub(r21.l, r31.l):sat
97 0xd1 0xd5 0x3f 0xd5
98 # CHECK: r17 = sub(r21.l, r31.h):sat
99 0x11 0xd5 0x7f 0xd5
100 # CHECK: r17 = sub(r21.l, r31.l):<<16
101 0x31 0xd5 0x7f 0xd5
102 # CHECK: r17 = sub(r21.l, r31.h):<<16
103 0x51 0xd5 0x7f 0xd5
104 # CHECK: r17 = sub(r21.h, r31.l):<<16
105 0x71 0xd5 0x7f 0xd5
106 # CHECK: r17 = sub(r21.h, r31.h):<<16
107 0x91 0xd5 0x7f 0xd5
108 # CHECK: r17 = sub(r21.l, r31.l):sat:<<16
109 0xb1 0xd5 0x7f 0xd5
110 # CHECK: r17 = sub(r21.l, r31.h):sat:<<16
111 0xd1 0xd5 0x7f 0xd5
112 # CHECK: r17 = sub(r21.h, r31.l):sat:<<16
113 0xf1 0xd5 0x7f 0xd5
114 # CHECK: r17 = sub(r21.h, r31.h):sat:<<16
115 0x10 0xc0 0x55 0x84
116 # CHECK: r17:16 = sxtw(r21)
117 0x90 0xde 0xf4 0xd3
118 # CHECK: r17:16 = xor(r21:20, r31:30)