Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGen / aarch64-sve-intrinsics / acle_sve_ptrue.c
blobddd35a1ef4872ba5495ea4dcdd3389ce7639cedf
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 +sve -S -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s
4 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK
5 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -S -disable-O0-optnone -Werror -o /dev/null %s
6 #include <arm_sve.h>
8 // CHECK-LABEL: @test_svptrue_b8(
9 // CHECK-NEXT: entry:
10 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)
11 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
13 // CPP-CHECK-LABEL: @_Z15test_svptrue_b8v(
14 // CPP-CHECK-NEXT: entry:
15 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)
16 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
18 svbool_t test_svptrue_b8()
20 return svptrue_b8();
23 // CHECK-LABEL: @test_svptrue_b16(
24 // CHECK-NEXT: entry:
25 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 31)
26 // CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])
27 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
29 // CPP-CHECK-LABEL: @_Z16test_svptrue_b16v(
30 // CPP-CHECK-NEXT: entry:
31 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 31)
32 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])
33 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
35 svbool_t test_svptrue_b16()
37 return svptrue_b16();
40 // CHECK-LABEL: @test_svptrue_b32(
41 // CHECK-NEXT: entry:
42 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 31)
43 // CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])
44 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
46 // CPP-CHECK-LABEL: @_Z16test_svptrue_b32v(
47 // CPP-CHECK-NEXT: entry:
48 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 31)
49 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])
50 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
52 svbool_t test_svptrue_b32()
54 return svptrue_b32();
57 // CHECK-LABEL: @test_svptrue_b64(
58 // CHECK-NEXT: entry:
59 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31)
60 // CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])
61 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
63 // CPP-CHECK-LABEL: @_Z16test_svptrue_b64v(
64 // CPP-CHECK-NEXT: entry:
65 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31)
66 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])
67 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
69 svbool_t test_svptrue_b64()
71 return svptrue_b64();
74 // CHECK-LABEL: @test_svptrue_pat_b8(
75 // CHECK-NEXT: entry:
76 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 0)
77 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
79 // CPP-CHECK-LABEL: @_Z19test_svptrue_pat_b8v(
80 // CPP-CHECK-NEXT: entry:
81 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 0)
82 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
84 svbool_t test_svptrue_pat_b8()
86 return svptrue_pat_b8(SV_POW2);
89 // CHECK-LABEL: @test_svptrue_pat_b8_1(
90 // CHECK-NEXT: entry:
91 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 1)
92 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
94 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_1v(
95 // CPP-CHECK-NEXT: entry:
96 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 1)
97 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
99 svbool_t test_svptrue_pat_b8_1()
101 return svptrue_pat_b8(SV_VL1);
104 // CHECK-LABEL: @test_svptrue_pat_b8_2(
105 // CHECK-NEXT: entry:
106 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 2)
107 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
109 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_2v(
110 // CPP-CHECK-NEXT: entry:
111 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 2)
112 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
114 svbool_t test_svptrue_pat_b8_2()
116 return svptrue_pat_b8(SV_VL2);
119 // CHECK-LABEL: @test_svptrue_pat_b8_3(
120 // CHECK-NEXT: entry:
121 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 3)
122 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
124 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_3v(
125 // CPP-CHECK-NEXT: entry:
126 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 3)
127 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
129 svbool_t test_svptrue_pat_b8_3()
131 return svptrue_pat_b8(SV_VL3);
134 // CHECK-LABEL: @test_svptrue_pat_b8_4(
135 // CHECK-NEXT: entry:
136 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 4)
137 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
139 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_4v(
140 // CPP-CHECK-NEXT: entry:
141 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 4)
142 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
144 svbool_t test_svptrue_pat_b8_4()
146 return svptrue_pat_b8(SV_VL4);
149 // CHECK-LABEL: @test_svptrue_pat_b8_5(
150 // CHECK-NEXT: entry:
151 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 5)
152 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
154 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_5v(
155 // CPP-CHECK-NEXT: entry:
156 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 5)
157 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
159 svbool_t test_svptrue_pat_b8_5()
161 return svptrue_pat_b8(SV_VL5);
164 // CHECK-LABEL: @test_svptrue_pat_b8_6(
165 // CHECK-NEXT: entry:
166 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 6)
167 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
169 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_6v(
170 // CPP-CHECK-NEXT: entry:
171 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 6)
172 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
174 svbool_t test_svptrue_pat_b8_6()
176 return svptrue_pat_b8(SV_VL6);
179 // CHECK-LABEL: @test_svptrue_pat_b8_7(
180 // CHECK-NEXT: entry:
181 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 7)
182 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
184 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_7v(
185 // CPP-CHECK-NEXT: entry:
186 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 7)
187 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
189 svbool_t test_svptrue_pat_b8_7()
191 return svptrue_pat_b8(SV_VL7);
194 // CHECK-LABEL: @test_svptrue_pat_b8_8(
195 // CHECK-NEXT: entry:
196 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 8)
197 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
199 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_8v(
200 // CPP-CHECK-NEXT: entry:
201 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 8)
202 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
204 svbool_t test_svptrue_pat_b8_8()
206 return svptrue_pat_b8(SV_VL8);
209 // CHECK-LABEL: @test_svptrue_pat_b8_9(
210 // CHECK-NEXT: entry:
211 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 9)
212 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
214 // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_9v(
215 // CPP-CHECK-NEXT: entry:
216 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 9)
217 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
219 svbool_t test_svptrue_pat_b8_9()
221 return svptrue_pat_b8(SV_VL16);
224 // CHECK-LABEL: @test_svptrue_pat_b8_10(
225 // CHECK-NEXT: entry:
226 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 10)
227 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
229 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_10v(
230 // CPP-CHECK-NEXT: entry:
231 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 10)
232 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
234 svbool_t test_svptrue_pat_b8_10()
236 return svptrue_pat_b8(SV_VL32);
239 // CHECK-LABEL: @test_svptrue_pat_b8_11(
240 // CHECK-NEXT: entry:
241 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 11)
242 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
244 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_11v(
245 // CPP-CHECK-NEXT: entry:
246 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 11)
247 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
249 svbool_t test_svptrue_pat_b8_11()
251 return svptrue_pat_b8(SV_VL64);
254 // CHECK-LABEL: @test_svptrue_pat_b8_12(
255 // CHECK-NEXT: entry:
256 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 12)
257 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
259 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_12v(
260 // CPP-CHECK-NEXT: entry:
261 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 12)
262 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
264 svbool_t test_svptrue_pat_b8_12()
266 return svptrue_pat_b8(SV_VL128);
269 // CHECK-LABEL: @test_svptrue_pat_b8_13(
270 // CHECK-NEXT: entry:
271 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 13)
272 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
274 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_13v(
275 // CPP-CHECK-NEXT: entry:
276 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 13)
277 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
279 svbool_t test_svptrue_pat_b8_13()
281 return svptrue_pat_b8(SV_VL256);
284 // CHECK-LABEL: @test_svptrue_pat_b8_14(
285 // CHECK-NEXT: entry:
286 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 29)
287 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
289 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_14v(
290 // CPP-CHECK-NEXT: entry:
291 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 29)
292 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
294 svbool_t test_svptrue_pat_b8_14()
296 return svptrue_pat_b8(SV_MUL4);
299 // CHECK-LABEL: @test_svptrue_pat_b8_15(
300 // CHECK-NEXT: entry:
301 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 30)
302 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
304 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_15v(
305 // CPP-CHECK-NEXT: entry:
306 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 30)
307 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
309 svbool_t test_svptrue_pat_b8_15()
311 return svptrue_pat_b8(SV_MUL3);
314 // CHECK-LABEL: @test_svptrue_pat_b8_16(
315 // CHECK-NEXT: entry:
316 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)
317 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
319 // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_16v(
320 // CPP-CHECK-NEXT: entry:
321 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)
322 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]]
324 svbool_t test_svptrue_pat_b8_16()
326 return svptrue_pat_b8(SV_ALL);
329 // CHECK-LABEL: @test_svptrue_pat_b16(
330 // CHECK-NEXT: entry:
331 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 0)
332 // CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])
333 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
335 // CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b16v(
336 // CPP-CHECK-NEXT: entry:
337 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 0)
338 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])
339 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
341 svbool_t test_svptrue_pat_b16()
343 return svptrue_pat_b16(SV_POW2);
346 // CHECK-LABEL: @test_svptrue_pat_b32(
347 // CHECK-NEXT: entry:
348 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 1)
349 // CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])
350 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
352 // CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b32v(
353 // CPP-CHECK-NEXT: entry:
354 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 1)
355 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])
356 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
358 svbool_t test_svptrue_pat_b32()
360 return svptrue_pat_b32(SV_VL1);
363 // CHECK-LABEL: @test_svptrue_pat_b64(
364 // CHECK-NEXT: entry:
365 // CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 2)
366 // CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])
367 // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
369 // CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b64v(
370 // CPP-CHECK-NEXT: entry:
371 // CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 2)
372 // CPP-CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])
373 // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]]
375 svbool_t test_svptrue_pat_b64()
377 return svptrue_pat_b64(SV_VL2);