433 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s3; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme -force-streaming < %s | FileCheck %s4 5;6; ST2B7;8 9define void @st2b_i8(<vscale x 16 x i8> %v0, <vscale x 16 x i8> %v1, <vscale x 16 x i1> %pred, ptr %addr, i64 %offset) {10; CHECK-LABEL: st2b_i8:11; CHECK: // %bb.0:12; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z113; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z114; CHECK-NEXT: st2b { z0.b, z1.b }, p0, [x0, x1]15; CHECK-NEXT: ret16 %1 = getelementptr i8, ptr %addr, i64 %offset17 call void @llvm.aarch64.sve.st2.nxv16i8(<vscale x 16 x i8> %v0,18 <vscale x 16 x i8> %v1,19 <vscale x 16 x i1> %pred,20 ptr %1)21 ret void22}23 24;25; ST2H26;27 28define void @st2h_i16(<vscale x 8 x i16> %v0, <vscale x 8 x i16> %v1, <vscale x 8 x i1> %pred, ptr %addr, i64 %offset) {29; CHECK-LABEL: st2h_i16:30; CHECK: // %bb.0:31; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z132; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z133; CHECK-NEXT: st2h { z0.h, z1.h }, p0, [x0, x1, lsl #1]34; CHECK-NEXT: ret35 %1 = getelementptr i16, ptr %addr, i64 %offset36 call void @llvm.aarch64.sve.st2.nxv8i16(<vscale x 8 x i16> %v0,37 <vscale x 8 x i16> %v1,38 <vscale x 8 x i1> %pred,39 ptr %1)40 ret void41}42 43define void @st2h_f16(<vscale x 8 x half> %v0, <vscale x 8 x half> %v1, <vscale x 8 x i1> %pred, ptr %addr, i64 %offset) {44; CHECK-LABEL: st2h_f16:45; CHECK: // %bb.0:46; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z147; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z148; CHECK-NEXT: st2h { z0.h, z1.h }, p0, [x0, x1, lsl #1]49; CHECK-NEXT: ret50 %1 = getelementptr half, ptr %addr, i64 %offset51 call void @llvm.aarch64.sve.st2.nxv8f16(<vscale x 8 x half> %v0,52 <vscale x 8 x half> %v1,53 <vscale x 8 x i1> %pred,54 ptr %1)55 ret void56}57 58;59; ST2W60;61 62define void @st2w_i32(<vscale x 4 x i32> %v0, <vscale x 4 x i32> %v1, <vscale x 4 x i1> %pred, ptr %addr, i64 %offset) {63; CHECK-LABEL: st2w_i32:64; CHECK: // %bb.0:65; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z166; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z167; CHECK-NEXT: st2w { z0.s, z1.s }, p0, [x0, x1, lsl #2]68; CHECK-NEXT: ret69 %1 = getelementptr i32, ptr %addr, i64 %offset70 call void @llvm.aarch64.sve.st2.nxv4i32(<vscale x 4 x i32> %v0,71 <vscale x 4 x i32> %v1,72 <vscale x 4 x i1> %pred,73 ptr %1)74 ret void75}76 77define void @st2w_f32(<vscale x 4 x float> %v0, <vscale x 4 x float> %v1, <vscale x 4 x i1> %pred, ptr %addr, i64 %offset) {78; CHECK-LABEL: st2w_f32:79; CHECK: // %bb.0:80; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z181; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z182; CHECK-NEXT: st2w { z0.s, z1.s }, p0, [x0, x1, lsl #2]83; CHECK-NEXT: ret84 %1 = getelementptr float, ptr %addr, i64 %offset85 call void @llvm.aarch64.sve.st2.nxv4f32(<vscale x 4 x float> %v0,86 <vscale x 4 x float> %v1,87 <vscale x 4 x i1> %pred,88 ptr %1)89 ret void90}91 92;93; ST2D94;95 96define void @st2d_i64(<vscale x 2 x i64> %v0, <vscale x 2 x i64> %v1, <vscale x 2 x i1> %pred, ptr %addr, i64 %offset) {97; CHECK-LABEL: st2d_i64:98; CHECK: // %bb.0:99; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z1100; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z1101; CHECK-NEXT: st2d { z0.d, z1.d }, p0, [x0, x1, lsl #3]102; CHECK-NEXT: ret103 %1 = getelementptr i64, ptr %addr, i64 %offset104 call void @llvm.aarch64.sve.st2.nxv2i64(<vscale x 2 x i64> %v0,105 <vscale x 2 x i64> %v1,106 <vscale x 2 x i1> %pred,107 ptr %1)108 ret void109}110 111define void @st2d_f64(<vscale x 2 x double> %v0, <vscale x 2 x double> %v1, <vscale x 2 x i1> %pred, ptr %addr, i64 %offset) {112; CHECK-LABEL: st2d_f64:113; CHECK: // %bb.0:114; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1 def $z0_z1115; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1 def $z0_z1116; CHECK-NEXT: st2d { z0.d, z1.d }, p0, [x0, x1, lsl #3]117; CHECK-NEXT: ret118 %1 = getelementptr double, ptr %addr, i64 %offset119 call void @llvm.aarch64.sve.st2.nxv2f64(<vscale x 2 x double> %v0,120 <vscale x 2 x double> %v1,121 <vscale x 2 x i1> %pred,122 ptr %1)123 ret void124}125 126;127; ST3B128;129 130define void @st3b_i8(<vscale x 16 x i8> %v0, <vscale x 16 x i8> %v1, <vscale x 16 x i8> %v2, <vscale x 16 x i1> %pred, ptr %addr, i64 %offset) {131; CHECK-LABEL: st3b_i8:132; CHECK: // %bb.0:133; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2134; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2135; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2136; CHECK-NEXT: st3b { z0.b - z2.b }, p0, [x0, x1]137; CHECK-NEXT: ret138 %1 = getelementptr i8, ptr %addr, i64 %offset139 call void @llvm.aarch64.sve.st3.nxv16i8(<vscale x 16 x i8> %v0,140 <vscale x 16 x i8> %v1,141 <vscale x 16 x i8> %v2,142 <vscale x 16 x i1> %pred,143 ptr %1)144 ret void145}146 147;148; ST3H149;150 151define void @st3h_i16(<vscale x 8 x i16> %v0, <vscale x 8 x i16> %v1, <vscale x 8 x i16> %v2, <vscale x 8 x i1> %pred, ptr %addr, i64 %offset) {152; CHECK-LABEL: st3h_i16:153; CHECK: // %bb.0:154; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2155; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2156; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2157; CHECK-NEXT: st3h { z0.h - z2.h }, p0, [x0, x1, lsl #1]158; CHECK-NEXT: ret159 %1 = getelementptr i16, ptr %addr, i64 %offset160 call void @llvm.aarch64.sve.st3.nxv8i16(<vscale x 8 x i16> %v0,161 <vscale x 8 x i16> %v1,162 <vscale x 8 x i16> %v2,163 <vscale x 8 x i1> %pred,164 ptr %1)165 ret void166}167 168define void @st3h_f16(<vscale x 8 x half> %v0, <vscale x 8 x half> %v1, <vscale x 8 x half> %v2, <vscale x 8 x i1> %pred, ptr %addr, i64 %offset) {169; CHECK-LABEL: st3h_f16:170; CHECK: // %bb.0:171; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2172; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2173; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2174; CHECK-NEXT: st3h { z0.h - z2.h }, p0, [x0, x1, lsl #1]175; CHECK-NEXT: ret176 %1 = getelementptr half, ptr %addr, i64 %offset177 call void @llvm.aarch64.sve.st3.nxv8f16(<vscale x 8 x half> %v0,178 <vscale x 8 x half> %v1,179 <vscale x 8 x half> %v2,180 <vscale x 8 x i1> %pred,181 ptr %1)182 ret void183}184 185;186; ST3W187;188 189define void @st3w_i32(<vscale x 4 x i32> %v0, <vscale x 4 x i32> %v1, <vscale x 4 x i32> %v2, <vscale x 4 x i1> %pred, ptr %addr, i64 %offset) {190; CHECK-LABEL: st3w_i32:191; CHECK: // %bb.0:192; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2193; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2194; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2195; CHECK-NEXT: st3w { z0.s - z2.s }, p0, [x0, x1, lsl #2]196; CHECK-NEXT: ret197 %1 = getelementptr i32, ptr %addr, i64 %offset198 call void @llvm.aarch64.sve.st3.nxv4i32(<vscale x 4 x i32> %v0,199 <vscale x 4 x i32> %v1,200 <vscale x 4 x i32> %v2,201 <vscale x 4 x i1> %pred,202 ptr %1)203 ret void204}205 206define void @st3w_f32(<vscale x 4 x float> %v0, <vscale x 4 x float> %v1, <vscale x 4 x float> %v2, <vscale x 4 x i1> %pred, ptr %addr, i64 %offset) {207; CHECK-LABEL: st3w_f32:208; CHECK: // %bb.0:209; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2210; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2211; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2212; CHECK-NEXT: st3w { z0.s - z2.s }, p0, [x0, x1, lsl #2]213; CHECK-NEXT: ret214 %1 = getelementptr float, ptr %addr, i64 %offset215 call void @llvm.aarch64.sve.st3.nxv4f32(<vscale x 4 x float> %v0,216 <vscale x 4 x float> %v1,217 <vscale x 4 x float> %v2,218 <vscale x 4 x i1> %pred,219 ptr %1)220 ret void221}222 223;224; ST3D225;226 227define void @st3d_i64(<vscale x 2 x i64> %v0, <vscale x 2 x i64> %v1, <vscale x 2 x i64> %v2, <vscale x 2 x i1> %pred, ptr %addr, i64 %offset) {228; CHECK-LABEL: st3d_i64:229; CHECK: // %bb.0:230; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2231; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2232; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2233; CHECK-NEXT: st3d { z0.d - z2.d }, p0, [x0, x1, lsl #3]234; CHECK-NEXT: ret235 %1 = getelementptr i64, ptr %addr, i64 %offset236 call void @llvm.aarch64.sve.st3.nxv2i64(<vscale x 2 x i64> %v0,237 <vscale x 2 x i64> %v1,238 <vscale x 2 x i64> %v2,239 <vscale x 2 x i1> %pred,240 ptr %1)241 ret void242}243 244define void @st3d_f64(<vscale x 2 x double> %v0, <vscale x 2 x double> %v1, <vscale x 2 x double> %v2, <vscale x 2 x i1> %pred, ptr %addr, i64 %offset) {245; CHECK-LABEL: st3d_f64:246; CHECK: // %bb.0:247; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2 def $z0_z1_z2248; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2 def $z0_z1_z2249; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2 def $z0_z1_z2250; CHECK-NEXT: st3d { z0.d - z2.d }, p0, [x0, x1, lsl #3]251; CHECK-NEXT: ret252 %1 = getelementptr double, ptr %addr, i64 %offset253 call void @llvm.aarch64.sve.st3.nxv2f64(<vscale x 2 x double> %v0,254 <vscale x 2 x double> %v1,255 <vscale x 2 x double> %v2,256 <vscale x 2 x i1> %pred,257 ptr %1)258 ret void259}260 261;262; ST4B263;264 265define void @st4b_i8(<vscale x 16 x i8> %v0, <vscale x 16 x i8> %v1, <vscale x 16 x i8> %v2, <vscale x 16 x i8> %v3, <vscale x 16 x i1> %pred, ptr %addr, i64 %offset) {266; CHECK-LABEL: st4b_i8:267; CHECK: // %bb.0:268; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3269; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3270; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3271; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3272; CHECK-NEXT: st4b { z0.b - z3.b }, p0, [x0, x1]273; CHECK-NEXT: ret274 %1 = getelementptr i8, ptr %addr, i64 %offset275 call void @llvm.aarch64.sve.st4.nxv16i8(<vscale x 16 x i8> %v0,276 <vscale x 16 x i8> %v1,277 <vscale x 16 x i8> %v2,278 <vscale x 16 x i8> %v3,279 <vscale x 16 x i1> %pred,280 ptr %1)281 ret void282}283 284;285; ST4H286;287 288define void @st4h_i16(<vscale x 8 x i16> %v0, <vscale x 8 x i16> %v1, <vscale x 8 x i16> %v2, <vscale x 8 x i16> %v3, <vscale x 8 x i1> %pred, ptr %addr, i64 %offset) {289; CHECK-LABEL: st4h_i16:290; CHECK: // %bb.0:291; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3292; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3293; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3294; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3295; CHECK-NEXT: st4h { z0.h - z3.h }, p0, [x0, x1, lsl #1]296; CHECK-NEXT: ret297 %1 = getelementptr i16, ptr %addr, i64 %offset298 call void @llvm.aarch64.sve.st4.nxv8i16(<vscale x 8 x i16> %v0,299 <vscale x 8 x i16> %v1,300 <vscale x 8 x i16> %v2,301 <vscale x 8 x i16> %v3,302 <vscale x 8 x i1> %pred,303 ptr %1)304 ret void305}306 307define void @st4h_f16(<vscale x 8 x half> %v0, <vscale x 8 x half> %v1, <vscale x 8 x half> %v2, <vscale x 8 x half> %v3, <vscale x 8 x i1> %pred, ptr %addr, i64 %offset) {308; CHECK-LABEL: st4h_f16:309; CHECK: // %bb.0:310; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3311; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3312; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3313; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3314; CHECK-NEXT: st4h { z0.h - z3.h }, p0, [x0, x1, lsl #1]315; CHECK-NEXT: ret316 %1 = getelementptr half, ptr %addr, i64 %offset317 call void @llvm.aarch64.sve.st4.nxv8f16(<vscale x 8 x half> %v0,318 <vscale x 8 x half> %v1,319 <vscale x 8 x half> %v2,320 <vscale x 8 x half> %v3,321 <vscale x 8 x i1> %pred,322 ptr %1)323 ret void324}325 326;327; ST4W328;329 330define void @st4w_i32(<vscale x 4 x i32> %v0, <vscale x 4 x i32> %v1, <vscale x 4 x i32> %v2, <vscale x 4 x i32> %v3, <vscale x 4 x i1> %pred, ptr %addr, i64 %offset) {331; CHECK-LABEL: st4w_i32:332; CHECK: // %bb.0:333; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3334; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3335; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3336; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3337; CHECK-NEXT: st4w { z0.s - z3.s }, p0, [x0, x1, lsl #2]338; CHECK-NEXT: ret339 %1 = getelementptr i32, ptr %addr, i64 %offset340 call void @llvm.aarch64.sve.st4.nxv4i32(<vscale x 4 x i32> %v0,341 <vscale x 4 x i32> %v1,342 <vscale x 4 x i32> %v2,343 <vscale x 4 x i32> %v3,344 <vscale x 4 x i1> %pred,345 ptr %1)346 ret void347}348 349define void @st4w_f32(<vscale x 4 x float> %v0, <vscale x 4 x float> %v1, <vscale x 4 x float> %v2, <vscale x 4 x float> %v3, <vscale x 4 x i1> %pred, ptr %addr, i64 %offset) {350; CHECK-LABEL: st4w_f32:351; CHECK: // %bb.0:352; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3353; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3354; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3355; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3356; CHECK-NEXT: st4w { z0.s - z3.s }, p0, [x0, x1, lsl #2]357; CHECK-NEXT: ret358 %1 = getelementptr float, ptr %addr, i64 %offset359 call void @llvm.aarch64.sve.st4.nxv4f32(<vscale x 4 x float> %v0,360 <vscale x 4 x float> %v1,361 <vscale x 4 x float> %v2,362 <vscale x 4 x float> %v3,363 <vscale x 4 x i1> %pred,364 ptr %1)365 ret void366}367 368;369; ST4D370;371 372define void @st4d_i64(<vscale x 2 x i64> %v0, <vscale x 2 x i64> %v1, <vscale x 2 x i64> %v2, <vscale x 2 x i64> %v3, <vscale x 2 x i1> %pred, ptr %addr, i64 %offset) {373; CHECK-LABEL: st4d_i64:374; CHECK: // %bb.0:375; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3376; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3377; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3378; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3379; CHECK-NEXT: st4d { z0.d - z3.d }, p0, [x0, x1, lsl #3]380; CHECK-NEXT: ret381 %1 = getelementptr i64, ptr %addr, i64 %offset382 call void @llvm.aarch64.sve.st4.nxv2i64(<vscale x 2 x i64> %v0,383 <vscale x 2 x i64> %v1,384 <vscale x 2 x i64> %v2,385 <vscale x 2 x i64> %v3,386 <vscale x 2 x i1> %pred,387 ptr %1)388 ret void389}390 391define void @st4d_f64(<vscale x 2 x double> %v0, <vscale x 2 x double> %v1, <vscale x 2 x double> %v2, <vscale x 2 x double> %v3, <vscale x 2 x i1> %pred, ptr %addr, i64 %offset) {392; CHECK-LABEL: st4d_f64:393; CHECK: // %bb.0:394; CHECK-NEXT: // kill: def $z3 killed $z3 killed $z0_z1_z2_z3 def $z0_z1_z2_z3395; CHECK-NEXT: // kill: def $z2 killed $z2 killed $z0_z1_z2_z3 def $z0_z1_z2_z3396; CHECK-NEXT: // kill: def $z1 killed $z1 killed $z0_z1_z2_z3 def $z0_z1_z2_z3397; CHECK-NEXT: // kill: def $z0 killed $z0 killed $z0_z1_z2_z3 def $z0_z1_z2_z3398; CHECK-NEXT: st4d { z0.d - z3.d }, p0, [x0, x1, lsl #3]399; CHECK-NEXT: ret400 %1 = getelementptr double, ptr %addr, i64 %offset401 call void @llvm.aarch64.sve.st4.nxv2f64(<vscale x 2 x double> %v0,402 <vscale x 2 x double> %v1,403 <vscale x 2 x double> %v2,404 <vscale x 2 x double> %v3,405 <vscale x 2 x i1> %pred,406 ptr %1)407 ret void408}409 410declare void @llvm.aarch64.sve.st2.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i1>, ptr)411declare void @llvm.aarch64.sve.st2.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i1>, ptr)412declare void @llvm.aarch64.sve.st2.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i1>, ptr)413declare void @llvm.aarch64.sve.st2.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i1>, ptr)414declare void @llvm.aarch64.sve.st2.nxv8f16(<vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x i1>, ptr)415declare void @llvm.aarch64.sve.st2.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x i1>, ptr)416declare void @llvm.aarch64.sve.st2.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x i1>, ptr)417 418declare void @llvm.aarch64.sve.st3.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i1>, ptr)419declare void @llvm.aarch64.sve.st3.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i1>, ptr)420declare void @llvm.aarch64.sve.st3.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i1>, ptr)421declare void @llvm.aarch64.sve.st3.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i1>, ptr)422declare void @llvm.aarch64.sve.st3.nxv8f16(<vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x i1>, ptr)423declare void @llvm.aarch64.sve.st3.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x i1>, ptr)424declare void @llvm.aarch64.sve.st3.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x i1>, ptr)425 426declare void @llvm.aarch64.sve.st4.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i1>, ptr)427declare void @llvm.aarch64.sve.st4.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i1>, ptr)428declare void @llvm.aarch64.sve.st4.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i1>, ptr)429declare void @llvm.aarch64.sve.st4.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i1>, ptr)430declare void @llvm.aarch64.sve.st4.nxv8f16(<vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x half>, <vscale x 8 x i1>, ptr)431declare void @llvm.aarch64.sve.st4.nxv4f32(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x i1>, ptr)432declare void @llvm.aarch64.sve.st4.nxv2f64(<vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x double>, <vscale x 2 x i1>, ptr)433