1498 lines · plain
1; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s2 3;;; Test vector store intrinsic instructions4;;;5;;; Note:6;;; We test VST*rrvl, VST*rrvml, VST*irvl, and VST*irvml instructions.7 8; Function Attrs: nounwind9define void @vst_vssl(ptr %0, i64 %1) {10; CHECK-LABEL: vst_vssl:11; CHECK: # %bb.0:12; CHECK-NEXT: lea %s2, 25613; CHECK-NEXT: lvl %s214; CHECK-NEXT: vld %v0, %s1, %s015; CHECK-NEXT: vst %v0, %s1, %s016; CHECK-NEXT: b.l.t (, %s10)17 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)18 tail call void @llvm.ve.vl.vst.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)19 ret void20}21 22; Function Attrs: nounwind readonly23declare <256 x double> @llvm.ve.vl.vld.vssl(i64, ptr, i32)24 25; Function Attrs: nounwind writeonly26declare void @llvm.ve.vl.vst.vssl(<256 x double>, i64, ptr, i32)27 28; Function Attrs: nounwind29define void @vst_vssml(ptr %0, i64 %1) {30; CHECK-LABEL: vst_vssml:31; CHECK: # %bb.0:32; CHECK-NEXT: lea %s2, 25633; CHECK-NEXT: lvl %s234; CHECK-NEXT: vld %v0, %s1, %s035; CHECK-NEXT: vst %v0, %s1, %s0, %vm136; CHECK-NEXT: b.l.t (, %s10)37 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)38 tail call void @llvm.ve.vl.vst.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)39 ret void40}41 42; Function Attrs: nounwind writeonly43declare void @llvm.ve.vl.vst.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)44 45; Function Attrs: nounwind46define void @vst_vssl_imm(ptr %0) {47; CHECK-LABEL: vst_vssl_imm:48; CHECK: # %bb.0:49; CHECK-NEXT: lea %s1, 25650; CHECK-NEXT: lvl %s151; CHECK-NEXT: vld %v0, 8, %s052; CHECK-NEXT: vst %v0, 8, %s053; CHECK-NEXT: b.l.t (, %s10)54 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)55 tail call void @llvm.ve.vl.vst.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)56 ret void57}58 59; Function Attrs: nounwind60define void @vst_vssml_imm(ptr %0) {61; CHECK-LABEL: vst_vssml_imm:62; CHECK: # %bb.0:63; CHECK-NEXT: lea %s1, 25664; CHECK-NEXT: lvl %s165; CHECK-NEXT: vld %v0, 8, %s066; CHECK-NEXT: vst %v0, 8, %s0, %vm167; CHECK-NEXT: b.l.t (, %s10)68 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)69 tail call void @llvm.ve.vl.vst.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)70 ret void71}72 73; Function Attrs: nounwind74define void @vstnc_vssl(ptr %0, i64 %1) {75; CHECK-LABEL: vstnc_vssl:76; CHECK: # %bb.0:77; CHECK-NEXT: lea %s2, 25678; CHECK-NEXT: lvl %s279; CHECK-NEXT: vld %v0, %s1, %s080; CHECK-NEXT: vst.nc %v0, %s1, %s081; CHECK-NEXT: b.l.t (, %s10)82 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)83 tail call void @llvm.ve.vl.vstnc.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)84 ret void85}86 87; Function Attrs: nounwind writeonly88declare void @llvm.ve.vl.vstnc.vssl(<256 x double>, i64, ptr, i32)89 90; Function Attrs: nounwind91define void @vstnc_vssml(ptr %0, i64 %1) {92; CHECK-LABEL: vstnc_vssml:93; CHECK: # %bb.0:94; CHECK-NEXT: lea %s2, 25695; CHECK-NEXT: lvl %s296; CHECK-NEXT: vld %v0, %s1, %s097; CHECK-NEXT: vst.nc %v0, %s1, %s0, %vm198; CHECK-NEXT: b.l.t (, %s10)99 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)100 tail call void @llvm.ve.vl.vstnc.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)101 ret void102}103 104; Function Attrs: nounwind writeonly105declare void @llvm.ve.vl.vstnc.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)106 107; Function Attrs: nounwind108define void @vstnc_vssl_imm(ptr %0) {109; CHECK-LABEL: vstnc_vssl_imm:110; CHECK: # %bb.0:111; CHECK-NEXT: lea %s1, 256112; CHECK-NEXT: lvl %s1113; CHECK-NEXT: vld %v0, 8, %s0114; CHECK-NEXT: vst.nc %v0, 8, %s0115; CHECK-NEXT: b.l.t (, %s10)116 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)117 tail call void @llvm.ve.vl.vstnc.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)118 ret void119}120 121; Function Attrs: nounwind122define void @vstnc_vssml_imm(ptr %0) {123; CHECK-LABEL: vstnc_vssml_imm:124; CHECK: # %bb.0:125; CHECK-NEXT: lea %s1, 256126; CHECK-NEXT: lvl %s1127; CHECK-NEXT: vld %v0, 8, %s0128; CHECK-NEXT: vst.nc %v0, 8, %s0, %vm1129; CHECK-NEXT: b.l.t (, %s10)130 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)131 tail call void @llvm.ve.vl.vstnc.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)132 ret void133}134 135; Function Attrs: nounwind136define void @vstot_vssl(ptr %0, i64 %1) {137; CHECK-LABEL: vstot_vssl:138; CHECK: # %bb.0:139; CHECK-NEXT: lea %s2, 256140; CHECK-NEXT: lvl %s2141; CHECK-NEXT: vld %v0, %s1, %s0142; CHECK-NEXT: vst.ot %v0, %s1, %s0143; CHECK-NEXT: b.l.t (, %s10)144 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)145 tail call void @llvm.ve.vl.vstot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)146 ret void147}148 149; Function Attrs: nounwind writeonly150declare void @llvm.ve.vl.vstot.vssl(<256 x double>, i64, ptr, i32)151 152; Function Attrs: nounwind153define void @vstot_vssml(ptr %0, i64 %1) {154; CHECK-LABEL: vstot_vssml:155; CHECK: # %bb.0:156; CHECK-NEXT: lea %s2, 256157; CHECK-NEXT: lvl %s2158; CHECK-NEXT: vld %v0, %s1, %s0159; CHECK-NEXT: vst.ot %v0, %s1, %s0, %vm1160; CHECK-NEXT: b.l.t (, %s10)161 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)162 tail call void @llvm.ve.vl.vstot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)163 ret void164}165 166; Function Attrs: nounwind writeonly167declare void @llvm.ve.vl.vstot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)168 169; Function Attrs: nounwind170define void @vstot_vssl_imm(ptr %0) {171; CHECK-LABEL: vstot_vssl_imm:172; CHECK: # %bb.0:173; CHECK-NEXT: lea %s1, 256174; CHECK-NEXT: lvl %s1175; CHECK-NEXT: vld %v0, 8, %s0176; CHECK-NEXT: vst.ot %v0, 8, %s0177; CHECK-NEXT: b.l.t (, %s10)178 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)179 tail call void @llvm.ve.vl.vstot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)180 ret void181}182 183; Function Attrs: nounwind184define void @vstot_vssml_imm(ptr %0) {185; CHECK-LABEL: vstot_vssml_imm:186; CHECK: # %bb.0:187; CHECK-NEXT: lea %s1, 256188; CHECK-NEXT: lvl %s1189; CHECK-NEXT: vld %v0, 8, %s0190; CHECK-NEXT: vst.ot %v0, 8, %s0, %vm1191; CHECK-NEXT: b.l.t (, %s10)192 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)193 tail call void @llvm.ve.vl.vstot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)194 ret void195}196 197; Function Attrs: nounwind198define void @vstncot_vssl(ptr %0, i64 %1) {199; CHECK-LABEL: vstncot_vssl:200; CHECK: # %bb.0:201; CHECK-NEXT: lea %s2, 256202; CHECK-NEXT: lvl %s2203; CHECK-NEXT: vld %v0, %s1, %s0204; CHECK-NEXT: vst.nc.ot %v0, %s1, %s0205; CHECK-NEXT: b.l.t (, %s10)206 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)207 tail call void @llvm.ve.vl.vstncot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)208 ret void209}210 211; Function Attrs: nounwind writeonly212declare void @llvm.ve.vl.vstncot.vssl(<256 x double>, i64, ptr, i32)213 214; Function Attrs: nounwind215define void @vstncot_vssml(ptr %0, i64 %1) {216; CHECK-LABEL: vstncot_vssml:217; CHECK: # %bb.0:218; CHECK-NEXT: lea %s2, 256219; CHECK-NEXT: lvl %s2220; CHECK-NEXT: vld %v0, %s1, %s0221; CHECK-NEXT: vst.nc.ot %v0, %s1, %s0, %vm1222; CHECK-NEXT: b.l.t (, %s10)223 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)224 tail call void @llvm.ve.vl.vstncot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)225 ret void226}227 228; Function Attrs: nounwind writeonly229declare void @llvm.ve.vl.vstncot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)230 231; Function Attrs: nounwind232define void @vstncot_vssl_imm(ptr %0) {233; CHECK-LABEL: vstncot_vssl_imm:234; CHECK: # %bb.0:235; CHECK-NEXT: lea %s1, 256236; CHECK-NEXT: lvl %s1237; CHECK-NEXT: vld %v0, 8, %s0238; CHECK-NEXT: vst.nc.ot %v0, 8, %s0239; CHECK-NEXT: b.l.t (, %s10)240 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)241 tail call void @llvm.ve.vl.vstncot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)242 ret void243}244 245; Function Attrs: nounwind246define void @vstncot_vssml_imm(ptr %0) {247; CHECK-LABEL: vstncot_vssml_imm:248; CHECK: # %bb.0:249; CHECK-NEXT: lea %s1, 256250; CHECK-NEXT: lvl %s1251; CHECK-NEXT: vld %v0, 8, %s0252; CHECK-NEXT: vst.nc.ot %v0, 8, %s0, %vm1253; CHECK-NEXT: b.l.t (, %s10)254 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)255 tail call void @llvm.ve.vl.vstncot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)256 ret void257}258 259; Function Attrs: nounwind260define void @vstu_vssl(ptr %0, i64 %1) {261; CHECK-LABEL: vstu_vssl:262; CHECK: # %bb.0:263; CHECK-NEXT: lea %s2, 256264; CHECK-NEXT: lvl %s2265; CHECK-NEXT: vld %v0, %s1, %s0266; CHECK-NEXT: vstu %v0, %s1, %s0267; CHECK-NEXT: b.l.t (, %s10)268 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)269 tail call void @llvm.ve.vl.vstu.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)270 ret void271}272 273; Function Attrs: nounwind writeonly274declare void @llvm.ve.vl.vstu.vssl(<256 x double>, i64, ptr, i32)275 276; Function Attrs: nounwind277define void @vstu_vssml(ptr %0, i64 %1) {278; CHECK-LABEL: vstu_vssml:279; CHECK: # %bb.0:280; CHECK-NEXT: lea %s2, 256281; CHECK-NEXT: lvl %s2282; CHECK-NEXT: vld %v0, %s1, %s0283; CHECK-NEXT: vstu %v0, %s1, %s0, %vm1284; CHECK-NEXT: b.l.t (, %s10)285 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)286 tail call void @llvm.ve.vl.vstu.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)287 ret void288}289 290; Function Attrs: nounwind writeonly291declare void @llvm.ve.vl.vstu.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)292 293; Function Attrs: nounwind294define void @vstu_vssl_imm(ptr %0) {295; CHECK-LABEL: vstu_vssl_imm:296; CHECK: # %bb.0:297; CHECK-NEXT: lea %s1, 256298; CHECK-NEXT: lvl %s1299; CHECK-NEXT: vld %v0, 8, %s0300; CHECK-NEXT: vstu %v0, 8, %s0301; CHECK-NEXT: b.l.t (, %s10)302 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)303 tail call void @llvm.ve.vl.vstu.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)304 ret void305}306 307; Function Attrs: nounwind308define void @vstu_vssml_imm(ptr %0) {309; CHECK-LABEL: vstu_vssml_imm:310; CHECK: # %bb.0:311; CHECK-NEXT: lea %s1, 256312; CHECK-NEXT: lvl %s1313; CHECK-NEXT: vld %v0, 8, %s0314; CHECK-NEXT: vstu %v0, 8, %s0, %vm1315; CHECK-NEXT: b.l.t (, %s10)316 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)317 tail call void @llvm.ve.vl.vstu.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)318 ret void319}320 321; Function Attrs: nounwind322define void @vstunc_vssl(ptr %0, i64 %1) {323; CHECK-LABEL: vstunc_vssl:324; CHECK: # %bb.0:325; CHECK-NEXT: lea %s2, 256326; CHECK-NEXT: lvl %s2327; CHECK-NEXT: vld %v0, %s1, %s0328; CHECK-NEXT: vstu.nc %v0, %s1, %s0329; CHECK-NEXT: b.l.t (, %s10)330 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)331 tail call void @llvm.ve.vl.vstunc.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)332 ret void333}334 335; Function Attrs: nounwind writeonly336declare void @llvm.ve.vl.vstunc.vssl(<256 x double>, i64, ptr, i32)337 338; Function Attrs: nounwind339define void @vstunc_vssml(ptr %0, i64 %1) {340; CHECK-LABEL: vstunc_vssml:341; CHECK: # %bb.0:342; CHECK-NEXT: lea %s2, 256343; CHECK-NEXT: lvl %s2344; CHECK-NEXT: vld %v0, %s1, %s0345; CHECK-NEXT: vstu.nc %v0, %s1, %s0, %vm1346; CHECK-NEXT: b.l.t (, %s10)347 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)348 tail call void @llvm.ve.vl.vstunc.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)349 ret void350}351 352; Function Attrs: nounwind writeonly353declare void @llvm.ve.vl.vstunc.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)354 355; Function Attrs: nounwind356define void @vstunc_vssl_imm(ptr %0) {357; CHECK-LABEL: vstunc_vssl_imm:358; CHECK: # %bb.0:359; CHECK-NEXT: lea %s1, 256360; CHECK-NEXT: lvl %s1361; CHECK-NEXT: vld %v0, 8, %s0362; CHECK-NEXT: vstu.nc %v0, 8, %s0363; CHECK-NEXT: b.l.t (, %s10)364 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)365 tail call void @llvm.ve.vl.vstunc.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)366 ret void367}368 369; Function Attrs: nounwind370define void @vstunc_vssml_imm(ptr %0) {371; CHECK-LABEL: vstunc_vssml_imm:372; CHECK: # %bb.0:373; CHECK-NEXT: lea %s1, 256374; CHECK-NEXT: lvl %s1375; CHECK-NEXT: vld %v0, 8, %s0376; CHECK-NEXT: vstu.nc %v0, 8, %s0, %vm1377; CHECK-NEXT: b.l.t (, %s10)378 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)379 tail call void @llvm.ve.vl.vstunc.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)380 ret void381}382 383; Function Attrs: nounwind384define void @vstuot_vssl(ptr %0, i64 %1) {385; CHECK-LABEL: vstuot_vssl:386; CHECK: # %bb.0:387; CHECK-NEXT: lea %s2, 256388; CHECK-NEXT: lvl %s2389; CHECK-NEXT: vld %v0, %s1, %s0390; CHECK-NEXT: vstu.ot %v0, %s1, %s0391; CHECK-NEXT: b.l.t (, %s10)392 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)393 tail call void @llvm.ve.vl.vstuot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)394 ret void395}396 397; Function Attrs: nounwind writeonly398declare void @llvm.ve.vl.vstuot.vssl(<256 x double>, i64, ptr, i32)399 400; Function Attrs: nounwind401define void @vstuot_vssml(ptr %0, i64 %1) {402; CHECK-LABEL: vstuot_vssml:403; CHECK: # %bb.0:404; CHECK-NEXT: lea %s2, 256405; CHECK-NEXT: lvl %s2406; CHECK-NEXT: vld %v0, %s1, %s0407; CHECK-NEXT: vstu.ot %v0, %s1, %s0, %vm1408; CHECK-NEXT: b.l.t (, %s10)409 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)410 tail call void @llvm.ve.vl.vstuot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)411 ret void412}413 414; Function Attrs: nounwind writeonly415declare void @llvm.ve.vl.vstuot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)416 417; Function Attrs: nounwind418define void @vstuot_vssl_imm(ptr %0) {419; CHECK-LABEL: vstuot_vssl_imm:420; CHECK: # %bb.0:421; CHECK-NEXT: lea %s1, 256422; CHECK-NEXT: lvl %s1423; CHECK-NEXT: vld %v0, 8, %s0424; CHECK-NEXT: vstu.ot %v0, 8, %s0425; CHECK-NEXT: b.l.t (, %s10)426 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)427 tail call void @llvm.ve.vl.vstuot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)428 ret void429}430 431; Function Attrs: nounwind432define void @vstuot_vssml_imm(ptr %0) {433; CHECK-LABEL: vstuot_vssml_imm:434; CHECK: # %bb.0:435; CHECK-NEXT: lea %s1, 256436; CHECK-NEXT: lvl %s1437; CHECK-NEXT: vld %v0, 8, %s0438; CHECK-NEXT: vstu.ot %v0, 8, %s0, %vm1439; CHECK-NEXT: b.l.t (, %s10)440 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)441 tail call void @llvm.ve.vl.vstuot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)442 ret void443}444 445; Function Attrs: nounwind446define void @vstuncot_vssl(ptr %0, i64 %1) {447; CHECK-LABEL: vstuncot_vssl:448; CHECK: # %bb.0:449; CHECK-NEXT: lea %s2, 256450; CHECK-NEXT: lvl %s2451; CHECK-NEXT: vld %v0, %s1, %s0452; CHECK-NEXT: vstu.nc.ot %v0, %s1, %s0453; CHECK-NEXT: b.l.t (, %s10)454 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)455 tail call void @llvm.ve.vl.vstuncot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)456 ret void457}458 459; Function Attrs: nounwind writeonly460declare void @llvm.ve.vl.vstuncot.vssl(<256 x double>, i64, ptr, i32)461 462; Function Attrs: nounwind463define void @vstuncot_vssml(ptr %0, i64 %1) {464; CHECK-LABEL: vstuncot_vssml:465; CHECK: # %bb.0:466; CHECK-NEXT: lea %s2, 256467; CHECK-NEXT: lvl %s2468; CHECK-NEXT: vld %v0, %s1, %s0469; CHECK-NEXT: vstu.nc.ot %v0, %s1, %s0, %vm1470; CHECK-NEXT: b.l.t (, %s10)471 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)472 tail call void @llvm.ve.vl.vstuncot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)473 ret void474}475 476; Function Attrs: nounwind writeonly477declare void @llvm.ve.vl.vstuncot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)478 479; Function Attrs: nounwind480define void @vstuncot_vssl_imm(ptr %0) {481; CHECK-LABEL: vstuncot_vssl_imm:482; CHECK: # %bb.0:483; CHECK-NEXT: lea %s1, 256484; CHECK-NEXT: lvl %s1485; CHECK-NEXT: vld %v0, 8, %s0486; CHECK-NEXT: vstu.nc.ot %v0, 8, %s0487; CHECK-NEXT: b.l.t (, %s10)488 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)489 tail call void @llvm.ve.vl.vstuncot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)490 ret void491}492 493; Function Attrs: nounwind494define void @vstuncot_vssml_imm(ptr %0) {495; CHECK-LABEL: vstuncot_vssml_imm:496; CHECK: # %bb.0:497; CHECK-NEXT: lea %s1, 256498; CHECK-NEXT: lvl %s1499; CHECK-NEXT: vld %v0, 8, %s0500; CHECK-NEXT: vstu.nc.ot %v0, 8, %s0, %vm1501; CHECK-NEXT: b.l.t (, %s10)502 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)503 tail call void @llvm.ve.vl.vstuncot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)504 ret void505}506 507; Function Attrs: nounwind508define void @vstl_vssl(ptr %0, i64 %1) {509; CHECK-LABEL: vstl_vssl:510; CHECK: # %bb.0:511; CHECK-NEXT: lea %s2, 256512; CHECK-NEXT: lvl %s2513; CHECK-NEXT: vld %v0, %s1, %s0514; CHECK-NEXT: vstl %v0, %s1, %s0515; CHECK-NEXT: b.l.t (, %s10)516 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)517 tail call void @llvm.ve.vl.vstl.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)518 ret void519}520 521; Function Attrs: nounwind writeonly522declare void @llvm.ve.vl.vstl.vssl(<256 x double>, i64, ptr, i32)523 524; Function Attrs: nounwind525define void @vstl_vssml(ptr %0, i64 %1) {526; CHECK-LABEL: vstl_vssml:527; CHECK: # %bb.0:528; CHECK-NEXT: lea %s2, 256529; CHECK-NEXT: lvl %s2530; CHECK-NEXT: vld %v0, %s1, %s0531; CHECK-NEXT: vstl %v0, %s1, %s0, %vm1532; CHECK-NEXT: b.l.t (, %s10)533 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)534 tail call void @llvm.ve.vl.vstl.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)535 ret void536}537 538; Function Attrs: nounwind writeonly539declare void @llvm.ve.vl.vstl.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)540 541; Function Attrs: nounwind542define void @vstl_vssl_imm(ptr %0) {543; CHECK-LABEL: vstl_vssl_imm:544; CHECK: # %bb.0:545; CHECK-NEXT: lea %s1, 256546; CHECK-NEXT: lvl %s1547; CHECK-NEXT: vld %v0, 8, %s0548; CHECK-NEXT: vstl %v0, 8, %s0549; CHECK-NEXT: b.l.t (, %s10)550 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)551 tail call void @llvm.ve.vl.vstl.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)552 ret void553}554 555; Function Attrs: nounwind556define void @vstl_vssml_imm(ptr %0) {557; CHECK-LABEL: vstl_vssml_imm:558; CHECK: # %bb.0:559; CHECK-NEXT: lea %s1, 256560; CHECK-NEXT: lvl %s1561; CHECK-NEXT: vld %v0, 8, %s0562; CHECK-NEXT: vstl %v0, 8, %s0, %vm1563; CHECK-NEXT: b.l.t (, %s10)564 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)565 tail call void @llvm.ve.vl.vstl.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)566 ret void567}568 569; Function Attrs: nounwind570define void @vstlnc_vssl(ptr %0, i64 %1) {571; CHECK-LABEL: vstlnc_vssl:572; CHECK: # %bb.0:573; CHECK-NEXT: lea %s2, 256574; CHECK-NEXT: lvl %s2575; CHECK-NEXT: vld %v0, %s1, %s0576; CHECK-NEXT: vstl.nc %v0, %s1, %s0577; CHECK-NEXT: b.l.t (, %s10)578 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)579 tail call void @llvm.ve.vl.vstlnc.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)580 ret void581}582 583; Function Attrs: nounwind writeonly584declare void @llvm.ve.vl.vstlnc.vssl(<256 x double>, i64, ptr, i32)585 586; Function Attrs: nounwind587define void @vstlnc_vssml(ptr %0, i64 %1) {588; CHECK-LABEL: vstlnc_vssml:589; CHECK: # %bb.0:590; CHECK-NEXT: lea %s2, 256591; CHECK-NEXT: lvl %s2592; CHECK-NEXT: vld %v0, %s1, %s0593; CHECK-NEXT: vstl.nc %v0, %s1, %s0, %vm1594; CHECK-NEXT: b.l.t (, %s10)595 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)596 tail call void @llvm.ve.vl.vstlnc.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)597 ret void598}599 600; Function Attrs: nounwind writeonly601declare void @llvm.ve.vl.vstlnc.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)602 603; Function Attrs: nounwind604define void @vstlnc_vssl_imm(ptr %0) {605; CHECK-LABEL: vstlnc_vssl_imm:606; CHECK: # %bb.0:607; CHECK-NEXT: lea %s1, 256608; CHECK-NEXT: lvl %s1609; CHECK-NEXT: vld %v0, 8, %s0610; CHECK-NEXT: vstl.nc %v0, 8, %s0611; CHECK-NEXT: b.l.t (, %s10)612 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)613 tail call void @llvm.ve.vl.vstlnc.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)614 ret void615}616 617; Function Attrs: nounwind618define void @vstlnc_vssml_imm(ptr %0) {619; CHECK-LABEL: vstlnc_vssml_imm:620; CHECK: # %bb.0:621; CHECK-NEXT: lea %s1, 256622; CHECK-NEXT: lvl %s1623; CHECK-NEXT: vld %v0, 8, %s0624; CHECK-NEXT: vstl.nc %v0, 8, %s0, %vm1625; CHECK-NEXT: b.l.t (, %s10)626 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)627 tail call void @llvm.ve.vl.vstlnc.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)628 ret void629}630 631; Function Attrs: nounwind632define void @vstlot_vssl(ptr %0, i64 %1) {633; CHECK-LABEL: vstlot_vssl:634; CHECK: # %bb.0:635; CHECK-NEXT: lea %s2, 256636; CHECK-NEXT: lvl %s2637; CHECK-NEXT: vld %v0, %s1, %s0638; CHECK-NEXT: vstl.ot %v0, %s1, %s0639; CHECK-NEXT: b.l.t (, %s10)640 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)641 tail call void @llvm.ve.vl.vstlot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)642 ret void643}644 645; Function Attrs: nounwind writeonly646declare void @llvm.ve.vl.vstlot.vssl(<256 x double>, i64, ptr, i32)647 648; Function Attrs: nounwind649define void @vstlot_vssml(ptr %0, i64 %1) {650; CHECK-LABEL: vstlot_vssml:651; CHECK: # %bb.0:652; CHECK-NEXT: lea %s2, 256653; CHECK-NEXT: lvl %s2654; CHECK-NEXT: vld %v0, %s1, %s0655; CHECK-NEXT: vstl.ot %v0, %s1, %s0, %vm1656; CHECK-NEXT: b.l.t (, %s10)657 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)658 tail call void @llvm.ve.vl.vstlot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)659 ret void660}661 662; Function Attrs: nounwind writeonly663declare void @llvm.ve.vl.vstlot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)664 665; Function Attrs: nounwind666define void @vstlot_vssl_imm(ptr %0) {667; CHECK-LABEL: vstlot_vssl_imm:668; CHECK: # %bb.0:669; CHECK-NEXT: lea %s1, 256670; CHECK-NEXT: lvl %s1671; CHECK-NEXT: vld %v0, 8, %s0672; CHECK-NEXT: vstl.ot %v0, 8, %s0673; CHECK-NEXT: b.l.t (, %s10)674 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)675 tail call void @llvm.ve.vl.vstlot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)676 ret void677}678 679; Function Attrs: nounwind680define void @vstlot_vssml_imm(ptr %0) {681; CHECK-LABEL: vstlot_vssml_imm:682; CHECK: # %bb.0:683; CHECK-NEXT: lea %s1, 256684; CHECK-NEXT: lvl %s1685; CHECK-NEXT: vld %v0, 8, %s0686; CHECK-NEXT: vstl.ot %v0, 8, %s0, %vm1687; CHECK-NEXT: b.l.t (, %s10)688 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)689 tail call void @llvm.ve.vl.vstlot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)690 ret void691}692 693; Function Attrs: nounwind694define void @vstlncot_vssl(ptr %0, i64 %1) {695; CHECK-LABEL: vstlncot_vssl:696; CHECK: # %bb.0:697; CHECK-NEXT: lea %s2, 256698; CHECK-NEXT: lvl %s2699; CHECK-NEXT: vld %v0, %s1, %s0700; CHECK-NEXT: vstl.nc.ot %v0, %s1, %s0701; CHECK-NEXT: b.l.t (, %s10)702 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)703 tail call void @llvm.ve.vl.vstlncot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)704 ret void705}706 707; Function Attrs: nounwind writeonly708declare void @llvm.ve.vl.vstlncot.vssl(<256 x double>, i64, ptr, i32)709 710; Function Attrs: nounwind711define void @vstlncot_vssml(ptr %0, i64 %1) {712; CHECK-LABEL: vstlncot_vssml:713; CHECK: # %bb.0:714; CHECK-NEXT: lea %s2, 256715; CHECK-NEXT: lvl %s2716; CHECK-NEXT: vld %v0, %s1, %s0717; CHECK-NEXT: vstl.nc.ot %v0, %s1, %s0, %vm1718; CHECK-NEXT: b.l.t (, %s10)719 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)720 tail call void @llvm.ve.vl.vstlncot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)721 ret void722}723 724; Function Attrs: nounwind writeonly725declare void @llvm.ve.vl.vstlncot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)726 727; Function Attrs: nounwind728define void @vstlncot_vssl_imm(ptr %0) {729; CHECK-LABEL: vstlncot_vssl_imm:730; CHECK: # %bb.0:731; CHECK-NEXT: lea %s1, 256732; CHECK-NEXT: lvl %s1733; CHECK-NEXT: vld %v0, 8, %s0734; CHECK-NEXT: vstl.nc.ot %v0, 8, %s0735; CHECK-NEXT: b.l.t (, %s10)736 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)737 tail call void @llvm.ve.vl.vstlncot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)738 ret void739}740 741; Function Attrs: nounwind742define void @vstlncot_vssml_imm(ptr %0) {743; CHECK-LABEL: vstlncot_vssml_imm:744; CHECK: # %bb.0:745; CHECK-NEXT: lea %s1, 256746; CHECK-NEXT: lvl %s1747; CHECK-NEXT: vld %v0, 8, %s0748; CHECK-NEXT: vstl.nc.ot %v0, 8, %s0, %vm1749; CHECK-NEXT: b.l.t (, %s10)750 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)751 tail call void @llvm.ve.vl.vstlncot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)752 ret void753}754 755; Function Attrs: nounwind756define void @vst2d_vssl(ptr %0, i64 %1) {757; CHECK-LABEL: vst2d_vssl:758; CHECK: # %bb.0:759; CHECK-NEXT: lea %s2, 256760; CHECK-NEXT: lvl %s2761; CHECK-NEXT: vld %v0, %s1, %s0762; CHECK-NEXT: vst2d %v0, %s1, %s0763; CHECK-NEXT: b.l.t (, %s10)764 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)765 tail call void @llvm.ve.vl.vst2d.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)766 ret void767}768 769; Function Attrs: nounwind writeonly770declare void @llvm.ve.vl.vst2d.vssl(<256 x double>, i64, ptr, i32)771 772; Function Attrs: nounwind773define void @vst2d_vssml(ptr %0, i64 %1) {774; CHECK-LABEL: vst2d_vssml:775; CHECK: # %bb.0:776; CHECK-NEXT: lea %s2, 256777; CHECK-NEXT: lvl %s2778; CHECK-NEXT: vld %v0, %s1, %s0779; CHECK-NEXT: vst2d %v0, %s1, %s0, %vm1780; CHECK-NEXT: b.l.t (, %s10)781 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)782 tail call void @llvm.ve.vl.vst2d.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)783 ret void784}785 786; Function Attrs: nounwind writeonly787declare void @llvm.ve.vl.vst2d.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)788 789; Function Attrs: nounwind790define void @vst2d_vssl_imm(ptr %0) {791; CHECK-LABEL: vst2d_vssl_imm:792; CHECK: # %bb.0:793; CHECK-NEXT: lea %s1, 256794; CHECK-NEXT: lvl %s1795; CHECK-NEXT: vld %v0, 8, %s0796; CHECK-NEXT: vst2d %v0, 8, %s0797; CHECK-NEXT: b.l.t (, %s10)798 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)799 tail call void @llvm.ve.vl.vst2d.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)800 ret void801}802 803; Function Attrs: nounwind804define void @vst2d_vssml_imm(ptr %0) {805; CHECK-LABEL: vst2d_vssml_imm:806; CHECK: # %bb.0:807; CHECK-NEXT: lea %s1, 256808; CHECK-NEXT: lvl %s1809; CHECK-NEXT: vld %v0, 8, %s0810; CHECK-NEXT: vst2d %v0, 8, %s0, %vm1811; CHECK-NEXT: b.l.t (, %s10)812 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)813 tail call void @llvm.ve.vl.vst2d.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)814 ret void815}816 817; Function Attrs: nounwind818define void @vst2dnc_vssl(ptr %0, i64 %1) {819; CHECK-LABEL: vst2dnc_vssl:820; CHECK: # %bb.0:821; CHECK-NEXT: lea %s2, 256822; CHECK-NEXT: lvl %s2823; CHECK-NEXT: vld %v0, %s1, %s0824; CHECK-NEXT: vst2d.nc %v0, %s1, %s0825; CHECK-NEXT: b.l.t (, %s10)826 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)827 tail call void @llvm.ve.vl.vst2dnc.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)828 ret void829}830 831; Function Attrs: nounwind writeonly832declare void @llvm.ve.vl.vst2dnc.vssl(<256 x double>, i64, ptr, i32)833 834; Function Attrs: nounwind835define void @vst2dnc_vssml(ptr %0, i64 %1) {836; CHECK-LABEL: vst2dnc_vssml:837; CHECK: # %bb.0:838; CHECK-NEXT: lea %s2, 256839; CHECK-NEXT: lvl %s2840; CHECK-NEXT: vld %v0, %s1, %s0841; CHECK-NEXT: vst2d.nc %v0, %s1, %s0, %vm1842; CHECK-NEXT: b.l.t (, %s10)843 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)844 tail call void @llvm.ve.vl.vst2dnc.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)845 ret void846}847 848; Function Attrs: nounwind writeonly849declare void @llvm.ve.vl.vst2dnc.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)850 851; Function Attrs: nounwind852define void @vst2dnc_vssl_imm(ptr %0) {853; CHECK-LABEL: vst2dnc_vssl_imm:854; CHECK: # %bb.0:855; CHECK-NEXT: lea %s1, 256856; CHECK-NEXT: lvl %s1857; CHECK-NEXT: vld %v0, 8, %s0858; CHECK-NEXT: vst2d.nc %v0, 8, %s0859; CHECK-NEXT: b.l.t (, %s10)860 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)861 tail call void @llvm.ve.vl.vst2dnc.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)862 ret void863}864 865; Function Attrs: nounwind866define void @vst2dnc_vssml_imm(ptr %0) {867; CHECK-LABEL: vst2dnc_vssml_imm:868; CHECK: # %bb.0:869; CHECK-NEXT: lea %s1, 256870; CHECK-NEXT: lvl %s1871; CHECK-NEXT: vld %v0, 8, %s0872; CHECK-NEXT: vst2d.nc %v0, 8, %s0, %vm1873; CHECK-NEXT: b.l.t (, %s10)874 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)875 tail call void @llvm.ve.vl.vst2dnc.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)876 ret void877}878 879; Function Attrs: nounwind880define void @vst2dot_vssl(ptr %0, i64 %1) {881; CHECK-LABEL: vst2dot_vssl:882; CHECK: # %bb.0:883; CHECK-NEXT: lea %s2, 256884; CHECK-NEXT: lvl %s2885; CHECK-NEXT: vld %v0, %s1, %s0886; CHECK-NEXT: vst2d.ot %v0, %s1, %s0887; CHECK-NEXT: b.l.t (, %s10)888 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)889 tail call void @llvm.ve.vl.vst2dot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)890 ret void891}892 893; Function Attrs: nounwind writeonly894declare void @llvm.ve.vl.vst2dot.vssl(<256 x double>, i64, ptr, i32)895 896; Function Attrs: nounwind897define void @vst2dot_vssml(ptr %0, i64 %1) {898; CHECK-LABEL: vst2dot_vssml:899; CHECK: # %bb.0:900; CHECK-NEXT: lea %s2, 256901; CHECK-NEXT: lvl %s2902; CHECK-NEXT: vld %v0, %s1, %s0903; CHECK-NEXT: vst2d.ot %v0, %s1, %s0, %vm1904; CHECK-NEXT: b.l.t (, %s10)905 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)906 tail call void @llvm.ve.vl.vst2dot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)907 ret void908}909 910; Function Attrs: nounwind writeonly911declare void @llvm.ve.vl.vst2dot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)912 913; Function Attrs: nounwind914define void @vst2dot_vssl_imm(ptr %0) {915; CHECK-LABEL: vst2dot_vssl_imm:916; CHECK: # %bb.0:917; CHECK-NEXT: lea %s1, 256918; CHECK-NEXT: lvl %s1919; CHECK-NEXT: vld %v0, 8, %s0920; CHECK-NEXT: vst2d.ot %v0, 8, %s0921; CHECK-NEXT: b.l.t (, %s10)922 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)923 tail call void @llvm.ve.vl.vst2dot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)924 ret void925}926 927; Function Attrs: nounwind928define void @vst2dot_vssml_imm(ptr %0) {929; CHECK-LABEL: vst2dot_vssml_imm:930; CHECK: # %bb.0:931; CHECK-NEXT: lea %s1, 256932; CHECK-NEXT: lvl %s1933; CHECK-NEXT: vld %v0, 8, %s0934; CHECK-NEXT: vst2d.ot %v0, 8, %s0, %vm1935; CHECK-NEXT: b.l.t (, %s10)936 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)937 tail call void @llvm.ve.vl.vst2dot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)938 ret void939}940 941; Function Attrs: nounwind942define void @vst2dncot_vssl(ptr %0, i64 %1) {943; CHECK-LABEL: vst2dncot_vssl:944; CHECK: # %bb.0:945; CHECK-NEXT: lea %s2, 256946; CHECK-NEXT: lvl %s2947; CHECK-NEXT: vld %v0, %s1, %s0948; CHECK-NEXT: vst2d.nc.ot %v0, %s1, %s0949; CHECK-NEXT: b.l.t (, %s10)950 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)951 tail call void @llvm.ve.vl.vst2dncot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)952 ret void953}954 955; Function Attrs: nounwind writeonly956declare void @llvm.ve.vl.vst2dncot.vssl(<256 x double>, i64, ptr, i32)957 958; Function Attrs: nounwind959define void @vst2dncot_vssml(ptr %0, i64 %1) {960; CHECK-LABEL: vst2dncot_vssml:961; CHECK: # %bb.0:962; CHECK-NEXT: lea %s2, 256963; CHECK-NEXT: lvl %s2964; CHECK-NEXT: vld %v0, %s1, %s0965; CHECK-NEXT: vst2d.nc.ot %v0, %s1, %s0, %vm1966; CHECK-NEXT: b.l.t (, %s10)967 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)968 tail call void @llvm.ve.vl.vst2dncot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)969 ret void970}971 972; Function Attrs: nounwind writeonly973declare void @llvm.ve.vl.vst2dncot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)974 975; Function Attrs: nounwind976define void @vst2dncot_vssl_imm(ptr %0) {977; CHECK-LABEL: vst2dncot_vssl_imm:978; CHECK: # %bb.0:979; CHECK-NEXT: lea %s1, 256980; CHECK-NEXT: lvl %s1981; CHECK-NEXT: vld %v0, 8, %s0982; CHECK-NEXT: vst2d.nc.ot %v0, 8, %s0983; CHECK-NEXT: b.l.t (, %s10)984 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)985 tail call void @llvm.ve.vl.vst2dncot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)986 ret void987}988 989; Function Attrs: nounwind990define void @vst2dncot_vssml_imm(ptr %0) {991; CHECK-LABEL: vst2dncot_vssml_imm:992; CHECK: # %bb.0:993; CHECK-NEXT: lea %s1, 256994; CHECK-NEXT: lvl %s1995; CHECK-NEXT: vld %v0, 8, %s0996; CHECK-NEXT: vst2d.nc.ot %v0, 8, %s0, %vm1997; CHECK-NEXT: b.l.t (, %s10)998 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)999 tail call void @llvm.ve.vl.vst2dncot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1000 ret void1001}1002 1003; Function Attrs: nounwind1004define void @vstu2d_vssl(ptr %0, i64 %1) {1005; CHECK-LABEL: vstu2d_vssl:1006; CHECK: # %bb.0:1007; CHECK-NEXT: lea %s2, 2561008; CHECK-NEXT: lvl %s21009; CHECK-NEXT: vld %v0, %s1, %s01010; CHECK-NEXT: vstu2d %v0, %s1, %s01011; CHECK-NEXT: b.l.t (, %s10)1012 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1013 tail call void @llvm.ve.vl.vstu2d.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1014 ret void1015}1016 1017; Function Attrs: nounwind writeonly1018declare void @llvm.ve.vl.vstu2d.vssl(<256 x double>, i64, ptr, i32)1019 1020; Function Attrs: nounwind1021define void @vstu2d_vssml(ptr %0, i64 %1) {1022; CHECK-LABEL: vstu2d_vssml:1023; CHECK: # %bb.0:1024; CHECK-NEXT: lea %s2, 2561025; CHECK-NEXT: lvl %s21026; CHECK-NEXT: vld %v0, %s1, %s01027; CHECK-NEXT: vstu2d %v0, %s1, %s0, %vm11028; CHECK-NEXT: b.l.t (, %s10)1029 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1030 tail call void @llvm.ve.vl.vstu2d.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1031 ret void1032}1033 1034; Function Attrs: nounwind writeonly1035declare void @llvm.ve.vl.vstu2d.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1036 1037; Function Attrs: nounwind1038define void @vstu2d_vssl_imm(ptr %0) {1039; CHECK-LABEL: vstu2d_vssl_imm:1040; CHECK: # %bb.0:1041; CHECK-NEXT: lea %s1, 2561042; CHECK-NEXT: lvl %s11043; CHECK-NEXT: vld %v0, 8, %s01044; CHECK-NEXT: vstu2d %v0, 8, %s01045; CHECK-NEXT: b.l.t (, %s10)1046 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1047 tail call void @llvm.ve.vl.vstu2d.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1048 ret void1049}1050 1051; Function Attrs: nounwind1052define void @vstu2d_vssml_imm(ptr %0) {1053; CHECK-LABEL: vstu2d_vssml_imm:1054; CHECK: # %bb.0:1055; CHECK-NEXT: lea %s1, 2561056; CHECK-NEXT: lvl %s11057; CHECK-NEXT: vld %v0, 8, %s01058; CHECK-NEXT: vstu2d %v0, 8, %s0, %vm11059; CHECK-NEXT: b.l.t (, %s10)1060 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1061 tail call void @llvm.ve.vl.vstu2d.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1062 ret void1063}1064 1065; Function Attrs: nounwind1066define void @vstu2dnc_vssl(ptr %0, i64 %1) {1067; CHECK-LABEL: vstu2dnc_vssl:1068; CHECK: # %bb.0:1069; CHECK-NEXT: lea %s2, 2561070; CHECK-NEXT: lvl %s21071; CHECK-NEXT: vld %v0, %s1, %s01072; CHECK-NEXT: vstu2d.nc %v0, %s1, %s01073; CHECK-NEXT: b.l.t (, %s10)1074 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1075 tail call void @llvm.ve.vl.vstu2dnc.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1076 ret void1077}1078 1079; Function Attrs: nounwind writeonly1080declare void @llvm.ve.vl.vstu2dnc.vssl(<256 x double>, i64, ptr, i32)1081 1082; Function Attrs: nounwind1083define void @vstu2dnc_vssml(ptr %0, i64 %1) {1084; CHECK-LABEL: vstu2dnc_vssml:1085; CHECK: # %bb.0:1086; CHECK-NEXT: lea %s2, 2561087; CHECK-NEXT: lvl %s21088; CHECK-NEXT: vld %v0, %s1, %s01089; CHECK-NEXT: vstu2d.nc %v0, %s1, %s0, %vm11090; CHECK-NEXT: b.l.t (, %s10)1091 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1092 tail call void @llvm.ve.vl.vstu2dnc.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1093 ret void1094}1095 1096; Function Attrs: nounwind writeonly1097declare void @llvm.ve.vl.vstu2dnc.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1098 1099; Function Attrs: nounwind1100define void @vstu2dnc_vssl_imm(ptr %0) {1101; CHECK-LABEL: vstu2dnc_vssl_imm:1102; CHECK: # %bb.0:1103; CHECK-NEXT: lea %s1, 2561104; CHECK-NEXT: lvl %s11105; CHECK-NEXT: vld %v0, 8, %s01106; CHECK-NEXT: vstu2d.nc %v0, 8, %s01107; CHECK-NEXT: b.l.t (, %s10)1108 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1109 tail call void @llvm.ve.vl.vstu2dnc.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1110 ret void1111}1112 1113; Function Attrs: nounwind1114define void @vstu2dnc_vssml_imm(ptr %0) {1115; CHECK-LABEL: vstu2dnc_vssml_imm:1116; CHECK: # %bb.0:1117; CHECK-NEXT: lea %s1, 2561118; CHECK-NEXT: lvl %s11119; CHECK-NEXT: vld %v0, 8, %s01120; CHECK-NEXT: vstu2d.nc %v0, 8, %s0, %vm11121; CHECK-NEXT: b.l.t (, %s10)1122 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1123 tail call void @llvm.ve.vl.vstu2dnc.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1124 ret void1125}1126 1127; Function Attrs: nounwind1128define void @vstu2dot_vssl(ptr %0, i64 %1) {1129; CHECK-LABEL: vstu2dot_vssl:1130; CHECK: # %bb.0:1131; CHECK-NEXT: lea %s2, 2561132; CHECK-NEXT: lvl %s21133; CHECK-NEXT: vld %v0, %s1, %s01134; CHECK-NEXT: vstu2d.ot %v0, %s1, %s01135; CHECK-NEXT: b.l.t (, %s10)1136 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1137 tail call void @llvm.ve.vl.vstu2dot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1138 ret void1139}1140 1141; Function Attrs: nounwind writeonly1142declare void @llvm.ve.vl.vstu2dot.vssl(<256 x double>, i64, ptr, i32)1143 1144; Function Attrs: nounwind1145define void @vstu2dot_vssml(ptr %0, i64 %1) {1146; CHECK-LABEL: vstu2dot_vssml:1147; CHECK: # %bb.0:1148; CHECK-NEXT: lea %s2, 2561149; CHECK-NEXT: lvl %s21150; CHECK-NEXT: vld %v0, %s1, %s01151; CHECK-NEXT: vstu2d.ot %v0, %s1, %s0, %vm11152; CHECK-NEXT: b.l.t (, %s10)1153 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1154 tail call void @llvm.ve.vl.vstu2dot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1155 ret void1156}1157 1158; Function Attrs: nounwind writeonly1159declare void @llvm.ve.vl.vstu2dot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1160 1161; Function Attrs: nounwind1162define void @vstu2dot_vssl_imm(ptr %0) {1163; CHECK-LABEL: vstu2dot_vssl_imm:1164; CHECK: # %bb.0:1165; CHECK-NEXT: lea %s1, 2561166; CHECK-NEXT: lvl %s11167; CHECK-NEXT: vld %v0, 8, %s01168; CHECK-NEXT: vstu2d.ot %v0, 8, %s01169; CHECK-NEXT: b.l.t (, %s10)1170 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1171 tail call void @llvm.ve.vl.vstu2dot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1172 ret void1173}1174 1175; Function Attrs: nounwind1176define void @vstu2dot_vssml_imm(ptr %0) {1177; CHECK-LABEL: vstu2dot_vssml_imm:1178; CHECK: # %bb.0:1179; CHECK-NEXT: lea %s1, 2561180; CHECK-NEXT: lvl %s11181; CHECK-NEXT: vld %v0, 8, %s01182; CHECK-NEXT: vstu2d.ot %v0, 8, %s0, %vm11183; CHECK-NEXT: b.l.t (, %s10)1184 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1185 tail call void @llvm.ve.vl.vstu2dot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1186 ret void1187}1188 1189; Function Attrs: nounwind1190define void @vstu2dncot_vssl(ptr %0, i64 %1) {1191; CHECK-LABEL: vstu2dncot_vssl:1192; CHECK: # %bb.0:1193; CHECK-NEXT: lea %s2, 2561194; CHECK-NEXT: lvl %s21195; CHECK-NEXT: vld %v0, %s1, %s01196; CHECK-NEXT: vstu2d.nc.ot %v0, %s1, %s01197; CHECK-NEXT: b.l.t (, %s10)1198 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1199 tail call void @llvm.ve.vl.vstu2dncot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1200 ret void1201}1202 1203; Function Attrs: nounwind writeonly1204declare void @llvm.ve.vl.vstu2dncot.vssl(<256 x double>, i64, ptr, i32)1205 1206; Function Attrs: nounwind1207define void @vstu2dncot_vssml(ptr %0, i64 %1) {1208; CHECK-LABEL: vstu2dncot_vssml:1209; CHECK: # %bb.0:1210; CHECK-NEXT: lea %s2, 2561211; CHECK-NEXT: lvl %s21212; CHECK-NEXT: vld %v0, %s1, %s01213; CHECK-NEXT: vstu2d.nc.ot %v0, %s1, %s0, %vm11214; CHECK-NEXT: b.l.t (, %s10)1215 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1216 tail call void @llvm.ve.vl.vstu2dncot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1217 ret void1218}1219 1220; Function Attrs: nounwind writeonly1221declare void @llvm.ve.vl.vstu2dncot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1222 1223; Function Attrs: nounwind1224define void @vstu2dncot_vssl_imm(ptr %0) {1225; CHECK-LABEL: vstu2dncot_vssl_imm:1226; CHECK: # %bb.0:1227; CHECK-NEXT: lea %s1, 2561228; CHECK-NEXT: lvl %s11229; CHECK-NEXT: vld %v0, 8, %s01230; CHECK-NEXT: vstu2d.nc.ot %v0, 8, %s01231; CHECK-NEXT: b.l.t (, %s10)1232 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1233 tail call void @llvm.ve.vl.vstu2dncot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1234 ret void1235}1236 1237; Function Attrs: nounwind1238define void @vstu2dncot_vssml_imm(ptr %0) {1239; CHECK-LABEL: vstu2dncot_vssml_imm:1240; CHECK: # %bb.0:1241; CHECK-NEXT: lea %s1, 2561242; CHECK-NEXT: lvl %s11243; CHECK-NEXT: vld %v0, 8, %s01244; CHECK-NEXT: vstu2d.nc.ot %v0, 8, %s0, %vm11245; CHECK-NEXT: b.l.t (, %s10)1246 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1247 tail call void @llvm.ve.vl.vstu2dncot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1248 ret void1249}1250 1251; Function Attrs: nounwind1252define void @vstl2d_vssl(ptr %0, i64 %1) {1253; CHECK-LABEL: vstl2d_vssl:1254; CHECK: # %bb.0:1255; CHECK-NEXT: lea %s2, 2561256; CHECK-NEXT: lvl %s21257; CHECK-NEXT: vld %v0, %s1, %s01258; CHECK-NEXT: vstl2d %v0, %s1, %s01259; CHECK-NEXT: b.l.t (, %s10)1260 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1261 tail call void @llvm.ve.vl.vstl2d.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1262 ret void1263}1264 1265; Function Attrs: nounwind writeonly1266declare void @llvm.ve.vl.vstl2d.vssl(<256 x double>, i64, ptr, i32)1267 1268; Function Attrs: nounwind1269define void @vstl2d_vssml(ptr %0, i64 %1) {1270; CHECK-LABEL: vstl2d_vssml:1271; CHECK: # %bb.0:1272; CHECK-NEXT: lea %s2, 2561273; CHECK-NEXT: lvl %s21274; CHECK-NEXT: vld %v0, %s1, %s01275; CHECK-NEXT: vstl2d %v0, %s1, %s0, %vm11276; CHECK-NEXT: b.l.t (, %s10)1277 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1278 tail call void @llvm.ve.vl.vstl2d.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1279 ret void1280}1281 1282; Function Attrs: nounwind writeonly1283declare void @llvm.ve.vl.vstl2d.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1284 1285; Function Attrs: nounwind1286define void @vstl2d_vssl_imm(ptr %0) {1287; CHECK-LABEL: vstl2d_vssl_imm:1288; CHECK: # %bb.0:1289; CHECK-NEXT: lea %s1, 2561290; CHECK-NEXT: lvl %s11291; CHECK-NEXT: vld %v0, 8, %s01292; CHECK-NEXT: vstl2d %v0, 8, %s01293; CHECK-NEXT: b.l.t (, %s10)1294 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1295 tail call void @llvm.ve.vl.vstl2d.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1296 ret void1297}1298 1299; Function Attrs: nounwind1300define void @vstl2d_vssml_imm(ptr %0) {1301; CHECK-LABEL: vstl2d_vssml_imm:1302; CHECK: # %bb.0:1303; CHECK-NEXT: lea %s1, 2561304; CHECK-NEXT: lvl %s11305; CHECK-NEXT: vld %v0, 8, %s01306; CHECK-NEXT: vstl2d %v0, 8, %s0, %vm11307; CHECK-NEXT: b.l.t (, %s10)1308 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1309 tail call void @llvm.ve.vl.vstl2d.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1310 ret void1311}1312 1313; Function Attrs: nounwind1314define void @vstl2dnc_vssl(ptr %0, i64 %1) {1315; CHECK-LABEL: vstl2dnc_vssl:1316; CHECK: # %bb.0:1317; CHECK-NEXT: lea %s2, 2561318; CHECK-NEXT: lvl %s21319; CHECK-NEXT: vld %v0, %s1, %s01320; CHECK-NEXT: vstl2d.nc %v0, %s1, %s01321; CHECK-NEXT: b.l.t (, %s10)1322 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1323 tail call void @llvm.ve.vl.vstl2dnc.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1324 ret void1325}1326 1327; Function Attrs: nounwind writeonly1328declare void @llvm.ve.vl.vstl2dnc.vssl(<256 x double>, i64, ptr, i32)1329 1330; Function Attrs: nounwind1331define void @vstl2dnc_vssml(ptr %0, i64 %1) {1332; CHECK-LABEL: vstl2dnc_vssml:1333; CHECK: # %bb.0:1334; CHECK-NEXT: lea %s2, 2561335; CHECK-NEXT: lvl %s21336; CHECK-NEXT: vld %v0, %s1, %s01337; CHECK-NEXT: vstl2d.nc %v0, %s1, %s0, %vm11338; CHECK-NEXT: b.l.t (, %s10)1339 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1340 tail call void @llvm.ve.vl.vstl2dnc.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1341 ret void1342}1343 1344; Function Attrs: nounwind writeonly1345declare void @llvm.ve.vl.vstl2dnc.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1346 1347; Function Attrs: nounwind1348define void @vstl2dnc_vssl_imm(ptr %0) {1349; CHECK-LABEL: vstl2dnc_vssl_imm:1350; CHECK: # %bb.0:1351; CHECK-NEXT: lea %s1, 2561352; CHECK-NEXT: lvl %s11353; CHECK-NEXT: vld %v0, 8, %s01354; CHECK-NEXT: vstl2d.nc %v0, 8, %s01355; CHECK-NEXT: b.l.t (, %s10)1356 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1357 tail call void @llvm.ve.vl.vstl2dnc.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1358 ret void1359}1360 1361; Function Attrs: nounwind1362define void @vstl2dnc_vssml_imm(ptr %0) {1363; CHECK-LABEL: vstl2dnc_vssml_imm:1364; CHECK: # %bb.0:1365; CHECK-NEXT: lea %s1, 2561366; CHECK-NEXT: lvl %s11367; CHECK-NEXT: vld %v0, 8, %s01368; CHECK-NEXT: vstl2d.nc %v0, 8, %s0, %vm11369; CHECK-NEXT: b.l.t (, %s10)1370 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1371 tail call void @llvm.ve.vl.vstl2dnc.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1372 ret void1373}1374 1375; Function Attrs: nounwind1376define void @vstl2dot_vssl(ptr %0, i64 %1) {1377; CHECK-LABEL: vstl2dot_vssl:1378; CHECK: # %bb.0:1379; CHECK-NEXT: lea %s2, 2561380; CHECK-NEXT: lvl %s21381; CHECK-NEXT: vld %v0, %s1, %s01382; CHECK-NEXT: vstl2d.ot %v0, %s1, %s01383; CHECK-NEXT: b.l.t (, %s10)1384 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1385 tail call void @llvm.ve.vl.vstl2dot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1386 ret void1387}1388 1389; Function Attrs: nounwind writeonly1390declare void @llvm.ve.vl.vstl2dot.vssl(<256 x double>, i64, ptr, i32)1391 1392; Function Attrs: nounwind1393define void @vstl2dot_vssml(ptr %0, i64 %1) {1394; CHECK-LABEL: vstl2dot_vssml:1395; CHECK: # %bb.0:1396; CHECK-NEXT: lea %s2, 2561397; CHECK-NEXT: lvl %s21398; CHECK-NEXT: vld %v0, %s1, %s01399; CHECK-NEXT: vstl2d.ot %v0, %s1, %s0, %vm11400; CHECK-NEXT: b.l.t (, %s10)1401 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1402 tail call void @llvm.ve.vl.vstl2dot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1403 ret void1404}1405 1406; Function Attrs: nounwind writeonly1407declare void @llvm.ve.vl.vstl2dot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1408 1409; Function Attrs: nounwind1410define void @vstl2dot_vssl_imm(ptr %0) {1411; CHECK-LABEL: vstl2dot_vssl_imm:1412; CHECK: # %bb.0:1413; CHECK-NEXT: lea %s1, 2561414; CHECK-NEXT: lvl %s11415; CHECK-NEXT: vld %v0, 8, %s01416; CHECK-NEXT: vstl2d.ot %v0, 8, %s01417; CHECK-NEXT: b.l.t (, %s10)1418 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1419 tail call void @llvm.ve.vl.vstl2dot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1420 ret void1421}1422 1423; Function Attrs: nounwind1424define void @vstl2dot_vssml_imm(ptr %0) {1425; CHECK-LABEL: vstl2dot_vssml_imm:1426; CHECK: # %bb.0:1427; CHECK-NEXT: lea %s1, 2561428; CHECK-NEXT: lvl %s11429; CHECK-NEXT: vld %v0, 8, %s01430; CHECK-NEXT: vstl2d.ot %v0, 8, %s0, %vm11431; CHECK-NEXT: b.l.t (, %s10)1432 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1433 tail call void @llvm.ve.vl.vstl2dot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1434 ret void1435}1436 1437; Function Attrs: nounwind1438define void @vstl2dncot_vssl(ptr %0, i64 %1) {1439; CHECK-LABEL: vstl2dncot_vssl:1440; CHECK: # %bb.0:1441; CHECK-NEXT: lea %s2, 2561442; CHECK-NEXT: lvl %s21443; CHECK-NEXT: vld %v0, %s1, %s01444; CHECK-NEXT: vstl2d.nc.ot %v0, %s1, %s01445; CHECK-NEXT: b.l.t (, %s10)1446 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1447 tail call void @llvm.ve.vl.vstl2dncot.vssl(<256 x double> %3, i64 %1, ptr %0, i32 256)1448 ret void1449}1450 1451; Function Attrs: nounwind writeonly1452declare void @llvm.ve.vl.vstl2dncot.vssl(<256 x double>, i64, ptr, i32)1453 1454; Function Attrs: nounwind1455define void @vstl2dncot_vssml(ptr %0, i64 %1) {1456; CHECK-LABEL: vstl2dncot_vssml:1457; CHECK: # %bb.0:1458; CHECK-NEXT: lea %s2, 2561459; CHECK-NEXT: lvl %s21460; CHECK-NEXT: vld %v0, %s1, %s01461; CHECK-NEXT: vstl2d.nc.ot %v0, %s1, %s0, %vm11462; CHECK-NEXT: b.l.t (, %s10)1463 %3 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 %1, ptr %0, i32 256)1464 tail call void @llvm.ve.vl.vstl2dncot.vssml(<256 x double> %3, i64 %1, ptr %0, <256 x i1> undef, i32 256)1465 ret void1466}1467 1468; Function Attrs: nounwind writeonly1469declare void @llvm.ve.vl.vstl2dncot.vssml(<256 x double>, i64, ptr, <256 x i1>, i32)1470 1471; Function Attrs: nounwind1472define void @vstl2dncot_vssl_imm(ptr %0) {1473; CHECK-LABEL: vstl2dncot_vssl_imm:1474; CHECK: # %bb.0:1475; CHECK-NEXT: lea %s1, 2561476; CHECK-NEXT: lvl %s11477; CHECK-NEXT: vld %v0, 8, %s01478; CHECK-NEXT: vstl2d.nc.ot %v0, 8, %s01479; CHECK-NEXT: b.l.t (, %s10)1480 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1481 tail call void @llvm.ve.vl.vstl2dncot.vssl(<256 x double> %2, i64 8, ptr %0, i32 256)1482 ret void1483}1484 1485; Function Attrs: nounwind1486define void @vstl2dncot_vssml_imm(ptr %0) {1487; CHECK-LABEL: vstl2dncot_vssml_imm:1488; CHECK: # %bb.0:1489; CHECK-NEXT: lea %s1, 2561490; CHECK-NEXT: lvl %s11491; CHECK-NEXT: vld %v0, 8, %s01492; CHECK-NEXT: vstl2d.nc.ot %v0, 8, %s0, %vm11493; CHECK-NEXT: b.l.t (, %s10)1494 %2 = tail call fast <256 x double> @llvm.ve.vl.vld.vssl(i64 8, ptr %0, i32 256)1495 tail call void @llvm.ve.vl.vstl2dncot.vssml(<256 x double> %2, i64 8, ptr %0, <256 x i1> undef, i32 256)1496 ret void1497}1498