1; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s 2 3;;; Test vector scatter intrinsic instructions 4;;; 5;;; Note: 6;;; We test VSC*vrrvl, VSC*vrzvl, VSC*virvl, VSC*vizvl, VSC*vrrvml, 7;;; VSC*vrzvml, VSC*virvml, and VSC*vizvml instructions. 8 9; Function Attrs: nounwind writeonly 10define fastcc void @vsc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 11; CHECK-LABEL: vsc_vvssl: 12; CHECK: # %bb.0: 13; CHECK-NEXT: lea %s2, 256 14; CHECK-NEXT: lvl %s2 15; CHECK-NEXT: vsc %v0, %v1, %s0, %s1 16; CHECK-NEXT: b.l.t (, %s10) 17 tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 18 ret void 19} 20 21; Function Attrs: nounwind writeonly 22declare void @llvm.ve.vl.vsc.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 23 24; Function Attrs: nounwind writeonly 25define fastcc void @vsc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 26; CHECK-LABEL: vsc_vvssl_imm_1: 27; CHECK: # %bb.0: 28; CHECK-NEXT: lea %s1, 256 29; CHECK-NEXT: lvl %s1 30; CHECK-NEXT: vsc %v0, %v1, %s0, 0 31; CHECK-NEXT: b.l.t (, %s10) 32 tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 33 ret void 34} 35 36; Function Attrs: nounwind writeonly 37define fastcc void @vsc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 38; CHECK-LABEL: vsc_vvssl_imm_2: 39; CHECK: # %bb.0: 40; CHECK-NEXT: lea %s1, 256 41; CHECK-NEXT: lvl %s1 42; CHECK-NEXT: vsc %v0, %v1, 8, %s0 43; CHECK-NEXT: b.l.t (, %s10) 44 tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 45 ret void 46} 47 48; Function Attrs: nounwind writeonly 49define fastcc void @vsc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 50; CHECK-LABEL: vsc_vvssl_imm_3: 51; CHECK: # %bb.0: 52; CHECK-NEXT: lea %s0, 256 53; CHECK-NEXT: lvl %s0 54; CHECK-NEXT: vsc %v0, %v1, 8, 0 55; CHECK-NEXT: b.l.t (, %s10) 56 tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 57 ret void 58} 59 60; Function Attrs: nounwind writeonly 61define fastcc void @vsc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 62; CHECK-LABEL: vsc_vvssml: 63; CHECK: # %bb.0: 64; CHECK-NEXT: lea %s2, 256 65; CHECK-NEXT: lvl %s2 66; CHECK-NEXT: vsc %v0, %v1, %s0, %s1, %vm1 67; CHECK-NEXT: b.l.t (, %s10) 68 tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 69 ret void 70} 71 72; Function Attrs: nounwind writeonly 73declare void @llvm.ve.vl.vsc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 74 75; Function Attrs: nounwind writeonly 76define fastcc void @vsc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 77; CHECK-LABEL: vsc_vvssml_imm_1: 78; CHECK: # %bb.0: 79; CHECK-NEXT: lea %s1, 256 80; CHECK-NEXT: lvl %s1 81; CHECK-NEXT: vsc %v0, %v1, %s0, 0, %vm1 82; CHECK-NEXT: b.l.t (, %s10) 83 tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 84 ret void 85} 86 87; Function Attrs: nounwind writeonly 88define fastcc void @vsc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 89; CHECK-LABEL: vsc_vvssml_imm_2: 90; CHECK: # %bb.0: 91; CHECK-NEXT: lea %s1, 256 92; CHECK-NEXT: lvl %s1 93; CHECK-NEXT: vsc %v0, %v1, 8, %s0, %vm1 94; CHECK-NEXT: b.l.t (, %s10) 95 tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 96 ret void 97} 98 99; Function Attrs: nounwind writeonly 100define fastcc void @vsc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 101; CHECK-LABEL: vsc_vvssml_imm_3: 102; CHECK: # %bb.0: 103; CHECK-NEXT: lea %s0, 256 104; CHECK-NEXT: lvl %s0 105; CHECK-NEXT: vsc %v0, %v1, 8, 0, %vm1 106; CHECK-NEXT: b.l.t (, %s10) 107 tail call void @llvm.ve.vl.vsc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 108 ret void 109} 110 111; Function Attrs: nounwind writeonly 112define fastcc void @vsc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 113; CHECK-LABEL: vsc_vvssl_no_imm_1: 114; CHECK: # %bb.0: 115; CHECK-NEXT: lea %s1, 256 116; CHECK-NEXT: or %s2, 8, (0)1 117; CHECK-NEXT: lvl %s1 118; CHECK-NEXT: vsc %v0, %v1, %s0, %s2 119; CHECK-NEXT: b.l.t (, %s10) 120 tail call void @llvm.ve.vl.vsc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 121 ret void 122} 123 124; Function Attrs: nounwind writeonly 125define fastcc void @vscnc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 126; CHECK-LABEL: vscnc_vvssl: 127; CHECK: # %bb.0: 128; CHECK-NEXT: lea %s2, 256 129; CHECK-NEXT: lvl %s2 130; CHECK-NEXT: vsc.nc %v0, %v1, %s0, %s1 131; CHECK-NEXT: b.l.t (, %s10) 132 tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 133 ret void 134} 135 136; Function Attrs: nounwind writeonly 137declare void @llvm.ve.vl.vscnc.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 138 139; Function Attrs: nounwind writeonly 140define fastcc void @vscnc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 141; CHECK-LABEL: vscnc_vvssl_imm_1: 142; CHECK: # %bb.0: 143; CHECK-NEXT: lea %s1, 256 144; CHECK-NEXT: lvl %s1 145; CHECK-NEXT: vsc.nc %v0, %v1, %s0, 0 146; CHECK-NEXT: b.l.t (, %s10) 147 tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 148 ret void 149} 150 151; Function Attrs: nounwind writeonly 152define fastcc void @vscnc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 153; CHECK-LABEL: vscnc_vvssl_imm_2: 154; CHECK: # %bb.0: 155; CHECK-NEXT: lea %s1, 256 156; CHECK-NEXT: lvl %s1 157; CHECK-NEXT: vsc.nc %v0, %v1, 8, %s0 158; CHECK-NEXT: b.l.t (, %s10) 159 tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 160 ret void 161} 162 163; Function Attrs: nounwind writeonly 164define fastcc void @vscnc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 165; CHECK-LABEL: vscnc_vvssl_imm_3: 166; CHECK: # %bb.0: 167; CHECK-NEXT: lea %s0, 256 168; CHECK-NEXT: lvl %s0 169; CHECK-NEXT: vsc.nc %v0, %v1, 8, 0 170; CHECK-NEXT: b.l.t (, %s10) 171 tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 172 ret void 173} 174 175; Function Attrs: nounwind writeonly 176define fastcc void @vscnc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 177; CHECK-LABEL: vscnc_vvssml: 178; CHECK: # %bb.0: 179; CHECK-NEXT: lea %s2, 256 180; CHECK-NEXT: lvl %s2 181; CHECK-NEXT: vsc.nc %v0, %v1, %s0, %s1, %vm1 182; CHECK-NEXT: b.l.t (, %s10) 183 tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 184 ret void 185} 186 187; Function Attrs: nounwind writeonly 188declare void @llvm.ve.vl.vscnc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 189 190; Function Attrs: nounwind writeonly 191define fastcc void @vscnc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 192; CHECK-LABEL: vscnc_vvssml_imm_1: 193; CHECK: # %bb.0: 194; CHECK-NEXT: lea %s1, 256 195; CHECK-NEXT: lvl %s1 196; CHECK-NEXT: vsc.nc %v0, %v1, %s0, 0, %vm1 197; CHECK-NEXT: b.l.t (, %s10) 198 tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 199 ret void 200} 201 202; Function Attrs: nounwind writeonly 203define fastcc void @vscnc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 204; CHECK-LABEL: vscnc_vvssml_imm_2: 205; CHECK: # %bb.0: 206; CHECK-NEXT: lea %s1, 256 207; CHECK-NEXT: lvl %s1 208; CHECK-NEXT: vsc.nc %v0, %v1, 8, %s0, %vm1 209; CHECK-NEXT: b.l.t (, %s10) 210 tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 211 ret void 212} 213 214; Function Attrs: nounwind writeonly 215define fastcc void @vscnc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 216; CHECK-LABEL: vscnc_vvssml_imm_3: 217; CHECK: # %bb.0: 218; CHECK-NEXT: lea %s0, 256 219; CHECK-NEXT: lvl %s0 220; CHECK-NEXT: vsc.nc %v0, %v1, 8, 0, %vm1 221; CHECK-NEXT: b.l.t (, %s10) 222 tail call void @llvm.ve.vl.vscnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 223 ret void 224} 225 226; Function Attrs: nounwind writeonly 227define fastcc void @vscnc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 228; CHECK-LABEL: vscnc_vvssl_no_imm_1: 229; CHECK: # %bb.0: 230; CHECK-NEXT: lea %s1, 256 231; CHECK-NEXT: or %s2, 8, (0)1 232; CHECK-NEXT: lvl %s1 233; CHECK-NEXT: vsc.nc %v0, %v1, %s0, %s2 234; CHECK-NEXT: b.l.t (, %s10) 235 tail call void @llvm.ve.vl.vscnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 236 ret void 237} 238 239; Function Attrs: nounwind writeonly 240define fastcc void @vscot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 241; CHECK-LABEL: vscot_vvssl: 242; CHECK: # %bb.0: 243; CHECK-NEXT: lea %s2, 256 244; CHECK-NEXT: lvl %s2 245; CHECK-NEXT: vsc.ot %v0, %v1, %s0, %s1 246; CHECK-NEXT: b.l.t (, %s10) 247 tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 248 ret void 249} 250 251; Function Attrs: nounwind writeonly 252declare void @llvm.ve.vl.vscot.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 253 254; Function Attrs: nounwind writeonly 255define fastcc void @vscot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 256; CHECK-LABEL: vscot_vvssl_imm_1: 257; CHECK: # %bb.0: 258; CHECK-NEXT: lea %s1, 256 259; CHECK-NEXT: lvl %s1 260; CHECK-NEXT: vsc.ot %v0, %v1, %s0, 0 261; CHECK-NEXT: b.l.t (, %s10) 262 tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 263 ret void 264} 265 266; Function Attrs: nounwind writeonly 267define fastcc void @vscot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 268; CHECK-LABEL: vscot_vvssl_imm_2: 269; CHECK: # %bb.0: 270; CHECK-NEXT: lea %s1, 256 271; CHECK-NEXT: lvl %s1 272; CHECK-NEXT: vsc.ot %v0, %v1, 8, %s0 273; CHECK-NEXT: b.l.t (, %s10) 274 tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 275 ret void 276} 277 278; Function Attrs: nounwind writeonly 279define fastcc void @vscot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 280; CHECK-LABEL: vscot_vvssl_imm_3: 281; CHECK: # %bb.0: 282; CHECK-NEXT: lea %s0, 256 283; CHECK-NEXT: lvl %s0 284; CHECK-NEXT: vsc.ot %v0, %v1, 8, 0 285; CHECK-NEXT: b.l.t (, %s10) 286 tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 287 ret void 288} 289 290; Function Attrs: nounwind writeonly 291define fastcc void @vscot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 292; CHECK-LABEL: vscot_vvssml: 293; CHECK: # %bb.0: 294; CHECK-NEXT: lea %s2, 256 295; CHECK-NEXT: lvl %s2 296; CHECK-NEXT: vsc.ot %v0, %v1, %s0, %s1, %vm1 297; CHECK-NEXT: b.l.t (, %s10) 298 tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 299 ret void 300} 301 302; Function Attrs: nounwind writeonly 303declare void @llvm.ve.vl.vscot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 304 305; Function Attrs: nounwind writeonly 306define fastcc void @vscot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 307; CHECK-LABEL: vscot_vvssml_imm_1: 308; CHECK: # %bb.0: 309; CHECK-NEXT: lea %s1, 256 310; CHECK-NEXT: lvl %s1 311; CHECK-NEXT: vsc.ot %v0, %v1, %s0, 0, %vm1 312; CHECK-NEXT: b.l.t (, %s10) 313 tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 314 ret void 315} 316 317; Function Attrs: nounwind writeonly 318define fastcc void @vscot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 319; CHECK-LABEL: vscot_vvssml_imm_2: 320; CHECK: # %bb.0: 321; CHECK-NEXT: lea %s1, 256 322; CHECK-NEXT: lvl %s1 323; CHECK-NEXT: vsc.ot %v0, %v1, 8, %s0, %vm1 324; CHECK-NEXT: b.l.t (, %s10) 325 tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 326 ret void 327} 328 329; Function Attrs: nounwind writeonly 330define fastcc void @vscot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 331; CHECK-LABEL: vscot_vvssml_imm_3: 332; CHECK: # %bb.0: 333; CHECK-NEXT: lea %s0, 256 334; CHECK-NEXT: lvl %s0 335; CHECK-NEXT: vsc.ot %v0, %v1, 8, 0, %vm1 336; CHECK-NEXT: b.l.t (, %s10) 337 tail call void @llvm.ve.vl.vscot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 338 ret void 339} 340 341; Function Attrs: nounwind writeonly 342define fastcc void @vscot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 343; CHECK-LABEL: vscot_vvssl_no_imm_1: 344; CHECK: # %bb.0: 345; CHECK-NEXT: lea %s1, 256 346; CHECK-NEXT: or %s2, 8, (0)1 347; CHECK-NEXT: lvl %s1 348; CHECK-NEXT: vsc.ot %v0, %v1, %s0, %s2 349; CHECK-NEXT: b.l.t (, %s10) 350 tail call void @llvm.ve.vl.vscot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 351 ret void 352} 353 354; Function Attrs: nounwind writeonly 355define fastcc void @vscncot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 356; CHECK-LABEL: vscncot_vvssl: 357; CHECK: # %bb.0: 358; CHECK-NEXT: lea %s2, 256 359; CHECK-NEXT: lvl %s2 360; CHECK-NEXT: vsc.nc.ot %v0, %v1, %s0, %s1 361; CHECK-NEXT: b.l.t (, %s10) 362 tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 363 ret void 364} 365 366; Function Attrs: nounwind writeonly 367declare void @llvm.ve.vl.vscncot.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 368 369; Function Attrs: nounwind writeonly 370define fastcc void @vscncot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 371; CHECK-LABEL: vscncot_vvssl_imm_1: 372; CHECK: # %bb.0: 373; CHECK-NEXT: lea %s1, 256 374; CHECK-NEXT: lvl %s1 375; CHECK-NEXT: vsc.nc.ot %v0, %v1, %s0, 0 376; CHECK-NEXT: b.l.t (, %s10) 377 tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 378 ret void 379} 380 381; Function Attrs: nounwind writeonly 382define fastcc void @vscncot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 383; CHECK-LABEL: vscncot_vvssl_imm_2: 384; CHECK: # %bb.0: 385; CHECK-NEXT: lea %s1, 256 386; CHECK-NEXT: lvl %s1 387; CHECK-NEXT: vsc.nc.ot %v0, %v1, 8, %s0 388; CHECK-NEXT: b.l.t (, %s10) 389 tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 390 ret void 391} 392 393; Function Attrs: nounwind writeonly 394define fastcc void @vscncot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 395; CHECK-LABEL: vscncot_vvssl_imm_3: 396; CHECK: # %bb.0: 397; CHECK-NEXT: lea %s0, 256 398; CHECK-NEXT: lvl %s0 399; CHECK-NEXT: vsc.nc.ot %v0, %v1, 8, 0 400; CHECK-NEXT: b.l.t (, %s10) 401 tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 402 ret void 403} 404 405; Function Attrs: nounwind writeonly 406define fastcc void @vscncot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 407; CHECK-LABEL: vscncot_vvssml: 408; CHECK: # %bb.0: 409; CHECK-NEXT: lea %s2, 256 410; CHECK-NEXT: lvl %s2 411; CHECK-NEXT: vsc.nc.ot %v0, %v1, %s0, %s1, %vm1 412; CHECK-NEXT: b.l.t (, %s10) 413 tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 414 ret void 415} 416 417; Function Attrs: nounwind writeonly 418declare void @llvm.ve.vl.vscncot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 419 420; Function Attrs: nounwind writeonly 421define fastcc void @vscncot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 422; CHECK-LABEL: vscncot_vvssml_imm_1: 423; CHECK: # %bb.0: 424; CHECK-NEXT: lea %s1, 256 425; CHECK-NEXT: lvl %s1 426; CHECK-NEXT: vsc.nc.ot %v0, %v1, %s0, 0, %vm1 427; CHECK-NEXT: b.l.t (, %s10) 428 tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 429 ret void 430} 431 432; Function Attrs: nounwind writeonly 433define fastcc void @vscncot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 434; CHECK-LABEL: vscncot_vvssml_imm_2: 435; CHECK: # %bb.0: 436; CHECK-NEXT: lea %s1, 256 437; CHECK-NEXT: lvl %s1 438; CHECK-NEXT: vsc.nc.ot %v0, %v1, 8, %s0, %vm1 439; CHECK-NEXT: b.l.t (, %s10) 440 tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 441 ret void 442} 443 444; Function Attrs: nounwind writeonly 445define fastcc void @vscncot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 446; CHECK-LABEL: vscncot_vvssml_imm_3: 447; CHECK: # %bb.0: 448; CHECK-NEXT: lea %s0, 256 449; CHECK-NEXT: lvl %s0 450; CHECK-NEXT: vsc.nc.ot %v0, %v1, 8, 0, %vm1 451; CHECK-NEXT: b.l.t (, %s10) 452 tail call void @llvm.ve.vl.vscncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 453 ret void 454} 455 456; Function Attrs: nounwind writeonly 457define fastcc void @vscncot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 458; CHECK-LABEL: vscncot_vvssl_no_imm_1: 459; CHECK: # %bb.0: 460; CHECK-NEXT: lea %s1, 256 461; CHECK-NEXT: or %s2, 8, (0)1 462; CHECK-NEXT: lvl %s1 463; CHECK-NEXT: vsc.nc.ot %v0, %v1, %s0, %s2 464; CHECK-NEXT: b.l.t (, %s10) 465 tail call void @llvm.ve.vl.vscncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 466 ret void 467} 468 469; Function Attrs: nounwind writeonly 470define fastcc void @vscu_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 471; CHECK-LABEL: vscu_vvssl: 472; CHECK: # %bb.0: 473; CHECK-NEXT: lea %s2, 256 474; CHECK-NEXT: lvl %s2 475; CHECK-NEXT: vscu %v0, %v1, %s0, %s1 476; CHECK-NEXT: b.l.t (, %s10) 477 tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 478 ret void 479} 480 481; Function Attrs: nounwind writeonly 482declare void @llvm.ve.vl.vscu.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 483 484; Function Attrs: nounwind writeonly 485define fastcc void @vscu_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 486; CHECK-LABEL: vscu_vvssl_imm_1: 487; CHECK: # %bb.0: 488; CHECK-NEXT: lea %s1, 256 489; CHECK-NEXT: lvl %s1 490; CHECK-NEXT: vscu %v0, %v1, %s0, 0 491; CHECK-NEXT: b.l.t (, %s10) 492 tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 493 ret void 494} 495 496; Function Attrs: nounwind writeonly 497define fastcc void @vscu_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 498; CHECK-LABEL: vscu_vvssl_imm_2: 499; CHECK: # %bb.0: 500; CHECK-NEXT: lea %s1, 256 501; CHECK-NEXT: lvl %s1 502; CHECK-NEXT: vscu %v0, %v1, 8, %s0 503; CHECK-NEXT: b.l.t (, %s10) 504 tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 505 ret void 506} 507 508; Function Attrs: nounwind writeonly 509define fastcc void @vscu_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 510; CHECK-LABEL: vscu_vvssl_imm_3: 511; CHECK: # %bb.0: 512; CHECK-NEXT: lea %s0, 256 513; CHECK-NEXT: lvl %s0 514; CHECK-NEXT: vscu %v0, %v1, 8, 0 515; CHECK-NEXT: b.l.t (, %s10) 516 tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 517 ret void 518} 519 520; Function Attrs: nounwind writeonly 521define fastcc void @vscu_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 522; CHECK-LABEL: vscu_vvssml: 523; CHECK: # %bb.0: 524; CHECK-NEXT: lea %s2, 256 525; CHECK-NEXT: lvl %s2 526; CHECK-NEXT: vscu %v0, %v1, %s0, %s1, %vm1 527; CHECK-NEXT: b.l.t (, %s10) 528 tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 529 ret void 530} 531 532; Function Attrs: nounwind writeonly 533declare void @llvm.ve.vl.vscu.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 534 535; Function Attrs: nounwind writeonly 536define fastcc void @vscu_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 537; CHECK-LABEL: vscu_vvssml_imm_1: 538; CHECK: # %bb.0: 539; CHECK-NEXT: lea %s1, 256 540; CHECK-NEXT: lvl %s1 541; CHECK-NEXT: vscu %v0, %v1, %s0, 0, %vm1 542; CHECK-NEXT: b.l.t (, %s10) 543 tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 544 ret void 545} 546 547; Function Attrs: nounwind writeonly 548define fastcc void @vscu_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 549; CHECK-LABEL: vscu_vvssml_imm_2: 550; CHECK: # %bb.0: 551; CHECK-NEXT: lea %s1, 256 552; CHECK-NEXT: lvl %s1 553; CHECK-NEXT: vscu %v0, %v1, 8, %s0, %vm1 554; CHECK-NEXT: b.l.t (, %s10) 555 tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 556 ret void 557} 558 559; Function Attrs: nounwind writeonly 560define fastcc void @vscu_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 561; CHECK-LABEL: vscu_vvssml_imm_3: 562; CHECK: # %bb.0: 563; CHECK-NEXT: lea %s0, 256 564; CHECK-NEXT: lvl %s0 565; CHECK-NEXT: vscu %v0, %v1, 8, 0, %vm1 566; CHECK-NEXT: b.l.t (, %s10) 567 tail call void @llvm.ve.vl.vscu.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 568 ret void 569} 570 571; Function Attrs: nounwind writeonly 572define fastcc void @vscu_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 573; CHECK-LABEL: vscu_vvssl_no_imm_1: 574; CHECK: # %bb.0: 575; CHECK-NEXT: lea %s1, 256 576; CHECK-NEXT: or %s2, 8, (0)1 577; CHECK-NEXT: lvl %s1 578; CHECK-NEXT: vscu %v0, %v1, %s0, %s2 579; CHECK-NEXT: b.l.t (, %s10) 580 tail call void @llvm.ve.vl.vscu.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 581 ret void 582} 583 584; Function Attrs: nounwind writeonly 585define fastcc void @vscunc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 586; CHECK-LABEL: vscunc_vvssl: 587; CHECK: # %bb.0: 588; CHECK-NEXT: lea %s2, 256 589; CHECK-NEXT: lvl %s2 590; CHECK-NEXT: vscu.nc %v0, %v1, %s0, %s1 591; CHECK-NEXT: b.l.t (, %s10) 592 tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 593 ret void 594} 595 596; Function Attrs: nounwind writeonly 597declare void @llvm.ve.vl.vscunc.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 598 599; Function Attrs: nounwind writeonly 600define fastcc void @vscunc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 601; CHECK-LABEL: vscunc_vvssl_imm_1: 602; CHECK: # %bb.0: 603; CHECK-NEXT: lea %s1, 256 604; CHECK-NEXT: lvl %s1 605; CHECK-NEXT: vscu.nc %v0, %v1, %s0, 0 606; CHECK-NEXT: b.l.t (, %s10) 607 tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 608 ret void 609} 610 611; Function Attrs: nounwind writeonly 612define fastcc void @vscunc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 613; CHECK-LABEL: vscunc_vvssl_imm_2: 614; CHECK: # %bb.0: 615; CHECK-NEXT: lea %s1, 256 616; CHECK-NEXT: lvl %s1 617; CHECK-NEXT: vscu.nc %v0, %v1, 8, %s0 618; CHECK-NEXT: b.l.t (, %s10) 619 tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 620 ret void 621} 622 623; Function Attrs: nounwind writeonly 624define fastcc void @vscunc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 625; CHECK-LABEL: vscunc_vvssl_imm_3: 626; CHECK: # %bb.0: 627; CHECK-NEXT: lea %s0, 256 628; CHECK-NEXT: lvl %s0 629; CHECK-NEXT: vscu.nc %v0, %v1, 8, 0 630; CHECK-NEXT: b.l.t (, %s10) 631 tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 632 ret void 633} 634 635; Function Attrs: nounwind writeonly 636define fastcc void @vscunc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 637; CHECK-LABEL: vscunc_vvssml: 638; CHECK: # %bb.0: 639; CHECK-NEXT: lea %s2, 256 640; CHECK-NEXT: lvl %s2 641; CHECK-NEXT: vscu.nc %v0, %v1, %s0, %s1, %vm1 642; CHECK-NEXT: b.l.t (, %s10) 643 tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 644 ret void 645} 646 647; Function Attrs: nounwind writeonly 648declare void @llvm.ve.vl.vscunc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 649 650; Function Attrs: nounwind writeonly 651define fastcc void @vscunc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 652; CHECK-LABEL: vscunc_vvssml_imm_1: 653; CHECK: # %bb.0: 654; CHECK-NEXT: lea %s1, 256 655; CHECK-NEXT: lvl %s1 656; CHECK-NEXT: vscu.nc %v0, %v1, %s0, 0, %vm1 657; CHECK-NEXT: b.l.t (, %s10) 658 tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 659 ret void 660} 661 662; Function Attrs: nounwind writeonly 663define fastcc void @vscunc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 664; CHECK-LABEL: vscunc_vvssml_imm_2: 665; CHECK: # %bb.0: 666; CHECK-NEXT: lea %s1, 256 667; CHECK-NEXT: lvl %s1 668; CHECK-NEXT: vscu.nc %v0, %v1, 8, %s0, %vm1 669; CHECK-NEXT: b.l.t (, %s10) 670 tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 671 ret void 672} 673 674; Function Attrs: nounwind writeonly 675define fastcc void @vscunc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 676; CHECK-LABEL: vscunc_vvssml_imm_3: 677; CHECK: # %bb.0: 678; CHECK-NEXT: lea %s0, 256 679; CHECK-NEXT: lvl %s0 680; CHECK-NEXT: vscu.nc %v0, %v1, 8, 0, %vm1 681; CHECK-NEXT: b.l.t (, %s10) 682 tail call void @llvm.ve.vl.vscunc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 683 ret void 684} 685 686; Function Attrs: nounwind writeonly 687define fastcc void @vscunc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 688; CHECK-LABEL: vscunc_vvssl_no_imm_1: 689; CHECK: # %bb.0: 690; CHECK-NEXT: lea %s1, 256 691; CHECK-NEXT: or %s2, 8, (0)1 692; CHECK-NEXT: lvl %s1 693; CHECK-NEXT: vscu.nc %v0, %v1, %s0, %s2 694; CHECK-NEXT: b.l.t (, %s10) 695 tail call void @llvm.ve.vl.vscunc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 696 ret void 697} 698 699; Function Attrs: nounwind writeonly 700define fastcc void @vscuot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 701; CHECK-LABEL: vscuot_vvssl: 702; CHECK: # %bb.0: 703; CHECK-NEXT: lea %s2, 256 704; CHECK-NEXT: lvl %s2 705; CHECK-NEXT: vscu.ot %v0, %v1, %s0, %s1 706; CHECK-NEXT: b.l.t (, %s10) 707 tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 708 ret void 709} 710 711; Function Attrs: nounwind writeonly 712declare void @llvm.ve.vl.vscuot.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 713 714; Function Attrs: nounwind writeonly 715define fastcc void @vscuot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 716; CHECK-LABEL: vscuot_vvssl_imm_1: 717; CHECK: # %bb.0: 718; CHECK-NEXT: lea %s1, 256 719; CHECK-NEXT: lvl %s1 720; CHECK-NEXT: vscu.ot %v0, %v1, %s0, 0 721; CHECK-NEXT: b.l.t (, %s10) 722 tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 723 ret void 724} 725 726; Function Attrs: nounwind writeonly 727define fastcc void @vscuot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 728; CHECK-LABEL: vscuot_vvssl_imm_2: 729; CHECK: # %bb.0: 730; CHECK-NEXT: lea %s1, 256 731; CHECK-NEXT: lvl %s1 732; CHECK-NEXT: vscu.ot %v0, %v1, 8, %s0 733; CHECK-NEXT: b.l.t (, %s10) 734 tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 735 ret void 736} 737 738; Function Attrs: nounwind writeonly 739define fastcc void @vscuot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 740; CHECK-LABEL: vscuot_vvssl_imm_3: 741; CHECK: # %bb.0: 742; CHECK-NEXT: lea %s0, 256 743; CHECK-NEXT: lvl %s0 744; CHECK-NEXT: vscu.ot %v0, %v1, 8, 0 745; CHECK-NEXT: b.l.t (, %s10) 746 tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 747 ret void 748} 749 750; Function Attrs: nounwind writeonly 751define fastcc void @vscuot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 752; CHECK-LABEL: vscuot_vvssml: 753; CHECK: # %bb.0: 754; CHECK-NEXT: lea %s2, 256 755; CHECK-NEXT: lvl %s2 756; CHECK-NEXT: vscu.ot %v0, %v1, %s0, %s1, %vm1 757; CHECK-NEXT: b.l.t (, %s10) 758 tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 759 ret void 760} 761 762; Function Attrs: nounwind writeonly 763declare void @llvm.ve.vl.vscuot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 764 765; Function Attrs: nounwind writeonly 766define fastcc void @vscuot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 767; CHECK-LABEL: vscuot_vvssml_imm_1: 768; CHECK: # %bb.0: 769; CHECK-NEXT: lea %s1, 256 770; CHECK-NEXT: lvl %s1 771; CHECK-NEXT: vscu.ot %v0, %v1, %s0, 0, %vm1 772; CHECK-NEXT: b.l.t (, %s10) 773 tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 774 ret void 775} 776 777; Function Attrs: nounwind writeonly 778define fastcc void @vscuot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 779; CHECK-LABEL: vscuot_vvssml_imm_2: 780; CHECK: # %bb.0: 781; CHECK-NEXT: lea %s1, 256 782; CHECK-NEXT: lvl %s1 783; CHECK-NEXT: vscu.ot %v0, %v1, 8, %s0, %vm1 784; CHECK-NEXT: b.l.t (, %s10) 785 tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 786 ret void 787} 788 789; Function Attrs: nounwind writeonly 790define fastcc void @vscuot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 791; CHECK-LABEL: vscuot_vvssml_imm_3: 792; CHECK: # %bb.0: 793; CHECK-NEXT: lea %s0, 256 794; CHECK-NEXT: lvl %s0 795; CHECK-NEXT: vscu.ot %v0, %v1, 8, 0, %vm1 796; CHECK-NEXT: b.l.t (, %s10) 797 tail call void @llvm.ve.vl.vscuot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 798 ret void 799} 800 801; Function Attrs: nounwind writeonly 802define fastcc void @vscuot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 803; CHECK-LABEL: vscuot_vvssl_no_imm_1: 804; CHECK: # %bb.0: 805; CHECK-NEXT: lea %s1, 256 806; CHECK-NEXT: or %s2, 8, (0)1 807; CHECK-NEXT: lvl %s1 808; CHECK-NEXT: vscu.ot %v0, %v1, %s0, %s2 809; CHECK-NEXT: b.l.t (, %s10) 810 tail call void @llvm.ve.vl.vscuot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 811 ret void 812} 813 814; Function Attrs: nounwind writeonly 815define fastcc void @vscuncot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 816; CHECK-LABEL: vscuncot_vvssl: 817; CHECK: # %bb.0: 818; CHECK-NEXT: lea %s2, 256 819; CHECK-NEXT: lvl %s2 820; CHECK-NEXT: vscu.nc.ot %v0, %v1, %s0, %s1 821; CHECK-NEXT: b.l.t (, %s10) 822 tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 823 ret void 824} 825 826; Function Attrs: nounwind writeonly 827declare void @llvm.ve.vl.vscuncot.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 828 829; Function Attrs: nounwind writeonly 830define fastcc void @vscuncot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 831; CHECK-LABEL: vscuncot_vvssl_imm_1: 832; CHECK: # %bb.0: 833; CHECK-NEXT: lea %s1, 256 834; CHECK-NEXT: lvl %s1 835; CHECK-NEXT: vscu.nc.ot %v0, %v1, %s0, 0 836; CHECK-NEXT: b.l.t (, %s10) 837 tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 838 ret void 839} 840 841; Function Attrs: nounwind writeonly 842define fastcc void @vscuncot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 843; CHECK-LABEL: vscuncot_vvssl_imm_2: 844; CHECK: # %bb.0: 845; CHECK-NEXT: lea %s1, 256 846; CHECK-NEXT: lvl %s1 847; CHECK-NEXT: vscu.nc.ot %v0, %v1, 8, %s0 848; CHECK-NEXT: b.l.t (, %s10) 849 tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 850 ret void 851} 852 853; Function Attrs: nounwind writeonly 854define fastcc void @vscuncot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 855; CHECK-LABEL: vscuncot_vvssl_imm_3: 856; CHECK: # %bb.0: 857; CHECK-NEXT: lea %s0, 256 858; CHECK-NEXT: lvl %s0 859; CHECK-NEXT: vscu.nc.ot %v0, %v1, 8, 0 860; CHECK-NEXT: b.l.t (, %s10) 861 tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 862 ret void 863} 864 865; Function Attrs: nounwind writeonly 866define fastcc void @vscuncot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 867; CHECK-LABEL: vscuncot_vvssml: 868; CHECK: # %bb.0: 869; CHECK-NEXT: lea %s2, 256 870; CHECK-NEXT: lvl %s2 871; CHECK-NEXT: vscu.nc.ot %v0, %v1, %s0, %s1, %vm1 872; CHECK-NEXT: b.l.t (, %s10) 873 tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 874 ret void 875} 876 877; Function Attrs: nounwind writeonly 878declare void @llvm.ve.vl.vscuncot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 879 880; Function Attrs: nounwind writeonly 881define fastcc void @vscuncot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 882; CHECK-LABEL: vscuncot_vvssml_imm_1: 883; CHECK: # %bb.0: 884; CHECK-NEXT: lea %s1, 256 885; CHECK-NEXT: lvl %s1 886; CHECK-NEXT: vscu.nc.ot %v0, %v1, %s0, 0, %vm1 887; CHECK-NEXT: b.l.t (, %s10) 888 tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 889 ret void 890} 891 892; Function Attrs: nounwind writeonly 893define fastcc void @vscuncot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 894; CHECK-LABEL: vscuncot_vvssml_imm_2: 895; CHECK: # %bb.0: 896; CHECK-NEXT: lea %s1, 256 897; CHECK-NEXT: lvl %s1 898; CHECK-NEXT: vscu.nc.ot %v0, %v1, 8, %s0, %vm1 899; CHECK-NEXT: b.l.t (, %s10) 900 tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 901 ret void 902} 903 904; Function Attrs: nounwind writeonly 905define fastcc void @vscuncot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 906; CHECK-LABEL: vscuncot_vvssml_imm_3: 907; CHECK: # %bb.0: 908; CHECK-NEXT: lea %s0, 256 909; CHECK-NEXT: lvl %s0 910; CHECK-NEXT: vscu.nc.ot %v0, %v1, 8, 0, %vm1 911; CHECK-NEXT: b.l.t (, %s10) 912 tail call void @llvm.ve.vl.vscuncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 913 ret void 914} 915 916; Function Attrs: nounwind writeonly 917define fastcc void @vscuncot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 918; CHECK-LABEL: vscuncot_vvssl_no_imm_1: 919; CHECK: # %bb.0: 920; CHECK-NEXT: lea %s1, 256 921; CHECK-NEXT: or %s2, 8, (0)1 922; CHECK-NEXT: lvl %s1 923; CHECK-NEXT: vscu.nc.ot %v0, %v1, %s0, %s2 924; CHECK-NEXT: b.l.t (, %s10) 925 tail call void @llvm.ve.vl.vscuncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 926 ret void 927} 928 929; Function Attrs: nounwind writeonly 930define fastcc void @vscl_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 931; CHECK-LABEL: vscl_vvssl: 932; CHECK: # %bb.0: 933; CHECK-NEXT: lea %s2, 256 934; CHECK-NEXT: lvl %s2 935; CHECK-NEXT: vscl %v0, %v1, %s0, %s1 936; CHECK-NEXT: b.l.t (, %s10) 937 tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 938 ret void 939} 940 941; Function Attrs: nounwind writeonly 942declare void @llvm.ve.vl.vscl.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 943 944; Function Attrs: nounwind writeonly 945define fastcc void @vscl_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 946; CHECK-LABEL: vscl_vvssl_imm_1: 947; CHECK: # %bb.0: 948; CHECK-NEXT: lea %s1, 256 949; CHECK-NEXT: lvl %s1 950; CHECK-NEXT: vscl %v0, %v1, %s0, 0 951; CHECK-NEXT: b.l.t (, %s10) 952 tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 953 ret void 954} 955 956; Function Attrs: nounwind writeonly 957define fastcc void @vscl_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 958; CHECK-LABEL: vscl_vvssl_imm_2: 959; CHECK: # %bb.0: 960; CHECK-NEXT: lea %s1, 256 961; CHECK-NEXT: lvl %s1 962; CHECK-NEXT: vscl %v0, %v1, 8, %s0 963; CHECK-NEXT: b.l.t (, %s10) 964 tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 965 ret void 966} 967 968; Function Attrs: nounwind writeonly 969define fastcc void @vscl_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 970; CHECK-LABEL: vscl_vvssl_imm_3: 971; CHECK: # %bb.0: 972; CHECK-NEXT: lea %s0, 256 973; CHECK-NEXT: lvl %s0 974; CHECK-NEXT: vscl %v0, %v1, 8, 0 975; CHECK-NEXT: b.l.t (, %s10) 976 tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 977 ret void 978} 979 980; Function Attrs: nounwind writeonly 981define fastcc void @vscl_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 982; CHECK-LABEL: vscl_vvssml: 983; CHECK: # %bb.0: 984; CHECK-NEXT: lea %s2, 256 985; CHECK-NEXT: lvl %s2 986; CHECK-NEXT: vscl %v0, %v1, %s0, %s1, %vm1 987; CHECK-NEXT: b.l.t (, %s10) 988 tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 989 ret void 990} 991 992; Function Attrs: nounwind writeonly 993declare void @llvm.ve.vl.vscl.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 994 995; Function Attrs: nounwind writeonly 996define fastcc void @vscl_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 997; CHECK-LABEL: vscl_vvssml_imm_1: 998; CHECK: # %bb.0: 999; CHECK-NEXT: lea %s1, 256 1000; CHECK-NEXT: lvl %s1 1001; CHECK-NEXT: vscl %v0, %v1, %s0, 0, %vm1 1002; CHECK-NEXT: b.l.t (, %s10) 1003 tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 1004 ret void 1005} 1006 1007; Function Attrs: nounwind writeonly 1008define fastcc void @vscl_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1009; CHECK-LABEL: vscl_vvssml_imm_2: 1010; CHECK: # %bb.0: 1011; CHECK-NEXT: lea %s1, 256 1012; CHECK-NEXT: lvl %s1 1013; CHECK-NEXT: vscl %v0, %v1, 8, %s0, %vm1 1014; CHECK-NEXT: b.l.t (, %s10) 1015 tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 1016 ret void 1017} 1018 1019; Function Attrs: nounwind writeonly 1020define fastcc void @vscl_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 1021; CHECK-LABEL: vscl_vvssml_imm_3: 1022; CHECK: # %bb.0: 1023; CHECK-NEXT: lea %s0, 256 1024; CHECK-NEXT: lvl %s0 1025; CHECK-NEXT: vscl %v0, %v1, 8, 0, %vm1 1026; CHECK-NEXT: b.l.t (, %s10) 1027 tail call void @llvm.ve.vl.vscl.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 1028 ret void 1029} 1030 1031; Function Attrs: nounwind writeonly 1032define fastcc void @vscl_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1033; CHECK-LABEL: vscl_vvssl_no_imm_1: 1034; CHECK: # %bb.0: 1035; CHECK-NEXT: lea %s1, 256 1036; CHECK-NEXT: or %s2, 8, (0)1 1037; CHECK-NEXT: lvl %s1 1038; CHECK-NEXT: vscl %v0, %v1, %s0, %s2 1039; CHECK-NEXT: b.l.t (, %s10) 1040 tail call void @llvm.ve.vl.vscl.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 1041 ret void 1042} 1043 1044; Function Attrs: nounwind writeonly 1045define fastcc void @vsclnc_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 1046; CHECK-LABEL: vsclnc_vvssl: 1047; CHECK: # %bb.0: 1048; CHECK-NEXT: lea %s2, 256 1049; CHECK-NEXT: lvl %s2 1050; CHECK-NEXT: vscl.nc %v0, %v1, %s0, %s1 1051; CHECK-NEXT: b.l.t (, %s10) 1052 tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 1053 ret void 1054} 1055 1056; Function Attrs: nounwind writeonly 1057declare void @llvm.ve.vl.vsclnc.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 1058 1059; Function Attrs: nounwind writeonly 1060define fastcc void @vsclnc_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1061; CHECK-LABEL: vsclnc_vvssl_imm_1: 1062; CHECK: # %bb.0: 1063; CHECK-NEXT: lea %s1, 256 1064; CHECK-NEXT: lvl %s1 1065; CHECK-NEXT: vscl.nc %v0, %v1, %s0, 0 1066; CHECK-NEXT: b.l.t (, %s10) 1067 tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 1068 ret void 1069} 1070 1071; Function Attrs: nounwind writeonly 1072define fastcc void @vsclnc_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 1073; CHECK-LABEL: vsclnc_vvssl_imm_2: 1074; CHECK: # %bb.0: 1075; CHECK-NEXT: lea %s1, 256 1076; CHECK-NEXT: lvl %s1 1077; CHECK-NEXT: vscl.nc %v0, %v1, 8, %s0 1078; CHECK-NEXT: b.l.t (, %s10) 1079 tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 1080 ret void 1081} 1082 1083; Function Attrs: nounwind writeonly 1084define fastcc void @vsclnc_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 1085; CHECK-LABEL: vsclnc_vvssl_imm_3: 1086; CHECK: # %bb.0: 1087; CHECK-NEXT: lea %s0, 256 1088; CHECK-NEXT: lvl %s0 1089; CHECK-NEXT: vscl.nc %v0, %v1, 8, 0 1090; CHECK-NEXT: b.l.t (, %s10) 1091 tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 1092 ret void 1093} 1094 1095; Function Attrs: nounwind writeonly 1096define fastcc void @vsclnc_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 1097; CHECK-LABEL: vsclnc_vvssml: 1098; CHECK: # %bb.0: 1099; CHECK-NEXT: lea %s2, 256 1100; CHECK-NEXT: lvl %s2 1101; CHECK-NEXT: vscl.nc %v0, %v1, %s0, %s1, %vm1 1102; CHECK-NEXT: b.l.t (, %s10) 1103 tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 1104 ret void 1105} 1106 1107; Function Attrs: nounwind writeonly 1108declare void @llvm.ve.vl.vsclnc.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 1109 1110; Function Attrs: nounwind writeonly 1111define fastcc void @vsclnc_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1112; CHECK-LABEL: vsclnc_vvssml_imm_1: 1113; CHECK: # %bb.0: 1114; CHECK-NEXT: lea %s1, 256 1115; CHECK-NEXT: lvl %s1 1116; CHECK-NEXT: vscl.nc %v0, %v1, %s0, 0, %vm1 1117; CHECK-NEXT: b.l.t (, %s10) 1118 tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 1119 ret void 1120} 1121 1122; Function Attrs: nounwind writeonly 1123define fastcc void @vsclnc_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1124; CHECK-LABEL: vsclnc_vvssml_imm_2: 1125; CHECK: # %bb.0: 1126; CHECK-NEXT: lea %s1, 256 1127; CHECK-NEXT: lvl %s1 1128; CHECK-NEXT: vscl.nc %v0, %v1, 8, %s0, %vm1 1129; CHECK-NEXT: b.l.t (, %s10) 1130 tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 1131 ret void 1132} 1133 1134; Function Attrs: nounwind writeonly 1135define fastcc void @vsclnc_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 1136; CHECK-LABEL: vsclnc_vvssml_imm_3: 1137; CHECK: # %bb.0: 1138; CHECK-NEXT: lea %s0, 256 1139; CHECK-NEXT: lvl %s0 1140; CHECK-NEXT: vscl.nc %v0, %v1, 8, 0, %vm1 1141; CHECK-NEXT: b.l.t (, %s10) 1142 tail call void @llvm.ve.vl.vsclnc.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 1143 ret void 1144} 1145 1146; Function Attrs: nounwind writeonly 1147define fastcc void @vsclnc_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1148; CHECK-LABEL: vsclnc_vvssl_no_imm_1: 1149; CHECK: # %bb.0: 1150; CHECK-NEXT: lea %s1, 256 1151; CHECK-NEXT: or %s2, 8, (0)1 1152; CHECK-NEXT: lvl %s1 1153; CHECK-NEXT: vscl.nc %v0, %v1, %s0, %s2 1154; CHECK-NEXT: b.l.t (, %s10) 1155 tail call void @llvm.ve.vl.vsclnc.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 1156 ret void 1157} 1158 1159; Function Attrs: nounwind writeonly 1160define fastcc void @vsclot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 1161; CHECK-LABEL: vsclot_vvssl: 1162; CHECK: # %bb.0: 1163; CHECK-NEXT: lea %s2, 256 1164; CHECK-NEXT: lvl %s2 1165; CHECK-NEXT: vscl.ot %v0, %v1, %s0, %s1 1166; CHECK-NEXT: b.l.t (, %s10) 1167 tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 1168 ret void 1169} 1170 1171; Function Attrs: nounwind writeonly 1172declare void @llvm.ve.vl.vsclot.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 1173 1174; Function Attrs: nounwind writeonly 1175define fastcc void @vsclot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1176; CHECK-LABEL: vsclot_vvssl_imm_1: 1177; CHECK: # %bb.0: 1178; CHECK-NEXT: lea %s1, 256 1179; CHECK-NEXT: lvl %s1 1180; CHECK-NEXT: vscl.ot %v0, %v1, %s0, 0 1181; CHECK-NEXT: b.l.t (, %s10) 1182 tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 1183 ret void 1184} 1185 1186; Function Attrs: nounwind writeonly 1187define fastcc void @vsclot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 1188; CHECK-LABEL: vsclot_vvssl_imm_2: 1189; CHECK: # %bb.0: 1190; CHECK-NEXT: lea %s1, 256 1191; CHECK-NEXT: lvl %s1 1192; CHECK-NEXT: vscl.ot %v0, %v1, 8, %s0 1193; CHECK-NEXT: b.l.t (, %s10) 1194 tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 1195 ret void 1196} 1197 1198; Function Attrs: nounwind writeonly 1199define fastcc void @vsclot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 1200; CHECK-LABEL: vsclot_vvssl_imm_3: 1201; CHECK: # %bb.0: 1202; CHECK-NEXT: lea %s0, 256 1203; CHECK-NEXT: lvl %s0 1204; CHECK-NEXT: vscl.ot %v0, %v1, 8, 0 1205; CHECK-NEXT: b.l.t (, %s10) 1206 tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 1207 ret void 1208} 1209 1210; Function Attrs: nounwind writeonly 1211define fastcc void @vsclot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 1212; CHECK-LABEL: vsclot_vvssml: 1213; CHECK: # %bb.0: 1214; CHECK-NEXT: lea %s2, 256 1215; CHECK-NEXT: lvl %s2 1216; CHECK-NEXT: vscl.ot %v0, %v1, %s0, %s1, %vm1 1217; CHECK-NEXT: b.l.t (, %s10) 1218 tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 1219 ret void 1220} 1221 1222; Function Attrs: nounwind writeonly 1223declare void @llvm.ve.vl.vsclot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 1224 1225; Function Attrs: nounwind writeonly 1226define fastcc void @vsclot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1227; CHECK-LABEL: vsclot_vvssml_imm_1: 1228; CHECK: # %bb.0: 1229; CHECK-NEXT: lea %s1, 256 1230; CHECK-NEXT: lvl %s1 1231; CHECK-NEXT: vscl.ot %v0, %v1, %s0, 0, %vm1 1232; CHECK-NEXT: b.l.t (, %s10) 1233 tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 1234 ret void 1235} 1236 1237; Function Attrs: nounwind writeonly 1238define fastcc void @vsclot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1239; CHECK-LABEL: vsclot_vvssml_imm_2: 1240; CHECK: # %bb.0: 1241; CHECK-NEXT: lea %s1, 256 1242; CHECK-NEXT: lvl %s1 1243; CHECK-NEXT: vscl.ot %v0, %v1, 8, %s0, %vm1 1244; CHECK-NEXT: b.l.t (, %s10) 1245 tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 1246 ret void 1247} 1248 1249; Function Attrs: nounwind writeonly 1250define fastcc void @vsclot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 1251; CHECK-LABEL: vsclot_vvssml_imm_3: 1252; CHECK: # %bb.0: 1253; CHECK-NEXT: lea %s0, 256 1254; CHECK-NEXT: lvl %s0 1255; CHECK-NEXT: vscl.ot %v0, %v1, 8, 0, %vm1 1256; CHECK-NEXT: b.l.t (, %s10) 1257 tail call void @llvm.ve.vl.vsclot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 1258 ret void 1259} 1260 1261; Function Attrs: nounwind writeonly 1262define fastcc void @vsclot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1263; CHECK-LABEL: vsclot_vvssl_no_imm_1: 1264; CHECK: # %bb.0: 1265; CHECK-NEXT: lea %s1, 256 1266; CHECK-NEXT: or %s2, 8, (0)1 1267; CHECK-NEXT: lvl %s1 1268; CHECK-NEXT: vscl.ot %v0, %v1, %s0, %s2 1269; CHECK-NEXT: b.l.t (, %s10) 1270 tail call void @llvm.ve.vl.vsclot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 1271 ret void 1272} 1273 1274; Function Attrs: nounwind writeonly 1275define fastcc void @vsclncot_vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3) { 1276; CHECK-LABEL: vsclncot_vvssl: 1277; CHECK: # %bb.0: 1278; CHECK-NEXT: lea %s2, 256 1279; CHECK-NEXT: lvl %s2 1280; CHECK-NEXT: vscl.nc.ot %v0, %v1, %s0, %s1 1281; CHECK-NEXT: b.l.t (, %s10) 1282 tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, i32 256) 1283 ret void 1284} 1285 1286; Function Attrs: nounwind writeonly 1287declare void @llvm.ve.vl.vsclncot.vvssl(<256 x double>, <256 x double>, i64, i64, i32) 1288 1289; Function Attrs: nounwind writeonly 1290define fastcc void @vsclncot_vvssl_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1291; CHECK-LABEL: vsclncot_vvssl_imm_1: 1292; CHECK: # %bb.0: 1293; CHECK-NEXT: lea %s1, 256 1294; CHECK-NEXT: lvl %s1 1295; CHECK-NEXT: vscl.nc.ot %v0, %v1, %s0, 0 1296; CHECK-NEXT: b.l.t (, %s10) 1297 tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, i32 256) 1298 ret void 1299} 1300 1301; Function Attrs: nounwind writeonly 1302define fastcc void @vsclncot_vvssl_imm_2(<256 x double> %0, <256 x double> %1, i64 %2) { 1303; CHECK-LABEL: vsclncot_vvssl_imm_2: 1304; CHECK: # %bb.0: 1305; CHECK-NEXT: lea %s1, 256 1306; CHECK-NEXT: lvl %s1 1307; CHECK-NEXT: vscl.nc.ot %v0, %v1, 8, %s0 1308; CHECK-NEXT: b.l.t (, %s10) 1309 tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, i32 256) 1310 ret void 1311} 1312 1313; Function Attrs: nounwind writeonly 1314define fastcc void @vsclncot_vvssl_imm_3(<256 x double> %0, <256 x double> %1) { 1315; CHECK-LABEL: vsclncot_vvssl_imm_3: 1316; CHECK: # %bb.0: 1317; CHECK-NEXT: lea %s0, 256 1318; CHECK-NEXT: lvl %s0 1319; CHECK-NEXT: vscl.nc.ot %v0, %v1, 8, 0 1320; CHECK-NEXT: b.l.t (, %s10) 1321 tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 8, i64 0, i32 256) 1322 ret void 1323} 1324 1325; Function Attrs: nounwind writeonly 1326define fastcc void @vsclncot_vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4) { 1327; CHECK-LABEL: vsclncot_vvssml: 1328; CHECK: # %bb.0: 1329; CHECK-NEXT: lea %s2, 256 1330; CHECK-NEXT: lvl %s2 1331; CHECK-NEXT: vscl.nc.ot %v0, %v1, %s0, %s1, %vm1 1332; CHECK-NEXT: b.l.t (, %s10) 1333 tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 %3, <256 x i1> %4, i32 256) 1334 ret void 1335} 1336 1337; Function Attrs: nounwind writeonly 1338declare void @llvm.ve.vl.vsclncot.vvssml(<256 x double>, <256 x double>, i64, i64, <256 x i1>, i32) 1339 1340; Function Attrs: nounwind writeonly 1341define fastcc void @vsclncot_vvssml_imm_1(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1342; CHECK-LABEL: vsclncot_vvssml_imm_1: 1343; CHECK: # %bb.0: 1344; CHECK-NEXT: lea %s1, 256 1345; CHECK-NEXT: lvl %s1 1346; CHECK-NEXT: vscl.nc.ot %v0, %v1, %s0, 0, %vm1 1347; CHECK-NEXT: b.l.t (, %s10) 1348 tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 %2, i64 0, <256 x i1> %3, i32 256) 1349 ret void 1350} 1351 1352; Function Attrs: nounwind writeonly 1353define fastcc void @vsclncot_vvssml_imm_2(<256 x double> %0, <256 x double> %1, i64 %2, <256 x i1> %3) { 1354; CHECK-LABEL: vsclncot_vvssml_imm_2: 1355; CHECK: # %bb.0: 1356; CHECK-NEXT: lea %s1, 256 1357; CHECK-NEXT: lvl %s1 1358; CHECK-NEXT: vscl.nc.ot %v0, %v1, 8, %s0, %vm1 1359; CHECK-NEXT: b.l.t (, %s10) 1360 tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 %2, <256 x i1> %3, i32 256) 1361 ret void 1362} 1363 1364; Function Attrs: nounwind writeonly 1365define fastcc void @vsclncot_vvssml_imm_3(<256 x double> %0, <256 x double> %1, <256 x i1> %2) { 1366; CHECK-LABEL: vsclncot_vvssml_imm_3: 1367; CHECK: # %bb.0: 1368; CHECK-NEXT: lea %s0, 256 1369; CHECK-NEXT: lvl %s0 1370; CHECK-NEXT: vscl.nc.ot %v0, %v1, 8, 0, %vm1 1371; CHECK-NEXT: b.l.t (, %s10) 1372 tail call void @llvm.ve.vl.vsclncot.vvssml(<256 x double> %0, <256 x double> %1, i64 8, i64 0, <256 x i1> %2, i32 256) 1373 ret void 1374} 1375 1376; Function Attrs: nounwind writeonly 1377define fastcc void @vsclncot_vvssl_no_imm_1(<256 x double> %0, <256 x double> %1, i64 %2) { 1378; CHECK-LABEL: vsclncot_vvssl_no_imm_1: 1379; CHECK: # %bb.0: 1380; CHECK-NEXT: lea %s1, 256 1381; CHECK-NEXT: or %s2, 8, (0)1 1382; CHECK-NEXT: lvl %s1 1383; CHECK-NEXT: vscl.nc.ot %v0, %v1, %s0, %s2 1384; CHECK-NEXT: b.l.t (, %s10) 1385 tail call void @llvm.ve.vl.vsclncot.vvssl(<256 x double> %0, <256 x double> %1, i64 %2, i64 8, i32 256) 1386 ret void 1387} 1388