1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple aarch64-linux-gnu -target-feature +neon -ffreestanding -fsyntax-only -verify %s
26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -triple arm64-linux-gnu -target-feature +neon -ffreestanding -fsyntax-only -verify %s
3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
4651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines#include <arm_neon.h>
5651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
6651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test_vext_8bit(int8x8_t small, int8x16_t big) {
7651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vext_s8(small, small, 7);
8651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vext_u8(small, small, 7);
9651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vext_p8(small, small, 7);
10651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vextq_s8(big, big, 15);
11651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vextq_u8(big, big, 15);
12651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vextq_p8(big, big, 15);
13651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
14651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vext_s8(small, small, 8); // expected-error {{argument should be a value from 0 to 7}}
15651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vext_u8(small, small, 8); // expected-error {{argument should be a value from 0 to 7}}
16651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vext_p8(small, small, 8); // expected-error {{argument should be a value from 0 to 7}}
17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vextq_s8(big, big, 16); // expected-error {{argument should be a value from 0 to 15}}
18651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vextq_u8(big, big, 16); // expected-error {{argument should be a value from 0 to 15}}
19651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vextq_p8(big, big, 16); // expected-error {{argument should be a value from 0 to 15}}
20651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}
21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test_mul_lane_f64(float64x1_t small, float64x2_t big, float64x2_t rhs) {
23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vmul_lane_f64(small, small, 0);
24651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vmul_laneq_f64(small, big, 1);
25651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vmulq_lane_f64(big, small, 0);
26651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vmulq_laneq_f64(big, big, 1);
27651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfma_lane_f64(small, small, small, 0);
28651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfma_laneq_f64(small, small, big, 1);
29651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfmaq_lane_f64(big, big, small, 0);
30651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfmaq_laneq_f64(big, big, big, 1);
31651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
32651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vmul_lane_f64(small, small, 1); // expected-error {{argument should be a value from 0 to 0}}
33651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vmul_laneq_f64(small, big, 2); // expected-error {{argument should be a value from 0 to 1}}
34651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfma_lane_f64(small, small, small, 1); // expected-error {{argument should be a value from 0 to 0}}
35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfma_laneq_f64(small, small, big, 2); // expected-error {{argument should be a value from 0 to 1}}
36651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vfmaq_laneq_f64(big, big, big, 2); // expected-error {{argument should be a value from 0 to 1}}
37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}
38651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
39651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test_ld1st1(int8x8_t small, int8x16_t big, void *addr) {
40651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s8(addr, small, 7);
41651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s16(addr, small, 3);
42651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s32(addr, small, 1);
43651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s64(addr, small, 0);
44651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
45651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s8(addr, big, 15);
46651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s16(addr, big, 7);
47651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s32(addr, big, 3);
48651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s64(addr, big, 1);
49651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
50651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s8(addr, small, 8); // expected-error {{argument should be a value from 0 to 7}}
51651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s16(addr, small, 4); // expected-error {{argument should be a value from 0 to 3}}
52651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s32(addr, small, 2); // expected-error {{argument should be a value from 0 to 1}}
53651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1_lane_s64(addr, small, 1); // expected-error {{argument should be a value from 0 to 0}}
54651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
55651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s8(addr, big, 16); // expected-error {{argument should be a value from 0 to 15}}
56651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s16(addr, big, 8); // expected-error {{argument should be a value from 0 to 7}}
57651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s32(addr, big, 4); // expected-error {{argument should be a value from 0 to 3}}
58651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld1q_lane_s64(addr, big, 2); // expected-error {{argument should be a value from 0 to 1}}
59651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
60651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s8(addr, small, 7);
61651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s16(addr, small, 3);
62651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s32(addr, small, 1);
63651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s64(addr, small, 0);
64651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
65651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s8(addr, big, 15);
66651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s16(addr, big, 7);
67651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s32(addr, big, 3);
68651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s64(addr, big, 1);
69651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
70651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s8(addr, small, 8); // expected-error {{argument should be a value from 0 to 7}}
71651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s16(addr, small, 4); // expected-error {{argument should be a value from 0 to 3}}
72651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s32(addr, small, 2); // expected-error {{argument should be a value from 0 to 1}}
73651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1_lane_s64(addr, small, 1); // expected-error {{argument should be a value from 0 to 0}}
74651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
75651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s8(addr, big, 16); // expected-error {{argument should be a value from 0 to 15}}
76651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s16(addr, big, 8); // expected-error {{argument should be a value from 0 to 7}}
77651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s32(addr, big, 4); // expected-error {{argument should be a value from 0 to 3}}
78651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst1q_lane_s64(addr, big, 2); // expected-error {{argument should be a value from 0 to 1}}
79651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}
80651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
81651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test_ld2st2(int8x8x2_t small8, int8x16x2_t big8,
82651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int16x4x2_t small16, int16x8x2_t big16,
83651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int32x2x2_t small32, int32x4x2_t big32,
84651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int64x1x2_t small64, int64x2x2_t big64,
85651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 void *addr) {
86651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s8(addr, small8, 7);
87651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s16(addr, small16, 3);
88651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s32(addr, small32, 1);
89651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s64(addr, small64, 0);
90651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
91651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s8(addr, big8, 15);
92651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s16(addr, big16, 7);
93651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s32(addr, big32, 3);
94651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s64(addr, big64, 1);
95651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
96651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}}
97651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}}
98651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}}
99651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}}
100651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
101651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}}
102651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}}
103651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}}
104651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld2q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}}
105651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
106651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s8(addr, small8, 7);
107651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s16(addr, small16, 3);
108651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s32(addr, small32, 1);
109651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s64(addr, small64, 0);
110651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
111651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s8(addr, big8, 15);
112651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s16(addr, big16, 7);
113651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s32(addr, big32, 3);
114651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s64(addr, big64, 1);
115651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
116651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}}
117651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}}
118651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}}
119651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}}
120651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
121651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}}
122651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}}
123651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}}
124651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst2q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}}
125651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}
126651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
127651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test_ld3st3(int8x8x3_t small8, int8x16x3_t big8,
128651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int16x4x3_t small16, int16x8x3_t big16,
129651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int32x2x3_t small32, int32x4x3_t big32,
130651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int64x1x3_t small64, int64x2x3_t big64,
131651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 void *addr) {
132651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s8(addr, small8, 7);
133651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s16(addr, small16, 3);
134651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s32(addr, small32, 1);
135651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s64(addr, small64, 0);
136651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
137651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s8(addr, big8, 15);
138651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s16(addr, big16, 7);
139651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s32(addr, big32, 3);
140651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s64(addr, big64, 1);
141651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
142651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}}
143651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}}
144651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}}
145651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}}
146651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
147651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}}
148651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}}
149651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}}
150651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld3q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}}
151651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
152651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s8(addr, small8, 7);
153651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s16(addr, small16, 3);
154651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s32(addr, small32, 1);
155651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s64(addr, small64, 0);
156651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
157651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s8(addr, big8, 15);
158651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s16(addr, big16, 7);
159651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s32(addr, big32, 3);
160651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s64(addr, big64, 1);
161651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
162651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}}
163651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}}
164651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}}
165651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}}
166651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
167651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}}
168651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}}
169651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}}
170651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst3q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}}
171651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}
172651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
173651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test_ld4st4(int8x8x4_t small8, int8x16x4_t big8,
174651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int16x4x4_t small16, int16x8x4_t big16,
175651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int32x2x4_t small32, int32x4x4_t big32,
176651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 int64x1x4_t small64, int64x2x4_t big64,
177651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines                 void *addr) {
178651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s8(addr, small8, 7);
179651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s16(addr, small16, 3);
180651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s32(addr, small32, 1);
181651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s64(addr, small64, 0);
182651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
183651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s8(addr, big8, 15);
184651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s16(addr, big16, 7);
185651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s32(addr, big32, 3);
186651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s64(addr, big64, 1);
187651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
188651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}}
189651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}}
190651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}}
191651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}}
192651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
193651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}}
194651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}}
195651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}}
196651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vld4q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}}
197651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
198651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s8(addr, small8, 7);
199651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s16(addr, small16, 3);
200651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s32(addr, small32, 1);
201651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s64(addr, small64, 0);
202651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
203651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s8(addr, big8, 15);
204651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s16(addr, big16, 7);
205651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s32(addr, big32, 3);
206651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s64(addr, big64, 1);
207651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
208651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s8(addr, small8, 8); // expected-error {{argument should be a value from 0 to 7}}
209651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s16(addr, small16, 4); // expected-error {{argument should be a value from 0 to 3}}
210651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s32(addr, small32, 2); // expected-error {{argument should be a value from 0 to 1}}
211651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4_lane_s64(addr, small64, 1); // expected-error {{argument should be a value from 0 to 0}}
212651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
213651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s8(addr, big8, 16); // expected-error {{argument should be a value from 0 to 15}}
214651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s16(addr, big16, 8); // expected-error {{argument should be a value from 0 to 7}}
215651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s32(addr, big32, 4); // expected-error {{argument should be a value from 0 to 3}}
216651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  vst4q_lane_s64(addr, big64, 2); // expected-error {{argument should be a value from 0 to 1}}
217651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}
218651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
219