[Hexagon] Adding decoders for signed operands and ensuring all signed operand types...
[oota-llvm.git] / test / MC / Disassembler / Hexagon / xtype_complex.txt
1 # RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s
2 # Hexagon Programmer's Reference Manual 11.10.3 XTYPE/COMPLEX
3
4 # Complex add/sub halfwords
5 0x90 0xde 0x54 0xc1
6 # CHECK: r17:16 = vxaddsubh(r21:20, r31:30):sat
7 0xd0 0xde 0x54 0xc1
8 # CHECK: r17:16 = vxsubaddh(r21:20, r31:30):sat
9 0x10 0xde 0xd4 0xc1
10 # CHECK: r17:16 = vxaddsubh(r21:20, r31:30):rnd:>>1:sat
11 0x50 0xde 0xd4 0xc1
12 # CHECK: r17:16 = vxsubaddh(r21:20, r31:30):rnd:>>1:sat
13
14 # Complex add/sub words
15 0x10 0xde 0x54 0xc1
16 # CHECK: r17:16 = vxaddsubw(r21:20, r31:30):sat
17 0x50 0xde 0x54 0xc1
18 # CHECK: r17:16 = vxsubaddw(r21:20, r31:30):sat
19
20 # Complex multiply
21 0xd0 0xdf 0x15 0xe5
22 # CHECK: r17:16 = cmpy(r21, r31):sat
23 0xd0 0xdf 0x95 0xe5
24 # CHECK: r17:16 = cmpy(r21, r31):<<1:sat
25 0xd0 0xdf 0x55 0xe5
26 # CHECK: r17:16 = cmpy(r21, r31*):sat
27 0xd0 0xdf 0xd5 0xe5
28 # CHECK: r17:16 = cmpy(r21, r31*):<<1:sat
29 0xd0 0xdf 0x15 0xe7
30 # CHECK: r17:16 += cmpy(r21, r31):sat
31 0xd0 0xdf 0x95 0xe7
32 # CHECK: r17:16 += cmpy(r21, r31):<<1:sat
33 0xf0 0xdf 0x15 0xe7
34 # CHECK: r17:16 -= cmpy(r21, r31):sat
35 0xf0 0xdf 0x95 0xe7
36 # CHECK: r17:16 -= cmpy(r21, r31):<<1:sat
37 0xd0 0xdf 0x55 0xe7
38 # CHECK: r17:16 += cmpy(r21, r31*):sat
39 0xd0 0xdf 0xd5 0xe7
40 # CHECK: r17:16 += cmpy(r21, r31*):<<1:sat
41 0xf0 0xdf 0x55 0xe7
42 # CHECK: r17:16 -= cmpy(r21, r31*):sat
43 0xf0 0xdf 0xd5 0xe7
44 # CHECK: r17:16 -= cmpy(r21, r31*):<<1:sat
45
46 # Complex multiply real or imaginary
47 0x30 0xdf 0x15 0xe5
48 # CHECK: r17:16 = cmpyi(r21, r31)
49 0x50 0xdf 0x15 0xe5
50 # CHECK: r17:16 = cmpyr(r21, r31)
51 0x30 0xdf 0x15 0xe7
52 # CHECK: r17:16 += cmpyi(r21, r31)
53 0x50 0xdf 0x15 0xe7
54 # CHECK: r17:16 += cmpyr(r21, r31)
55
56 # Complex multiply with round and pack
57 0xd1 0xdf 0x35 0xed
58 # CHECK: r17 = cmpy(r21, r31):rnd:sat
59 0xd1 0xdf 0xb5 0xed
60 # CHECK: r17 = cmpy(r21, r31):<<1:rnd:sat
61 0xd1 0xdf 0x75 0xed
62 # CHECK: r17 = cmpy(r21, r31*):rnd:sat
63 0xd1 0xdf 0xf5 0xed
64 # CHECK: r17 = cmpy(r21, r31*):<<1:rnd:sat
65
66 # Complex multiply 32x16
67 0x91 0xdf 0x14 0xc5
68 # CHECK: r17 = cmpyiwh(r21:20, r31):<<1:rnd:sat
69 0xb1 0xdf 0x14 0xc5
70 # CHECK: r17 = cmpyiwh(r21:20, r31*):<<1:rnd:sat
71 0xd1 0xdf 0x14 0xc5
72 # CHECK: r17 = cmpyrwh(r21:20, r31):<<1:rnd:sat
73 0xf1 0xdf 0x14 0xc5
74 # CHECK: r17 = cmpyrwh(r21:20, r31*):<<1:rnd:sat
75
76 # Vector complex multiply real or imaginary
77 0xd0 0xde 0x34 0xe8
78 # CHECK: r17:16 = vcmpyr(r21:20, r31:30):sat
79 0xd0 0xde 0xb4 0xe8
80 # CHECK: r17:16 = vcmpyr(r21:20, r31:30):<<1:sat
81 0xd0 0xde 0x54 0xe8
82 # CHECK: r17:16 = vcmpyi(r21:20, r31:30):sat
83 0xd0 0xde 0xd4 0xe8
84 # CHECK: r17:16 = vcmpyi(r21:20, r31:30):<<1:sat
85 0x90 0xde 0x34 0xea
86 # CHECK: r17:16 += vcmpyr(r21:20, r31:30):sat
87 0x90 0xde 0x54 0xea
88 # CHECK: r17:16 += vcmpyi(r21:20, r31:30):sat
89
90 # Vector complex conjugate
91 0xf0 0xc0 0x94 0x80
92 # CHECK: r17:16 = vconj(r21:20):sat
93
94 # Vector complex rotate
95 0x10 0xdf 0xd4 0xc3
96 # CHECK: r17:16 = vcrotate(r21:20, r31)
97
98 # Vector reduce complex multiply real or imaginary
99 0x10 0xde 0x14 0xe8
100 # CHECK: r17:16 = vrcmpyi(r21:20, r31:30)
101 0x30 0xde 0x14 0xe8
102 # CHECK: r17:16 = vrcmpyr(r21:20, r31:30)
103 0x10 0xde 0x54 0xe8
104 # CHECK: r17:16 = vrcmpyi(r21:20, r31:30*)
105 0x30 0xde 0x74 0xe8
106 # CHECK: r17:16 = vrcmpyr(r21:20, r31:30*)
107
108 # Vector reduce complex multiply by scalar
109 0x90 0xde 0xb4 0xe8
110 # CHECK: r17:16 = vrcmpys(r21:20, r31:30):<<1:sat:raw:hi
111 0x90 0xde 0xf4 0xe8
112 # CHECK: r17:16 = vrcmpys(r21:20, r31:30):<<1:sat:raw:lo
113 0x90 0xde 0xb4 0xea
114 # CHECK: r17:16 += vrcmpys(r21:20, r31:30):<<1:sat:raw:hi
115 0x90 0xde 0xf4 0xea
116 # CHECK: r17:16 += vrcmpys(r21:20, r31:30):<<1:sat:raw:lo
117
118 # Vector reduce complex multiply by scalar with round and pack
119 0xd1 0xde 0xb4 0xe9
120 # CHECK: r17 = vrcmpys(r21:20, r31:30):<<1:rnd:sat:raw:hi
121 0xf1 0xde 0xb4 0xe9
122 # CHECK: r17 = vrcmpys(r21:20, r31:30):<<1:rnd:sat:raw:lo
123
124 # Vector reduce complex rotate
125 0xf0 0xff 0xd4 0xc3
126 # CHECK: r17:16 = vrcrotate(r21:20, r31, #3)
127 0x30 0xff 0xb4 0xcb
128 # CHECK: r17:16 += vrcrotate(r21:20, r31, #3)