brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.9 KiB · a16a02b Raw
387 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py2// REQUIRES: aarch64-registered-target3// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s4// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK5// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -S -disable-O0-optnone -Werror -o /dev/null %s6// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -S -disable-O0-optnone -Werror -o /dev/null %s7 8#include <arm_sve.h>9 10#if defined __ARM_FEATURE_SME11#define MODE_ATTR __arm_streaming12#else13#define MODE_ATTR14#endif15 16// CHECK-LABEL: @test_svptrue_b8(17// CHECK-NEXT:  entry:18// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)19// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]20//21// CPP-CHECK-LABEL: @_Z15test_svptrue_b8v(22// CPP-CHECK-NEXT:  entry:23// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)24// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]25//26svbool_t test_svptrue_b8(void) MODE_ATTR27{28  return svptrue_b8();29}30 31// CHECK-LABEL: @test_svptrue_b16(32// CHECK-NEXT:  entry:33// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 31)34// CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])35// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]36//37// CPP-CHECK-LABEL: @_Z16test_svptrue_b16v(38// CPP-CHECK-NEXT:  entry:39// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 31)40// CPP-CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])41// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]42//43svbool_t test_svptrue_b16(void) MODE_ATTR44{45  return svptrue_b16();46}47 48// CHECK-LABEL: @test_svptrue_b32(49// CHECK-NEXT:  entry:50// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 31)51// CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])52// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]53//54// CPP-CHECK-LABEL: @_Z16test_svptrue_b32v(55// CPP-CHECK-NEXT:  entry:56// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 31)57// CPP-CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])58// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]59//60svbool_t test_svptrue_b32(void) MODE_ATTR61{62  return svptrue_b32();63}64 65// CHECK-LABEL: @test_svptrue_b64(66// CHECK-NEXT:  entry:67// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31)68// CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])69// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]70//71// CPP-CHECK-LABEL: @_Z16test_svptrue_b64v(72// CPP-CHECK-NEXT:  entry:73// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31)74// CPP-CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])75// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]76//77svbool_t test_svptrue_b64(void) MODE_ATTR78{79  return svptrue_b64();80}81 82// CHECK-LABEL: @test_svptrue_pat_b8(83// CHECK-NEXT:  entry:84// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 0)85// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]86//87// CPP-CHECK-LABEL: @_Z19test_svptrue_pat_b8v(88// CPP-CHECK-NEXT:  entry:89// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 0)90// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]91//92svbool_t test_svptrue_pat_b8(void) MODE_ATTR93{94  return svptrue_pat_b8(SV_POW2);95}96 97// CHECK-LABEL: @test_svptrue_pat_b8_1(98// CHECK-NEXT:  entry:99// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 1)100// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]101//102// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_1v(103// CPP-CHECK-NEXT:  entry:104// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 1)105// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]106//107svbool_t test_svptrue_pat_b8_1(void) MODE_ATTR108{109  return svptrue_pat_b8(SV_VL1);110}111 112// CHECK-LABEL: @test_svptrue_pat_b8_2(113// CHECK-NEXT:  entry:114// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 2)115// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]116//117// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_2v(118// CPP-CHECK-NEXT:  entry:119// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 2)120// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]121//122svbool_t test_svptrue_pat_b8_2(void) MODE_ATTR123{124  return svptrue_pat_b8(SV_VL2);125}126 127// CHECK-LABEL: @test_svptrue_pat_b8_3(128// CHECK-NEXT:  entry:129// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 3)130// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]131//132// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_3v(133// CPP-CHECK-NEXT:  entry:134// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 3)135// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]136//137svbool_t test_svptrue_pat_b8_3(void) MODE_ATTR138{139  return svptrue_pat_b8(SV_VL3);140}141 142// CHECK-LABEL: @test_svptrue_pat_b8_4(143// CHECK-NEXT:  entry:144// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 4)145// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]146//147// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_4v(148// CPP-CHECK-NEXT:  entry:149// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 4)150// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]151//152svbool_t test_svptrue_pat_b8_4(void) MODE_ATTR153{154  return svptrue_pat_b8(SV_VL4);155}156 157// CHECK-LABEL: @test_svptrue_pat_b8_5(158// CHECK-NEXT:  entry:159// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 5)160// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]161//162// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_5v(163// CPP-CHECK-NEXT:  entry:164// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 5)165// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]166//167svbool_t test_svptrue_pat_b8_5(void) MODE_ATTR168{169  return svptrue_pat_b8(SV_VL5);170}171 172// CHECK-LABEL: @test_svptrue_pat_b8_6(173// CHECK-NEXT:  entry:174// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 6)175// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]176//177// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_6v(178// CPP-CHECK-NEXT:  entry:179// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 6)180// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]181//182svbool_t test_svptrue_pat_b8_6(void) MODE_ATTR183{184  return svptrue_pat_b8(SV_VL6);185}186 187// CHECK-LABEL: @test_svptrue_pat_b8_7(188// CHECK-NEXT:  entry:189// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 7)190// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]191//192// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_7v(193// CPP-CHECK-NEXT:  entry:194// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 7)195// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]196//197svbool_t test_svptrue_pat_b8_7(void) MODE_ATTR198{199  return svptrue_pat_b8(SV_VL7);200}201 202// CHECK-LABEL: @test_svptrue_pat_b8_8(203// CHECK-NEXT:  entry:204// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 8)205// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]206//207// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_8v(208// CPP-CHECK-NEXT:  entry:209// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 8)210// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]211//212svbool_t test_svptrue_pat_b8_8(void) MODE_ATTR213{214  return svptrue_pat_b8(SV_VL8);215}216 217// CHECK-LABEL: @test_svptrue_pat_b8_9(218// CHECK-NEXT:  entry:219// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 9)220// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]221//222// CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_9v(223// CPP-CHECK-NEXT:  entry:224// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 9)225// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]226//227svbool_t test_svptrue_pat_b8_9(void) MODE_ATTR228{229  return svptrue_pat_b8(SV_VL16);230}231 232// CHECK-LABEL: @test_svptrue_pat_b8_10(233// CHECK-NEXT:  entry:234// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 10)235// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]236//237// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_10v(238// CPP-CHECK-NEXT:  entry:239// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 10)240// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]241//242svbool_t test_svptrue_pat_b8_10(void) MODE_ATTR243{244  return svptrue_pat_b8(SV_VL32);245}246 247// CHECK-LABEL: @test_svptrue_pat_b8_11(248// CHECK-NEXT:  entry:249// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 11)250// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]251//252// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_11v(253// CPP-CHECK-NEXT:  entry:254// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 11)255// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]256//257svbool_t test_svptrue_pat_b8_11(void) MODE_ATTR258{259  return svptrue_pat_b8(SV_VL64);260}261 262// CHECK-LABEL: @test_svptrue_pat_b8_12(263// CHECK-NEXT:  entry:264// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 12)265// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]266//267// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_12v(268// CPP-CHECK-NEXT:  entry:269// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 12)270// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]271//272svbool_t test_svptrue_pat_b8_12(void) MODE_ATTR273{274  return svptrue_pat_b8(SV_VL128);275}276 277// CHECK-LABEL: @test_svptrue_pat_b8_13(278// CHECK-NEXT:  entry:279// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 13)280// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]281//282// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_13v(283// CPP-CHECK-NEXT:  entry:284// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 13)285// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]286//287svbool_t test_svptrue_pat_b8_13(void) MODE_ATTR288{289  return svptrue_pat_b8(SV_VL256);290}291 292// CHECK-LABEL: @test_svptrue_pat_b8_14(293// CHECK-NEXT:  entry:294// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 29)295// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]296//297// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_14v(298// CPP-CHECK-NEXT:  entry:299// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 29)300// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]301//302svbool_t test_svptrue_pat_b8_14(void) MODE_ATTR303{304  return svptrue_pat_b8(SV_MUL4);305}306 307// CHECK-LABEL: @test_svptrue_pat_b8_15(308// CHECK-NEXT:  entry:309// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 30)310// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]311//312// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_15v(313// CPP-CHECK-NEXT:  entry:314// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 30)315// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]316//317svbool_t test_svptrue_pat_b8_15(void) MODE_ATTR318{319  return svptrue_pat_b8(SV_MUL3);320}321 322// CHECK-LABEL: @test_svptrue_pat_b8_16(323// CHECK-NEXT:  entry:324// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)325// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]326//327// CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_16v(328// CPP-CHECK-NEXT:  entry:329// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)330// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP0]]331//332svbool_t test_svptrue_pat_b8_16(void) MODE_ATTR333{334  return svptrue_pat_b8(SV_ALL);335}336 337// CHECK-LABEL: @test_svptrue_pat_b16(338// CHECK-NEXT:  entry:339// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 0)340// CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])341// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]342//343// CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b16v(344// CPP-CHECK-NEXT:  entry:345// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 0)346// CPP-CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]])347// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]348//349svbool_t test_svptrue_pat_b16(void) MODE_ATTR350{351  return svptrue_pat_b16(SV_POW2);352}353 354// CHECK-LABEL: @test_svptrue_pat_b32(355// CHECK-NEXT:  entry:356// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 1)357// CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])358// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]359//360// CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b32v(361// CPP-CHECK-NEXT:  entry:362// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 1)363// CPP-CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]])364// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]365//366svbool_t test_svptrue_pat_b32(void) MODE_ATTR367{368  return svptrue_pat_b32(SV_VL1);369}370 371// CHECK-LABEL: @test_svptrue_pat_b64(372// CHECK-NEXT:  entry:373// CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 2)374// CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])375// CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]376//377// CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b64v(378// CPP-CHECK-NEXT:  entry:379// CPP-CHECK-NEXT:    [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 2)380// CPP-CHECK-NEXT:    [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]])381// CPP-CHECK-NEXT:    ret <vscale x 16 x i1> [[TMP1]]382//383svbool_t test_svptrue_pat_b64(void) MODE_ATTR384{385  return svptrue_pat_b64(SV_VL2);386}387