1f4a2713aSLionel Sambuc // REQUIRES: aarch64-registered-target
2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 -o - %s | FileCheck %s
3f4a2713aSLionel Sambuc 
4f4a2713aSLionel Sambuc // Test new aarch64 intrinsics and types
5f4a2713aSLionel Sambuc 
6f4a2713aSLionel Sambuc #include <arm_neon.h>
7f4a2713aSLionel Sambuc 
test_vmla_lane_s16(int16x4_t a,int16x4_t b,int16x4_t v)8f4a2713aSLionel Sambuc int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t v) {
9*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_s16
10*0a6a1f1dSLionel Sambuc   return vmla_lane_s16(a, b, v, 3);
11*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
12f4a2713aSLionel Sambuc }
13f4a2713aSLionel Sambuc 
test_vmlaq_lane_s16(int16x8_t a,int16x8_t b,int16x4_t v)14f4a2713aSLionel Sambuc int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t v) {
15*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_s16
16*0a6a1f1dSLionel Sambuc   return vmlaq_lane_s16(a, b, v, 3);
17*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
18f4a2713aSLionel Sambuc }
19f4a2713aSLionel Sambuc 
test_vmla_lane_s32(int32x2_t a,int32x2_t b,int32x2_t v)20f4a2713aSLionel Sambuc int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t v) {
21*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_s32
22f4a2713aSLionel Sambuc   return vmla_lane_s32(a, b, v, 1);
23f4a2713aSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
24f4a2713aSLionel Sambuc }
25f4a2713aSLionel Sambuc 
test_vmlaq_lane_s32(int32x4_t a,int32x4_t b,int32x2_t v)26f4a2713aSLionel Sambuc int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t v) {
27*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_s32
28f4a2713aSLionel Sambuc   return vmlaq_lane_s32(a, b, v, 1);
29f4a2713aSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
30f4a2713aSLionel Sambuc }
31f4a2713aSLionel Sambuc 
test_vmla_laneq_s16(int16x4_t a,int16x4_t b,int16x8_t v)32f4a2713aSLionel Sambuc int16x4_t test_vmla_laneq_s16(int16x4_t a, int16x4_t b, int16x8_t v) {
33*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_s16
34*0a6a1f1dSLionel Sambuc   return vmla_laneq_s16(a, b, v, 7);
35*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
36f4a2713aSLionel Sambuc }
37f4a2713aSLionel Sambuc 
test_vmlaq_laneq_s16(int16x8_t a,int16x8_t b,int16x8_t v)38f4a2713aSLionel Sambuc int16x8_t test_vmlaq_laneq_s16(int16x8_t a, int16x8_t b, int16x8_t v) {
39*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_s16
40*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_s16(a, b, v, 7);
41*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
42f4a2713aSLionel Sambuc }
43f4a2713aSLionel Sambuc 
test_vmla_laneq_s32(int32x2_t a,int32x2_t b,int32x4_t v)44f4a2713aSLionel Sambuc int32x2_t test_vmla_laneq_s32(int32x2_t a, int32x2_t b, int32x4_t v) {
45*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_s32
46*0a6a1f1dSLionel Sambuc   return vmla_laneq_s32(a, b, v, 3);
47*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
48f4a2713aSLionel Sambuc }
49f4a2713aSLionel Sambuc 
test_vmlaq_laneq_s32(int32x4_t a,int32x4_t b,int32x4_t v)50f4a2713aSLionel Sambuc int32x4_t test_vmlaq_laneq_s32(int32x4_t a, int32x4_t b, int32x4_t v) {
51*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_s32
52*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_s32(a, b, v, 3);
53*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
54f4a2713aSLionel Sambuc }
55f4a2713aSLionel Sambuc 
test_vmls_lane_s16(int16x4_t a,int16x4_t b,int16x4_t v)56f4a2713aSLionel Sambuc int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t v) {
57*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_s16
58*0a6a1f1dSLionel Sambuc   return vmls_lane_s16(a, b, v, 3);
59*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
60f4a2713aSLionel Sambuc }
61f4a2713aSLionel Sambuc 
test_vmlsq_lane_s16(int16x8_t a,int16x8_t b,int16x4_t v)62f4a2713aSLionel Sambuc int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t v) {
63*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_s16
64*0a6a1f1dSLionel Sambuc   return vmlsq_lane_s16(a, b, v, 3);
65*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
66f4a2713aSLionel Sambuc }
67f4a2713aSLionel Sambuc 
test_vmls_lane_s32(int32x2_t a,int32x2_t b,int32x2_t v)68f4a2713aSLionel Sambuc int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t v) {
69*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_s32
70f4a2713aSLionel Sambuc   return vmls_lane_s32(a, b, v, 1);
71f4a2713aSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
72f4a2713aSLionel Sambuc }
73f4a2713aSLionel Sambuc 
test_vmlsq_lane_s32(int32x4_t a,int32x4_t b,int32x2_t v)74f4a2713aSLionel Sambuc int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t v) {
75*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_s32
76f4a2713aSLionel Sambuc   return vmlsq_lane_s32(a, b, v, 1);
77f4a2713aSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
78f4a2713aSLionel Sambuc }
79f4a2713aSLionel Sambuc 
test_vmls_laneq_s16(int16x4_t a,int16x4_t b,int16x8_t v)80f4a2713aSLionel Sambuc int16x4_t test_vmls_laneq_s16(int16x4_t a, int16x4_t b, int16x8_t v) {
81*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_s16
82*0a6a1f1dSLionel Sambuc   return vmls_laneq_s16(a, b, v, 7);
83*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
84f4a2713aSLionel Sambuc }
85f4a2713aSLionel Sambuc 
test_vmlsq_laneq_s16(int16x8_t a,int16x8_t b,int16x8_t v)86f4a2713aSLionel Sambuc int16x8_t test_vmlsq_laneq_s16(int16x8_t a, int16x8_t b, int16x8_t v) {
87*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_s16
88*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_s16(a, b, v, 7);
89*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
90f4a2713aSLionel Sambuc }
91f4a2713aSLionel Sambuc 
test_vmls_laneq_s32(int32x2_t a,int32x2_t b,int32x4_t v)92f4a2713aSLionel Sambuc int32x2_t test_vmls_laneq_s32(int32x2_t a, int32x2_t b, int32x4_t v) {
93*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_s32
94*0a6a1f1dSLionel Sambuc   return vmls_laneq_s32(a, b, v, 3);
95*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
96f4a2713aSLionel Sambuc }
97f4a2713aSLionel Sambuc 
test_vmlsq_laneq_s32(int32x4_t a,int32x4_t b,int32x4_t v)98f4a2713aSLionel Sambuc int32x4_t test_vmlsq_laneq_s32(int32x4_t a, int32x4_t b, int32x4_t v) {
99*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_s32
100*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_s32(a, b, v, 3);
101*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
102f4a2713aSLionel Sambuc }
103f4a2713aSLionel Sambuc 
test_vmul_lane_s16(int16x4_t a,int16x4_t v)104f4a2713aSLionel Sambuc int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t v) {
105*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_s16
106*0a6a1f1dSLionel Sambuc   return vmul_lane_s16(a, v, 3);
107*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
108f4a2713aSLionel Sambuc }
109f4a2713aSLionel Sambuc 
test_vmulq_lane_s16(int16x8_t a,int16x4_t v)110f4a2713aSLionel Sambuc int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t v) {
111*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_s16
112*0a6a1f1dSLionel Sambuc   return vmulq_lane_s16(a, v, 3);
113*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
114f4a2713aSLionel Sambuc }
115f4a2713aSLionel Sambuc 
test_vmul_lane_s32(int32x2_t a,int32x2_t v)116f4a2713aSLionel Sambuc int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t v) {
117*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_s32
118f4a2713aSLionel Sambuc   return vmul_lane_s32(a, v, 1);
119f4a2713aSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
120f4a2713aSLionel Sambuc }
121f4a2713aSLionel Sambuc 
test_vmulq_lane_s32(int32x4_t a,int32x2_t v)122f4a2713aSLionel Sambuc int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t v) {
123*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_s32
124f4a2713aSLionel Sambuc   return vmulq_lane_s32(a, v, 1);
125f4a2713aSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
126f4a2713aSLionel Sambuc }
127f4a2713aSLionel Sambuc 
test_vmul_lane_u16(uint16x4_t a,uint16x4_t v)128f4a2713aSLionel Sambuc uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t v) {
129*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_u16
130*0a6a1f1dSLionel Sambuc   return vmul_lane_u16(a, v, 3);
131*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
132f4a2713aSLionel Sambuc }
133f4a2713aSLionel Sambuc 
test_vmulq_lane_u16(uint16x8_t a,uint16x4_t v)134f4a2713aSLionel Sambuc uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t v) {
135*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_u16
136*0a6a1f1dSLionel Sambuc   return vmulq_lane_u16(a, v, 3);
137*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
138f4a2713aSLionel Sambuc }
139f4a2713aSLionel Sambuc 
test_vmul_lane_u32(uint32x2_t a,uint32x2_t v)140f4a2713aSLionel Sambuc uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t v) {
141*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_u32
142f4a2713aSLionel Sambuc   return vmul_lane_u32(a, v, 1);
143f4a2713aSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
144f4a2713aSLionel Sambuc }
145f4a2713aSLionel Sambuc 
test_vmulq_lane_u32(uint32x4_t a,uint32x2_t v)146f4a2713aSLionel Sambuc uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t v) {
147*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_u32
148f4a2713aSLionel Sambuc   return vmulq_lane_u32(a, v, 1);
149f4a2713aSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
150f4a2713aSLionel Sambuc }
151f4a2713aSLionel Sambuc 
test_vmul_laneq_s16(int16x4_t a,int16x8_t v)152f4a2713aSLionel Sambuc int16x4_t test_vmul_laneq_s16(int16x4_t a, int16x8_t v) {
153*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_s16
154*0a6a1f1dSLionel Sambuc   return vmul_laneq_s16(a, v, 7);
155*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
156f4a2713aSLionel Sambuc }
157f4a2713aSLionel Sambuc 
test_vmulq_laneq_s16(int16x8_t a,int16x8_t v)158f4a2713aSLionel Sambuc int16x8_t test_vmulq_laneq_s16(int16x8_t a, int16x8_t v) {
159*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_s16
160*0a6a1f1dSLionel Sambuc   return vmulq_laneq_s16(a, v, 7);
161*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
162f4a2713aSLionel Sambuc }
163f4a2713aSLionel Sambuc 
test_vmul_laneq_s32(int32x2_t a,int32x4_t v)164f4a2713aSLionel Sambuc int32x2_t test_vmul_laneq_s32(int32x2_t a, int32x4_t v) {
165*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_s32
166*0a6a1f1dSLionel Sambuc   return vmul_laneq_s32(a, v, 3);
167*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
168f4a2713aSLionel Sambuc }
169f4a2713aSLionel Sambuc 
test_vmulq_laneq_s32(int32x4_t a,int32x4_t v)170f4a2713aSLionel Sambuc int32x4_t test_vmulq_laneq_s32(int32x4_t a, int32x4_t v) {
171*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_s32
172*0a6a1f1dSLionel Sambuc   return vmulq_laneq_s32(a, v, 3);
173*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
174f4a2713aSLionel Sambuc }
175f4a2713aSLionel Sambuc 
test_vmul_laneq_u16(uint16x4_t a,uint16x8_t v)176f4a2713aSLionel Sambuc uint16x4_t test_vmul_laneq_u16(uint16x4_t a, uint16x8_t v) {
177*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_u16
178*0a6a1f1dSLionel Sambuc   return vmul_laneq_u16(a, v, 7);
179*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
180f4a2713aSLionel Sambuc }
181f4a2713aSLionel Sambuc 
test_vmulq_laneq_u16(uint16x8_t a,uint16x8_t v)182f4a2713aSLionel Sambuc uint16x8_t test_vmulq_laneq_u16(uint16x8_t a, uint16x8_t v) {
183*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_u16
184*0a6a1f1dSLionel Sambuc   return vmulq_laneq_u16(a, v, 7);
185*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
186f4a2713aSLionel Sambuc }
187f4a2713aSLionel Sambuc 
test_vmul_laneq_u32(uint32x2_t a,uint32x4_t v)188f4a2713aSLionel Sambuc uint32x2_t test_vmul_laneq_u32(uint32x2_t a, uint32x4_t v) {
189*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_u32
190*0a6a1f1dSLionel Sambuc   return vmul_laneq_u32(a, v, 3);
191*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
192f4a2713aSLionel Sambuc }
193f4a2713aSLionel Sambuc 
test_vmulq_laneq_u32(uint32x4_t a,uint32x4_t v)194f4a2713aSLionel Sambuc uint32x4_t test_vmulq_laneq_u32(uint32x4_t a, uint32x4_t v) {
195*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_u32
196*0a6a1f1dSLionel Sambuc   return vmulq_laneq_u32(a, v, 3);
197*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
198f4a2713aSLionel Sambuc }
199f4a2713aSLionel Sambuc 
test_vfma_lane_f32(float32x2_t a,float32x2_t b,float32x2_t v)200f4a2713aSLionel Sambuc float32x2_t test_vfma_lane_f32(float32x2_t a, float32x2_t b, float32x2_t v) {
201*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfma_lane_f32
202f4a2713aSLionel Sambuc   return vfma_lane_f32(a, b, v, 1);
203f4a2713aSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
204f4a2713aSLionel Sambuc }
205f4a2713aSLionel Sambuc 
test_vfmaq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t v)206f4a2713aSLionel Sambuc float32x4_t test_vfmaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t v) {
207*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_lane_f32
208f4a2713aSLionel Sambuc   return vfmaq_lane_f32(a, b, v, 1);
209f4a2713aSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
210f4a2713aSLionel Sambuc }
211f4a2713aSLionel Sambuc 
test_vfma_laneq_f32(float32x2_t a,float32x2_t b,float32x4_t v)212f4a2713aSLionel Sambuc float32x2_t test_vfma_laneq_f32(float32x2_t a, float32x2_t b, float32x4_t v) {
213*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfma_laneq_f32
214*0a6a1f1dSLionel Sambuc   return vfma_laneq_f32(a, b, v, 3);
215*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
216f4a2713aSLionel Sambuc }
217f4a2713aSLionel Sambuc 
test_vfmaq_laneq_f32(float32x4_t a,float32x4_t b,float32x4_t v)218f4a2713aSLionel Sambuc float32x4_t test_vfmaq_laneq_f32(float32x4_t a, float32x4_t b, float32x4_t v) {
219*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_laneq_f32
220*0a6a1f1dSLionel Sambuc   return vfmaq_laneq_f32(a, b, v, 3);
221*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
222f4a2713aSLionel Sambuc }
223f4a2713aSLionel Sambuc 
test_vfms_lane_f32(float32x2_t a,float32x2_t b,float32x2_t v)224f4a2713aSLionel Sambuc float32x2_t test_vfms_lane_f32(float32x2_t a, float32x2_t b, float32x2_t v) {
225*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfms_lane_f32
226f4a2713aSLionel Sambuc   return vfms_lane_f32(a, b, v, 1);
227f4a2713aSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
228f4a2713aSLionel Sambuc }
229f4a2713aSLionel Sambuc 
test_vfmsq_lane_f32(float32x4_t a,float32x4_t b,float32x2_t v)230f4a2713aSLionel Sambuc float32x4_t test_vfmsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t v) {
231*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_lane_f32
232f4a2713aSLionel Sambuc   return vfmsq_lane_f32(a, b, v, 1);
233f4a2713aSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
234f4a2713aSLionel Sambuc }
235f4a2713aSLionel Sambuc 
test_vfms_laneq_f32(float32x2_t a,float32x2_t b,float32x4_t v)236f4a2713aSLionel Sambuc float32x2_t test_vfms_laneq_f32(float32x2_t a, float32x2_t b, float32x4_t v) {
237*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfms_laneq_f32
238*0a6a1f1dSLionel Sambuc   return vfms_laneq_f32(a, b, v, 3);
239*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
240f4a2713aSLionel Sambuc }
241f4a2713aSLionel Sambuc 
test_vfmsq_laneq_f32(float32x4_t a,float32x4_t b,float32x4_t v)242f4a2713aSLionel Sambuc float32x4_t test_vfmsq_laneq_f32(float32x4_t a, float32x4_t b, float32x4_t v) {
243*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_laneq_f32
244*0a6a1f1dSLionel Sambuc   return vfmsq_laneq_f32(a, b, v, 3);
245*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
246f4a2713aSLionel Sambuc }
247f4a2713aSLionel Sambuc 
test_vfmaq_lane_f64(float64x2_t a,float64x2_t b,float64x1_t v)248f4a2713aSLionel Sambuc float64x2_t test_vfmaq_lane_f64(float64x2_t a, float64x2_t b, float64x1_t v) {
249*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_lane_f64
250f4a2713aSLionel Sambuc   return vfmaq_lane_f64(a, b, v, 0);
251f4a2713aSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
252f4a2713aSLionel Sambuc }
253f4a2713aSLionel Sambuc 
test_vfmaq_laneq_f64(float64x2_t a,float64x2_t b,float64x2_t v)254f4a2713aSLionel Sambuc float64x2_t test_vfmaq_laneq_f64(float64x2_t a, float64x2_t b, float64x2_t v) {
255*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_laneq_f64
256f4a2713aSLionel Sambuc   return vfmaq_laneq_f64(a, b, v, 1);
257f4a2713aSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[1]
258f4a2713aSLionel Sambuc }
259f4a2713aSLionel Sambuc 
test_vfmsq_lane_f64(float64x2_t a,float64x2_t b,float64x1_t v)260f4a2713aSLionel Sambuc float64x2_t test_vfmsq_lane_f64(float64x2_t a, float64x2_t b, float64x1_t v) {
261*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_lane_f64
262f4a2713aSLionel Sambuc   return vfmsq_lane_f64(a, b, v, 0);
263f4a2713aSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
264f4a2713aSLionel Sambuc }
265f4a2713aSLionel Sambuc 
test_vfmsq_laneq_f64(float64x2_t a,float64x2_t b,float64x2_t v)266f4a2713aSLionel Sambuc float64x2_t test_vfmsq_laneq_f64(float64x2_t a, float64x2_t b, float64x2_t v) {
267*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_laneq_f64
268f4a2713aSLionel Sambuc   return vfmsq_laneq_f64(a, b, v, 1);
269f4a2713aSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[1]
270f4a2713aSLionel Sambuc }
271f4a2713aSLionel Sambuc 
test_vfmas_laneq_f32(float32_t a,float32_t b,float32x4_t v)272*0a6a1f1dSLionel Sambuc float32_t test_vfmas_laneq_f32(float32_t a, float32_t b, float32x4_t v) {
273*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmas_laneq_f32
274*0a6a1f1dSLionel Sambuc   return vfmas_laneq_f32(a, b, v, 3);
275*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{s[0-9]+}}, {{s[0-9]+}}, {{v[0-9]+}}.s[3]
276*0a6a1f1dSLionel Sambuc }
277*0a6a1f1dSLionel Sambuc 
test_vfmsd_lane_f64(float64_t a,float64_t b,float64x1_t v)278*0a6a1f1dSLionel Sambuc float64_t test_vfmsd_lane_f64(float64_t a, float64_t b, float64x1_t v) {
279*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsd_lane_f64
280*0a6a1f1dSLionel Sambuc   return vfmsd_lane_f64(a, b, v, 0);
281*0a6a1f1dSLionel Sambuc   // CHECK: {{fmls d[0-9]+, d[0-9]+, v[0-9]+\.d\[0\]|fmsub d[0-9]+, d[0-9]+, d[0-9]+}}
282*0a6a1f1dSLionel Sambuc }
283*0a6a1f1dSLionel Sambuc 
test_vfmss_laneq_f32(float32_t a,float32_t b,float32x4_t v)284*0a6a1f1dSLionel Sambuc float32_t test_vfmss_laneq_f32(float32_t a, float32_t b, float32x4_t v) {
285*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmss_laneq_f32
286*0a6a1f1dSLionel Sambuc   return vfmss_laneq_f32(a, b, v, 3);
287*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{s[0-9]+}}, {{s[0-9]+}}, {{v[0-9]+}}.s[3]
288*0a6a1f1dSLionel Sambuc }
289*0a6a1f1dSLionel Sambuc 
test_vfmsd_laneq_f64(float64_t a,float64_t b,float64x2_t v)290*0a6a1f1dSLionel Sambuc float64_t test_vfmsd_laneq_f64(float64_t a, float64_t b, float64x2_t v) {
291*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsd_laneq_f64
292*0a6a1f1dSLionel Sambuc   return vfmsd_laneq_f64(a, b, v, 1);
293*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{d[0-9]+}}, {{d[0-9]+}}, {{v[0-9]+}}.d[1]
294*0a6a1f1dSLionel Sambuc }
295*0a6a1f1dSLionel Sambuc 
test_vmlal_lane_s16(int32x4_t a,int16x4_t b,int16x4_t v)296f4a2713aSLionel Sambuc int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t v) {
297*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_s16
298*0a6a1f1dSLionel Sambuc   return vmlal_lane_s16(a, b, v, 3);
299*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
300f4a2713aSLionel Sambuc }
301f4a2713aSLionel Sambuc 
test_vmlal_lane_s32(int64x2_t a,int32x2_t b,int32x2_t v)302f4a2713aSLionel Sambuc int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t v) {
303*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_s32
304f4a2713aSLionel Sambuc   return vmlal_lane_s32(a, b, v, 1);
305f4a2713aSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
306f4a2713aSLionel Sambuc }
307f4a2713aSLionel Sambuc 
test_vmlal_laneq_s16(int32x4_t a,int16x4_t b,int16x8_t v)308f4a2713aSLionel Sambuc int32x4_t test_vmlal_laneq_s16(int32x4_t a, int16x4_t b, int16x8_t v) {
309*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_s16
310*0a6a1f1dSLionel Sambuc   return vmlal_laneq_s16(a, b, v, 7);
311*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
312f4a2713aSLionel Sambuc }
313f4a2713aSLionel Sambuc 
test_vmlal_laneq_s32(int64x2_t a,int32x2_t b,int32x4_t v)314f4a2713aSLionel Sambuc int64x2_t test_vmlal_laneq_s32(int64x2_t a, int32x2_t b, int32x4_t v) {
315*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_s32
316*0a6a1f1dSLionel Sambuc   return vmlal_laneq_s32(a, b, v, 3);
317*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
318f4a2713aSLionel Sambuc }
319f4a2713aSLionel Sambuc 
test_vmlal_high_lane_s16(int32x4_t a,int16x8_t b,int16x4_t v)320f4a2713aSLionel Sambuc int32x4_t test_vmlal_high_lane_s16(int32x4_t a, int16x8_t b, int16x4_t v) {
321*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_s16
322*0a6a1f1dSLionel Sambuc   return vmlal_high_lane_s16(a, b, v, 3);
323*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
324f4a2713aSLionel Sambuc }
325f4a2713aSLionel Sambuc 
test_vmlal_high_lane_s32(int64x2_t a,int32x4_t b,int32x2_t v)326f4a2713aSLionel Sambuc int64x2_t test_vmlal_high_lane_s32(int64x2_t a, int32x4_t b, int32x2_t v) {
327*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_s32
328f4a2713aSLionel Sambuc   return vmlal_high_lane_s32(a, b, v, 1);
329f4a2713aSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
330f4a2713aSLionel Sambuc }
331f4a2713aSLionel Sambuc 
test_vmlal_high_laneq_s16(int32x4_t a,int16x8_t b,int16x8_t v)332f4a2713aSLionel Sambuc int32x4_t test_vmlal_high_laneq_s16(int32x4_t a, int16x8_t b, int16x8_t v) {
333*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_s16
334*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_s16(a, b, v, 7);
335*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
336f4a2713aSLionel Sambuc }
337f4a2713aSLionel Sambuc 
test_vmlal_high_laneq_s32(int64x2_t a,int32x4_t b,int32x4_t v)338f4a2713aSLionel Sambuc int64x2_t test_vmlal_high_laneq_s32(int64x2_t a, int32x4_t b, int32x4_t v) {
339*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_s32
340*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_s32(a, b, v, 3);
341*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
342f4a2713aSLionel Sambuc }
343f4a2713aSLionel Sambuc 
test_vmlsl_lane_s16(int32x4_t a,int16x4_t b,int16x4_t v)344f4a2713aSLionel Sambuc int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t v) {
345*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_s16
346*0a6a1f1dSLionel Sambuc   return vmlsl_lane_s16(a, b, v, 3);
347*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
348f4a2713aSLionel Sambuc }
349f4a2713aSLionel Sambuc 
test_vmlsl_lane_s32(int64x2_t a,int32x2_t b,int32x2_t v)350f4a2713aSLionel Sambuc int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t v) {
351*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_s32
352f4a2713aSLionel Sambuc   return vmlsl_lane_s32(a, b, v, 1);
353f4a2713aSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
354f4a2713aSLionel Sambuc }
355f4a2713aSLionel Sambuc 
test_vmlsl_laneq_s16(int32x4_t a,int16x4_t b,int16x8_t v)356f4a2713aSLionel Sambuc int32x4_t test_vmlsl_laneq_s16(int32x4_t a, int16x4_t b, int16x8_t v) {
357*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_s16
358*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_s16(a, b, v, 7);
359*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
360f4a2713aSLionel Sambuc }
361f4a2713aSLionel Sambuc 
test_vmlsl_laneq_s32(int64x2_t a,int32x2_t b,int32x4_t v)362f4a2713aSLionel Sambuc int64x2_t test_vmlsl_laneq_s32(int64x2_t a, int32x2_t b, int32x4_t v) {
363*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_s32
364*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_s32(a, b, v, 3);
365*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
366f4a2713aSLionel Sambuc }
367f4a2713aSLionel Sambuc 
test_vmlsl_high_lane_s16(int32x4_t a,int16x8_t b,int16x4_t v)368f4a2713aSLionel Sambuc int32x4_t test_vmlsl_high_lane_s16(int32x4_t a, int16x8_t b, int16x4_t v) {
369*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_s16
370*0a6a1f1dSLionel Sambuc   return vmlsl_high_lane_s16(a, b, v, 3);
371*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
372f4a2713aSLionel Sambuc }
373f4a2713aSLionel Sambuc 
test_vmlsl_high_lane_s32(int64x2_t a,int32x4_t b,int32x2_t v)374f4a2713aSLionel Sambuc int64x2_t test_vmlsl_high_lane_s32(int64x2_t a, int32x4_t b, int32x2_t v) {
375*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_s32
376f4a2713aSLionel Sambuc   return vmlsl_high_lane_s32(a, b, v, 1);
377f4a2713aSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
378f4a2713aSLionel Sambuc }
379f4a2713aSLionel Sambuc 
test_vmlsl_high_laneq_s16(int32x4_t a,int16x8_t b,int16x8_t v)380f4a2713aSLionel Sambuc int32x4_t test_vmlsl_high_laneq_s16(int32x4_t a, int16x8_t b, int16x8_t v) {
381*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_s16
382*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_s16(a, b, v, 7);
383*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
384f4a2713aSLionel Sambuc }
385f4a2713aSLionel Sambuc 
test_vmlsl_high_laneq_s32(int64x2_t a,int32x4_t b,int32x4_t v)386f4a2713aSLionel Sambuc int64x2_t test_vmlsl_high_laneq_s32(int64x2_t a, int32x4_t b, int32x4_t v) {
387*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_s32
388*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_s32(a, b, v, 3);
389*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
390f4a2713aSLionel Sambuc }
391f4a2713aSLionel Sambuc 
test_vmlal_lane_u16(int32x4_t a,int16x4_t b,int16x4_t v)392f4a2713aSLionel Sambuc int32x4_t test_vmlal_lane_u16(int32x4_t a, int16x4_t b, int16x4_t v) {
393*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_u16
394*0a6a1f1dSLionel Sambuc   return vmlal_lane_u16(a, b, v, 3);
395*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
396f4a2713aSLionel Sambuc }
397f4a2713aSLionel Sambuc 
test_vmlal_lane_u32(int64x2_t a,int32x2_t b,int32x2_t v)398f4a2713aSLionel Sambuc int64x2_t test_vmlal_lane_u32(int64x2_t a, int32x2_t b, int32x2_t v) {
399*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_u32
400f4a2713aSLionel Sambuc   return vmlal_lane_u32(a, b, v, 1);
401f4a2713aSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
402f4a2713aSLionel Sambuc }
403f4a2713aSLionel Sambuc 
test_vmlal_laneq_u16(int32x4_t a,int16x4_t b,int16x8_t v)404f4a2713aSLionel Sambuc int32x4_t test_vmlal_laneq_u16(int32x4_t a, int16x4_t b, int16x8_t v) {
405*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_u16
406*0a6a1f1dSLionel Sambuc   return vmlal_laneq_u16(a, b, v, 7);
407*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
408f4a2713aSLionel Sambuc }
409f4a2713aSLionel Sambuc 
test_vmlal_laneq_u32(int64x2_t a,int32x2_t b,int32x4_t v)410f4a2713aSLionel Sambuc int64x2_t test_vmlal_laneq_u32(int64x2_t a, int32x2_t b, int32x4_t v) {
411*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_u32
412*0a6a1f1dSLionel Sambuc   return vmlal_laneq_u32(a, b, v, 3);
413*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
414f4a2713aSLionel Sambuc }
415f4a2713aSLionel Sambuc 
test_vmlal_high_lane_u16(int32x4_t a,int16x8_t b,int16x4_t v)416f4a2713aSLionel Sambuc int32x4_t test_vmlal_high_lane_u16(int32x4_t a, int16x8_t b, int16x4_t v) {
417*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_u16
418*0a6a1f1dSLionel Sambuc   return vmlal_high_lane_u16(a, b, v, 3);
419*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
420f4a2713aSLionel Sambuc }
421f4a2713aSLionel Sambuc 
test_vmlal_high_lane_u32(int64x2_t a,int32x4_t b,int32x2_t v)422f4a2713aSLionel Sambuc int64x2_t test_vmlal_high_lane_u32(int64x2_t a, int32x4_t b, int32x2_t v) {
423*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_u32
424f4a2713aSLionel Sambuc   return vmlal_high_lane_u32(a, b, v, 1);
425f4a2713aSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
426f4a2713aSLionel Sambuc }
427f4a2713aSLionel Sambuc 
test_vmlal_high_laneq_u16(int32x4_t a,int16x8_t b,int16x8_t v)428f4a2713aSLionel Sambuc int32x4_t test_vmlal_high_laneq_u16(int32x4_t a, int16x8_t b, int16x8_t v) {
429*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_u16
430*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_u16(a, b, v, 7);
431*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
432f4a2713aSLionel Sambuc }
433f4a2713aSLionel Sambuc 
test_vmlal_high_laneq_u32(int64x2_t a,int32x4_t b,int32x4_t v)434f4a2713aSLionel Sambuc int64x2_t test_vmlal_high_laneq_u32(int64x2_t a, int32x4_t b, int32x4_t v) {
435*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_u32
436*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_u32(a, b, v, 3);
437*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
438f4a2713aSLionel Sambuc }
439f4a2713aSLionel Sambuc 
test_vmlsl_lane_u16(int32x4_t a,int16x4_t b,int16x4_t v)440f4a2713aSLionel Sambuc int32x4_t test_vmlsl_lane_u16(int32x4_t a, int16x4_t b, int16x4_t v) {
441*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_u16
442*0a6a1f1dSLionel Sambuc   return vmlsl_lane_u16(a, b, v, 3);
443*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
444f4a2713aSLionel Sambuc }
445f4a2713aSLionel Sambuc 
test_vmlsl_lane_u32(int64x2_t a,int32x2_t b,int32x2_t v)446f4a2713aSLionel Sambuc int64x2_t test_vmlsl_lane_u32(int64x2_t a, int32x2_t b, int32x2_t v) {
447*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_u32
448f4a2713aSLionel Sambuc   return vmlsl_lane_u32(a, b, v, 1);
449f4a2713aSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
450f4a2713aSLionel Sambuc }
451f4a2713aSLionel Sambuc 
test_vmlsl_laneq_u16(int32x4_t a,int16x4_t b,int16x8_t v)452f4a2713aSLionel Sambuc int32x4_t test_vmlsl_laneq_u16(int32x4_t a, int16x4_t b, int16x8_t v) {
453*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_u16
454*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_u16(a, b, v, 7);
455*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
456f4a2713aSLionel Sambuc }
457f4a2713aSLionel Sambuc 
test_vmlsl_laneq_u32(int64x2_t a,int32x2_t b,int32x4_t v)458f4a2713aSLionel Sambuc int64x2_t test_vmlsl_laneq_u32(int64x2_t a, int32x2_t b, int32x4_t v) {
459*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_u32
460*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_u32(a, b, v, 3);
461*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
462f4a2713aSLionel Sambuc }
463f4a2713aSLionel Sambuc 
test_vmlsl_high_lane_u16(int32x4_t a,int16x8_t b,int16x4_t v)464f4a2713aSLionel Sambuc int32x4_t test_vmlsl_high_lane_u16(int32x4_t a, int16x8_t b, int16x4_t v) {
465*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_u16
466*0a6a1f1dSLionel Sambuc   return vmlsl_high_lane_u16(a, b, v, 3);
467*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
468f4a2713aSLionel Sambuc }
469f4a2713aSLionel Sambuc 
test_vmlsl_high_lane_u32(int64x2_t a,int32x4_t b,int32x2_t v)470f4a2713aSLionel Sambuc int64x2_t test_vmlsl_high_lane_u32(int64x2_t a, int32x4_t b, int32x2_t v) {
471*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_u32
472f4a2713aSLionel Sambuc   return vmlsl_high_lane_u32(a, b, v, 1);
473f4a2713aSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
474f4a2713aSLionel Sambuc }
475f4a2713aSLionel Sambuc 
test_vmlsl_high_laneq_u16(int32x4_t a,int16x8_t b,int16x8_t v)476f4a2713aSLionel Sambuc int32x4_t test_vmlsl_high_laneq_u16(int32x4_t a, int16x8_t b, int16x8_t v) {
477*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_u16
478*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_u16(a, b, v, 7);
479*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
480f4a2713aSLionel Sambuc }
481f4a2713aSLionel Sambuc 
test_vmlsl_high_laneq_u32(int64x2_t a,int32x4_t b,int32x4_t v)482f4a2713aSLionel Sambuc int64x2_t test_vmlsl_high_laneq_u32(int64x2_t a, int32x4_t b, int32x4_t v) {
483*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_u32
484*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_u32(a, b, v, 3);
485*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
486f4a2713aSLionel Sambuc }
487f4a2713aSLionel Sambuc 
test_vmull_lane_s16(int16x4_t a,int16x4_t v)488f4a2713aSLionel Sambuc int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t v) {
489*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_s16
490*0a6a1f1dSLionel Sambuc   return vmull_lane_s16(a, v, 3);
491*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
492f4a2713aSLionel Sambuc }
493f4a2713aSLionel Sambuc 
test_vmull_lane_s32(int32x2_t a,int32x2_t v)494f4a2713aSLionel Sambuc int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t v) {
495*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_s32
496f4a2713aSLionel Sambuc   return vmull_lane_s32(a, v, 1);
497f4a2713aSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
498f4a2713aSLionel Sambuc }
499f4a2713aSLionel Sambuc 
test_vmull_lane_u16(uint16x4_t a,uint16x4_t v)500f4a2713aSLionel Sambuc uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t v) {
501*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_u16
502*0a6a1f1dSLionel Sambuc   return vmull_lane_u16(a, v, 3);
503*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
504f4a2713aSLionel Sambuc }
505f4a2713aSLionel Sambuc 
test_vmull_lane_u32(uint32x2_t a,uint32x2_t v)506f4a2713aSLionel Sambuc uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t v) {
507*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_u32
508f4a2713aSLionel Sambuc   return vmull_lane_u32(a, v, 1);
509f4a2713aSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
510f4a2713aSLionel Sambuc }
511f4a2713aSLionel Sambuc 
test_vmull_high_lane_s16(int16x8_t a,int16x4_t v)512f4a2713aSLionel Sambuc int32x4_t test_vmull_high_lane_s16(int16x8_t a, int16x4_t v) {
513*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_s16
514*0a6a1f1dSLionel Sambuc   return vmull_high_lane_s16(a, v, 3);
515*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
516f4a2713aSLionel Sambuc }
517f4a2713aSLionel Sambuc 
test_vmull_high_lane_s32(int32x4_t a,int32x2_t v)518f4a2713aSLionel Sambuc int64x2_t test_vmull_high_lane_s32(int32x4_t a, int32x2_t v) {
519*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_s32
520f4a2713aSLionel Sambuc   return vmull_high_lane_s32(a, v, 1);
521f4a2713aSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
522f4a2713aSLionel Sambuc }
523f4a2713aSLionel Sambuc 
test_vmull_high_lane_u16(uint16x8_t a,uint16x4_t v)524f4a2713aSLionel Sambuc uint32x4_t test_vmull_high_lane_u16(uint16x8_t a, uint16x4_t v) {
525*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_u16
526*0a6a1f1dSLionel Sambuc   return vmull_high_lane_u16(a, v, 3);
527*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
528f4a2713aSLionel Sambuc }
529f4a2713aSLionel Sambuc 
test_vmull_high_lane_u32(uint32x4_t a,uint32x2_t v)530f4a2713aSLionel Sambuc uint64x2_t test_vmull_high_lane_u32(uint32x4_t a, uint32x2_t v) {
531*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_u32
532f4a2713aSLionel Sambuc   return vmull_high_lane_u32(a, v, 1);
533f4a2713aSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
534f4a2713aSLionel Sambuc }
535f4a2713aSLionel Sambuc 
test_vmull_laneq_s16(int16x4_t a,int16x8_t v)536f4a2713aSLionel Sambuc int32x4_t test_vmull_laneq_s16(int16x4_t a, int16x8_t v) {
537*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_s16
538*0a6a1f1dSLionel Sambuc   return vmull_laneq_s16(a, v, 7);
539*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
540f4a2713aSLionel Sambuc }
541f4a2713aSLionel Sambuc 
test_vmull_laneq_s32(int32x2_t a,int32x4_t v)542f4a2713aSLionel Sambuc int64x2_t test_vmull_laneq_s32(int32x2_t a, int32x4_t v) {
543*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_s32
544*0a6a1f1dSLionel Sambuc   return vmull_laneq_s32(a, v, 3);
545*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
546f4a2713aSLionel Sambuc }
547f4a2713aSLionel Sambuc 
test_vmull_laneq_u16(uint16x4_t a,uint16x8_t v)548f4a2713aSLionel Sambuc uint32x4_t test_vmull_laneq_u16(uint16x4_t a, uint16x8_t v) {
549*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_u16
550*0a6a1f1dSLionel Sambuc   return vmull_laneq_u16(a, v, 7);
551*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
552f4a2713aSLionel Sambuc }
553f4a2713aSLionel Sambuc 
test_vmull_laneq_u32(uint32x2_t a,uint32x4_t v)554f4a2713aSLionel Sambuc uint64x2_t test_vmull_laneq_u32(uint32x2_t a, uint32x4_t v) {
555*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_u32
556*0a6a1f1dSLionel Sambuc   return vmull_laneq_u32(a, v, 3);
557*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
558f4a2713aSLionel Sambuc }
559f4a2713aSLionel Sambuc 
test_vmull_high_laneq_s16(int16x8_t a,int16x8_t v)560f4a2713aSLionel Sambuc int32x4_t test_vmull_high_laneq_s16(int16x8_t a, int16x8_t v) {
561*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_s16
562*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_s16(a, v, 7);
563*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
564f4a2713aSLionel Sambuc }
565f4a2713aSLionel Sambuc 
test_vmull_high_laneq_s32(int32x4_t a,int32x4_t v)566f4a2713aSLionel Sambuc int64x2_t test_vmull_high_laneq_s32(int32x4_t a, int32x4_t v) {
567*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_s32
568*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_s32(a, v, 3);
569*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
570f4a2713aSLionel Sambuc }
571f4a2713aSLionel Sambuc 
test_vmull_high_laneq_u16(uint16x8_t a,uint16x8_t v)572f4a2713aSLionel Sambuc uint32x4_t test_vmull_high_laneq_u16(uint16x8_t a, uint16x8_t v) {
573*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_u16
574*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_u16(a, v, 7);
575*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
576f4a2713aSLionel Sambuc }
577f4a2713aSLionel Sambuc 
test_vmull_high_laneq_u32(uint32x4_t a,uint32x4_t v)578f4a2713aSLionel Sambuc uint64x2_t test_vmull_high_laneq_u32(uint32x4_t a, uint32x4_t v) {
579*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_u32
580*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_u32(a, v, 3);
581*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
582f4a2713aSLionel Sambuc }
583f4a2713aSLionel Sambuc 
test_vqdmlal_lane_s16(int32x4_t a,int16x4_t b,int16x4_t v)584f4a2713aSLionel Sambuc int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t v) {
585*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_lane_s16
586*0a6a1f1dSLionel Sambuc   return vqdmlal_lane_s16(a, b, v, 3);
587*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
588f4a2713aSLionel Sambuc }
589f4a2713aSLionel Sambuc 
test_vqdmlal_lane_s32(int64x2_t a,int32x2_t b,int32x2_t v)590f4a2713aSLionel Sambuc int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t v) {
591*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_lane_s32
592f4a2713aSLionel Sambuc   return vqdmlal_lane_s32(a, b, v, 1);
593f4a2713aSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
594f4a2713aSLionel Sambuc }
595f4a2713aSLionel Sambuc 
test_vqdmlal_high_lane_s16(int32x4_t a,int16x8_t b,int16x4_t v)596f4a2713aSLionel Sambuc int32x4_t test_vqdmlal_high_lane_s16(int32x4_t a, int16x8_t b, int16x4_t v) {
597*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_lane_s16
598*0a6a1f1dSLionel Sambuc   return vqdmlal_high_lane_s16(a, b, v, 3);
599*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
600f4a2713aSLionel Sambuc }
601f4a2713aSLionel Sambuc 
test_vqdmlal_high_lane_s32(int64x2_t a,int32x4_t b,int32x2_t v)602f4a2713aSLionel Sambuc int64x2_t test_vqdmlal_high_lane_s32(int64x2_t a, int32x4_t b, int32x2_t v) {
603*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_lane_s32
604f4a2713aSLionel Sambuc   return vqdmlal_high_lane_s32(a, b, v, 1);
605f4a2713aSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
606f4a2713aSLionel Sambuc }
607f4a2713aSLionel Sambuc 
test_vqdmlsl_lane_s16(int32x4_t a,int16x4_t b,int16x4_t v)608f4a2713aSLionel Sambuc int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t v) {
609*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_lane_s16
610*0a6a1f1dSLionel Sambuc   return vqdmlsl_lane_s16(a, b, v, 3);
611*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
612f4a2713aSLionel Sambuc }
613f4a2713aSLionel Sambuc 
test_vqdmlsl_lane_s32(int64x2_t a,int32x2_t b,int32x2_t v)614f4a2713aSLionel Sambuc int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t v) {
615*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_lane_s32
616f4a2713aSLionel Sambuc   return vqdmlsl_lane_s32(a, b, v, 1);
617f4a2713aSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
618f4a2713aSLionel Sambuc }
619f4a2713aSLionel Sambuc 
test_vqdmlsl_high_lane_s16(int32x4_t a,int16x8_t b,int16x4_t v)620f4a2713aSLionel Sambuc int32x4_t test_vqdmlsl_high_lane_s16(int32x4_t a, int16x8_t b, int16x4_t v) {
621*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_lane_s16
622*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_lane_s16(a, b, v, 3);
623*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
624f4a2713aSLionel Sambuc }
625f4a2713aSLionel Sambuc 
test_vqdmlsl_high_lane_s32(int64x2_t a,int32x4_t b,int32x2_t v)626f4a2713aSLionel Sambuc int64x2_t test_vqdmlsl_high_lane_s32(int64x2_t a, int32x4_t b, int32x2_t v) {
627*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_lane_s32
628f4a2713aSLionel Sambuc   return vqdmlsl_high_lane_s32(a, b, v, 1);
629f4a2713aSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
630f4a2713aSLionel Sambuc }
631f4a2713aSLionel Sambuc 
test_vqdmull_lane_s16(int16x4_t a,int16x4_t v)632f4a2713aSLionel Sambuc int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t v) {
633*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_lane_s16
634*0a6a1f1dSLionel Sambuc   return vqdmull_lane_s16(a, v, 3);
635*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
636f4a2713aSLionel Sambuc }
637f4a2713aSLionel Sambuc 
test_vqdmull_lane_s32(int32x2_t a,int32x2_t v)638f4a2713aSLionel Sambuc int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t v) {
639*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_lane_s32
640f4a2713aSLionel Sambuc   return vqdmull_lane_s32(a, v, 1);
641f4a2713aSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
642f4a2713aSLionel Sambuc }
643f4a2713aSLionel Sambuc 
test_vqdmull_laneq_s16(int16x4_t a,int16x8_t v)644f4a2713aSLionel Sambuc int32x4_t test_vqdmull_laneq_s16(int16x4_t a, int16x8_t v) {
645*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_laneq_s16
646*0a6a1f1dSLionel Sambuc   return vqdmull_laneq_s16(a, v, 3);
647*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
648f4a2713aSLionel Sambuc }
649f4a2713aSLionel Sambuc 
test_vqdmull_laneq_s32(int32x2_t a,int32x4_t v)650f4a2713aSLionel Sambuc int64x2_t test_vqdmull_laneq_s32(int32x2_t a, int32x4_t v) {
651*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_laneq_s32
652*0a6a1f1dSLionel Sambuc   return vqdmull_laneq_s32(a, v, 3);
653*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
654f4a2713aSLionel Sambuc }
655f4a2713aSLionel Sambuc 
test_vqdmull_high_lane_s16(int16x8_t a,int16x4_t v)656f4a2713aSLionel Sambuc int32x4_t test_vqdmull_high_lane_s16(int16x8_t a, int16x4_t v) {
657*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_lane_s16
658*0a6a1f1dSLionel Sambuc   return vqdmull_high_lane_s16(a, v, 3);
659*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
660f4a2713aSLionel Sambuc }
661f4a2713aSLionel Sambuc 
test_vqdmull_high_lane_s32(int32x4_t a,int32x2_t v)662f4a2713aSLionel Sambuc int64x2_t test_vqdmull_high_lane_s32(int32x4_t a, int32x2_t v) {
663*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_lane_s32
664f4a2713aSLionel Sambuc   return vqdmull_high_lane_s32(a, v, 1);
665f4a2713aSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
666f4a2713aSLionel Sambuc }
667f4a2713aSLionel Sambuc 
test_vqdmull_high_laneq_s16(int16x8_t a,int16x8_t v)668f4a2713aSLionel Sambuc int32x4_t test_vqdmull_high_laneq_s16(int16x8_t a, int16x8_t v) {
669*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_laneq_s16
670*0a6a1f1dSLionel Sambuc   return vqdmull_high_laneq_s16(a, v, 7);
671*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
672f4a2713aSLionel Sambuc }
673f4a2713aSLionel Sambuc 
test_vqdmull_high_laneq_s32(int32x4_t a,int32x4_t v)674f4a2713aSLionel Sambuc int64x2_t test_vqdmull_high_laneq_s32(int32x4_t a, int32x4_t v) {
675*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_laneq_s32
676*0a6a1f1dSLionel Sambuc   return vqdmull_high_laneq_s32(a, v, 3);
677*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
678f4a2713aSLionel Sambuc }
679f4a2713aSLionel Sambuc 
test_vqdmulh_lane_s16(int16x4_t a,int16x4_t v)680f4a2713aSLionel Sambuc int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t v) {
681*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_lane_s16
682*0a6a1f1dSLionel Sambuc   return vqdmulh_lane_s16(a, v, 3);
683*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
684f4a2713aSLionel Sambuc }
685f4a2713aSLionel Sambuc 
test_vqdmulhq_lane_s16(int16x8_t a,int16x4_t v)686f4a2713aSLionel Sambuc int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t v) {
687*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_lane_s16
688*0a6a1f1dSLionel Sambuc   return vqdmulhq_lane_s16(a, v, 3);
689*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
690f4a2713aSLionel Sambuc }
691f4a2713aSLionel Sambuc 
test_vqdmulh_lane_s32(int32x2_t a,int32x2_t v)692f4a2713aSLionel Sambuc int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t v) {
693*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_lane_s32
694f4a2713aSLionel Sambuc   return vqdmulh_lane_s32(a, v, 1);
695f4a2713aSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
696f4a2713aSLionel Sambuc }
697f4a2713aSLionel Sambuc 
test_vqdmulhq_lane_s32(int32x4_t a,int32x2_t v)698f4a2713aSLionel Sambuc int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t v) {
699*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_lane_s32
700f4a2713aSLionel Sambuc   return vqdmulhq_lane_s32(a, v, 1);
701f4a2713aSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
702f4a2713aSLionel Sambuc }
703f4a2713aSLionel Sambuc 
test_vqrdmulh_lane_s16(int16x4_t a,int16x4_t v)704f4a2713aSLionel Sambuc int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t v) {
705*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_lane_s16
706*0a6a1f1dSLionel Sambuc   return vqrdmulh_lane_s16(a, v, 3);
707*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
708f4a2713aSLionel Sambuc }
709f4a2713aSLionel Sambuc 
test_vqrdmulhq_lane_s16(int16x8_t a,int16x4_t v)710f4a2713aSLionel Sambuc int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t v) {
711*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_lane_s16
712*0a6a1f1dSLionel Sambuc   return vqrdmulhq_lane_s16(a, v, 3);
713*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
714f4a2713aSLionel Sambuc }
715f4a2713aSLionel Sambuc 
test_vqrdmulh_lane_s32(int32x2_t a,int32x2_t v)716f4a2713aSLionel Sambuc int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t v) {
717*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_lane_s32
718f4a2713aSLionel Sambuc   return vqrdmulh_lane_s32(a, v, 1);
719f4a2713aSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
720f4a2713aSLionel Sambuc }
721f4a2713aSLionel Sambuc 
test_vqrdmulhq_lane_s32(int32x4_t a,int32x2_t v)722f4a2713aSLionel Sambuc int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t v) {
723*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_lane_s32
724f4a2713aSLionel Sambuc   return vqrdmulhq_lane_s32(a, v, 1);
725f4a2713aSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
726f4a2713aSLionel Sambuc }
727f4a2713aSLionel Sambuc 
test_vmul_lane_f32(float32x2_t a,float32x2_t v)728f4a2713aSLionel Sambuc float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t v) {
729*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_f32
730f4a2713aSLionel Sambuc   return vmul_lane_f32(a, v, 1);
731f4a2713aSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
732f4a2713aSLionel Sambuc }
733f4a2713aSLionel Sambuc 
734f4a2713aSLionel Sambuc 
test_vmul_lane_f64(float64x1_t a,float64x1_t v)735f4a2713aSLionel Sambuc float64x1_t test_vmul_lane_f64(float64x1_t a, float64x1_t v) {
736*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_f64
737f4a2713aSLionel Sambuc   return vmul_lane_f64(a, v, 0);
738*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{d[0-9]+}}, {{d[0-9]+}}, {{v[0-9]+\.d\[0\]|d[0-9]+}}
739f4a2713aSLionel Sambuc }
740f4a2713aSLionel Sambuc 
741f4a2713aSLionel Sambuc 
test_vmulq_lane_f32(float32x4_t a,float32x2_t v)742f4a2713aSLionel Sambuc float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t v) {
743*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_f32
744f4a2713aSLionel Sambuc   return vmulq_lane_f32(a, v, 1);
745f4a2713aSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
746f4a2713aSLionel Sambuc }
747f4a2713aSLionel Sambuc 
test_vmulq_lane_f64(float64x2_t a,float64x1_t v)748f4a2713aSLionel Sambuc float64x2_t test_vmulq_lane_f64(float64x2_t a, float64x1_t v) {
749*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_f64
750f4a2713aSLionel Sambuc   return vmulq_lane_f64(a, v, 0);
751f4a2713aSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
752f4a2713aSLionel Sambuc }
753f4a2713aSLionel Sambuc 
test_vmul_laneq_f32(float32x2_t a,float32x4_t v)754f4a2713aSLionel Sambuc float32x2_t test_vmul_laneq_f32(float32x2_t a, float32x4_t v) {
755*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_f32
756*0a6a1f1dSLionel Sambuc   return vmul_laneq_f32(a, v, 3);
757*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
758f4a2713aSLionel Sambuc }
759f4a2713aSLionel Sambuc 
test_vmul_laneq_f64(float64x1_t a,float64x2_t v)760*0a6a1f1dSLionel Sambuc float64x1_t test_vmul_laneq_f64(float64x1_t a, float64x2_t v) {
761*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_f64
762*0a6a1f1dSLionel Sambuc   return vmul_laneq_f64(a, v, 1);
763*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{d[0-9]+}}, {{d[0-9]+}}, {{v[0-9]+}}.d[1]
764f4a2713aSLionel Sambuc }
765f4a2713aSLionel Sambuc 
766f4a2713aSLionel Sambuc 
test_vmulq_laneq_f32(float32x4_t a,float32x4_t v)767f4a2713aSLionel Sambuc float32x4_t test_vmulq_laneq_f32(float32x4_t a, float32x4_t v) {
768*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_f32
769*0a6a1f1dSLionel Sambuc   return vmulq_laneq_f32(a, v, 3);
770*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
771f4a2713aSLionel Sambuc }
772f4a2713aSLionel Sambuc 
test_vmulq_laneq_f64(float64x2_t a,float64x2_t v)773f4a2713aSLionel Sambuc float64x2_t test_vmulq_laneq_f64(float64x2_t a, float64x2_t v) {
774*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_f64
775f4a2713aSLionel Sambuc   return vmulq_laneq_f64(a, v, 1);
776f4a2713aSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[1]
777f4a2713aSLionel Sambuc }
778f4a2713aSLionel Sambuc 
test_vmulx_lane_f32(float32x2_t a,float32x2_t v)779f4a2713aSLionel Sambuc float32x2_t test_vmulx_lane_f32(float32x2_t a, float32x2_t v) {
780*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulx_lane_f32
781f4a2713aSLionel Sambuc   return vmulx_lane_f32(a, v, 1);
782f4a2713aSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
783f4a2713aSLionel Sambuc }
784f4a2713aSLionel Sambuc 
test_vmulxq_lane_f32(float32x4_t a,float32x2_t v)785f4a2713aSLionel Sambuc float32x4_t test_vmulxq_lane_f32(float32x4_t a, float32x2_t v) {
786*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_lane_f32
787f4a2713aSLionel Sambuc   return vmulxq_lane_f32(a, v, 1);
788f4a2713aSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
789f4a2713aSLionel Sambuc }
790f4a2713aSLionel Sambuc 
test_vmulxq_lane_f64(float64x2_t a,float64x1_t v)791f4a2713aSLionel Sambuc float64x2_t test_vmulxq_lane_f64(float64x2_t a, float64x1_t v) {
792*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_lane_f64
793f4a2713aSLionel Sambuc   return vmulxq_lane_f64(a, v, 0);
794f4a2713aSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
795f4a2713aSLionel Sambuc }
796f4a2713aSLionel Sambuc 
test_vmulx_laneq_f32(float32x2_t a,float32x4_t v)797f4a2713aSLionel Sambuc float32x2_t test_vmulx_laneq_f32(float32x2_t a, float32x4_t v) {
798*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulx_laneq_f32
799*0a6a1f1dSLionel Sambuc   return vmulx_laneq_f32(a, v, 3);
800*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
801f4a2713aSLionel Sambuc }
802f4a2713aSLionel Sambuc 
test_vmulxq_laneq_f32(float32x4_t a,float32x4_t v)803f4a2713aSLionel Sambuc float32x4_t test_vmulxq_laneq_f32(float32x4_t a, float32x4_t v) {
804*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_laneq_f32
805*0a6a1f1dSLionel Sambuc   return vmulxq_laneq_f32(a, v, 3);
806*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
807*0a6a1f1dSLionel Sambuc }
808*0a6a1f1dSLionel Sambuc 
test_vmulxq_laneq_f64(float64x2_t a,float64x2_t v)809*0a6a1f1dSLionel Sambuc float64x2_t test_vmulxq_laneq_f64(float64x2_t a, float64x2_t v) {
810*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_laneq_f64
811*0a6a1f1dSLionel Sambuc   return vmulxq_laneq_f64(a, v, 1);
812*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[1]
813*0a6a1f1dSLionel Sambuc }
814*0a6a1f1dSLionel Sambuc 
test_vmla_lane_s16_0(int16x4_t a,int16x4_t b,int16x4_t v)815*0a6a1f1dSLionel Sambuc int16x4_t test_vmla_lane_s16_0(int16x4_t a, int16x4_t b, int16x4_t v) {
816*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_s16_0
817*0a6a1f1dSLionel Sambuc   return vmla_lane_s16(a, b, v, 0);
818*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
819*0a6a1f1dSLionel Sambuc }
820*0a6a1f1dSLionel Sambuc 
test_vmlaq_lane_s16_0(int16x8_t a,int16x8_t b,int16x4_t v)821*0a6a1f1dSLionel Sambuc int16x8_t test_vmlaq_lane_s16_0(int16x8_t a, int16x8_t b, int16x4_t v) {
822*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_s16_0
823*0a6a1f1dSLionel Sambuc   return vmlaq_lane_s16(a, b, v, 0);
824*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
825*0a6a1f1dSLionel Sambuc }
826*0a6a1f1dSLionel Sambuc 
test_vmla_lane_s32_0(int32x2_t a,int32x2_t b,int32x2_t v)827*0a6a1f1dSLionel Sambuc int32x2_t test_vmla_lane_s32_0(int32x2_t a, int32x2_t b, int32x2_t v) {
828*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_s32_0
829*0a6a1f1dSLionel Sambuc   return vmla_lane_s32(a, b, v, 0);
830*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
831*0a6a1f1dSLionel Sambuc }
832*0a6a1f1dSLionel Sambuc 
test_vmlaq_lane_s32_0(int32x4_t a,int32x4_t b,int32x2_t v)833*0a6a1f1dSLionel Sambuc int32x4_t test_vmlaq_lane_s32_0(int32x4_t a, int32x4_t b, int32x2_t v) {
834*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_s32_0
835*0a6a1f1dSLionel Sambuc   return vmlaq_lane_s32(a, b, v, 0);
836*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
837*0a6a1f1dSLionel Sambuc }
838*0a6a1f1dSLionel Sambuc 
test_vmla_laneq_s16_0(int16x4_t a,int16x4_t b,int16x8_t v)839*0a6a1f1dSLionel Sambuc int16x4_t test_vmla_laneq_s16_0(int16x4_t a, int16x4_t b, int16x8_t v) {
840*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_s16_0
841*0a6a1f1dSLionel Sambuc   return vmla_laneq_s16(a, b, v, 0);
842*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
843*0a6a1f1dSLionel Sambuc }
844*0a6a1f1dSLionel Sambuc 
test_vmlaq_laneq_s16_0(int16x8_t a,int16x8_t b,int16x8_t v)845*0a6a1f1dSLionel Sambuc int16x8_t test_vmlaq_laneq_s16_0(int16x8_t a, int16x8_t b, int16x8_t v) {
846*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_s16_0
847*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_s16(a, b, v, 0);
848*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
849*0a6a1f1dSLionel Sambuc }
850*0a6a1f1dSLionel Sambuc 
test_vmla_laneq_s32_0(int32x2_t a,int32x2_t b,int32x4_t v)851*0a6a1f1dSLionel Sambuc int32x2_t test_vmla_laneq_s32_0(int32x2_t a, int32x2_t b, int32x4_t v) {
852*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_s32_0
853*0a6a1f1dSLionel Sambuc   return vmla_laneq_s32(a, b, v, 0);
854*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
855*0a6a1f1dSLionel Sambuc }
856*0a6a1f1dSLionel Sambuc 
test_vmlaq_laneq_s32_0(int32x4_t a,int32x4_t b,int32x4_t v)857*0a6a1f1dSLionel Sambuc int32x4_t test_vmlaq_laneq_s32_0(int32x4_t a, int32x4_t b, int32x4_t v) {
858*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_s32_0
859*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_s32(a, b, v, 0);
860*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
861*0a6a1f1dSLionel Sambuc }
862*0a6a1f1dSLionel Sambuc 
test_vmls_lane_s16_0(int16x4_t a,int16x4_t b,int16x4_t v)863*0a6a1f1dSLionel Sambuc int16x4_t test_vmls_lane_s16_0(int16x4_t a, int16x4_t b, int16x4_t v) {
864*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_s16_0
865*0a6a1f1dSLionel Sambuc   return vmls_lane_s16(a, b, v, 0);
866*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
867*0a6a1f1dSLionel Sambuc }
868*0a6a1f1dSLionel Sambuc 
test_vmlsq_lane_s16_0(int16x8_t a,int16x8_t b,int16x4_t v)869*0a6a1f1dSLionel Sambuc int16x8_t test_vmlsq_lane_s16_0(int16x8_t a, int16x8_t b, int16x4_t v) {
870*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_s16_0
871*0a6a1f1dSLionel Sambuc   return vmlsq_lane_s16(a, b, v, 0);
872*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
873*0a6a1f1dSLionel Sambuc }
874*0a6a1f1dSLionel Sambuc 
test_vmls_lane_s32_0(int32x2_t a,int32x2_t b,int32x2_t v)875*0a6a1f1dSLionel Sambuc int32x2_t test_vmls_lane_s32_0(int32x2_t a, int32x2_t b, int32x2_t v) {
876*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_s32_0
877*0a6a1f1dSLionel Sambuc   return vmls_lane_s32(a, b, v, 0);
878*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
879*0a6a1f1dSLionel Sambuc }
880*0a6a1f1dSLionel Sambuc 
test_vmlsq_lane_s32_0(int32x4_t a,int32x4_t b,int32x2_t v)881*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsq_lane_s32_0(int32x4_t a, int32x4_t b, int32x2_t v) {
882*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_s32_0
883*0a6a1f1dSLionel Sambuc   return vmlsq_lane_s32(a, b, v, 0);
884*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
885*0a6a1f1dSLionel Sambuc }
886*0a6a1f1dSLionel Sambuc 
test_vmls_laneq_s16_0(int16x4_t a,int16x4_t b,int16x8_t v)887*0a6a1f1dSLionel Sambuc int16x4_t test_vmls_laneq_s16_0(int16x4_t a, int16x4_t b, int16x8_t v) {
888*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_s16_0
889*0a6a1f1dSLionel Sambuc   return vmls_laneq_s16(a, b, v, 0);
890*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
891*0a6a1f1dSLionel Sambuc }
892*0a6a1f1dSLionel Sambuc 
test_vmlsq_laneq_s16_0(int16x8_t a,int16x8_t b,int16x8_t v)893*0a6a1f1dSLionel Sambuc int16x8_t test_vmlsq_laneq_s16_0(int16x8_t a, int16x8_t b, int16x8_t v) {
894*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_s16_0
895*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_s16(a, b, v, 0);
896*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
897*0a6a1f1dSLionel Sambuc }
898*0a6a1f1dSLionel Sambuc 
test_vmls_laneq_s32_0(int32x2_t a,int32x2_t b,int32x4_t v)899*0a6a1f1dSLionel Sambuc int32x2_t test_vmls_laneq_s32_0(int32x2_t a, int32x2_t b, int32x4_t v) {
900*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_s32_0
901*0a6a1f1dSLionel Sambuc   return vmls_laneq_s32(a, b, v, 0);
902*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
903*0a6a1f1dSLionel Sambuc }
904*0a6a1f1dSLionel Sambuc 
test_vmlsq_laneq_s32_0(int32x4_t a,int32x4_t b,int32x4_t v)905*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsq_laneq_s32_0(int32x4_t a, int32x4_t b, int32x4_t v) {
906*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_s32_0
907*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_s32(a, b, v, 0);
908*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
909*0a6a1f1dSLionel Sambuc }
910*0a6a1f1dSLionel Sambuc 
test_vmul_lane_s16_0(int16x4_t a,int16x4_t v)911*0a6a1f1dSLionel Sambuc int16x4_t test_vmul_lane_s16_0(int16x4_t a, int16x4_t v) {
912*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_s16_0
913*0a6a1f1dSLionel Sambuc   return vmul_lane_s16(a, v, 0);
914*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
915*0a6a1f1dSLionel Sambuc }
916*0a6a1f1dSLionel Sambuc 
test_vmulq_lane_s16_0(int16x8_t a,int16x4_t v)917*0a6a1f1dSLionel Sambuc int16x8_t test_vmulq_lane_s16_0(int16x8_t a, int16x4_t v) {
918*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_s16_0
919*0a6a1f1dSLionel Sambuc   return vmulq_lane_s16(a, v, 0);
920*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
921*0a6a1f1dSLionel Sambuc }
922*0a6a1f1dSLionel Sambuc 
test_vmul_lane_s32_0(int32x2_t a,int32x2_t v)923*0a6a1f1dSLionel Sambuc int32x2_t test_vmul_lane_s32_0(int32x2_t a, int32x2_t v) {
924*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_s32_0
925*0a6a1f1dSLionel Sambuc   return vmul_lane_s32(a, v, 0);
926*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
927*0a6a1f1dSLionel Sambuc }
928*0a6a1f1dSLionel Sambuc 
test_vmulq_lane_s32_0(int32x4_t a,int32x2_t v)929*0a6a1f1dSLionel Sambuc int32x4_t test_vmulq_lane_s32_0(int32x4_t a, int32x2_t v) {
930*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_s32_0
931*0a6a1f1dSLionel Sambuc   return vmulq_lane_s32(a, v, 0);
932*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
933*0a6a1f1dSLionel Sambuc }
934*0a6a1f1dSLionel Sambuc 
test_vmul_lane_u16_0(uint16x4_t a,uint16x4_t v)935*0a6a1f1dSLionel Sambuc uint16x4_t test_vmul_lane_u16_0(uint16x4_t a, uint16x4_t v) {
936*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_u16_0
937*0a6a1f1dSLionel Sambuc   return vmul_lane_u16(a, v, 0);
938*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
939*0a6a1f1dSLionel Sambuc }
940*0a6a1f1dSLionel Sambuc 
test_vmulq_lane_u16_0(uint16x8_t a,uint16x4_t v)941*0a6a1f1dSLionel Sambuc uint16x8_t test_vmulq_lane_u16_0(uint16x8_t a, uint16x4_t v) {
942*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_u16_0
943*0a6a1f1dSLionel Sambuc   return vmulq_lane_u16(a, v, 0);
944*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
945*0a6a1f1dSLionel Sambuc }
946*0a6a1f1dSLionel Sambuc 
test_vmul_lane_u32_0(uint32x2_t a,uint32x2_t v)947*0a6a1f1dSLionel Sambuc uint32x2_t test_vmul_lane_u32_0(uint32x2_t a, uint32x2_t v) {
948*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_u32_0
949*0a6a1f1dSLionel Sambuc   return vmul_lane_u32(a, v, 0);
950*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
951*0a6a1f1dSLionel Sambuc }
952*0a6a1f1dSLionel Sambuc 
test_vmulq_lane_u32_0(uint32x4_t a,uint32x2_t v)953*0a6a1f1dSLionel Sambuc uint32x4_t test_vmulq_lane_u32_0(uint32x4_t a, uint32x2_t v) {
954*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_u32_0
955*0a6a1f1dSLionel Sambuc   return vmulq_lane_u32(a, v, 0);
956*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
957*0a6a1f1dSLionel Sambuc }
958*0a6a1f1dSLionel Sambuc 
test_vmul_laneq_s16_0(int16x4_t a,int16x8_t v)959*0a6a1f1dSLionel Sambuc int16x4_t test_vmul_laneq_s16_0(int16x4_t a, int16x8_t v) {
960*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_s16_0
961*0a6a1f1dSLionel Sambuc   return vmul_laneq_s16(a, v, 0);
962*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
963*0a6a1f1dSLionel Sambuc }
964*0a6a1f1dSLionel Sambuc 
test_vmulq_laneq_s16_0(int16x8_t a,int16x8_t v)965*0a6a1f1dSLionel Sambuc int16x8_t test_vmulq_laneq_s16_0(int16x8_t a, int16x8_t v) {
966*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_s16_0
967*0a6a1f1dSLionel Sambuc   return vmulq_laneq_s16(a, v, 0);
968*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
969*0a6a1f1dSLionel Sambuc }
970*0a6a1f1dSLionel Sambuc 
test_vmul_laneq_s32_0(int32x2_t a,int32x4_t v)971*0a6a1f1dSLionel Sambuc int32x2_t test_vmul_laneq_s32_0(int32x2_t a, int32x4_t v) {
972*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_s32_0
973*0a6a1f1dSLionel Sambuc   return vmul_laneq_s32(a, v, 0);
974*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
975*0a6a1f1dSLionel Sambuc }
976*0a6a1f1dSLionel Sambuc 
test_vmulq_laneq_s32_0(int32x4_t a,int32x4_t v)977*0a6a1f1dSLionel Sambuc int32x4_t test_vmulq_laneq_s32_0(int32x4_t a, int32x4_t v) {
978*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_s32_0
979*0a6a1f1dSLionel Sambuc   return vmulq_laneq_s32(a, v, 0);
980*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
981*0a6a1f1dSLionel Sambuc }
982*0a6a1f1dSLionel Sambuc 
test_vmul_laneq_u16_0(uint16x4_t a,uint16x8_t v)983*0a6a1f1dSLionel Sambuc uint16x4_t test_vmul_laneq_u16_0(uint16x4_t a, uint16x8_t v) {
984*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_u16_0
985*0a6a1f1dSLionel Sambuc   return vmul_laneq_u16(a, v, 0);
986*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
987*0a6a1f1dSLionel Sambuc }
988*0a6a1f1dSLionel Sambuc 
test_vmulq_laneq_u16_0(uint16x8_t a,uint16x8_t v)989*0a6a1f1dSLionel Sambuc uint16x8_t test_vmulq_laneq_u16_0(uint16x8_t a, uint16x8_t v) {
990*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_u16_0
991*0a6a1f1dSLionel Sambuc   return vmulq_laneq_u16(a, v, 0);
992*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
993*0a6a1f1dSLionel Sambuc }
994*0a6a1f1dSLionel Sambuc 
test_vmul_laneq_u32_0(uint32x2_t a,uint32x4_t v)995*0a6a1f1dSLionel Sambuc uint32x2_t test_vmul_laneq_u32_0(uint32x2_t a, uint32x4_t v) {
996*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_u32_0
997*0a6a1f1dSLionel Sambuc   return vmul_laneq_u32(a, v, 0);
998*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
999*0a6a1f1dSLionel Sambuc }
1000*0a6a1f1dSLionel Sambuc 
test_vmulq_laneq_u32_0(uint32x4_t a,uint32x4_t v)1001*0a6a1f1dSLionel Sambuc uint32x4_t test_vmulq_laneq_u32_0(uint32x4_t a, uint32x4_t v) {
1002*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_u32_0
1003*0a6a1f1dSLionel Sambuc   return vmulq_laneq_u32(a, v, 0);
1004*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1005*0a6a1f1dSLionel Sambuc }
1006*0a6a1f1dSLionel Sambuc 
test_vfma_lane_f32_0(float32x2_t a,float32x2_t b,float32x2_t v)1007*0a6a1f1dSLionel Sambuc float32x2_t test_vfma_lane_f32_0(float32x2_t a, float32x2_t b, float32x2_t v) {
1008*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfma_lane_f32_0
1009*0a6a1f1dSLionel Sambuc   return vfma_lane_f32(a, b, v, 0);
1010*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1011*0a6a1f1dSLionel Sambuc }
1012*0a6a1f1dSLionel Sambuc 
test_vfmaq_lane_f32_0(float32x4_t a,float32x4_t b,float32x2_t v)1013*0a6a1f1dSLionel Sambuc float32x4_t test_vfmaq_lane_f32_0(float32x4_t a, float32x4_t b, float32x2_t v) {
1014*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_lane_f32_0
1015*0a6a1f1dSLionel Sambuc   return vfmaq_lane_f32(a, b, v, 0);
1016*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1017*0a6a1f1dSLionel Sambuc }
1018*0a6a1f1dSLionel Sambuc 
test_vfma_laneq_f32_0(float32x2_t a,float32x2_t b,float32x4_t v)1019*0a6a1f1dSLionel Sambuc float32x2_t test_vfma_laneq_f32_0(float32x2_t a, float32x2_t b, float32x4_t v) {
1020*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfma_laneq_f32_0
1021*0a6a1f1dSLionel Sambuc   return vfma_laneq_f32(a, b, v, 0);
1022*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1023*0a6a1f1dSLionel Sambuc }
1024*0a6a1f1dSLionel Sambuc 
test_vfmaq_laneq_f32_0(float32x4_t a,float32x4_t b,float32x4_t v)1025*0a6a1f1dSLionel Sambuc float32x4_t test_vfmaq_laneq_f32_0(float32x4_t a, float32x4_t b, float32x4_t v) {
1026*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_laneq_f32_0
1027*0a6a1f1dSLionel Sambuc   return vfmaq_laneq_f32(a, b, v, 0);
1028*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1029*0a6a1f1dSLionel Sambuc }
1030*0a6a1f1dSLionel Sambuc 
test_vfms_lane_f32_0(float32x2_t a,float32x2_t b,float32x2_t v)1031*0a6a1f1dSLionel Sambuc float32x2_t test_vfms_lane_f32_0(float32x2_t a, float32x2_t b, float32x2_t v) {
1032*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfms_lane_f32_0
1033*0a6a1f1dSLionel Sambuc   return vfms_lane_f32(a, b, v, 0);
1034*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1035*0a6a1f1dSLionel Sambuc }
1036*0a6a1f1dSLionel Sambuc 
test_vfmsq_lane_f32_0(float32x4_t a,float32x4_t b,float32x2_t v)1037*0a6a1f1dSLionel Sambuc float32x4_t test_vfmsq_lane_f32_0(float32x4_t a, float32x4_t b, float32x2_t v) {
1038*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_lane_f32_0
1039*0a6a1f1dSLionel Sambuc   return vfmsq_lane_f32(a, b, v, 0);
1040*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1041*0a6a1f1dSLionel Sambuc }
1042*0a6a1f1dSLionel Sambuc 
test_vfms_laneq_f32_0(float32x2_t a,float32x2_t b,float32x4_t v)1043*0a6a1f1dSLionel Sambuc float32x2_t test_vfms_laneq_f32_0(float32x2_t a, float32x2_t b, float32x4_t v) {
1044*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfms_laneq_f32_0
1045*0a6a1f1dSLionel Sambuc   return vfms_laneq_f32(a, b, v, 0);
1046*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1047*0a6a1f1dSLionel Sambuc }
1048*0a6a1f1dSLionel Sambuc 
test_vfmsq_laneq_f32_0(float32x4_t a,float32x4_t b,float32x4_t v)1049*0a6a1f1dSLionel Sambuc float32x4_t test_vfmsq_laneq_f32_0(float32x4_t a, float32x4_t b, float32x4_t v) {
1050*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_laneq_f32_0
1051*0a6a1f1dSLionel Sambuc   return vfmsq_laneq_f32(a, b, v, 0);
1052*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1053*0a6a1f1dSLionel Sambuc }
1054*0a6a1f1dSLionel Sambuc 
test_vfmaq_laneq_f64_0(float64x2_t a,float64x2_t b,float64x2_t v)1055*0a6a1f1dSLionel Sambuc float64x2_t test_vfmaq_laneq_f64_0(float64x2_t a, float64x2_t b, float64x2_t v) {
1056*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_laneq_f64_0
1057*0a6a1f1dSLionel Sambuc   return vfmaq_laneq_f64(a, b, v, 0);
1058*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
1059*0a6a1f1dSLionel Sambuc }
1060*0a6a1f1dSLionel Sambuc 
test_vfmsq_laneq_f64_0(float64x2_t a,float64x2_t b,float64x2_t v)1061*0a6a1f1dSLionel Sambuc float64x2_t test_vfmsq_laneq_f64_0(float64x2_t a, float64x2_t b, float64x2_t v) {
1062*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_laneq_f64_0
1063*0a6a1f1dSLionel Sambuc   return vfmsq_laneq_f64(a, b, v, 0);
1064*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
1065*0a6a1f1dSLionel Sambuc }
1066*0a6a1f1dSLionel Sambuc 
test_vmlal_lane_s16_0(int32x4_t a,int16x4_t b,int16x4_t v)1067*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_lane_s16_0(int32x4_t a, int16x4_t b, int16x4_t v) {
1068*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_s16_0
1069*0a6a1f1dSLionel Sambuc   return vmlal_lane_s16(a, b, v, 0);
1070*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1071*0a6a1f1dSLionel Sambuc }
1072*0a6a1f1dSLionel Sambuc 
test_vmlal_lane_s32_0(int64x2_t a,int32x2_t b,int32x2_t v)1073*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_lane_s32_0(int64x2_t a, int32x2_t b, int32x2_t v) {
1074*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_s32_0
1075*0a6a1f1dSLionel Sambuc   return vmlal_lane_s32(a, b, v, 0);
1076*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1077*0a6a1f1dSLionel Sambuc }
1078*0a6a1f1dSLionel Sambuc 
test_vmlal_laneq_s16_0(int32x4_t a,int16x4_t b,int16x8_t v)1079*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_laneq_s16_0(int32x4_t a, int16x4_t b, int16x8_t v) {
1080*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_s16_0
1081*0a6a1f1dSLionel Sambuc   return vmlal_laneq_s16(a, b, v, 0);
1082*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1083*0a6a1f1dSLionel Sambuc }
1084*0a6a1f1dSLionel Sambuc 
test_vmlal_laneq_s32_0(int64x2_t a,int32x2_t b,int32x4_t v)1085*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_laneq_s32_0(int64x2_t a, int32x2_t b, int32x4_t v) {
1086*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_s32_0
1087*0a6a1f1dSLionel Sambuc   return vmlal_laneq_s32(a, b, v, 0);
1088*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1089*0a6a1f1dSLionel Sambuc }
1090*0a6a1f1dSLionel Sambuc 
test_vmlal_high_lane_s16_0(int32x4_t a,int16x8_t b,int16x4_t v)1091*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_high_lane_s16_0(int32x4_t a, int16x8_t b, int16x4_t v) {
1092*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_s16_0
1093*0a6a1f1dSLionel Sambuc   return vmlal_high_lane_s16(a, b, v, 0);
1094*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1095*0a6a1f1dSLionel Sambuc }
1096*0a6a1f1dSLionel Sambuc 
test_vmlal_high_lane_s32_0(int64x2_t a,int32x4_t b,int32x2_t v)1097*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_high_lane_s32_0(int64x2_t a, int32x4_t b, int32x2_t v) {
1098*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_s32_0
1099*0a6a1f1dSLionel Sambuc   return vmlal_high_lane_s32(a, b, v, 0);
1100*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1101*0a6a1f1dSLionel Sambuc }
1102*0a6a1f1dSLionel Sambuc 
test_vmlal_high_laneq_s16_0(int32x4_t a,int16x8_t b,int16x8_t v)1103*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_high_laneq_s16_0(int32x4_t a, int16x8_t b, int16x8_t v) {
1104*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_s16_0
1105*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_s16(a, b, v, 0);
1106*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1107*0a6a1f1dSLionel Sambuc }
1108*0a6a1f1dSLionel Sambuc 
test_vmlal_high_laneq_s32_0(int64x2_t a,int32x4_t b,int32x4_t v)1109*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_high_laneq_s32_0(int64x2_t a, int32x4_t b, int32x4_t v) {
1110*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_s32_0
1111*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_s32(a, b, v, 0);
1112*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1113*0a6a1f1dSLionel Sambuc }
1114*0a6a1f1dSLionel Sambuc 
test_vmlsl_lane_s16_0(int32x4_t a,int16x4_t b,int16x4_t v)1115*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_lane_s16_0(int32x4_t a, int16x4_t b, int16x4_t v) {
1116*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_s16_0
1117*0a6a1f1dSLionel Sambuc   return vmlsl_lane_s16(a, b, v, 0);
1118*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1119*0a6a1f1dSLionel Sambuc }
1120*0a6a1f1dSLionel Sambuc 
test_vmlsl_lane_s32_0(int64x2_t a,int32x2_t b,int32x2_t v)1121*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_lane_s32_0(int64x2_t a, int32x2_t b, int32x2_t v) {
1122*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_s32_0
1123*0a6a1f1dSLionel Sambuc   return vmlsl_lane_s32(a, b, v, 0);
1124*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1125*0a6a1f1dSLionel Sambuc }
1126*0a6a1f1dSLionel Sambuc 
test_vmlsl_laneq_s16_0(int32x4_t a,int16x4_t b,int16x8_t v)1127*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_laneq_s16_0(int32x4_t a, int16x4_t b, int16x8_t v) {
1128*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_s16_0
1129*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_s16(a, b, v, 0);
1130*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1131*0a6a1f1dSLionel Sambuc }
1132*0a6a1f1dSLionel Sambuc 
test_vmlsl_laneq_s32_0(int64x2_t a,int32x2_t b,int32x4_t v)1133*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_laneq_s32_0(int64x2_t a, int32x2_t b, int32x4_t v) {
1134*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_s32_0
1135*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_s32(a, b, v, 0);
1136*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1137*0a6a1f1dSLionel Sambuc }
1138*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_lane_s16_0(int32x4_t a,int16x8_t b,int16x4_t v)1139*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_high_lane_s16_0(int32x4_t a, int16x8_t b, int16x4_t v) {
1140*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_s16_0
1141*0a6a1f1dSLionel Sambuc   return vmlsl_high_lane_s16(a, b, v, 0);
1142*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1143*0a6a1f1dSLionel Sambuc }
1144*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_lane_s32_0(int64x2_t a,int32x4_t b,int32x2_t v)1145*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_high_lane_s32_0(int64x2_t a, int32x4_t b, int32x2_t v) {
1146*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_s32_0
1147*0a6a1f1dSLionel Sambuc   return vmlsl_high_lane_s32(a, b, v, 0);
1148*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1149*0a6a1f1dSLionel Sambuc }
1150*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_laneq_s16_0(int32x4_t a,int16x8_t b,int16x8_t v)1151*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_high_laneq_s16_0(int32x4_t a, int16x8_t b, int16x8_t v) {
1152*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_s16_0
1153*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_s16(a, b, v, 0);
1154*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1155*0a6a1f1dSLionel Sambuc }
1156*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_laneq_s32_0(int64x2_t a,int32x4_t b,int32x4_t v)1157*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_high_laneq_s32_0(int64x2_t a, int32x4_t b, int32x4_t v) {
1158*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_s32_0
1159*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_s32(a, b, v, 0);
1160*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1161*0a6a1f1dSLionel Sambuc }
1162*0a6a1f1dSLionel Sambuc 
test_vmlal_lane_u16_0(int32x4_t a,int16x4_t b,int16x4_t v)1163*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_lane_u16_0(int32x4_t a, int16x4_t b, int16x4_t v) {
1164*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_u16_0
1165*0a6a1f1dSLionel Sambuc   return vmlal_lane_u16(a, b, v, 0);
1166*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1167*0a6a1f1dSLionel Sambuc }
1168*0a6a1f1dSLionel Sambuc 
test_vmlal_lane_u32_0(int64x2_t a,int32x2_t b,int32x2_t v)1169*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_lane_u32_0(int64x2_t a, int32x2_t b, int32x2_t v) {
1170*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_lane_u32_0
1171*0a6a1f1dSLionel Sambuc   return vmlal_lane_u32(a, b, v, 0);
1172*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1173*0a6a1f1dSLionel Sambuc }
1174*0a6a1f1dSLionel Sambuc 
test_vmlal_laneq_u16_0(int32x4_t a,int16x4_t b,int16x8_t v)1175*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_laneq_u16_0(int32x4_t a, int16x4_t b, int16x8_t v) {
1176*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_u16_0
1177*0a6a1f1dSLionel Sambuc   return vmlal_laneq_u16(a, b, v, 0);
1178*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1179*0a6a1f1dSLionel Sambuc }
1180*0a6a1f1dSLionel Sambuc 
test_vmlal_laneq_u32_0(int64x2_t a,int32x2_t b,int32x4_t v)1181*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_laneq_u32_0(int64x2_t a, int32x2_t b, int32x4_t v) {
1182*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_laneq_u32_0
1183*0a6a1f1dSLionel Sambuc   return vmlal_laneq_u32(a, b, v, 0);
1184*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1185*0a6a1f1dSLionel Sambuc }
1186*0a6a1f1dSLionel Sambuc 
test_vmlal_high_lane_u16_0(int32x4_t a,int16x8_t b,int16x4_t v)1187*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_high_lane_u16_0(int32x4_t a, int16x8_t b, int16x4_t v) {
1188*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_u16_0
1189*0a6a1f1dSLionel Sambuc   return vmlal_high_lane_u16(a, b, v, 0);
1190*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1191*0a6a1f1dSLionel Sambuc }
1192*0a6a1f1dSLionel Sambuc 
test_vmlal_high_lane_u32_0(int64x2_t a,int32x4_t b,int32x2_t v)1193*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_high_lane_u32_0(int64x2_t a, int32x4_t b, int32x2_t v) {
1194*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_lane_u32_0
1195*0a6a1f1dSLionel Sambuc   return vmlal_high_lane_u32(a, b, v, 0);
1196*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1197*0a6a1f1dSLionel Sambuc }
1198*0a6a1f1dSLionel Sambuc 
test_vmlal_high_laneq_u16_0(int32x4_t a,int16x8_t b,int16x8_t v)1199*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_high_laneq_u16_0(int32x4_t a, int16x8_t b, int16x8_t v) {
1200*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_u16_0
1201*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_u16(a, b, v, 0);
1202*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1203*0a6a1f1dSLionel Sambuc }
1204*0a6a1f1dSLionel Sambuc 
test_vmlal_high_laneq_u32_0(int64x2_t a,int32x4_t b,int32x4_t v)1205*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_high_laneq_u32_0(int64x2_t a, int32x4_t b, int32x4_t v) {
1206*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_laneq_u32_0
1207*0a6a1f1dSLionel Sambuc   return vmlal_high_laneq_u32(a, b, v, 0);
1208*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1209*0a6a1f1dSLionel Sambuc }
1210*0a6a1f1dSLionel Sambuc 
test_vmlsl_lane_u16_0(int32x4_t a,int16x4_t b,int16x4_t v)1211*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_lane_u16_0(int32x4_t a, int16x4_t b, int16x4_t v) {
1212*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_u16_0
1213*0a6a1f1dSLionel Sambuc   return vmlsl_lane_u16(a, b, v, 0);
1214*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1215*0a6a1f1dSLionel Sambuc }
1216*0a6a1f1dSLionel Sambuc 
test_vmlsl_lane_u32_0(int64x2_t a,int32x2_t b,int32x2_t v)1217*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_lane_u32_0(int64x2_t a, int32x2_t b, int32x2_t v) {
1218*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_lane_u32_0
1219*0a6a1f1dSLionel Sambuc   return vmlsl_lane_u32(a, b, v, 0);
1220*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1221*0a6a1f1dSLionel Sambuc }
1222*0a6a1f1dSLionel Sambuc 
test_vmlsl_laneq_u16_0(int32x4_t a,int16x4_t b,int16x8_t v)1223*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_laneq_u16_0(int32x4_t a, int16x4_t b, int16x8_t v) {
1224*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_u16_0
1225*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_u16(a, b, v, 0);
1226*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1227*0a6a1f1dSLionel Sambuc }
1228*0a6a1f1dSLionel Sambuc 
test_vmlsl_laneq_u32_0(int64x2_t a,int32x2_t b,int32x4_t v)1229*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_laneq_u32_0(int64x2_t a, int32x2_t b, int32x4_t v) {
1230*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_laneq_u32_0
1231*0a6a1f1dSLionel Sambuc   return vmlsl_laneq_u32(a, b, v, 0);
1232*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1233*0a6a1f1dSLionel Sambuc }
1234*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_lane_u16_0(int32x4_t a,int16x8_t b,int16x4_t v)1235*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_high_lane_u16_0(int32x4_t a, int16x8_t b, int16x4_t v) {
1236*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_u16_0
1237*0a6a1f1dSLionel Sambuc   return vmlsl_high_lane_u16(a, b, v, 0);
1238*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1239*0a6a1f1dSLionel Sambuc }
1240*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_lane_u32_0(int64x2_t a,int32x4_t b,int32x2_t v)1241*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_high_lane_u32_0(int64x2_t a, int32x4_t b, int32x2_t v) {
1242*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_lane_u32_0
1243*0a6a1f1dSLionel Sambuc   return vmlsl_high_lane_u32(a, b, v, 0);
1244*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1245*0a6a1f1dSLionel Sambuc }
1246*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_laneq_u16_0(int32x4_t a,int16x8_t b,int16x8_t v)1247*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_high_laneq_u16_0(int32x4_t a, int16x8_t b, int16x8_t v) {
1248*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_u16_0
1249*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_u16(a, b, v, 0);
1250*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1251*0a6a1f1dSLionel Sambuc }
1252*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_laneq_u32_0(int64x2_t a,int32x4_t b,int32x4_t v)1253*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_high_laneq_u32_0(int64x2_t a, int32x4_t b, int32x4_t v) {
1254*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_laneq_u32_0
1255*0a6a1f1dSLionel Sambuc   return vmlsl_high_laneq_u32(a, b, v, 0);
1256*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1257*0a6a1f1dSLionel Sambuc }
1258*0a6a1f1dSLionel Sambuc 
test_vmull_lane_s16_0(int16x4_t a,int16x4_t v)1259*0a6a1f1dSLionel Sambuc int32x4_t test_vmull_lane_s16_0(int16x4_t a, int16x4_t v) {
1260*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_s16_0
1261*0a6a1f1dSLionel Sambuc   return vmull_lane_s16(a, v, 0);
1262*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1263*0a6a1f1dSLionel Sambuc }
1264*0a6a1f1dSLionel Sambuc 
test_vmull_lane_s32_0(int32x2_t a,int32x2_t v)1265*0a6a1f1dSLionel Sambuc int64x2_t test_vmull_lane_s32_0(int32x2_t a, int32x2_t v) {
1266*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_s32_0
1267*0a6a1f1dSLionel Sambuc   return vmull_lane_s32(a, v, 0);
1268*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1269*0a6a1f1dSLionel Sambuc }
1270*0a6a1f1dSLionel Sambuc 
test_vmull_lane_u16_0(uint16x4_t a,uint16x4_t v)1271*0a6a1f1dSLionel Sambuc uint32x4_t test_vmull_lane_u16_0(uint16x4_t a, uint16x4_t v) {
1272*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_u16_0
1273*0a6a1f1dSLionel Sambuc   return vmull_lane_u16(a, v, 0);
1274*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1275*0a6a1f1dSLionel Sambuc }
1276*0a6a1f1dSLionel Sambuc 
test_vmull_lane_u32_0(uint32x2_t a,uint32x2_t v)1277*0a6a1f1dSLionel Sambuc uint64x2_t test_vmull_lane_u32_0(uint32x2_t a, uint32x2_t v) {
1278*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_lane_u32_0
1279*0a6a1f1dSLionel Sambuc   return vmull_lane_u32(a, v, 0);
1280*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1281*0a6a1f1dSLionel Sambuc }
1282*0a6a1f1dSLionel Sambuc 
test_vmull_high_lane_s16_0(int16x8_t a,int16x4_t v)1283*0a6a1f1dSLionel Sambuc int32x4_t test_vmull_high_lane_s16_0(int16x8_t a, int16x4_t v) {
1284*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_s16_0
1285*0a6a1f1dSLionel Sambuc   return vmull_high_lane_s16(a, v, 0);
1286*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1287*0a6a1f1dSLionel Sambuc }
1288*0a6a1f1dSLionel Sambuc 
test_vmull_high_lane_s32_0(int32x4_t a,int32x2_t v)1289*0a6a1f1dSLionel Sambuc int64x2_t test_vmull_high_lane_s32_0(int32x4_t a, int32x2_t v) {
1290*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_s32_0
1291*0a6a1f1dSLionel Sambuc   return vmull_high_lane_s32(a, v, 0);
1292*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1293*0a6a1f1dSLionel Sambuc }
1294*0a6a1f1dSLionel Sambuc 
test_vmull_high_lane_u16_0(uint16x8_t a,uint16x4_t v)1295*0a6a1f1dSLionel Sambuc uint32x4_t test_vmull_high_lane_u16_0(uint16x8_t a, uint16x4_t v) {
1296*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_u16_0
1297*0a6a1f1dSLionel Sambuc   return vmull_high_lane_u16(a, v, 0);
1298*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1299*0a6a1f1dSLionel Sambuc }
1300*0a6a1f1dSLionel Sambuc 
test_vmull_high_lane_u32_0(uint32x4_t a,uint32x2_t v)1301*0a6a1f1dSLionel Sambuc uint64x2_t test_vmull_high_lane_u32_0(uint32x4_t a, uint32x2_t v) {
1302*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_lane_u32_0
1303*0a6a1f1dSLionel Sambuc   return vmull_high_lane_u32(a, v, 0);
1304*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1305*0a6a1f1dSLionel Sambuc }
1306*0a6a1f1dSLionel Sambuc 
test_vmull_laneq_s16_0(int16x4_t a,int16x8_t v)1307*0a6a1f1dSLionel Sambuc int32x4_t test_vmull_laneq_s16_0(int16x4_t a, int16x8_t v) {
1308*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_s16_0
1309*0a6a1f1dSLionel Sambuc   return vmull_laneq_s16(a, v, 0);
1310*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1311*0a6a1f1dSLionel Sambuc }
1312*0a6a1f1dSLionel Sambuc 
test_vmull_laneq_s32_0(int32x2_t a,int32x4_t v)1313*0a6a1f1dSLionel Sambuc int64x2_t test_vmull_laneq_s32_0(int32x2_t a, int32x4_t v) {
1314*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_s32_0
1315*0a6a1f1dSLionel Sambuc   return vmull_laneq_s32(a, v, 0);
1316*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1317*0a6a1f1dSLionel Sambuc }
1318*0a6a1f1dSLionel Sambuc 
test_vmull_laneq_u16_0(uint16x4_t a,uint16x8_t v)1319*0a6a1f1dSLionel Sambuc uint32x4_t test_vmull_laneq_u16_0(uint16x4_t a, uint16x8_t v) {
1320*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_u16_0
1321*0a6a1f1dSLionel Sambuc   return vmull_laneq_u16(a, v, 0);
1322*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1323*0a6a1f1dSLionel Sambuc }
1324*0a6a1f1dSLionel Sambuc 
test_vmull_laneq_u32_0(uint32x2_t a,uint32x4_t v)1325*0a6a1f1dSLionel Sambuc uint64x2_t test_vmull_laneq_u32_0(uint32x2_t a, uint32x4_t v) {
1326*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_laneq_u32_0
1327*0a6a1f1dSLionel Sambuc   return vmull_laneq_u32(a, v, 0);
1328*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1329*0a6a1f1dSLionel Sambuc }
1330*0a6a1f1dSLionel Sambuc 
test_vmull_high_laneq_s16_0(int16x8_t a,int16x8_t v)1331*0a6a1f1dSLionel Sambuc int32x4_t test_vmull_high_laneq_s16_0(int16x8_t a, int16x8_t v) {
1332*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_s16_0
1333*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_s16(a, v, 0);
1334*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1335*0a6a1f1dSLionel Sambuc }
1336*0a6a1f1dSLionel Sambuc 
test_vmull_high_laneq_s32_0(int32x4_t a,int32x4_t v)1337*0a6a1f1dSLionel Sambuc int64x2_t test_vmull_high_laneq_s32_0(int32x4_t a, int32x4_t v) {
1338*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_s32_0
1339*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_s32(a, v, 0);
1340*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1341*0a6a1f1dSLionel Sambuc }
1342*0a6a1f1dSLionel Sambuc 
test_vmull_high_laneq_u16_0(uint16x8_t a,uint16x8_t v)1343*0a6a1f1dSLionel Sambuc uint32x4_t test_vmull_high_laneq_u16_0(uint16x8_t a, uint16x8_t v) {
1344*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_u16_0
1345*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_u16(a, v, 0);
1346*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1347*0a6a1f1dSLionel Sambuc }
1348*0a6a1f1dSLionel Sambuc 
test_vmull_high_laneq_u32_0(uint32x4_t a,uint32x4_t v)1349*0a6a1f1dSLionel Sambuc uint64x2_t test_vmull_high_laneq_u32_0(uint32x4_t a, uint32x4_t v) {
1350*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_laneq_u32_0
1351*0a6a1f1dSLionel Sambuc   return vmull_high_laneq_u32(a, v, 0);
1352*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1353*0a6a1f1dSLionel Sambuc }
1354*0a6a1f1dSLionel Sambuc 
test_vqdmlal_lane_s16_0(int32x4_t a,int16x4_t b,int16x4_t v)1355*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_lane_s16_0(int32x4_t a, int16x4_t b, int16x4_t v) {
1356*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_lane_s16_0
1357*0a6a1f1dSLionel Sambuc   return vqdmlal_lane_s16(a, b, v, 0);
1358*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1359*0a6a1f1dSLionel Sambuc }
1360*0a6a1f1dSLionel Sambuc 
test_vqdmlal_lane_s32_0(int64x2_t a,int32x2_t b,int32x2_t v)1361*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_lane_s32_0(int64x2_t a, int32x2_t b, int32x2_t v) {
1362*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_lane_s32_0
1363*0a6a1f1dSLionel Sambuc   return vqdmlal_lane_s32(a, b, v, 0);
1364*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1365*0a6a1f1dSLionel Sambuc }
1366*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_lane_s16_0(int32x4_t a,int16x8_t b,int16x4_t v)1367*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_high_lane_s16_0(int32x4_t a, int16x8_t b, int16x4_t v) {
1368*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_lane_s16_0
1369*0a6a1f1dSLionel Sambuc   return vqdmlal_high_lane_s16(a, b, v, 0);
1370*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1371*0a6a1f1dSLionel Sambuc }
1372*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_lane_s32_0(int64x2_t a,int32x4_t b,int32x2_t v)1373*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_high_lane_s32_0(int64x2_t a, int32x4_t b, int32x2_t v) {
1374*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_lane_s32_0
1375*0a6a1f1dSLionel Sambuc   return vqdmlal_high_lane_s32(a, b, v, 0);
1376*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1377*0a6a1f1dSLionel Sambuc }
1378*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_lane_s16_0(int32x4_t a,int16x4_t b,int16x4_t v)1379*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_lane_s16_0(int32x4_t a, int16x4_t b, int16x4_t v) {
1380*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_lane_s16_0
1381*0a6a1f1dSLionel Sambuc   return vqdmlsl_lane_s16(a, b, v, 0);
1382*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1383*0a6a1f1dSLionel Sambuc }
1384*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_lane_s32_0(int64x2_t a,int32x2_t b,int32x2_t v)1385*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_lane_s32_0(int64x2_t a, int32x2_t b, int32x2_t v) {
1386*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_lane_s32_0
1387*0a6a1f1dSLionel Sambuc   return vqdmlsl_lane_s32(a, b, v, 0);
1388*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1389*0a6a1f1dSLionel Sambuc }
1390*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_lane_s16_0(int32x4_t a,int16x8_t b,int16x4_t v)1391*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_high_lane_s16_0(int32x4_t a, int16x8_t b, int16x4_t v) {
1392*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_lane_s16_0
1393*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_lane_s16(a, b, v, 0);
1394*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1395*0a6a1f1dSLionel Sambuc }
1396*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_lane_s32_0(int64x2_t a,int32x4_t b,int32x2_t v)1397*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_high_lane_s32_0(int64x2_t a, int32x4_t b, int32x2_t v) {
1398*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_lane_s32_0
1399*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_lane_s32(a, b, v, 0);
1400*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1401*0a6a1f1dSLionel Sambuc }
1402*0a6a1f1dSLionel Sambuc 
test_vqdmull_lane_s16_0(int16x4_t a,int16x4_t v)1403*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmull_lane_s16_0(int16x4_t a, int16x4_t v) {
1404*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_lane_s16_0
1405*0a6a1f1dSLionel Sambuc   return vqdmull_lane_s16(a, v, 0);
1406*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1407*0a6a1f1dSLionel Sambuc }
1408*0a6a1f1dSLionel Sambuc 
test_vqdmull_lane_s32_0(int32x2_t a,int32x2_t v)1409*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmull_lane_s32_0(int32x2_t a, int32x2_t v) {
1410*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_lane_s32_0
1411*0a6a1f1dSLionel Sambuc   return vqdmull_lane_s32(a, v, 0);
1412*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1413*0a6a1f1dSLionel Sambuc }
1414*0a6a1f1dSLionel Sambuc 
test_vqdmull_laneq_s16_0(int16x4_t a,int16x8_t v)1415*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmull_laneq_s16_0(int16x4_t a, int16x8_t v) {
1416*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_laneq_s16_0
1417*0a6a1f1dSLionel Sambuc   return vqdmull_laneq_s16(a, v, 0);
1418*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1419*0a6a1f1dSLionel Sambuc }
1420*0a6a1f1dSLionel Sambuc 
test_vqdmull_laneq_s32_0(int32x2_t a,int32x4_t v)1421*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmull_laneq_s32_0(int32x2_t a, int32x4_t v) {
1422*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_laneq_s32_0
1423*0a6a1f1dSLionel Sambuc   return vqdmull_laneq_s32(a, v, 0);
1424*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1425*0a6a1f1dSLionel Sambuc }
1426*0a6a1f1dSLionel Sambuc 
test_vqdmull_high_lane_s16_0(int16x8_t a,int16x4_t v)1427*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmull_high_lane_s16_0(int16x8_t a, int16x4_t v) {
1428*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_lane_s16_0
1429*0a6a1f1dSLionel Sambuc   return vqdmull_high_lane_s16(a, v, 0);
1430*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1431*0a6a1f1dSLionel Sambuc }
1432*0a6a1f1dSLionel Sambuc 
test_vqdmull_high_lane_s32_0(int32x4_t a,int32x2_t v)1433*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmull_high_lane_s32_0(int32x4_t a, int32x2_t v) {
1434*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_lane_s32_0
1435*0a6a1f1dSLionel Sambuc   return vqdmull_high_lane_s32(a, v, 0);
1436*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1437*0a6a1f1dSLionel Sambuc }
1438*0a6a1f1dSLionel Sambuc 
test_vqdmull_high_laneq_s16_0(int16x8_t a,int16x8_t v)1439*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmull_high_laneq_s16_0(int16x8_t a, int16x8_t v) {
1440*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_laneq_s16_0
1441*0a6a1f1dSLionel Sambuc   return vqdmull_high_laneq_s16(a, v, 0);
1442*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1443*0a6a1f1dSLionel Sambuc }
1444*0a6a1f1dSLionel Sambuc 
test_vqdmull_high_laneq_s32_0(int32x4_t a,int32x4_t v)1445*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmull_high_laneq_s32_0(int32x4_t a, int32x4_t v) {
1446*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_laneq_s32_0
1447*0a6a1f1dSLionel Sambuc   return vqdmull_high_laneq_s32(a, v, 0);
1448*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1449*0a6a1f1dSLionel Sambuc }
1450*0a6a1f1dSLionel Sambuc 
test_vqdmulh_lane_s16_0(int16x4_t a,int16x4_t v)1451*0a6a1f1dSLionel Sambuc int16x4_t test_vqdmulh_lane_s16_0(int16x4_t a, int16x4_t v) {
1452*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_lane_s16_0
1453*0a6a1f1dSLionel Sambuc   return vqdmulh_lane_s16(a, v, 0);
1454*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1455*0a6a1f1dSLionel Sambuc }
1456*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_lane_s16_0(int16x8_t a,int16x4_t v)1457*0a6a1f1dSLionel Sambuc int16x8_t test_vqdmulhq_lane_s16_0(int16x8_t a, int16x4_t v) {
1458*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_lane_s16_0
1459*0a6a1f1dSLionel Sambuc   return vqdmulhq_lane_s16(a, v, 0);
1460*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1461*0a6a1f1dSLionel Sambuc }
1462*0a6a1f1dSLionel Sambuc 
test_vqdmulh_lane_s32_0(int32x2_t a,int32x2_t v)1463*0a6a1f1dSLionel Sambuc int32x2_t test_vqdmulh_lane_s32_0(int32x2_t a, int32x2_t v) {
1464*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_lane_s32_0
1465*0a6a1f1dSLionel Sambuc   return vqdmulh_lane_s32(a, v, 0);
1466*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1467*0a6a1f1dSLionel Sambuc }
1468*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_lane_s32_0(int32x4_t a,int32x2_t v)1469*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmulhq_lane_s32_0(int32x4_t a, int32x2_t v) {
1470*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_lane_s32_0
1471*0a6a1f1dSLionel Sambuc   return vqdmulhq_lane_s32(a, v, 0);
1472*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1473*0a6a1f1dSLionel Sambuc }
1474*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_lane_s16_0(int16x4_t a,int16x4_t v)1475*0a6a1f1dSLionel Sambuc int16x4_t test_vqrdmulh_lane_s16_0(int16x4_t a, int16x4_t v) {
1476*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_lane_s16_0
1477*0a6a1f1dSLionel Sambuc   return vqrdmulh_lane_s16(a, v, 0);
1478*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
1479*0a6a1f1dSLionel Sambuc }
1480*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_lane_s16_0(int16x8_t a,int16x4_t v)1481*0a6a1f1dSLionel Sambuc int16x8_t test_vqrdmulhq_lane_s16_0(int16x8_t a, int16x4_t v) {
1482*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_lane_s16_0
1483*0a6a1f1dSLionel Sambuc   return vqrdmulhq_lane_s16(a, v, 0);
1484*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
1485*0a6a1f1dSLionel Sambuc }
1486*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_lane_s32_0(int32x2_t a,int32x2_t v)1487*0a6a1f1dSLionel Sambuc int32x2_t test_vqrdmulh_lane_s32_0(int32x2_t a, int32x2_t v) {
1488*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_lane_s32_0
1489*0a6a1f1dSLionel Sambuc   return vqrdmulh_lane_s32(a, v, 0);
1490*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1491*0a6a1f1dSLionel Sambuc }
1492*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_lane_s32_0(int32x4_t a,int32x2_t v)1493*0a6a1f1dSLionel Sambuc int32x4_t test_vqrdmulhq_lane_s32_0(int32x4_t a, int32x2_t v) {
1494*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_lane_s32_0
1495*0a6a1f1dSLionel Sambuc   return vqrdmulhq_lane_s32(a, v, 0);
1496*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1497*0a6a1f1dSLionel Sambuc }
1498*0a6a1f1dSLionel Sambuc 
test_vmul_lane_f32_0(float32x2_t a,float32x2_t v)1499*0a6a1f1dSLionel Sambuc float32x2_t test_vmul_lane_f32_0(float32x2_t a, float32x2_t v) {
1500*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_lane_f32_0
1501*0a6a1f1dSLionel Sambuc   return vmul_lane_f32(a, v, 0);
1502*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1503*0a6a1f1dSLionel Sambuc }
1504*0a6a1f1dSLionel Sambuc 
test_vmulq_lane_f32_0(float32x4_t a,float32x2_t v)1505*0a6a1f1dSLionel Sambuc float32x4_t test_vmulq_lane_f32_0(float32x4_t a, float32x2_t v) {
1506*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_lane_f32_0
1507*0a6a1f1dSLionel Sambuc   return vmulq_lane_f32(a, v, 0);
1508*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1509*0a6a1f1dSLionel Sambuc }
1510*0a6a1f1dSLionel Sambuc 
test_vmul_laneq_f32_0(float32x2_t a,float32x4_t v)1511*0a6a1f1dSLionel Sambuc float32x2_t test_vmul_laneq_f32_0(float32x2_t a, float32x4_t v) {
1512*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_f32_0
1513*0a6a1f1dSLionel Sambuc   return vmul_laneq_f32(a, v, 0);
1514*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1515*0a6a1f1dSLionel Sambuc }
1516*0a6a1f1dSLionel Sambuc 
test_vmul_laneq_f64_0(float64x1_t a,float64x2_t v)1517*0a6a1f1dSLionel Sambuc float64x1_t test_vmul_laneq_f64_0(float64x1_t a, float64x2_t v) {
1518*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_laneq_f64_0
1519*0a6a1f1dSLionel Sambuc   return vmul_laneq_f64(a, v, 0);
1520*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{d[0-9]+}}, {{d[0-9]+}}, {{v[0-9]+}}.d[0]
1521*0a6a1f1dSLionel Sambuc }
1522*0a6a1f1dSLionel Sambuc 
test_vmulq_laneq_f32_0(float32x4_t a,float32x4_t v)1523*0a6a1f1dSLionel Sambuc float32x4_t test_vmulq_laneq_f32_0(float32x4_t a, float32x4_t v) {
1524*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_f32_0
1525*0a6a1f1dSLionel Sambuc   return vmulq_laneq_f32(a, v, 0);
1526*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1527*0a6a1f1dSLionel Sambuc }
1528*0a6a1f1dSLionel Sambuc 
test_vmulq_laneq_f64_0(float64x2_t a,float64x2_t v)1529*0a6a1f1dSLionel Sambuc float64x2_t test_vmulq_laneq_f64_0(float64x2_t a, float64x2_t v) {
1530*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_laneq_f64_0
1531*0a6a1f1dSLionel Sambuc   return vmulq_laneq_f64(a, v, 0);
1532*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
1533*0a6a1f1dSLionel Sambuc }
1534*0a6a1f1dSLionel Sambuc 
test_vmulx_lane_f32_0(float32x2_t a,float32x2_t v)1535*0a6a1f1dSLionel Sambuc float32x2_t test_vmulx_lane_f32_0(float32x2_t a, float32x2_t v) {
1536*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulx_lane_f32_0
1537*0a6a1f1dSLionel Sambuc   return vmulx_lane_f32(a, v, 0);
1538*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1539*0a6a1f1dSLionel Sambuc }
1540*0a6a1f1dSLionel Sambuc 
test_vmulxq_lane_f32_0(float32x4_t a,float32x2_t v)1541*0a6a1f1dSLionel Sambuc float32x4_t test_vmulxq_lane_f32_0(float32x4_t a, float32x2_t v) {
1542*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_lane_f32_0
1543*0a6a1f1dSLionel Sambuc   return vmulxq_lane_f32(a, v, 0);
1544*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1545*0a6a1f1dSLionel Sambuc }
1546*0a6a1f1dSLionel Sambuc 
test_vmulxq_lane_f64_0(float64x2_t a,float64x1_t v)1547*0a6a1f1dSLionel Sambuc float64x2_t test_vmulxq_lane_f64_0(float64x2_t a, float64x1_t v) {
1548*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_lane_f64_0
1549*0a6a1f1dSLionel Sambuc   return vmulxq_lane_f64(a, v, 0);
1550*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
1551*0a6a1f1dSLionel Sambuc }
1552*0a6a1f1dSLionel Sambuc 
test_vmulx_laneq_f32_0(float32x2_t a,float32x4_t v)1553*0a6a1f1dSLionel Sambuc float32x2_t test_vmulx_laneq_f32_0(float32x2_t a, float32x4_t v) {
1554*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulx_laneq_f32_0
1555*0a6a1f1dSLionel Sambuc   return vmulx_laneq_f32(a, v, 0);
1556*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1557*0a6a1f1dSLionel Sambuc }
1558*0a6a1f1dSLionel Sambuc 
test_vmulxq_laneq_f32_0(float32x4_t a,float32x4_t v)1559*0a6a1f1dSLionel Sambuc float32x4_t test_vmulxq_laneq_f32_0(float32x4_t a, float32x4_t v) {
1560*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_laneq_f32_0
1561*0a6a1f1dSLionel Sambuc   return vmulxq_laneq_f32(a, v, 0);
1562*0a6a1f1dSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1563f4a2713aSLionel Sambuc }
1564f4a2713aSLionel Sambuc 
test_vmulxq_laneq_f64_0(float64x2_t a,float64x2_t v)1565f4a2713aSLionel Sambuc float64x2_t test_vmulxq_laneq_f64_0(float64x2_t a, float64x2_t v) {
1566*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulxq_laneq_f64_0
1567f4a2713aSLionel Sambuc   return vmulxq_laneq_f64(a, v, 0);
1568f4a2713aSLionel Sambuc   // CHECK: fmulx {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
1569f4a2713aSLionel Sambuc }
1570f4a2713aSLionel Sambuc 
test_vmull_high_n_s16(int16x8_t a,int16_t b)1571*0a6a1f1dSLionel Sambuc int32x4_t test_vmull_high_n_s16(int16x8_t a, int16_t b) {
1572*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_n_s16
1573*0a6a1f1dSLionel Sambuc   return vmull_high_n_s16(a, b);
1574*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1575*0a6a1f1dSLionel Sambuc }
1576*0a6a1f1dSLionel Sambuc 
test_vmull_high_n_s32(int32x4_t a,int32_t b)1577*0a6a1f1dSLionel Sambuc int64x2_t test_vmull_high_n_s32(int32x4_t a, int32_t b) {
1578*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_n_s32
1579*0a6a1f1dSLionel Sambuc   return vmull_high_n_s32(a, b);
1580*0a6a1f1dSLionel Sambuc   // CHECK: smull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1581*0a6a1f1dSLionel Sambuc }
1582*0a6a1f1dSLionel Sambuc 
test_vmull_high_n_u16(uint16x8_t a,uint16_t b)1583*0a6a1f1dSLionel Sambuc uint32x4_t test_vmull_high_n_u16(uint16x8_t a, uint16_t b) {
1584*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_n_u16
1585*0a6a1f1dSLionel Sambuc   return vmull_high_n_u16(a, b);
1586*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1587*0a6a1f1dSLionel Sambuc }
1588*0a6a1f1dSLionel Sambuc 
test_vmull_high_n_u32(uint32x4_t a,uint32_t b)1589*0a6a1f1dSLionel Sambuc uint64x2_t test_vmull_high_n_u32(uint32x4_t a, uint32_t b) {
1590*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_high_n_u32
1591*0a6a1f1dSLionel Sambuc   return vmull_high_n_u32(a, b);
1592*0a6a1f1dSLionel Sambuc   // CHECK: umull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1593*0a6a1f1dSLionel Sambuc }
1594*0a6a1f1dSLionel Sambuc 
test_vqdmull_high_n_s16(int16x8_t a,int16_t b)1595*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmull_high_n_s16(int16x8_t a, int16_t b) {
1596*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_n_s16
1597*0a6a1f1dSLionel Sambuc   return vqdmull_high_n_s16(a, b);
1598*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1599*0a6a1f1dSLionel Sambuc }
1600*0a6a1f1dSLionel Sambuc 
test_vqdmull_high_n_s32(int32x4_t a,int32_t b)1601*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmull_high_n_s32(int32x4_t a, int32_t b) {
1602*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_high_n_s32
1603*0a6a1f1dSLionel Sambuc   return vqdmull_high_n_s32(a, b);
1604*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1605*0a6a1f1dSLionel Sambuc }
1606*0a6a1f1dSLionel Sambuc 
test_vmlal_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)1607*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_high_n_s16(int32x4_t a, int16x8_t b, int16_t c) {
1608*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_n_s16
1609*0a6a1f1dSLionel Sambuc   return vmlal_high_n_s16(a, b, c);
1610*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1611*0a6a1f1dSLionel Sambuc }
1612*0a6a1f1dSLionel Sambuc 
test_vmlal_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)1613*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_high_n_s32(int64x2_t a, int32x4_t b, int32_t c) {
1614*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_n_s32
1615*0a6a1f1dSLionel Sambuc   return vmlal_high_n_s32(a, b, c);
1616*0a6a1f1dSLionel Sambuc   // CHECK: smlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1617*0a6a1f1dSLionel Sambuc }
1618*0a6a1f1dSLionel Sambuc 
test_vmlal_high_n_u16(uint32x4_t a,uint16x8_t b,uint16_t c)1619*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlal_high_n_u16(uint32x4_t a, uint16x8_t b, uint16_t c) {
1620*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_n_u16
1621*0a6a1f1dSLionel Sambuc   return vmlal_high_n_u16(a, b, c);
1622*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1623*0a6a1f1dSLionel Sambuc }
1624*0a6a1f1dSLionel Sambuc 
test_vmlal_high_n_u32(uint64x2_t a,uint32x4_t b,uint32_t c)1625*0a6a1f1dSLionel Sambuc uint64x2_t test_vmlal_high_n_u32(uint64x2_t a, uint32x4_t b, uint32_t c) {
1626*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_high_n_u32
1627*0a6a1f1dSLionel Sambuc   return vmlal_high_n_u32(a, b, c);
1628*0a6a1f1dSLionel Sambuc   // CHECK: umlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1629*0a6a1f1dSLionel Sambuc }
1630*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)1631*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_high_n_s16(int32x4_t a, int16x8_t b, int16_t c) {
1632*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_n_s16
1633*0a6a1f1dSLionel Sambuc   return vqdmlal_high_n_s16(a, b, c);
1634*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1635*0a6a1f1dSLionel Sambuc }
1636*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)1637*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_high_n_s32(int64x2_t a, int32x4_t b, int32_t c) {
1638*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_n_s32
1639*0a6a1f1dSLionel Sambuc   return vqdmlal_high_n_s32(a, b, c);
1640*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1641*0a6a1f1dSLionel Sambuc }
1642*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)1643*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_high_n_s16(int32x4_t a, int16x8_t b, int16_t c) {
1644*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_n_s16
1645*0a6a1f1dSLionel Sambuc   return vmlsl_high_n_s16(a, b, c);
1646*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1647*0a6a1f1dSLionel Sambuc }
1648*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)1649*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_high_n_s32(int64x2_t a, int32x4_t b, int32_t c) {
1650*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_n_s32
1651*0a6a1f1dSLionel Sambuc   return vmlsl_high_n_s32(a, b, c);
1652*0a6a1f1dSLionel Sambuc   // CHECK: smlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1653*0a6a1f1dSLionel Sambuc }
1654*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_n_u16(uint32x4_t a,uint16x8_t b,uint16_t c)1655*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsl_high_n_u16(uint32x4_t a, uint16x8_t b, uint16_t c) {
1656*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_n_u16
1657*0a6a1f1dSLionel Sambuc   return vmlsl_high_n_u16(a, b, c);
1658*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1659*0a6a1f1dSLionel Sambuc }
1660*0a6a1f1dSLionel Sambuc 
test_vmlsl_high_n_u32(uint64x2_t a,uint32x4_t b,uint32_t c)1661*0a6a1f1dSLionel Sambuc uint64x2_t test_vmlsl_high_n_u32(uint64x2_t a, uint32x4_t b, uint32_t c) {
1662*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_high_n_u32
1663*0a6a1f1dSLionel Sambuc   return vmlsl_high_n_u32(a, b, c);
1664*0a6a1f1dSLionel Sambuc   // CHECK: umlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1665*0a6a1f1dSLionel Sambuc }
1666*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_n_s16(int32x4_t a,int16x8_t b,int16_t c)1667*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_high_n_s16(int32x4_t a, int16x8_t b, int16_t c) {
1668*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_n_s16
1669*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_n_s16(a, b, c);
1670*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+\.h\[0\]|v[0-9]+\.8h}}
1671*0a6a1f1dSLionel Sambuc }
1672*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_n_s32(int64x2_t a,int32x4_t b,int32_t c)1673*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_high_n_s32(int64x2_t a, int32x4_t b, int32_t c) {
1674*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_n_s32
1675*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_n_s32(a, b, c);
1676*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+\.s\[0\]|v[0-9]+\.4s}}
1677*0a6a1f1dSLionel Sambuc }
1678*0a6a1f1dSLionel Sambuc 
test_vmul_n_f32(float32x2_t a,float32_t b)1679*0a6a1f1dSLionel Sambuc float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) {
1680*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_n_f32
1681*0a6a1f1dSLionel Sambuc   return vmul_n_f32(a, b);
1682*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1683*0a6a1f1dSLionel Sambuc }
1684*0a6a1f1dSLionel Sambuc 
test_vmulq_n_f32(float32x4_t a,float32_t b)1685*0a6a1f1dSLionel Sambuc float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) {
1686*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_n_f32
1687*0a6a1f1dSLionel Sambuc   return vmulq_n_f32(a, b);
1688*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1689*0a6a1f1dSLionel Sambuc }
1690*0a6a1f1dSLionel Sambuc 
test_vmulq_n_f64(float64x2_t a,float64_t b)1691*0a6a1f1dSLionel Sambuc float64x2_t test_vmulq_n_f64(float64x2_t a, float64_t b) {
1692*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_n_f64
1693*0a6a1f1dSLionel Sambuc   return vmulq_n_f64(a, b);
1694*0a6a1f1dSLionel Sambuc   // CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.d[0]
1695*0a6a1f1dSLionel Sambuc }
1696*0a6a1f1dSLionel Sambuc 
test_vfma_n_f32(float32x2_t a,float32x2_t b,float32_t n)1697*0a6a1f1dSLionel Sambuc float32x2_t test_vfma_n_f32(float32x2_t a, float32x2_t b, float32_t n) {
1698*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfma_n_f32
1699*0a6a1f1dSLionel Sambuc   return vfma_n_f32(a, b, n);
1700*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1701*0a6a1f1dSLionel Sambuc }
1702*0a6a1f1dSLionel Sambuc 
test_vfmaq_n_f32(float32x4_t a,float32x4_t b,float32_t n)1703*0a6a1f1dSLionel Sambuc float32x4_t test_vfmaq_n_f32(float32x4_t a, float32x4_t b, float32_t n) {
1704*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmaq_n_f32
1705*0a6a1f1dSLionel Sambuc   return vfmaq_n_f32(a, b, n);
1706*0a6a1f1dSLionel Sambuc   // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1707*0a6a1f1dSLionel Sambuc }
1708*0a6a1f1dSLionel Sambuc 
test_vfms_n_f32(float32x2_t a,float32x2_t b,float32_t n)1709*0a6a1f1dSLionel Sambuc float32x2_t test_vfms_n_f32(float32x2_t a, float32x2_t b, float32_t n) {
1710*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfms_n_f32
1711*0a6a1f1dSLionel Sambuc   return vfms_n_f32(a, b, n);
1712*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
1713*0a6a1f1dSLionel Sambuc }
1714*0a6a1f1dSLionel Sambuc 
test_vfmsq_n_f32(float32x4_t a,float32x4_t b,float32_t n)1715*0a6a1f1dSLionel Sambuc float32x4_t test_vfmsq_n_f32(float32x4_t a, float32x4_t b, float32_t n) {
1716*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vfmsq_n_f32
1717*0a6a1f1dSLionel Sambuc   return vfmsq_n_f32(a, b, n);
1718*0a6a1f1dSLionel Sambuc   // CHECK: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
1719*0a6a1f1dSLionel Sambuc }
1720*0a6a1f1dSLionel Sambuc 
test_vmul_n_s16(int16x4_t a,int16_t b)1721*0a6a1f1dSLionel Sambuc int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) {
1722*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_n_s16
1723*0a6a1f1dSLionel Sambuc   return vmul_n_s16(a, b);
1724*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1725*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1726*0a6a1f1dSLionel Sambuc }
1727*0a6a1f1dSLionel Sambuc 
test_vmulq_n_s16(int16x8_t a,int16_t b)1728*0a6a1f1dSLionel Sambuc int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) {
1729*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_n_s16
1730*0a6a1f1dSLionel Sambuc   return vmulq_n_s16(a, b);
1731*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1732*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1733*0a6a1f1dSLionel Sambuc }
1734*0a6a1f1dSLionel Sambuc 
test_vmul_n_s32(int32x2_t a,int32_t b)1735*0a6a1f1dSLionel Sambuc int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) {
1736*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_n_s32
1737*0a6a1f1dSLionel Sambuc   return vmul_n_s32(a, b);
1738*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1739*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1740*0a6a1f1dSLionel Sambuc }
1741*0a6a1f1dSLionel Sambuc 
test_vmulq_n_s32(int32x4_t a,int32_t b)1742*0a6a1f1dSLionel Sambuc int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) {
1743*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_n_s32
1744*0a6a1f1dSLionel Sambuc   return vmulq_n_s32(a, b);
1745*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4s, w0
1746*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1747*0a6a1f1dSLionel Sambuc }
1748*0a6a1f1dSLionel Sambuc 
test_vmul_n_u16(uint16x4_t a,uint16_t b)1749*0a6a1f1dSLionel Sambuc uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) {
1750*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_n_u16
1751*0a6a1f1dSLionel Sambuc   return vmul_n_u16(a, b);
1752*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1753*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1754*0a6a1f1dSLionel Sambuc }
1755*0a6a1f1dSLionel Sambuc 
test_vmulq_n_u16(uint16x8_t a,uint16_t b)1756*0a6a1f1dSLionel Sambuc uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) {
1757*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_n_u16
1758*0a6a1f1dSLionel Sambuc   return vmulq_n_u16(a, b);
1759*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1760*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1761*0a6a1f1dSLionel Sambuc }
1762*0a6a1f1dSLionel Sambuc 
test_vmul_n_u32(uint32x2_t a,uint32_t b)1763*0a6a1f1dSLionel Sambuc uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) {
1764*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmul_n_u32
1765*0a6a1f1dSLionel Sambuc   return vmul_n_u32(a, b);
1766*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1767*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1768*0a6a1f1dSLionel Sambuc }
1769*0a6a1f1dSLionel Sambuc 
test_vmulq_n_u32(uint32x4_t a,uint32_t b)1770*0a6a1f1dSLionel Sambuc uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) {
1771*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmulq_n_u32
1772*0a6a1f1dSLionel Sambuc   return vmulq_n_u32(a, b);
1773*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4s, w0
1774*0a6a1f1dSLionel Sambuc   // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1775*0a6a1f1dSLionel Sambuc }
1776*0a6a1f1dSLionel Sambuc 
test_vmull_n_s16(int16x4_t a,int16_t b)1777*0a6a1f1dSLionel Sambuc int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) {
1778*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_n_s16
1779*0a6a1f1dSLionel Sambuc   return vmull_n_s16(a, b);
1780*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1781*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1782*0a6a1f1dSLionel Sambuc }
1783*0a6a1f1dSLionel Sambuc 
test_vmull_n_s32(int32x2_t a,int32_t b)1784*0a6a1f1dSLionel Sambuc int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) {
1785*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_n_s32
1786*0a6a1f1dSLionel Sambuc   return vmull_n_s32(a, b);
1787*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1788*0a6a1f1dSLionel Sambuc   // CHECK: smull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1789*0a6a1f1dSLionel Sambuc }
1790*0a6a1f1dSLionel Sambuc 
test_vmull_n_u16(uint16x4_t a,uint16_t b)1791*0a6a1f1dSLionel Sambuc uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) {
1792*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_n_u16
1793*0a6a1f1dSLionel Sambuc   return vmull_n_u16(a, b);
1794*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1795*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1796*0a6a1f1dSLionel Sambuc }
1797*0a6a1f1dSLionel Sambuc 
test_vmull_n_u32(uint32x2_t a,uint32_t b)1798*0a6a1f1dSLionel Sambuc uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) {
1799*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmull_n_u32
1800*0a6a1f1dSLionel Sambuc   return vmull_n_u32(a, b);
1801*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1802*0a6a1f1dSLionel Sambuc   // CHECK: umull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1803*0a6a1f1dSLionel Sambuc }
1804*0a6a1f1dSLionel Sambuc 
test_vqdmull_n_s16(int16x4_t a,int16_t b)1805*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) {
1806*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_n_s16
1807*0a6a1f1dSLionel Sambuc   return vqdmull_n_s16(a, b);
1808*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1809*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1810*0a6a1f1dSLionel Sambuc }
1811*0a6a1f1dSLionel Sambuc 
test_vqdmull_n_s32(int32x2_t a,int32_t b)1812*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) {
1813*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmull_n_s32
1814*0a6a1f1dSLionel Sambuc   return vqdmull_n_s32(a, b);
1815*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1816*0a6a1f1dSLionel Sambuc   // CHECK: sqdmull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1817*0a6a1f1dSLionel Sambuc }
1818*0a6a1f1dSLionel Sambuc 
test_vqdmulh_n_s16(int16x4_t a,int16_t b)1819*0a6a1f1dSLionel Sambuc int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) {
1820*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_n_s16
1821*0a6a1f1dSLionel Sambuc   return vqdmulh_n_s16(a, b);
1822*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1823*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1824*0a6a1f1dSLionel Sambuc }
1825*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_n_s16(int16x8_t a,int16_t b)1826*0a6a1f1dSLionel Sambuc int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) {
1827*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_n_s16
1828*0a6a1f1dSLionel Sambuc   return vqdmulhq_n_s16(a, b);
1829*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1830*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1831*0a6a1f1dSLionel Sambuc }
1832*0a6a1f1dSLionel Sambuc 
test_vqdmulh_n_s32(int32x2_t a,int32_t b)1833*0a6a1f1dSLionel Sambuc int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) {
1834*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_n_s32
1835*0a6a1f1dSLionel Sambuc   return vqdmulh_n_s32(a, b);
1836*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1837*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1838*0a6a1f1dSLionel Sambuc }
1839*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_n_s32(int32x4_t a,int32_t b)1840*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) {
1841*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_n_s32
1842*0a6a1f1dSLionel Sambuc   return vqdmulhq_n_s32(a, b);
1843*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4s, w0
1844*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1845*0a6a1f1dSLionel Sambuc }
1846*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_n_s16(int16x4_t a,int16_t b)1847*0a6a1f1dSLionel Sambuc int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) {
1848*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_n_s16
1849*0a6a1f1dSLionel Sambuc   return vqrdmulh_n_s16(a, b);
1850*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1851*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1852*0a6a1f1dSLionel Sambuc }
1853*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_n_s16(int16x8_t a,int16_t b)1854*0a6a1f1dSLionel Sambuc int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) {
1855*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_n_s16
1856*0a6a1f1dSLionel Sambuc   return vqrdmulhq_n_s16(a, b);
1857*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1858*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1859*0a6a1f1dSLionel Sambuc }
1860*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_n_s32(int32x2_t a,int32_t b)1861*0a6a1f1dSLionel Sambuc int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) {
1862*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_n_s32
1863*0a6a1f1dSLionel Sambuc   return vqrdmulh_n_s32(a, b);
1864*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1865*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1866*0a6a1f1dSLionel Sambuc }
1867*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_n_s32(int32x4_t a,int32_t b)1868*0a6a1f1dSLionel Sambuc int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) {
1869*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_n_s32
1870*0a6a1f1dSLionel Sambuc   return vqrdmulhq_n_s32(a, b);
1871*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4s, w0
1872*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1873*0a6a1f1dSLionel Sambuc }
1874*0a6a1f1dSLionel Sambuc 
test_vmla_n_s16(int16x4_t a,int16x4_t b,int16_t c)1875*0a6a1f1dSLionel Sambuc int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
1876*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_n_s16
1877*0a6a1f1dSLionel Sambuc   return vmla_n_s16(a, b, c);
1878*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1879*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1880*0a6a1f1dSLionel Sambuc }
1881*0a6a1f1dSLionel Sambuc 
test_vmlaq_n_s16(int16x8_t a,int16x8_t b,int16_t c)1882*0a6a1f1dSLionel Sambuc int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
1883*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_n_s16
1884*0a6a1f1dSLionel Sambuc   return vmlaq_n_s16(a, b, c);
1885*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1886*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1887*0a6a1f1dSLionel Sambuc }
1888*0a6a1f1dSLionel Sambuc 
test_vmla_n_s32(int32x2_t a,int32x2_t b,int32_t c)1889*0a6a1f1dSLionel Sambuc int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
1890*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_n_s32
1891*0a6a1f1dSLionel Sambuc   return vmla_n_s32(a, b, c);
1892*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1893*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1894*0a6a1f1dSLionel Sambuc }
1895*0a6a1f1dSLionel Sambuc 
test_vmlaq_n_s32(int32x4_t a,int32x4_t b,int32_t c)1896*0a6a1f1dSLionel Sambuc int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
1897*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_n_s32
1898*0a6a1f1dSLionel Sambuc   return vmlaq_n_s32(a, b, c);
1899*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4s, w0
1900*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1901*0a6a1f1dSLionel Sambuc }
1902*0a6a1f1dSLionel Sambuc 
test_vmla_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)1903*0a6a1f1dSLionel Sambuc uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
1904*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_n_u16
1905*0a6a1f1dSLionel Sambuc   return vmla_n_u16(a, b, c);
1906*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1907*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1908*0a6a1f1dSLionel Sambuc }
1909*0a6a1f1dSLionel Sambuc 
test_vmlaq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)1910*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
1911*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_n_u16
1912*0a6a1f1dSLionel Sambuc   return vmlaq_n_u16(a, b, c);
1913*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1914*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1915*0a6a1f1dSLionel Sambuc }
1916*0a6a1f1dSLionel Sambuc 
test_vmla_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)1917*0a6a1f1dSLionel Sambuc uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
1918*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_n_u32
1919*0a6a1f1dSLionel Sambuc   return vmla_n_u32(a, b, c);
1920*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1921*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1922*0a6a1f1dSLionel Sambuc }
1923*0a6a1f1dSLionel Sambuc 
test_vmlaq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)1924*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
1925*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_n_u32
1926*0a6a1f1dSLionel Sambuc   return vmlaq_n_u32(a, b, c);
1927*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4s, w0
1928*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1929*0a6a1f1dSLionel Sambuc }
1930*0a6a1f1dSLionel Sambuc 
test_vmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)1931*0a6a1f1dSLionel Sambuc int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
1932*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_n_s16
1933*0a6a1f1dSLionel Sambuc   return vmlal_n_s16(a, b, c);
1934*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1935*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1936*0a6a1f1dSLionel Sambuc }
1937*0a6a1f1dSLionel Sambuc 
test_vmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)1938*0a6a1f1dSLionel Sambuc int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
1939*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_n_s32
1940*0a6a1f1dSLionel Sambuc   return vmlal_n_s32(a, b, c);
1941*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1942*0a6a1f1dSLionel Sambuc   // CHECK: smlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1943*0a6a1f1dSLionel Sambuc }
1944*0a6a1f1dSLionel Sambuc 
test_vmlal_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)1945*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
1946*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_n_u16
1947*0a6a1f1dSLionel Sambuc   return vmlal_n_u16(a, b, c);
1948*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1949*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1950*0a6a1f1dSLionel Sambuc }
1951*0a6a1f1dSLionel Sambuc 
test_vmlal_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)1952*0a6a1f1dSLionel Sambuc uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
1953*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlal_n_u32
1954*0a6a1f1dSLionel Sambuc   return vmlal_n_u32(a, b, c);
1955*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1956*0a6a1f1dSLionel Sambuc   // CHECK: umlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1957*0a6a1f1dSLionel Sambuc }
1958*0a6a1f1dSLionel Sambuc 
test_vqdmlal_n_s16(int32x4_t a,int16x4_t b,int16_t c)1959*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
1960*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_n_s16
1961*0a6a1f1dSLionel Sambuc   return vqdmlal_n_s16(a, b, c);
1962*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1963*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1964*0a6a1f1dSLionel Sambuc }
1965*0a6a1f1dSLionel Sambuc 
test_vqdmlal_n_s32(int64x2_t a,int32x2_t b,int32_t c)1966*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
1967*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_n_s32
1968*0a6a1f1dSLionel Sambuc   return vqdmlal_n_s32(a, b, c);
1969*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1970*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1971*0a6a1f1dSLionel Sambuc }
1972*0a6a1f1dSLionel Sambuc 
test_vmls_n_s16(int16x4_t a,int16x4_t b,int16_t c)1973*0a6a1f1dSLionel Sambuc int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
1974*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_n_s16
1975*0a6a1f1dSLionel Sambuc   return vmls_n_s16(a, b, c);
1976*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
1977*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
1978*0a6a1f1dSLionel Sambuc }
1979*0a6a1f1dSLionel Sambuc 
test_vmlsq_n_s16(int16x8_t a,int16x8_t b,int16_t c)1980*0a6a1f1dSLionel Sambuc int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
1981*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_n_s16
1982*0a6a1f1dSLionel Sambuc   return vmlsq_n_s16(a, b, c);
1983*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
1984*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
1985*0a6a1f1dSLionel Sambuc }
1986*0a6a1f1dSLionel Sambuc 
test_vmls_n_s32(int32x2_t a,int32x2_t b,int32_t c)1987*0a6a1f1dSLionel Sambuc int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
1988*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_n_s32
1989*0a6a1f1dSLionel Sambuc   return vmls_n_s32(a, b, c);
1990*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
1991*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
1992*0a6a1f1dSLionel Sambuc }
1993*0a6a1f1dSLionel Sambuc 
test_vmlsq_n_s32(int32x4_t a,int32x4_t b,int32_t c)1994*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
1995*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_n_s32
1996*0a6a1f1dSLionel Sambuc   return vmlsq_n_s32(a, b, c);
1997*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
1998*0a6a1f1dSLionel Sambuc }
1999*0a6a1f1dSLionel Sambuc 
test_vmls_n_u16(uint16x4_t a,uint16x4_t b,uint16_t c)2000*0a6a1f1dSLionel Sambuc uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
2001*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_n_u16
2002*0a6a1f1dSLionel Sambuc   return vmls_n_u16(a, b, c);
2003*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
2004*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
2005*0a6a1f1dSLionel Sambuc }
2006*0a6a1f1dSLionel Sambuc 
test_vmlsq_n_u16(uint16x8_t a,uint16x8_t b,uint16_t c)2007*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
2008*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_n_u16
2009*0a6a1f1dSLionel Sambuc   return vmlsq_n_u16(a, b, c);
2010*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.8h, w0
2011*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
2012*0a6a1f1dSLionel Sambuc }
2013*0a6a1f1dSLionel Sambuc 
test_vmls_n_u32(uint32x2_t a,uint32x2_t b,uint32_t c)2014*0a6a1f1dSLionel Sambuc uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
2015*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_n_u32
2016*0a6a1f1dSLionel Sambuc   return vmls_n_u32(a, b, c);
2017*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
2018*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
2019*0a6a1f1dSLionel Sambuc }
2020*0a6a1f1dSLionel Sambuc 
test_vmlsq_n_u32(uint32x4_t a,uint32x4_t b,uint32_t c)2021*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
2022*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_n_u32
2023*0a6a1f1dSLionel Sambuc   return vmlsq_n_u32(a, b, c);
2024*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
2025*0a6a1f1dSLionel Sambuc }
2026*0a6a1f1dSLionel Sambuc 
test_vmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)2027*0a6a1f1dSLionel Sambuc int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
2028*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_n_s16
2029*0a6a1f1dSLionel Sambuc   return vmlsl_n_s16(a, b, c);
2030*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
2031*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
2032*0a6a1f1dSLionel Sambuc }
2033*0a6a1f1dSLionel Sambuc 
test_vmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)2034*0a6a1f1dSLionel Sambuc int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
2035*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_n_s32
2036*0a6a1f1dSLionel Sambuc   return vmlsl_n_s32(a, b, c);
2037*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
2038*0a6a1f1dSLionel Sambuc   // CHECK: smlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
2039*0a6a1f1dSLionel Sambuc }
2040*0a6a1f1dSLionel Sambuc 
test_vmlsl_n_u16(uint32x4_t a,uint16x4_t b,uint16_t c)2041*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
2042*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_n_u16
2043*0a6a1f1dSLionel Sambuc   return vmlsl_n_u16(a, b, c);
2044*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
2045*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
2046*0a6a1f1dSLionel Sambuc }
2047*0a6a1f1dSLionel Sambuc 
test_vmlsl_n_u32(uint64x2_t a,uint32x2_t b,uint32_t c)2048*0a6a1f1dSLionel Sambuc uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
2049*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsl_n_u32
2050*0a6a1f1dSLionel Sambuc   return vmlsl_n_u32(a, b, c);
2051*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
2052*0a6a1f1dSLionel Sambuc   // CHECK: umlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
2053*0a6a1f1dSLionel Sambuc }
2054*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_n_s16(int32x4_t a,int16x4_t b,int16_t c)2055*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
2056*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_n_s16
2057*0a6a1f1dSLionel Sambuc   return vqdmlsl_n_s16(a, b, c);
2058*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.4h, w0
2059*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
2060*0a6a1f1dSLionel Sambuc }
2061*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_n_s32(int64x2_t a,int32x2_t b,int32_t c)2062*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
2063*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_n_s32
2064*0a6a1f1dSLionel Sambuc   return vqdmlsl_n_s32(a, b, c);
2065*0a6a1f1dSLionel Sambuc   // CHECK: dup {{v[0-9]+}}.2s, w0
2066*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
2067*0a6a1f1dSLionel Sambuc }
2068*0a6a1f1dSLionel Sambuc 
test_vmla_lane_u16_0(uint16x4_t a,uint16x4_t b,uint16x4_t v)2069*0a6a1f1dSLionel Sambuc uint16x4_t test_vmla_lane_u16_0(uint16x4_t a, uint16x4_t b, uint16x4_t v) {
2070*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_u16_0
2071*0a6a1f1dSLionel Sambuc   return vmla_lane_u16(a, b, v, 0);
2072*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2073*0a6a1f1dSLionel Sambuc }
2074*0a6a1f1dSLionel Sambuc 
test_vmlaq_lane_u16_0(uint16x8_t a,uint16x8_t b,uint16x4_t v)2075*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlaq_lane_u16_0(uint16x8_t a, uint16x8_t b, uint16x4_t v) {
2076*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_u16_0
2077*0a6a1f1dSLionel Sambuc   return vmlaq_lane_u16(a, b, v, 0);
2078*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2079*0a6a1f1dSLionel Sambuc }
2080*0a6a1f1dSLionel Sambuc 
test_vmla_lane_u32_0(uint32x2_t a,uint32x2_t b,uint32x2_t v)2081*0a6a1f1dSLionel Sambuc uint32x2_t test_vmla_lane_u32_0(uint32x2_t a, uint32x2_t b, uint32x2_t v) {
2082*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_u32_0
2083*0a6a1f1dSLionel Sambuc   return vmla_lane_u32(a, b, v, 0);
2084*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2085*0a6a1f1dSLionel Sambuc }
2086*0a6a1f1dSLionel Sambuc 
test_vmlaq_lane_u32_0(uint32x4_t a,uint32x4_t b,uint32x2_t v)2087*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlaq_lane_u32_0(uint32x4_t a, uint32x4_t b, uint32x2_t v) {
2088*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_u32_0
2089*0a6a1f1dSLionel Sambuc   return vmlaq_lane_u32(a, b, v, 0);
2090*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2091*0a6a1f1dSLionel Sambuc }
2092*0a6a1f1dSLionel Sambuc 
test_vmla_laneq_u16_0(uint16x4_t a,uint16x4_t b,uint16x8_t v)2093*0a6a1f1dSLionel Sambuc uint16x4_t test_vmla_laneq_u16_0(uint16x4_t a, uint16x4_t b, uint16x8_t v) {
2094*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_u16_0
2095*0a6a1f1dSLionel Sambuc   return vmla_laneq_u16(a, b, v, 0);
2096*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2097*0a6a1f1dSLionel Sambuc }
2098*0a6a1f1dSLionel Sambuc 
test_vmlaq_laneq_u16_0(uint16x8_t a,uint16x8_t b,uint16x8_t v)2099*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlaq_laneq_u16_0(uint16x8_t a, uint16x8_t b, uint16x8_t v) {
2100*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_u16_0
2101*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_u16(a, b, v, 0);
2102*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2103*0a6a1f1dSLionel Sambuc }
2104*0a6a1f1dSLionel Sambuc 
test_vmla_laneq_u32_0(uint32x2_t a,uint32x2_t b,uint32x4_t v)2105*0a6a1f1dSLionel Sambuc uint32x2_t test_vmla_laneq_u32_0(uint32x2_t a, uint32x2_t b, uint32x4_t v) {
2106*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_u32_0
2107*0a6a1f1dSLionel Sambuc   return vmla_laneq_u32(a, b, v, 0);
2108*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2109*0a6a1f1dSLionel Sambuc }
2110*0a6a1f1dSLionel Sambuc 
test_vmlaq_laneq_u32_0(uint32x4_t a,uint32x4_t b,uint32x4_t v)2111*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlaq_laneq_u32_0(uint32x4_t a, uint32x4_t b, uint32x4_t v) {
2112*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_u32_0
2113*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_u32(a, b, v, 0);
2114*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2115*0a6a1f1dSLionel Sambuc }
2116*0a6a1f1dSLionel Sambuc 
test_vqdmlal_laneq_s16_0(int32x4_t a,int16x4_t b,int16x8_t v)2117*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_laneq_s16_0(int32x4_t a, int16x4_t b, int16x8_t v) {
2118*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_laneq_s16_0
2119*0a6a1f1dSLionel Sambuc   return vqdmlal_laneq_s16(a, b, v, 0);
2120*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2121*0a6a1f1dSLionel Sambuc }
2122*0a6a1f1dSLionel Sambuc 
test_vqdmlal_laneq_s32_0(int64x2_t a,int32x2_t b,int32x4_t v)2123*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_laneq_s32_0(int64x2_t a, int32x2_t b, int32x4_t v) {
2124*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_laneq_s32_0
2125*0a6a1f1dSLionel Sambuc   return vqdmlal_laneq_s32(a, b, v, 0);
2126*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2127*0a6a1f1dSLionel Sambuc }
2128*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_laneq_s16_0(int32x4_t a,int16x8_t b,int16x8_t v)2129*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_high_laneq_s16_0(int32x4_t a, int16x8_t b, int16x8_t v) {
2130*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_laneq_s16_0
2131*0a6a1f1dSLionel Sambuc   return vqdmlal_high_laneq_s16(a, b, v, 0);
2132*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2133*0a6a1f1dSLionel Sambuc }
2134*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_laneq_s32_0(int64x2_t a,int32x4_t b,int32x4_t v)2135*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_high_laneq_s32_0(int64x2_t a, int32x4_t b, int32x4_t v) {
2136*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_laneq_s32_0
2137*0a6a1f1dSLionel Sambuc   return vqdmlal_high_laneq_s32(a, b, v, 0);
2138*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2139*0a6a1f1dSLionel Sambuc }
2140*0a6a1f1dSLionel Sambuc 
test_vmls_lane_u16_0(uint16x4_t a,uint16x4_t b,uint16x4_t v)2141*0a6a1f1dSLionel Sambuc uint16x4_t test_vmls_lane_u16_0(uint16x4_t a, uint16x4_t b, uint16x4_t v) {
2142*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_u16_0
2143*0a6a1f1dSLionel Sambuc   return vmls_lane_u16(a, b, v, 0);
2144*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2145*0a6a1f1dSLionel Sambuc }
2146*0a6a1f1dSLionel Sambuc 
test_vmlsq_lane_u16_0(uint16x8_t a,uint16x8_t b,uint16x4_t v)2147*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlsq_lane_u16_0(uint16x8_t a, uint16x8_t b, uint16x4_t v) {
2148*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_u16_0
2149*0a6a1f1dSLionel Sambuc   return vmlsq_lane_u16(a, b, v, 0);
2150*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2151*0a6a1f1dSLionel Sambuc }
2152*0a6a1f1dSLionel Sambuc 
test_vmls_lane_u32_0(uint32x2_t a,uint32x2_t b,uint32x2_t v)2153*0a6a1f1dSLionel Sambuc uint32x2_t test_vmls_lane_u32_0(uint32x2_t a, uint32x2_t b, uint32x2_t v) {
2154*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_u32_0
2155*0a6a1f1dSLionel Sambuc   return vmls_lane_u32(a, b, v, 0);
2156*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2157*0a6a1f1dSLionel Sambuc }
2158*0a6a1f1dSLionel Sambuc 
test_vmlsq_lane_u32_0(uint32x4_t a,uint32x4_t b,uint32x2_t v)2159*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsq_lane_u32_0(uint32x4_t a, uint32x4_t b, uint32x2_t v) {
2160*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_u32_0
2161*0a6a1f1dSLionel Sambuc   return vmlsq_lane_u32(a, b, v, 0);
2162*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2163*0a6a1f1dSLionel Sambuc }
2164*0a6a1f1dSLionel Sambuc 
test_vmls_laneq_u16_0(uint16x4_t a,uint16x4_t b,uint16x8_t v)2165*0a6a1f1dSLionel Sambuc uint16x4_t test_vmls_laneq_u16_0(uint16x4_t a, uint16x4_t b, uint16x8_t v) {
2166*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_u16_0
2167*0a6a1f1dSLionel Sambuc   return vmls_laneq_u16(a, b, v, 0);
2168*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2169*0a6a1f1dSLionel Sambuc }
2170*0a6a1f1dSLionel Sambuc 
test_vmlsq_laneq_u16_0(uint16x8_t a,uint16x8_t b,uint16x8_t v)2171*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlsq_laneq_u16_0(uint16x8_t a, uint16x8_t b, uint16x8_t v) {
2172*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_u16_0
2173*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_u16(a, b, v, 0);
2174*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2175*0a6a1f1dSLionel Sambuc }
2176*0a6a1f1dSLionel Sambuc 
test_vmls_laneq_u32_0(uint32x2_t a,uint32x2_t b,uint32x4_t v)2177*0a6a1f1dSLionel Sambuc uint32x2_t test_vmls_laneq_u32_0(uint32x2_t a, uint32x2_t b, uint32x4_t v) {
2178*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_u32_0
2179*0a6a1f1dSLionel Sambuc   return vmls_laneq_u32(a, b, v, 0);
2180*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2181*0a6a1f1dSLionel Sambuc }
2182*0a6a1f1dSLionel Sambuc 
test_vmlsq_laneq_u32_0(uint32x4_t a,uint32x4_t b,uint32x4_t v)2183*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsq_laneq_u32_0(uint32x4_t a, uint32x4_t b, uint32x4_t v) {
2184*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_u32_0
2185*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_u32(a, b, v, 0);
2186*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2187*0a6a1f1dSLionel Sambuc }
2188*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_laneq_s16_0(int32x4_t a,int16x4_t b,int16x8_t v)2189*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_laneq_s16_0(int32x4_t a, int16x4_t b, int16x8_t v) {
2190*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_laneq_s16_0
2191*0a6a1f1dSLionel Sambuc   return vqdmlsl_laneq_s16(a, b, v, 0);
2192*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2193*0a6a1f1dSLionel Sambuc }
2194*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_laneq_s32_0(int64x2_t a,int32x2_t b,int32x4_t v)2195*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_laneq_s32_0(int64x2_t a, int32x2_t b, int32x4_t v) {
2196*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_laneq_s32_0
2197*0a6a1f1dSLionel Sambuc   return vqdmlsl_laneq_s32(a, b, v, 0);
2198*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2199*0a6a1f1dSLionel Sambuc }
2200*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_laneq_s16_0(int32x4_t a,int16x8_t b,int16x8_t v)2201*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_high_laneq_s16_0(int32x4_t a, int16x8_t b, int16x8_t v) {
2202*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_laneq_s16_0
2203*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_laneq_s16(a, b, v, 0);
2204*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2205*0a6a1f1dSLionel Sambuc }
2206*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_laneq_s32_0(int64x2_t a,int32x4_t b,int32x4_t v)2207*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_high_laneq_s32_0(int64x2_t a, int32x4_t b, int32x4_t v) {
2208*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_laneq_s32_0
2209*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_laneq_s32(a, b, v, 0);
2210*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2211*0a6a1f1dSLionel Sambuc }
2212*0a6a1f1dSLionel Sambuc 
test_vqdmulh_laneq_s16_0(int16x4_t a,int16x8_t v)2213*0a6a1f1dSLionel Sambuc int16x4_t test_vqdmulh_laneq_s16_0(int16x4_t a, int16x8_t v) {
2214*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_laneq_s16_0
2215*0a6a1f1dSLionel Sambuc   return vqdmulh_laneq_s16(a, v, 0);
2216*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2217*0a6a1f1dSLionel Sambuc }
2218*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_laneq_s16_0(int16x8_t a,int16x8_t v)2219*0a6a1f1dSLionel Sambuc int16x8_t test_vqdmulhq_laneq_s16_0(int16x8_t a, int16x8_t v) {
2220*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_laneq_s16_0
2221*0a6a1f1dSLionel Sambuc   return vqdmulhq_laneq_s16(a, v, 0);
2222*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2223*0a6a1f1dSLionel Sambuc }
2224*0a6a1f1dSLionel Sambuc 
test_vqdmulh_laneq_s32_0(int32x2_t a,int32x4_t v)2225*0a6a1f1dSLionel Sambuc int32x2_t test_vqdmulh_laneq_s32_0(int32x2_t a, int32x4_t v) {
2226*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_laneq_s32_0
2227*0a6a1f1dSLionel Sambuc   return vqdmulh_laneq_s32(a, v, 0);
2228*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2229*0a6a1f1dSLionel Sambuc }
2230*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_laneq_s32_0(int32x4_t a,int32x4_t v)2231*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmulhq_laneq_s32_0(int32x4_t a, int32x4_t v) {
2232*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_laneq_s32_0
2233*0a6a1f1dSLionel Sambuc   return vqdmulhq_laneq_s32(a, v, 0);
2234*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2235*0a6a1f1dSLionel Sambuc }
2236*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_laneq_s16_0(int16x4_t a,int16x8_t v)2237*0a6a1f1dSLionel Sambuc int16x4_t test_vqrdmulh_laneq_s16_0(int16x4_t a, int16x8_t v) {
2238*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_laneq_s16_0
2239*0a6a1f1dSLionel Sambuc   return vqrdmulh_laneq_s16(a, v, 0);
2240*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[0]
2241*0a6a1f1dSLionel Sambuc }
2242*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_laneq_s16_0(int16x8_t a,int16x8_t v)2243*0a6a1f1dSLionel Sambuc int16x8_t test_vqrdmulhq_laneq_s16_0(int16x8_t a, int16x8_t v) {
2244*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_laneq_s16_0
2245*0a6a1f1dSLionel Sambuc   return vqrdmulhq_laneq_s16(a, v, 0);
2246*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[0]
2247*0a6a1f1dSLionel Sambuc }
2248*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_laneq_s32_0(int32x2_t a,int32x4_t v)2249*0a6a1f1dSLionel Sambuc int32x2_t test_vqrdmulh_laneq_s32_0(int32x2_t a, int32x4_t v) {
2250*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_laneq_s32_0
2251*0a6a1f1dSLionel Sambuc   return vqrdmulh_laneq_s32(a, v, 0);
2252*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[0]
2253*0a6a1f1dSLionel Sambuc }
2254*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_laneq_s32_0(int32x4_t a,int32x4_t v)2255*0a6a1f1dSLionel Sambuc int32x4_t test_vqrdmulhq_laneq_s32_0(int32x4_t a, int32x4_t v) {
2256*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_laneq_s32_0
2257*0a6a1f1dSLionel Sambuc   return vqrdmulhq_laneq_s32(a, v, 0);
2258*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[0]
2259*0a6a1f1dSLionel Sambuc }
2260*0a6a1f1dSLionel Sambuc 
test_vmla_lane_u16(uint16x4_t a,uint16x4_t b,uint16x4_t v)2261*0a6a1f1dSLionel Sambuc uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t v) {
2262*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_u16
2263*0a6a1f1dSLionel Sambuc   return vmla_lane_u16(a, b, v, 3);
2264*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
2265*0a6a1f1dSLionel Sambuc }
2266*0a6a1f1dSLionel Sambuc 
test_vmlaq_lane_u16(uint16x8_t a,uint16x8_t b,uint16x4_t v)2267*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t v) {
2268*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_u16
2269*0a6a1f1dSLionel Sambuc   return vmlaq_lane_u16(a, b, v, 3);
2270*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
2271*0a6a1f1dSLionel Sambuc }
2272*0a6a1f1dSLionel Sambuc 
test_vmla_lane_u32(uint32x2_t a,uint32x2_t b,uint32x2_t v)2273*0a6a1f1dSLionel Sambuc uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t v) {
2274*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_lane_u32
2275*0a6a1f1dSLionel Sambuc   return vmla_lane_u32(a, b, v, 1);
2276*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
2277*0a6a1f1dSLionel Sambuc }
2278*0a6a1f1dSLionel Sambuc 
test_vmlaq_lane_u32(uint32x4_t a,uint32x4_t b,uint32x2_t v)2279*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t v) {
2280*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_lane_u32
2281*0a6a1f1dSLionel Sambuc   return vmlaq_lane_u32(a, b, v, 1);
2282*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
2283*0a6a1f1dSLionel Sambuc }
2284*0a6a1f1dSLionel Sambuc 
test_vmla_laneq_u16(uint16x4_t a,uint16x4_t b,uint16x8_t v)2285*0a6a1f1dSLionel Sambuc uint16x4_t test_vmla_laneq_u16(uint16x4_t a, uint16x4_t b, uint16x8_t v) {
2286*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_u16
2287*0a6a1f1dSLionel Sambuc   return vmla_laneq_u16(a, b, v, 7);
2288*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
2289*0a6a1f1dSLionel Sambuc }
2290*0a6a1f1dSLionel Sambuc 
test_vmlaq_laneq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t v)2291*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlaq_laneq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t v) {
2292*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_u16
2293*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_u16(a, b, v, 7);
2294*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
2295*0a6a1f1dSLionel Sambuc }
2296*0a6a1f1dSLionel Sambuc 
test_vmla_laneq_u32(uint32x2_t a,uint32x2_t b,uint32x4_t v)2297*0a6a1f1dSLionel Sambuc uint32x2_t test_vmla_laneq_u32(uint32x2_t a, uint32x2_t b, uint32x4_t v) {
2298*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmla_laneq_u32
2299*0a6a1f1dSLionel Sambuc   return vmla_laneq_u32(a, b, v, 3);
2300*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
2301*0a6a1f1dSLionel Sambuc }
2302*0a6a1f1dSLionel Sambuc 
test_vmlaq_laneq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t v)2303*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlaq_laneq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t v) {
2304*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlaq_laneq_u32
2305*0a6a1f1dSLionel Sambuc   return vmlaq_laneq_u32(a, b, v, 3);
2306*0a6a1f1dSLionel Sambuc   // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
2307*0a6a1f1dSLionel Sambuc }
2308*0a6a1f1dSLionel Sambuc 
test_vqdmlal_laneq_s16(int32x4_t a,int16x4_t b,int16x8_t v)2309*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_laneq_s16(int32x4_t a, int16x4_t b, int16x8_t v) {
2310*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_laneq_s16
2311*0a6a1f1dSLionel Sambuc   return vqdmlal_laneq_s16(a, b, v, 7);
2312*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
2313*0a6a1f1dSLionel Sambuc }
2314*0a6a1f1dSLionel Sambuc 
test_vqdmlal_laneq_s32(int64x2_t a,int32x2_t b,int32x4_t v)2315*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_laneq_s32(int64x2_t a, int32x2_t b, int32x4_t v) {
2316*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_laneq_s32
2317*0a6a1f1dSLionel Sambuc   return vqdmlal_laneq_s32(a, b, v, 3);
2318*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
2319*0a6a1f1dSLionel Sambuc }
2320*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_laneq_s16(int32x4_t a,int16x8_t b,int16x8_t v)2321*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlal_high_laneq_s16(int32x4_t a, int16x8_t b, int16x8_t v) {
2322*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_laneq_s16
2323*0a6a1f1dSLionel Sambuc   return vqdmlal_high_laneq_s16(a, b, v, 7);
2324*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
2325*0a6a1f1dSLionel Sambuc }
2326*0a6a1f1dSLionel Sambuc 
test_vqdmlal_high_laneq_s32(int64x2_t a,int32x4_t b,int32x4_t v)2327*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlal_high_laneq_s32(int64x2_t a, int32x4_t b, int32x4_t v) {
2328*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlal_high_laneq_s32
2329*0a6a1f1dSLionel Sambuc   return vqdmlal_high_laneq_s32(a, b, v, 3);
2330*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
2331*0a6a1f1dSLionel Sambuc }
2332*0a6a1f1dSLionel Sambuc 
test_vmls_lane_u16(uint16x4_t a,uint16x4_t b,uint16x4_t v)2333*0a6a1f1dSLionel Sambuc uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t v) {
2334*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_u16
2335*0a6a1f1dSLionel Sambuc   return vmls_lane_u16(a, b, v, 3);
2336*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[3]
2337*0a6a1f1dSLionel Sambuc }
2338*0a6a1f1dSLionel Sambuc 
test_vmlsq_lane_u16(uint16x8_t a,uint16x8_t b,uint16x4_t v)2339*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t v) {
2340*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_u16
2341*0a6a1f1dSLionel Sambuc   return vmlsq_lane_u16(a, b, v, 3);
2342*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[3]
2343*0a6a1f1dSLionel Sambuc }
2344*0a6a1f1dSLionel Sambuc 
test_vmls_lane_u32(uint32x2_t a,uint32x2_t b,uint32x2_t v)2345*0a6a1f1dSLionel Sambuc uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t v) {
2346*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_lane_u32
2347*0a6a1f1dSLionel Sambuc   return vmls_lane_u32(a, b, v, 1);
2348*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[1]
2349*0a6a1f1dSLionel Sambuc }
2350*0a6a1f1dSLionel Sambuc 
test_vmlsq_lane_u32(uint32x4_t a,uint32x4_t b,uint32x2_t v)2351*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t v) {
2352*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_lane_u32
2353*0a6a1f1dSLionel Sambuc   return vmlsq_lane_u32(a, b, v, 1);
2354*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[1]
2355*0a6a1f1dSLionel Sambuc }
2356*0a6a1f1dSLionel Sambuc 
test_vmls_laneq_u16(uint16x4_t a,uint16x4_t b,uint16x8_t v)2357*0a6a1f1dSLionel Sambuc uint16x4_t test_vmls_laneq_u16(uint16x4_t a, uint16x4_t b, uint16x8_t v) {
2358*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_u16
2359*0a6a1f1dSLionel Sambuc   return vmls_laneq_u16(a, b, v, 7);
2360*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
2361*0a6a1f1dSLionel Sambuc }
2362*0a6a1f1dSLionel Sambuc 
test_vmlsq_laneq_u16(uint16x8_t a,uint16x8_t b,uint16x8_t v)2363*0a6a1f1dSLionel Sambuc uint16x8_t test_vmlsq_laneq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t v) {
2364*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_u16
2365*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_u16(a, b, v, 7);
2366*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
2367*0a6a1f1dSLionel Sambuc }
2368*0a6a1f1dSLionel Sambuc 
test_vmls_laneq_u32(uint32x2_t a,uint32x2_t b,uint32x4_t v)2369*0a6a1f1dSLionel Sambuc uint32x2_t test_vmls_laneq_u32(uint32x2_t a, uint32x2_t b, uint32x4_t v) {
2370*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmls_laneq_u32
2371*0a6a1f1dSLionel Sambuc   return vmls_laneq_u32(a, b, v, 3);
2372*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
2373*0a6a1f1dSLionel Sambuc }
2374*0a6a1f1dSLionel Sambuc 
test_vmlsq_laneq_u32(uint32x4_t a,uint32x4_t b,uint32x4_t v)2375*0a6a1f1dSLionel Sambuc uint32x4_t test_vmlsq_laneq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t v) {
2376*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vmlsq_laneq_u32
2377*0a6a1f1dSLionel Sambuc   return vmlsq_laneq_u32(a, b, v, 3);
2378*0a6a1f1dSLionel Sambuc   // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
2379*0a6a1f1dSLionel Sambuc }
2380*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_laneq_s16(int32x4_t a,int16x4_t b,int16x8_t v)2381*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_laneq_s16(int32x4_t a, int16x4_t b, int16x8_t v) {
2382*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_laneq_s16
2383*0a6a1f1dSLionel Sambuc   return vqdmlsl_laneq_s16(a, b, v, 7);
2384*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
2385*0a6a1f1dSLionel Sambuc }
2386*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_laneq_s32(int64x2_t a,int32x2_t b,int32x4_t v)2387*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_laneq_s32(int64x2_t a, int32x2_t b, int32x4_t v) {
2388*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_laneq_s32
2389*0a6a1f1dSLionel Sambuc   return vqdmlsl_laneq_s32(a, b, v, 3);
2390*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
2391*0a6a1f1dSLionel Sambuc }
2392*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_laneq_s16(int32x4_t a,int16x8_t b,int16x8_t v)2393*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmlsl_high_laneq_s16(int32x4_t a, int16x8_t b, int16x8_t v) {
2394*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_laneq_s16
2395*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_laneq_s16(a, b, v, 7);
2396*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
2397*0a6a1f1dSLionel Sambuc }
2398*0a6a1f1dSLionel Sambuc 
test_vqdmlsl_high_laneq_s32(int64x2_t a,int32x4_t b,int32x4_t v)2399*0a6a1f1dSLionel Sambuc int64x2_t test_vqdmlsl_high_laneq_s32(int64x2_t a, int32x4_t b, int32x4_t v) {
2400*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmlsl_high_laneq_s32
2401*0a6a1f1dSLionel Sambuc   return vqdmlsl_high_laneq_s32(a, b, v, 3);
2402*0a6a1f1dSLionel Sambuc   // CHECK: sqdmlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
2403*0a6a1f1dSLionel Sambuc }
2404*0a6a1f1dSLionel Sambuc 
test_vqdmulh_laneq_s16(int16x4_t a,int16x8_t v)2405*0a6a1f1dSLionel Sambuc int16x4_t test_vqdmulh_laneq_s16(int16x4_t a, int16x8_t v) {
2406*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_laneq_s16
2407*0a6a1f1dSLionel Sambuc   return vqdmulh_laneq_s16(a, v, 7);
2408*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
2409*0a6a1f1dSLionel Sambuc }
2410*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_laneq_s16(int16x8_t a,int16x8_t v)2411*0a6a1f1dSLionel Sambuc int16x8_t test_vqdmulhq_laneq_s16(int16x8_t a, int16x8_t v) {
2412*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_laneq_s16
2413*0a6a1f1dSLionel Sambuc   return vqdmulhq_laneq_s16(a, v, 7);
2414*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
2415*0a6a1f1dSLionel Sambuc }
2416*0a6a1f1dSLionel Sambuc 
test_vqdmulh_laneq_s32(int32x2_t a,int32x4_t v)2417*0a6a1f1dSLionel Sambuc int32x2_t test_vqdmulh_laneq_s32(int32x2_t a, int32x4_t v) {
2418*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulh_laneq_s32
2419*0a6a1f1dSLionel Sambuc   return vqdmulh_laneq_s32(a, v, 3);
2420*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
2421*0a6a1f1dSLionel Sambuc }
2422*0a6a1f1dSLionel Sambuc 
test_vqdmulhq_laneq_s32(int32x4_t a,int32x4_t v)2423*0a6a1f1dSLionel Sambuc int32x4_t test_vqdmulhq_laneq_s32(int32x4_t a, int32x4_t v) {
2424*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqdmulhq_laneq_s32
2425*0a6a1f1dSLionel Sambuc   return vqdmulhq_laneq_s32(a, v, 3);
2426*0a6a1f1dSLionel Sambuc   // CHECK: sqdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
2427*0a6a1f1dSLionel Sambuc }
2428*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_laneq_s16(int16x4_t a,int16x8_t v)2429*0a6a1f1dSLionel Sambuc int16x4_t test_vqrdmulh_laneq_s16(int16x4_t a, int16x8_t v) {
2430*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_laneq_s16
2431*0a6a1f1dSLionel Sambuc   return vqrdmulh_laneq_s16(a, v, 7);
2432*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.h[7]
2433*0a6a1f1dSLionel Sambuc }
2434*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_laneq_s16(int16x8_t a,int16x8_t v)2435*0a6a1f1dSLionel Sambuc int16x8_t test_vqrdmulhq_laneq_s16(int16x8_t a, int16x8_t v) {
2436*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_laneq_s16
2437*0a6a1f1dSLionel Sambuc   return vqrdmulhq_laneq_s16(a, v, 7);
2438*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.h[7]
2439*0a6a1f1dSLionel Sambuc }
2440*0a6a1f1dSLionel Sambuc 
test_vqrdmulh_laneq_s32(int32x2_t a,int32x4_t v)2441*0a6a1f1dSLionel Sambuc int32x2_t test_vqrdmulh_laneq_s32(int32x2_t a, int32x4_t v) {
2442*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulh_laneq_s32
2443*0a6a1f1dSLionel Sambuc   return vqrdmulh_laneq_s32(a, v, 3);
2444*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[3]
2445*0a6a1f1dSLionel Sambuc }
2446*0a6a1f1dSLionel Sambuc 
test_vqrdmulhq_laneq_s32(int32x4_t a,int32x4_t v)2447*0a6a1f1dSLionel Sambuc int32x4_t test_vqrdmulhq_laneq_s32(int32x4_t a, int32x4_t v) {
2448*0a6a1f1dSLionel Sambuc   // CHECK-LABEL: test_vqrdmulhq_laneq_s32
2449*0a6a1f1dSLionel Sambuc   return vqrdmulhq_laneq_s32(a, v, 3);
2450*0a6a1f1dSLionel Sambuc   // CHECK: sqrdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.s[3]
2451f4a2713aSLionel Sambuc }
2452f4a2713aSLionel Sambuc 
2453