1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -mattr=+neon -show-encoding < %s | FileCheck %s
2959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
3959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Check that the assembler can handle the documented syntax for AArch64
4959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
5959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
6959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Instructions with 3 different vector data types
7959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
8959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
9959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
10959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Long
11959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
12959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
13959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
14959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Long - Variant 1
15959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
16959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
17959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddl v0.8h, v1.8b, v2.8b
18959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddl v0.4s, v1.4h, v2.4h
19959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddl v0.2d, v1.2s, v2.2s
20959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
21959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x00,0x22,0x0e]
22959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x00,0x62,0x0e]
23959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x00,0xa2,0x0e]
24959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
25959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddl2 v0.4s, v1.8h, v2.8h
26959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddl2 v0.8h, v1.16b, v2.16b
27959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddl2 v0.2d, v1.4s, v2.4s
28959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
29959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x00,0x62,0x4e]
30959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x00,0x22,0x4e]
31959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x00,0xa2,0x4e]
32959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
33959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddl v0.8h, v1.8b, v2.8b
34959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddl v0.4s, v1.4h, v2.4h
35959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddl v0.2d, v1.2s, v2.2s
36959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
37959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x00,0x22,0x2e]
38959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x00,0x62,0x2e]
39959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x00,0xa2,0x2e]
40959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
41959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddl2 v0.8h, v1.16b, v2.16b
42959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddl2 v0.4s, v1.8h, v2.8h
43959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddl2 v0.2d, v1.4s, v2.4s
44959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
45959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x00,0x22,0x6e]
46959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x00,0x62,0x6e]
47959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x00,0xa2,0x6e]
48959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
49959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubl v0.8h, v1.8b, v2.8b
50959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubl v0.4s, v1.4h, v2.4h
51959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubl v0.2d, v1.2s, v2.2s
52959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
53959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x20,0x22,0x0e]
54959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x20,0x62,0x0e]
55959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x20,0xa2,0x0e]
56959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
57959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubl2 v0.8h, v1.16b, v2.16b
58959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubl2 v0.4s, v1.8h, v2.8h
59959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubl2 v0.2d, v1.4s, v2.4s
60959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
61959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x20,0x22,0x4e]
62959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x20,0x62,0x4e]
63959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x20,0xa2,0x4e]
64959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
65959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubl v0.8h, v1.8b, v2.8b
66959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubl v0.4s, v1.4h, v2.4h
67959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubl v0.2d, v1.2s, v2.2s
68959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
69959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x20,0x22,0x2e]
70959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x20,0x62,0x2e]
71959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x20,0xa2,0x2e]
72959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
73959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubl2 v0.8h, v1.16b, v2.16b
74959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubl2 v0.4s, v1.8h, v2.8h
75959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubl2 v0.2d, v1.4s, v2.4s
76959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
77959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x20,0x22,0x6e]
78959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x20,0x62,0x6e]
79959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x20,0xa2,0x6e]
80959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
81959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabal v0.8h, v1.8b, v2.8b
82959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabal v0.4s, v1.4h, v2.4h
83959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabal v0.2d, v1.2s, v2.2s
84959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
85959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x50,0x22,0x0e]
86959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x50,0x62,0x0e]
87959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x50,0xa2,0x0e]
88959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
89959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabal2 v0.8h, v1.16b, v2.16b
90959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabal2 v0.4s, v1.8h, v2.8h
91959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabal2 v0.2d, v1.4s, v2.4s
92959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
93959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x50,0x22,0x4e]
94959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x50,0x62,0x4e]
95959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x50,0xa2,0x4e]
96959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
97959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabal v0.8h, v1.8b, v2.8b
98959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabal v0.4s, v1.4h, v2.4h
99959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabal v0.2d, v1.2s, v2.2s
100959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
101959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x50,0x22,0x2e]
102959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x50,0x62,0x2e]
103959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x50,0xa2,0x2e]
104959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
105959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabal2 v0.8h, v1.16b, v2.16b
106959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabal2 v0.4s, v1.8h, v2.8h
107959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabal2 v0.2d, v1.4s, v2.4s
108959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
109959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x50,0x22,0x6e]
110959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x50,0x62,0x6e]
111959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x50,0xa2,0x6e]
112959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
113959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabdl v0.8h, v1.8b, v2.8b
114959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabdl v0.4s, v1.4h, v2.4h
115959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabdl v0.2d, v1.2s, v2.2s
116959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
117959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabdl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x70,0x22,0x0e]
118959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabdl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x70,0x62,0x0e]
119959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabdl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x70,0xa2,0x0e]
120959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
121959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabdl2 v0.8h, v1.16b, v2.16b
122959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabdl2 v0.4s, v1.8h, v2.8h
123959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sabdl2 v0.2d, v1.4s, v2.4s
124959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
125959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabdl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x70,0x22,0x4e]
126959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabdl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x70,0x62,0x4e]
127959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sabdl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x70,0xa2,0x4e]
128959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
129959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabdl v0.8h, v1.8b, v2.8b
130959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabdl v0.4s, v1.4h, v2.4h
131959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabdl v0.2d, v1.2s, v2.2s
132959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
133959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabdl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x70,0x22,0x2e]
134959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabdl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x70,0x62,0x2e]
135959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabdl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x70,0xa2,0x2e]
136959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
137959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabdl2 v0.8h, v1.16b, v2.16b
138959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabdl2 v0.4s, v1.8h, v2.8h
139959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uabdl2 v0.2d, v1.4s, v2.4s
140959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
141959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabdl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x70,0x22,0x6e]
142959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabdl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x70,0x62,0x6e]
143959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uabdl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x70,0xa2,0x6e]
144959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
145959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlal v0.8h, v1.8b, v2.8b
146959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlal v0.4s, v1.4h, v2.4h
147959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlal v0.2d, v1.2s, v2.2s
148959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
149959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x80,0x22,0x0e]
150959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x80,0x62,0x0e]
151959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x80,0xa2,0x0e]
152959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
153959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlal2 v0.8h, v1.16b, v2.16b
154959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlal2 v0.4s, v1.8h, v2.8h
155959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlal2 v0.2d, v1.4s, v2.4s
156959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
157959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x80,0x22,0x4e]
158959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x80,0x62,0x4e]
159959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x80,0xa2,0x4e]
160959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
161959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlal v0.8h, v1.8b, v2.8b
162959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlal v0.4s, v1.4h, v2.4h
163959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlal v0.2d, v1.2s, v2.2s
164959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
165959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x80,0x22,0x2e]
166959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x80,0x62,0x2e]
167959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x80,0xa2,0x2e]
168959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
169959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlal2 v0.8h, v1.16b, v2.16b
170959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlal2 v0.4s, v1.8h, v2.8h
171959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlal2 v0.2d, v1.4s, v2.4s
172959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
173959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x80,0x22,0x6e]
174959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x80,0x62,0x6e]
175959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x80,0xa2,0x6e]
176959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
177959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlsl v0.8h, v1.8b, v2.8b
178959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlsl v0.4s, v1.4h, v2.4h
179959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlsl v0.2d, v1.2s, v2.2s
180959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
181959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlsl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xa0,0x22,0x0e]
182959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlsl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xa0,0x62,0x0e]
183959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlsl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xa0,0xa2,0x0e]
184959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
185959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlsl2 v0.8h, v1.16b, v2.16b
186959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlsl2 v0.4s, v1.8h, v2.8h
187959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smlsl2 v0.2d, v1.4s, v2.4s
188959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
189959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlsl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xa0,0x22,0x4e]
190959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlsl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xa0,0x62,0x4e]
191959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smlsl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xa0,0xa2,0x4e]
192959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
193959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlsl v0.8h, v1.8b, v2.8b
194959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlsl v0.4s, v1.4h, v2.4h
195959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlsl v0.2d, v1.2s, v2.2s
196959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
197959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlsl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xa0,0x22,0x2e]
198959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlsl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xa0,0x62,0x2e]
199959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlsl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xa0,0xa2,0x2e]
200959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
201959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlsl2 v0.8h, v1.16b, v2.16b
202959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlsl2 v0.4s, v1.8h, v2.8h
203959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umlsl2 v0.2d, v1.4s, v2.4s
204959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
205959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlsl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xa0,0x22,0x6e]
206959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlsl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xa0,0x62,0x6e]
207959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umlsl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xa0,0xa2,0x6e]
208959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
209959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smull v0.8h, v1.8b, v2.8b
210959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smull v0.4s, v1.4h, v2.4h
211959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smull v0.2d, v1.2s, v2.2s
212959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
213959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smull	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xc0,0x22,0x0e]
214959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smull	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xc0,0x62,0x0e]
215959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smull	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xc0,0xa2,0x0e]
216959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
217959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smull2 v0.8h, v1.16b, v2.16b
218959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smull2 v0.4s, v1.8h, v2.8h
219959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        smull2 v0.2d, v1.4s, v2.4s
220959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
221959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smull2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xc0,0x22,0x4e]
222959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smull2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xc0,0x62,0x4e]
223959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: smull2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xc0,0xa2,0x4e]
224959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
225959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umull v0.8h, v1.8b, v2.8b
226959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umull v0.4s, v1.4h, v2.4h
227959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umull v0.2d, v1.2s, v2.2s
228959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
229959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umull	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xc0,0x22,0x2e]
230959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umull	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xc0,0x62,0x2e]
231959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umull	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xc0,0xa2,0x2e]
232959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
233959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umull2 v0.8h, v1.16b, v2.16b
234959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umull2 v0.4s, v1.8h, v2.8h
235959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        umull2 v0.2d, v1.4s, v2.4s
236959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
237959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umull2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xc0,0x22,0x6e]
238959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umull2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xc0,0x62,0x6e]
239959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: umull2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xc0,0xa2,0x6e]
240959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
241959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
242959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Long - Variant 2
243959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
244959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
245959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlal v0.4s, v1.4h, v2.4h
246959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlal v0.2d, v1.2s, v2.2s
247959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
248959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x90,0x62,0x0e]
249959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x90,0xa2,0x0e]
250959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
251959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlal2 v0.4s, v1.8h, v2.8h
252959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlal2 v0.2d, v1.4s, v2.4s
253959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
254959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlal2	v0.4s, v1.8h, v2.8h // encoding: [0x20,0x90,0x62,0x4e]
255959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlal2	v0.2d, v1.4s, v2.4s // encoding: [0x20,0x90,0xa2,0x4e]
256959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
257959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlsl v0.4s, v1.4h, v2.4h
258959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlsl v0.2d, v1.2s, v2.2s
259959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
260959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlsl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xb0,0x62,0x0e]
261959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlsl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xb0,0xa2,0x0e]
262959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
263959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlsl2 v0.4s, v1.8h, v2.8h
264959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmlsl2 v0.2d, v1.4s, v2.4s
265959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
266959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlsl2	v0.4s, v1.8h, v2.8h // encoding: [0x20,0xb0,0x62,0x4e]
267959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmlsl2	v0.2d, v1.4s, v2.4s // encoding: [0x20,0xb0,0xa2,0x4e]
268959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
269959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmull v0.4s, v1.4h, v2.4h
270959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmull v0.2d, v1.2s, v2.2s
271959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
272959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmull	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xd0,0x62,0x0e]
273959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmull	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xd0,0xa2,0x0e]
274959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
275959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmull2 v0.4s, v1.8h, v2.8h
276959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        sqdmull2 v0.2d, v1.4s, v2.4s
277959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
278959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmull2	v0.4s, v1.8h, v2.8h // encoding: [0x20,0xd0,0x62,0x4e]
279959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: sqdmull2	v0.2d, v1.4s, v2.4s // encoding: [0x20,0xd0,0xa2,0x4e]
280959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
281959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
282959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Long - Variant 3
283959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
284959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
285959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        pmull v0.8h, v1.8b, v2.8b
286282a979dddff8d06a744c1b686fb3b7a7619d0f4Kevin Qin        pmull v0.1q, v1.1d, v2.1d
287959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
288959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: pmull	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xe0,0x22,0x0e]
289282a979dddff8d06a744c1b686fb3b7a7619d0f4Kevin Qin// CHECK: pmull	v0.1q, v1.1d, v2.1d     // encoding: [0x20,0xe0,0xe2,0x0e]
290959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
291959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        pmull2 v0.8h, v1.16b, v2.16b
292282a979dddff8d06a744c1b686fb3b7a7619d0f4Kevin Qin        pmull2 v0.1q, v1.2d, v2.2d
293959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
294959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: pmull2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xe0,0x22,0x4e]
295282a979dddff8d06a744c1b686fb3b7a7619d0f4Kevin Qin// CHECK: pmull2	v0.1q, v1.2d, v2.2d     // encoding: [0x20,0xe0,0xe2,0x4e]
296959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
297959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
298959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Widen
299959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
300959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
301959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddw v0.8h, v1.8h, v2.8b
302959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddw v0.4s, v1.4s, v2.4h
303959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddw v0.2d, v1.2d, v2.2s
304959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
305959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x10,0x22,0x0e]
306959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x10,0x62,0x0e]
307959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x10,0xa2,0x0e]
308959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
309959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddw2 v0.8h, v1.8h, v2.16b
310959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddw2 v0.4s, v1.4s, v2.8h
311959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        saddw2 v0.2d, v1.2d, v2.4s
312959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
313959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x10,0x22,0x4e]
314959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x10,0x62,0x4e]
315959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: saddw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x10,0xa2,0x4e]
316959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
317959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddw v0.8h, v1.8h, v2.8b
318959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddw v0.4s, v1.4s, v2.4h
319959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddw v0.2d, v1.2d, v2.2s
320959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
321959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x10,0x22,0x2e]
322959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x10,0x62,0x2e]
323959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x10,0xa2,0x2e]
324959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
325959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddw2 v0.8h, v1.8h, v2.16b
326959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddw2 v0.4s, v1.4s, v2.8h
327959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        uaddw2 v0.2d, v1.2d, v2.4s
328959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
329959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x10,0x22,0x6e]
330959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x10,0x62,0x6e]
331959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: uaddw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x10,0xa2,0x6e]
332959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
333959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubw v0.8h, v1.8h, v2.8b
334959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubw v0.4s, v1.4s, v2.4h
335959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubw v0.2d, v1.2d, v2.2s
336959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
337959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x30,0x22,0x0e]
338959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x30,0x62,0x0e]
339959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x30,0xa2,0x0e]
340959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
341959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubw2 v0.8h, v1.8h, v2.16b
342959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubw2 v0.4s, v1.4s, v2.8h
343959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        ssubw2 v0.2d, v1.2d, v2.4s
344959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
345959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x30,0x22,0x4e]
346959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x30,0x62,0x4e]
347959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: ssubw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x30,0xa2,0x4e]
348959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
349959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubw v0.8h, v1.8h, v2.8b
350959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubw v0.4s, v1.4s, v2.4h
351959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubw v0.2d, v1.2d, v2.2s
352959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
353959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x30,0x22,0x2e]
354959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x30,0x62,0x2e]
355959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x30,0xa2,0x2e]
356959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
357959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubw2 v0.8h, v1.8h, v2.16b
358959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubw2 v0.4s, v1.4s, v2.8h
359959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        usubw2 v0.2d, v1.2d, v2.4s
360959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
361959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x30,0x22,0x6e]
362959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x30,0x62,0x6e]
363959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: usubw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x30,0xa2,0x6e]
364959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
365959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
366959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// Narrow
367959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu//------------------------------------------------------------------------------
368959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
369959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        addhn v0.8b, v1.8h, v2.8h
370959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        addhn v0.4h, v1.4s, v2.4s
371959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        addhn v0.2s, v1.2d, v2.2d
372959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
373959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: addhn	v0.8b, v1.8h, v2.8h     // encoding: [0x20,0x40,0x22,0x0e]
374959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: addhn	v0.4h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x0e]
375959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: addhn	v0.2s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x0e]
376959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
377959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        addhn2 v0.16b, v1.8h, v2.8h
378959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        addhn2 v0.8h, v1.4s, v2.4s
379959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        addhn2 v0.4s, v1.2d, v2.2d
380959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
381959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: addhn2	v0.16b, v1.8h, v2.8h    // encoding: [0x20,0x40,0x22,0x4e]
382959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: addhn2	v0.8h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x4e]
383959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: addhn2	v0.4s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x4e]
384959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
385959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        raddhn v0.8b, v1.8h, v2.8h
386959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        raddhn v0.4h, v1.4s, v2.4s
387959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        raddhn v0.2s, v1.2d, v2.2d
388959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
389959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: raddhn	v0.8b, v1.8h, v2.8h     // encoding: [0x20,0x40,0x22,0x2e]
390959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: raddhn	v0.4h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x2e]
391959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: raddhn	v0.2s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x2e]
392959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
393959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        raddhn2 v0.16b, v1.8h, v2.8h
394959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        raddhn2 v0.8h, v1.4s, v2.4s
395959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        raddhn2 v0.4s, v1.2d, v2.2d
396959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
397959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: raddhn2	v0.16b, v1.8h, v2.8h    // encoding: [0x20,0x40,0x22,0x6e]
398959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: raddhn2	v0.8h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x6e]
399959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: raddhn2	v0.4s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x6e]
400959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
401959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        rsubhn v0.8b, v1.8h, v2.8h
402959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        rsubhn v0.4h, v1.4s, v2.4s
403959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        rsubhn v0.2s, v1.2d, v2.2d
404959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
405959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: rsubhn	v0.8b, v1.8h, v2.8h     // encoding: [0x20,0x60,0x22,0x2e]
406959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: rsubhn	v0.4h, v1.4s, v2.4s     // encoding: [0x20,0x60,0x62,0x2e]
407959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: rsubhn	v0.2s, v1.2d, v2.2d     // encoding: [0x20,0x60,0xa2,0x2e]
408959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
409959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        rsubhn2 v0.16b, v1.8h, v2.8h
410959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        rsubhn2 v0.8h, v1.4s, v2.4s
411959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu        rsubhn2 v0.4s, v1.2d, v2.2d
412959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu
413959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: rsubhn2	v0.16b, v1.8h, v2.8h    // encoding: [0x20,0x60,0x22,0x6e]
414959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: rsubhn2	v0.8h, v1.4s, v2.4s     // encoding: [0x20,0x60,0x62,0x6e]
415959cd8f49bb85c8dfe971eb5a8a648ff41ca8ebdJiangning Liu// CHECK: rsubhn2	v0.4s, v1.2d, v2.2d     // encoding: [0x20,0x60,0xa2,0x6e]
416