1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
2 // REQUIRES: aarch64-registered-target
3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
4 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
5 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
6 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
7 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
10 #ifdef SVE_OVERLOADED_FORMS
11 // A simple used,unused... macro, long enough to represent any SVE builtin.
12 #define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
14 #define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
20 // CHECK-LABEL: @test_svaddqv_s8(
22 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.addqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
23 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
25 // CPP-CHECK-LABEL: @_Z15test_svaddqv_s8u10__SVBool_tu10__SVInt8_t(
26 // CPP-CHECK-NEXT: entry:
27 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.addqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
28 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
30 int8x16_t
test_svaddqv_s8(svbool_t pg
, svint8_t op1
) {
31 return SVE_ACLE_FUNC(svaddqv
,_s8
,,)(pg
, op1
);
34 // CHECK-LABEL: @test_svaddqv_s16(
36 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
37 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.addqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
38 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
40 // CPP-CHECK-LABEL: @_Z16test_svaddqv_s16u10__SVBool_tu11__SVInt16_t(
41 // CPP-CHECK-NEXT: entry:
42 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
43 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.addqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
44 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
46 int16x8_t
test_svaddqv_s16(svbool_t pg
, svint16_t op1
) {
47 return SVE_ACLE_FUNC(svaddqv
,_s16
,,)(pg
, op1
);
50 // CHECK-LABEL: @test_svaddqv_s32(
52 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
53 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.addqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
54 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
56 // CPP-CHECK-LABEL: @_Z16test_svaddqv_s32u10__SVBool_tu11__SVInt32_t(
57 // CPP-CHECK-NEXT: entry:
58 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
59 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.addqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
60 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
62 int32x4_t
test_svaddqv_s32(svbool_t pg
, svint32_t op1
) {
63 return SVE_ACLE_FUNC(svaddqv
,_s32
,,)(pg
, op1
);
66 // CHECK-LABEL: @test_svaddqv_s64(
68 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
69 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.addqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
70 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
72 // CPP-CHECK-LABEL: @_Z16test_svaddqv_s64u10__SVBool_tu11__SVInt64_t(
73 // CPP-CHECK-NEXT: entry:
74 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
75 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.addqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
76 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
78 int64x2_t
test_svaddqv_s64(svbool_t pg
, svint64_t op1
) {
79 return SVE_ACLE_FUNC(svaddqv
,_s64
,,)(pg
, op1
);
82 // CHECK-LABEL: @test_svaddqv_u8(
84 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.addqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
85 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
87 // CPP-CHECK-LABEL: @_Z15test_svaddqv_u8u10__SVBool_tu11__SVUint8_t(
88 // CPP-CHECK-NEXT: entry:
89 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.addqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
90 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
92 uint8x16_t
test_svaddqv_u8(svbool_t pg
, svuint8_t op1
) {
93 return SVE_ACLE_FUNC(svaddqv
,_u8
,,)(pg
, op1
);
96 // CHECK-LABEL: @test_svaddqv_u16(
98 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
99 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.addqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
100 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
102 // CPP-CHECK-LABEL: @_Z16test_svaddqv_u16u10__SVBool_tu12__SVUint16_t(
103 // CPP-CHECK-NEXT: entry:
104 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
105 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.addqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
106 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
108 uint16x8_t
test_svaddqv_u16(svbool_t pg
, svuint16_t op1
) {
109 return SVE_ACLE_FUNC(svaddqv
,_u16
,,)(pg
, op1
);
112 // CHECK-LABEL: @test_svaddqv_u32(
113 // CHECK-NEXT: entry:
114 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
115 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.addqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
116 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
118 // CPP-CHECK-LABEL: @_Z16test_svaddqv_u32u10__SVBool_tu12__SVUint32_t(
119 // CPP-CHECK-NEXT: entry:
120 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
121 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.addqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
122 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
124 uint32x4_t
test_svaddqv_u32(svbool_t pg
, svuint32_t op1
) {
125 return SVE_ACLE_FUNC(svaddqv
,_u32
,,)(pg
, op1
);
128 // CHECK-LABEL: @test_svaddqv_u64(
129 // CHECK-NEXT: entry:
130 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
131 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.addqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
132 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
134 // CPP-CHECK-LABEL: @_Z16test_svaddqv_u64u10__SVBool_tu12__SVUint64_t(
135 // CPP-CHECK-NEXT: entry:
136 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
137 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.addqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
138 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
140 uint64x2_t
test_svaddqv_u64(svbool_t pg
, svuint64_t op1
) {
141 return SVE_ACLE_FUNC(svaddqv
,_u64
,,)(pg
, op1
);
147 // CHECK-LABEL: @test_svandqv_s8(
148 // CHECK-NEXT: entry:
149 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.andqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
150 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
152 // CPP-CHECK-LABEL: @_Z15test_svandqv_s8u10__SVBool_tu10__SVInt8_t(
153 // CPP-CHECK-NEXT: entry:
154 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.andqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
155 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
157 int8x16_t
test_svandqv_s8(svbool_t pg
, svint8_t op1
) {
158 return SVE_ACLE_FUNC(svandqv
,_s8
,,)(pg
, op1
);
161 // CHECK-LABEL: @test_svandqv_s16(
162 // CHECK-NEXT: entry:
163 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
164 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.andqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
165 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
167 // CPP-CHECK-LABEL: @_Z16test_svandqv_s16u10__SVBool_tu11__SVInt16_t(
168 // CPP-CHECK-NEXT: entry:
169 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
170 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.andqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
171 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
173 int16x8_t
test_svandqv_s16(svbool_t pg
, svint16_t op1
) {
174 return SVE_ACLE_FUNC(svandqv
,_s16
,,)(pg
, op1
);
177 // CHECK-LABEL: @test_svandqv_s32(
178 // CHECK-NEXT: entry:
179 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
180 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.andqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
181 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
183 // CPP-CHECK-LABEL: @_Z16test_svandqv_s32u10__SVBool_tu11__SVInt32_t(
184 // CPP-CHECK-NEXT: entry:
185 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
186 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.andqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
187 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
189 int32x4_t
test_svandqv_s32(svbool_t pg
, svint32_t op1
) {
190 return SVE_ACLE_FUNC(svandqv
,_s32
,,)(pg
, op1
);
193 // CHECK-LABEL: @test_svandqv_s64(
194 // CHECK-NEXT: entry:
195 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
196 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.andqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
197 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
199 // CPP-CHECK-LABEL: @_Z16test_svandqv_s64u10__SVBool_tu11__SVInt64_t(
200 // CPP-CHECK-NEXT: entry:
201 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
202 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.andqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
203 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
205 int64x2_t
test_svandqv_s64(svbool_t pg
, svint64_t op1
) {
206 return SVE_ACLE_FUNC(svandqv
,_s64
,,)(pg
, op1
);
209 // CHECK-LABEL: @test_svandqv_u8(
210 // CHECK-NEXT: entry:
211 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.andqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
212 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
214 // CPP-CHECK-LABEL: @_Z15test_svandqv_u8u10__SVBool_tu11__SVUint8_t(
215 // CPP-CHECK-NEXT: entry:
216 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.andqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
217 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
219 uint8x16_t
test_svandqv_u8(svbool_t pg
, svuint8_t op1
) {
220 return SVE_ACLE_FUNC(svandqv
,_u8
,,)(pg
, op1
);
223 // CHECK-LABEL: @test_svandqv_u16(
224 // CHECK-NEXT: entry:
225 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
226 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.andqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
227 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
229 // CPP-CHECK-LABEL: @_Z16test_svandqv_u16u10__SVBool_tu12__SVUint16_t(
230 // CPP-CHECK-NEXT: entry:
231 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
232 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.andqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
233 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
235 uint16x8_t
test_svandqv_u16(svbool_t pg
, svuint16_t op1
) {
236 return SVE_ACLE_FUNC(svandqv
,_u16
,,)(pg
, op1
);
239 // CHECK-LABEL: @test_svandqv_u32(
240 // CHECK-NEXT: entry:
241 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
242 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.andqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
243 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
245 // CPP-CHECK-LABEL: @_Z16test_svandqv_u32u10__SVBool_tu12__SVUint32_t(
246 // CPP-CHECK-NEXT: entry:
247 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
248 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.andqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
249 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
251 uint32x4_t
test_svandqv_u32(svbool_t pg
, svuint32_t op1
) {
252 return SVE_ACLE_FUNC(svandqv
,_u32
,,)(pg
, op1
);
255 // CHECK-LABEL: @test_svandqv_u64(
256 // CHECK-NEXT: entry:
257 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
258 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.andqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
259 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
261 // CPP-CHECK-LABEL: @_Z16test_svandqv_u64u10__SVBool_tu12__SVUint64_t(
262 // CPP-CHECK-NEXT: entry:
263 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
264 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.andqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
265 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
267 uint64x2_t
test_svandqv_u64(svbool_t pg
, svuint64_t op1
) {
268 return SVE_ACLE_FUNC(svandqv
,_u64
,,)(pg
, op1
);
274 // CHECK-LABEL: @test_sveorqv_s8(
275 // CHECK-NEXT: entry:
276 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.eorqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
277 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
279 // CPP-CHECK-LABEL: @_Z15test_sveorqv_s8u10__SVBool_tu10__SVInt8_t(
280 // CPP-CHECK-NEXT: entry:
281 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.eorqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
282 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
284 int8x16_t
test_sveorqv_s8(svbool_t pg
, svint8_t op1
) {
285 return SVE_ACLE_FUNC(sveorqv
,_s8
,,)(pg
, op1
);
288 // CHECK-LABEL: @test_sveorqv_s16(
289 // CHECK-NEXT: entry:
290 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
291 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.eorqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
292 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
294 // CPP-CHECK-LABEL: @_Z16test_sveorqv_s16u10__SVBool_tu11__SVInt16_t(
295 // CPP-CHECK-NEXT: entry:
296 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
297 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.eorqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
298 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
300 int16x8_t
test_sveorqv_s16(svbool_t pg
, svint16_t op1
) {
301 return SVE_ACLE_FUNC(sveorqv
,_s16
,,)(pg
, op1
);
304 // CHECK-LABEL: @test_sveorqv_s32(
305 // CHECK-NEXT: entry:
306 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
307 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.eorqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
308 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
310 // CPP-CHECK-LABEL: @_Z16test_sveorqv_s32u10__SVBool_tu11__SVInt32_t(
311 // CPP-CHECK-NEXT: entry:
312 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
313 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.eorqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
314 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
316 int32x4_t
test_sveorqv_s32(svbool_t pg
, svint32_t op1
) {
317 return SVE_ACLE_FUNC(sveorqv
,_s32
,,)(pg
, op1
);
320 // CHECK-LABEL: @test_sveorqv_s64(
321 // CHECK-NEXT: entry:
322 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
323 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.eorqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
324 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
326 // CPP-CHECK-LABEL: @_Z16test_sveorqv_s64u10__SVBool_tu11__SVInt64_t(
327 // CPP-CHECK-NEXT: entry:
328 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
329 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.eorqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
330 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
332 int64x2_t
test_sveorqv_s64(svbool_t pg
, svint64_t op1
) {
333 return SVE_ACLE_FUNC(sveorqv
,_s64
,,)(pg
, op1
);
336 // CHECK-LABEL: @test_sveorqv_u8(
337 // CHECK-NEXT: entry:
338 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.eorqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
339 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
341 // CPP-CHECK-LABEL: @_Z15test_sveorqv_u8u10__SVBool_tu11__SVUint8_t(
342 // CPP-CHECK-NEXT: entry:
343 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.eorqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
344 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
346 uint8x16_t
test_sveorqv_u8(svbool_t pg
, svuint8_t op1
) {
347 return SVE_ACLE_FUNC(sveorqv
,_u8
,,)(pg
, op1
);
350 // CHECK-LABEL: @test_sveorqv_u16(
351 // CHECK-NEXT: entry:
352 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
353 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.eorqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
354 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
356 // CPP-CHECK-LABEL: @_Z16test_sveorqv_u16u10__SVBool_tu12__SVUint16_t(
357 // CPP-CHECK-NEXT: entry:
358 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
359 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.eorqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
360 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
362 uint16x8_t
test_sveorqv_u16(svbool_t pg
, svuint16_t op1
) {
363 return SVE_ACLE_FUNC(sveorqv
,_u16
,,)(pg
, op1
);
366 // CHECK-LABEL: @test_sveorqv_u32(
367 // CHECK-NEXT: entry:
368 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
369 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.eorqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
370 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
372 // CPP-CHECK-LABEL: @_Z16test_sveorqv_u32u10__SVBool_tu12__SVUint32_t(
373 // CPP-CHECK-NEXT: entry:
374 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
375 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.eorqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
376 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
378 uint32x4_t
test_sveorqv_u32(svbool_t pg
, svuint32_t op1
) {
379 return SVE_ACLE_FUNC(sveorqv
,_u32
,,)(pg
, op1
);
382 // CHECK-LABEL: @test_sveorqv_u64(
383 // CHECK-NEXT: entry:
384 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
385 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.eorqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
386 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
388 // CPP-CHECK-LABEL: @_Z16test_sveorqv_u64u10__SVBool_tu12__SVUint64_t(
389 // CPP-CHECK-NEXT: entry:
390 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
391 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.eorqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
392 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
394 uint64x2_t
test_sveorqv_u64(svbool_t pg
, svuint64_t op1
) {
395 return SVE_ACLE_FUNC(sveorqv
,_u64
,,)(pg
, op1
);
401 // CHECK-LABEL: @test_svorqv_s8(
402 // CHECK-NEXT: entry:
403 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.orqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
404 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
406 // CPP-CHECK-LABEL: @_Z14test_svorqv_s8u10__SVBool_tu10__SVInt8_t(
407 // CPP-CHECK-NEXT: entry:
408 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.orqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
409 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
411 int8x16_t
test_svorqv_s8(svbool_t pg
, svint8_t op1
) {
412 return SVE_ACLE_FUNC(svorqv
,_s8
,,)(pg
, op1
);
415 // CHECK-LABEL: @test_svorqv_s16(
416 // CHECK-NEXT: entry:
417 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
418 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.orqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
419 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
421 // CPP-CHECK-LABEL: @_Z15test_svorqv_s16u10__SVBool_tu11__SVInt16_t(
422 // CPP-CHECK-NEXT: entry:
423 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
424 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.orqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
425 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
427 int16x8_t
test_svorqv_s16(svbool_t pg
, svint16_t op1
) {
428 return SVE_ACLE_FUNC(svorqv
,_s16
,,)(pg
, op1
);
431 // CHECK-LABEL: @test_svorqv_s32(
432 // CHECK-NEXT: entry:
433 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
434 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.orqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
435 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
437 // CPP-CHECK-LABEL: @_Z15test_svorqv_s32u10__SVBool_tu11__SVInt32_t(
438 // CPP-CHECK-NEXT: entry:
439 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
440 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.orqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
441 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
443 int32x4_t
test_svorqv_s32(svbool_t pg
, svint32_t op1
) {
444 return SVE_ACLE_FUNC(svorqv
,_s32
,,)(pg
, op1
);
447 // CHECK-LABEL: @test_svorqv_s64(
448 // CHECK-NEXT: entry:
449 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
450 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.orqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
451 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
453 // CPP-CHECK-LABEL: @_Z15test_svorqv_s64u10__SVBool_tu11__SVInt64_t(
454 // CPP-CHECK-NEXT: entry:
455 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
456 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.orqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
457 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
459 int64x2_t
test_svorqv_s64(svbool_t pg
, svint64_t op1
) {
460 return SVE_ACLE_FUNC(svorqv
,_s64
,,)(pg
, op1
);
463 // CHECK-LABEL: @test_svorqv_u8(
464 // CHECK-NEXT: entry:
465 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.orqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
466 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
468 // CPP-CHECK-LABEL: @_Z14test_svorqv_u8u10__SVBool_tu11__SVUint8_t(
469 // CPP-CHECK-NEXT: entry:
470 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.orqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
471 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
473 uint8x16_t
test_svorqv_u8(svbool_t pg
, svuint8_t op1
) {
474 return SVE_ACLE_FUNC(svorqv
,_u8
,,)(pg
, op1
);
477 // CHECK-LABEL: @test_svorqv_u16(
478 // CHECK-NEXT: entry:
479 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
480 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.orqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
481 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
483 // CPP-CHECK-LABEL: @_Z15test_svorqv_u16u10__SVBool_tu12__SVUint16_t(
484 // CPP-CHECK-NEXT: entry:
485 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
486 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.orqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
487 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
489 uint16x8_t
test_svorqv_u16(svbool_t pg
, svuint16_t op1
) {
490 return SVE_ACLE_FUNC(svorqv
,_u16
,,)(pg
, op1
);
493 // CHECK-LABEL: @test_svorqv_u32(
494 // CHECK-NEXT: entry:
495 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
496 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.orqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
497 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
499 // CPP-CHECK-LABEL: @_Z15test_svorqv_u32u10__SVBool_tu12__SVUint32_t(
500 // CPP-CHECK-NEXT: entry:
501 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
502 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.orqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
503 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
505 uint32x4_t
test_svorqv_u32(svbool_t pg
, svuint32_t op1
) {
506 return SVE_ACLE_FUNC(svorqv
,_u32
,,)(pg
, op1
);
509 // CHECK-LABEL: @test_svorqv_u64(
510 // CHECK-NEXT: entry:
511 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
512 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.orqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
513 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
515 // CPP-CHECK-LABEL: @_Z15test_svorqv_u64u10__SVBool_tu12__SVUint64_t(
516 // CPP-CHECK-NEXT: entry:
517 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
518 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.orqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
519 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
521 uint64x2_t
test_svorqv_u64(svbool_t pg
, svuint64_t op1
) {
522 return SVE_ACLE_FUNC(svorqv
,_u64
,,)(pg
, op1
);
528 // CHECK-LABEL: @test_svmaxqv_s8(
529 // CHECK-NEXT: entry:
530 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.smaxqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
531 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
533 // CPP-CHECK-LABEL: @_Z15test_svmaxqv_s8u10__SVBool_tu10__SVInt8_t(
534 // CPP-CHECK-NEXT: entry:
535 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.smaxqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
536 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
538 int8x16_t
test_svmaxqv_s8(svbool_t pg
, svint8_t op1
) {
539 return SVE_ACLE_FUNC(svmaxqv
,_s8
,,)(pg
, op1
);
542 // CHECK-LABEL: @test_svmaxqv_s16(
543 // CHECK-NEXT: entry:
544 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
545 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.smaxqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
546 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
548 // CPP-CHECK-LABEL: @_Z16test_svmaxqv_s16u10__SVBool_tu11__SVInt16_t(
549 // CPP-CHECK-NEXT: entry:
550 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
551 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.smaxqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
552 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
554 int16x8_t
test_svmaxqv_s16(svbool_t pg
, svint16_t op1
) {
555 return SVE_ACLE_FUNC(svmaxqv
,_s16
,,)(pg
, op1
);
558 // CHECK-LABEL: @test_svmaxqv_s32(
559 // CHECK-NEXT: entry:
560 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
561 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.smaxqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
562 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
564 // CPP-CHECK-LABEL: @_Z16test_svmaxqv_s32u10__SVBool_tu11__SVInt32_t(
565 // CPP-CHECK-NEXT: entry:
566 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
567 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.smaxqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
568 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
570 int32x4_t
test_svmaxqv_s32(svbool_t pg
, svint32_t op1
) {
571 return SVE_ACLE_FUNC(svmaxqv
,_s32
,,)(pg
, op1
);
574 // CHECK-LABEL: @test_svmaxqv_s64(
575 // CHECK-NEXT: entry:
576 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
577 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.smaxqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
578 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
580 // CPP-CHECK-LABEL: @_Z16test_svmaxqv_s64u10__SVBool_tu11__SVInt64_t(
581 // CPP-CHECK-NEXT: entry:
582 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
583 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.smaxqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
584 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
586 int64x2_t
test_svmaxqv_s64(svbool_t pg
, svint64_t op1
) {
587 return SVE_ACLE_FUNC(svmaxqv
,_s64
,,)(pg
, op1
);
593 // CHECK-LABEL: @test_svmaxqv_u8(
594 // CHECK-NEXT: entry:
595 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.umaxqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
596 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
598 // CPP-CHECK-LABEL: @_Z15test_svmaxqv_u8u10__SVBool_tu11__SVUint8_t(
599 // CPP-CHECK-NEXT: entry:
600 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.umaxqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
601 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
603 uint8x16_t
test_svmaxqv_u8(svbool_t pg
, svuint8_t op1
) {
604 return SVE_ACLE_FUNC(svmaxqv
,_u8
,,)(pg
, op1
);
607 // CHECK-LABEL: @test_svmaxqv_u16(
608 // CHECK-NEXT: entry:
609 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
610 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.umaxqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
611 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
613 // CPP-CHECK-LABEL: @_Z16test_svmaxqv_u16u10__SVBool_tu12__SVUint16_t(
614 // CPP-CHECK-NEXT: entry:
615 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
616 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.umaxqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
617 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
619 uint16x8_t
test_svmaxqv_u16(svbool_t pg
, svuint16_t op1
) {
620 return SVE_ACLE_FUNC(svmaxqv
,_u16
,,)(pg
, op1
);
623 // CHECK-LABEL: @test_svmaxqv_u32(
624 // CHECK-NEXT: entry:
625 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
626 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.umaxqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
627 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
629 // CPP-CHECK-LABEL: @_Z16test_svmaxqv_u32u10__SVBool_tu12__SVUint32_t(
630 // CPP-CHECK-NEXT: entry:
631 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
632 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.umaxqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
633 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
635 uint32x4_t
test_svmaxqv_u32(svbool_t pg
, svuint32_t op1
) {
636 return SVE_ACLE_FUNC(svmaxqv
,_u32
,,)(pg
, op1
);
639 // CHECK-LABEL: @test_svmaxqv_u64(
640 // CHECK-NEXT: entry:
641 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
642 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.umaxqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
643 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
645 // CPP-CHECK-LABEL: @_Z16test_svmaxqv_u64u10__SVBool_tu12__SVUint64_t(
646 // CPP-CHECK-NEXT: entry:
647 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
648 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.umaxqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
649 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
651 uint64x2_t
test_svmaxqv_u64(svbool_t pg
, svuint64_t op1
) {
652 return SVE_ACLE_FUNC(svmaxqv
,_u64
,,)(pg
, op1
);
658 // CHECK-LABEL: @test_svminqv_s8(
659 // CHECK-NEXT: entry:
660 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.sminqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
661 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
663 // CPP-CHECK-LABEL: @_Z15test_svminqv_s8u10__SVBool_tu10__SVInt8_t(
664 // CPP-CHECK-NEXT: entry:
665 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.sminqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
666 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
668 int8x16_t
test_svminqv_s8(svbool_t pg
, svint8_t op1
) {
669 return SVE_ACLE_FUNC(svminqv
,_s8
,,)(pg
, op1
);
672 // CHECK-LABEL: @test_svminqv_s16(
673 // CHECK-NEXT: entry:
674 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
675 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.sminqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
676 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
678 // CPP-CHECK-LABEL: @_Z16test_svminqv_s16u10__SVBool_tu11__SVInt16_t(
679 // CPP-CHECK-NEXT: entry:
680 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
681 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.sminqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
682 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
684 int16x8_t
test_svminqv_s16(svbool_t pg
, svint16_t op1
) {
685 return SVE_ACLE_FUNC(svminqv
,_s16
,,)(pg
, op1
);
688 // CHECK-LABEL: @test_svminqv_s32(
689 // CHECK-NEXT: entry:
690 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
691 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.sminqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
692 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
694 // CPP-CHECK-LABEL: @_Z16test_svminqv_s32u10__SVBool_tu11__SVInt32_t(
695 // CPP-CHECK-NEXT: entry:
696 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
697 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.sminqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
698 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
700 int32x4_t
test_svminqv_s32(svbool_t pg
, svint32_t op1
) {
701 return SVE_ACLE_FUNC(svminqv
,_s32
,,)(pg
, op1
);
704 // CHECK-LABEL: @test_svminqv_s64(
705 // CHECK-NEXT: entry:
706 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
707 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.sminqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
708 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
710 // CPP-CHECK-LABEL: @_Z16test_svminqv_s64u10__SVBool_tu11__SVInt64_t(
711 // CPP-CHECK-NEXT: entry:
712 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
713 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.sminqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
714 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
716 int64x2_t
test_svminqv_s64(svbool_t pg
, svint64_t op1
) {
717 return SVE_ACLE_FUNC(svminqv
,_s64
,,)(pg
, op1
);
723 // CHECK-LABEL: @test_svminqv_u8(
724 // CHECK-NEXT: entry:
725 // CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.uminqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
726 // CHECK-NEXT: ret <16 x i8> [[TMP0]]
728 // CPP-CHECK-LABEL: @_Z15test_svminqv_u8u10__SVBool_tu11__SVUint8_t(
729 // CPP-CHECK-NEXT: entry:
730 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <16 x i8> @llvm.aarch64.sve.uminqv.v16i8.nxv16i8(<vscale x 16 x i1> [[PG:%.*]], <vscale x 16 x i8> [[OP1:%.*]])
731 // CPP-CHECK-NEXT: ret <16 x i8> [[TMP0]]
733 uint8x16_t
test_svminqv_u8(svbool_t pg
, svuint8_t op1
) {
734 return SVE_ACLE_FUNC(svminqv
,_u8
,,)(pg
, op1
);
737 // CHECK-LABEL: @test_svminqv_u16(
738 // CHECK-NEXT: entry:
739 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
740 // CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.uminqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
741 // CHECK-NEXT: ret <8 x i16> [[TMP1]]
743 // CPP-CHECK-LABEL: @_Z16test_svminqv_u16u10__SVBool_tu12__SVUint16_t(
744 // CPP-CHECK-NEXT: entry:
745 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PG:%.*]])
746 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <8 x i16> @llvm.aarch64.sve.uminqv.v8i16.nxv8i16(<vscale x 8 x i1> [[TMP0]], <vscale x 8 x i16> [[OP1:%.*]])
747 // CPP-CHECK-NEXT: ret <8 x i16> [[TMP1]]
749 uint16x8_t
test_svminqv_u16(svbool_t pg
, svuint16_t op1
) {
750 return SVE_ACLE_FUNC(svminqv
,_u16
,,)(pg
, op1
);
753 // CHECK-LABEL: @test_svminqv_u32(
754 // CHECK-NEXT: entry:
755 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
756 // CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.uminqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
757 // CHECK-NEXT: ret <4 x i32> [[TMP1]]
759 // CPP-CHECK-LABEL: @_Z16test_svminqv_u32u10__SVBool_tu12__SVUint32_t(
760 // CPP-CHECK-NEXT: entry:
761 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PG:%.*]])
762 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <4 x i32> @llvm.aarch64.sve.uminqv.v4i32.nxv4i32(<vscale x 4 x i1> [[TMP0]], <vscale x 4 x i32> [[OP1:%.*]])
763 // CPP-CHECK-NEXT: ret <4 x i32> [[TMP1]]
765 uint32x4_t
test_svminqv_u32(svbool_t pg
, svuint32_t op1
) {
766 return SVE_ACLE_FUNC(svminqv
,_u32
,,)(pg
, op1
);
769 // CHECK-LABEL: @test_svminqv_u64(
770 // CHECK-NEXT: entry:
771 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
772 // CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.uminqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
773 // CHECK-NEXT: ret <2 x i64> [[TMP1]]
775 // CPP-CHECK-LABEL: @_Z16test_svminqv_u64u10__SVBool_tu12__SVUint64_t(
776 // CPP-CHECK-NEXT: entry:
777 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PG:%.*]])
778 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <2 x i64> @llvm.aarch64.sve.uminqv.v2i64.nxv2i64(<vscale x 2 x i1> [[TMP0]], <vscale x 2 x i64> [[OP1:%.*]])
779 // CPP-CHECK-NEXT: ret <2 x i64> [[TMP1]]
781 uint64x2_t
test_svminqv_u64(svbool_t pg
, svuint64_t op1
) {
782 return SVE_ACLE_FUNC(svminqv
,_u64
,,)(pg
, op1
);