brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.3 KiB · c5f3ca6 Raw
469 lines · plain
1; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s2 3;;; Test vector floating fused multiply subtract intrinsic instructions4;;;5;;; Note:6;;;   We test VFMSB*vvvl, VFMSB*vvvl_v, VFMSB*rvvl, VFMSB*rvvl_v, VFMSB*vrvl,7;;;   VFMSB*vrvl_v, VFMSB*vvvml_v, VFMSB*rvvml_v, VFMSB*vrvml_v, PVFMSB*vvvl,8;;;   PVFMSB*vvvl_v, PVFMSB*rvvl, PVFMSB*rvvl_v, PVFMSB*vrvl, PVFMSB*vrvl_v,9;;;   PVFMSB*vvvml_v, PVFMSB*rvvml_v, and PVFMSB*vrvml_v instructions.10 11; Function Attrs: nounwind readnone12define fastcc <256 x double> @vfmsbd_vvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2) {13; CHECK-LABEL: vfmsbd_vvvvl:14; CHECK:       # %bb.0:15; CHECK-NEXT:    lea %s0, 25616; CHECK-NEXT:    lvl %s017; CHECK-NEXT:    vfmsb.d %v0, %v0, %v1, %v218; CHECK-NEXT:    b.l.t (, %s10)19  %4 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, i32 256)20  ret <256 x double> %421}22 23; Function Attrs: nounwind readnone24declare <256 x double> @llvm.ve.vl.vfmsbd.vvvvl(<256 x double>, <256 x double>, <256 x double>, i32)25 26; Function Attrs: nounwind readnone27define fastcc <256 x double> @vfmsbd_vvvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x double> %3) {28; CHECK-LABEL: vfmsbd_vvvvvl:29; CHECK:       # %bb.0:30; CHECK-NEXT:    lea %s0, 12831; CHECK-NEXT:    lvl %s032; CHECK-NEXT:    vfmsb.d %v3, %v0, %v1, %v233; CHECK-NEXT:    lea %s16, 25634; CHECK-NEXT:    lvl %s1635; CHECK-NEXT:    vor %v0, (0)1, %v336; CHECK-NEXT:    b.l.t (, %s10)37  %5 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vvvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x double> %3, i32 128)38  ret <256 x double> %539}40 41; Function Attrs: nounwind readnone42declare <256 x double> @llvm.ve.vl.vfmsbd.vvvvvl(<256 x double>, <256 x double>, <256 x double>, <256 x double>, i32)43 44; Function Attrs: nounwind readnone45define fastcc <256 x double> @vfmsbd_vsvvl(double %0, <256 x double> %1, <256 x double> %2) {46; CHECK-LABEL: vfmsbd_vsvvl:47; CHECK:       # %bb.0:48; CHECK-NEXT:    lea %s1, 25649; CHECK-NEXT:    lvl %s150; CHECK-NEXT:    vfmsb.d %v0, %s0, %v0, %v151; CHECK-NEXT:    b.l.t (, %s10)52  %4 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vsvvl(double %0, <256 x double> %1, <256 x double> %2, i32 256)53  ret <256 x double> %454}55 56; Function Attrs: nounwind readnone57declare <256 x double> @llvm.ve.vl.vfmsbd.vsvvl(double, <256 x double>, <256 x double>, i32)58 59; Function Attrs: nounwind readnone60define fastcc <256 x double> @vfmsbd_vsvvvl(double %0, <256 x double> %1, <256 x double> %2, <256 x double> %3) {61; CHECK-LABEL: vfmsbd_vsvvvl:62; CHECK:       # %bb.0:63; CHECK-NEXT:    lea %s1, 12864; CHECK-NEXT:    lvl %s165; CHECK-NEXT:    vfmsb.d %v2, %s0, %v0, %v166; CHECK-NEXT:    lea %s16, 25667; CHECK-NEXT:    lvl %s1668; CHECK-NEXT:    vor %v0, (0)1, %v269; CHECK-NEXT:    b.l.t (, %s10)70  %5 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vsvvvl(double %0, <256 x double> %1, <256 x double> %2, <256 x double> %3, i32 128)71  ret <256 x double> %572}73 74; Function Attrs: nounwind readnone75declare <256 x double> @llvm.ve.vl.vfmsbd.vsvvvl(double, <256 x double>, <256 x double>, <256 x double>, i32)76 77; Function Attrs: nounwind readnone78define fastcc <256 x double> @vfmsbd_vvsvl(<256 x double> %0, double %1, <256 x double> %2) {79; CHECK-LABEL: vfmsbd_vvsvl:80; CHECK:       # %bb.0:81; CHECK-NEXT:    lea %s1, 25682; CHECK-NEXT:    lvl %s183; CHECK-NEXT:    vfmsb.d %v0, %v0, %s0, %v184; CHECK-NEXT:    b.l.t (, %s10)85  %4 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vvsvl(<256 x double> %0, double %1, <256 x double> %2, i32 256)86  ret <256 x double> %487}88 89; Function Attrs: nounwind readnone90declare <256 x double> @llvm.ve.vl.vfmsbd.vvsvl(<256 x double>, double, <256 x double>, i32)91 92; Function Attrs: nounwind readnone93define fastcc <256 x double> @vfmsbd_vvsvvl(<256 x double> %0, double %1, <256 x double> %2, <256 x double> %3) {94; CHECK-LABEL: vfmsbd_vvsvvl:95; CHECK:       # %bb.0:96; CHECK-NEXT:    lea %s1, 12897; CHECK-NEXT:    lvl %s198; CHECK-NEXT:    vfmsb.d %v2, %v0, %s0, %v199; CHECK-NEXT:    lea %s16, 256100; CHECK-NEXT:    lvl %s16101; CHECK-NEXT:    vor %v0, (0)1, %v2102; CHECK-NEXT:    b.l.t (, %s10)103  %5 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vvsvvl(<256 x double> %0, double %1, <256 x double> %2, <256 x double> %3, i32 128)104  ret <256 x double> %5105}106 107; Function Attrs: nounwind readnone108declare <256 x double> @llvm.ve.vl.vfmsbd.vvsvvl(<256 x double>, double, <256 x double>, <256 x double>, i32)109 110; Function Attrs: nounwind readnone111define fastcc <256 x double> @vfmsbd_vvvvmvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4) {112; CHECK-LABEL: vfmsbd_vvvvmvl:113; CHECK:       # %bb.0:114; CHECK-NEXT:    lea %s0, 128115; CHECK-NEXT:    lvl %s0116; CHECK-NEXT:    vfmsb.d %v3, %v0, %v1, %v2, %vm1117; CHECK-NEXT:    lea %s16, 256118; CHECK-NEXT:    lvl %s16119; CHECK-NEXT:    vor %v0, (0)1, %v3120; CHECK-NEXT:    b.l.t (, %s10)121  %6 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vvvvmvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4, i32 128)122  ret <256 x double> %6123}124 125; Function Attrs: nounwind readnone126declare <256 x double> @llvm.ve.vl.vfmsbd.vvvvmvl(<256 x double>, <256 x double>, <256 x double>, <256 x i1>, <256 x double>, i32)127 128; Function Attrs: nounwind readnone129define fastcc <256 x double> @vfmsbd_vsvvmvl(double %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4) {130; CHECK-LABEL: vfmsbd_vsvvmvl:131; CHECK:       # %bb.0:132; CHECK-NEXT:    lea %s1, 128133; CHECK-NEXT:    lvl %s1134; CHECK-NEXT:    vfmsb.d %v2, %s0, %v0, %v1, %vm1135; CHECK-NEXT:    lea %s16, 256136; CHECK-NEXT:    lvl %s16137; CHECK-NEXT:    vor %v0, (0)1, %v2138; CHECK-NEXT:    b.l.t (, %s10)139  %6 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vsvvmvl(double %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4, i32 128)140  ret <256 x double> %6141}142 143; Function Attrs: nounwind readnone144declare <256 x double> @llvm.ve.vl.vfmsbd.vsvvmvl(double, <256 x double>, <256 x double>, <256 x i1>, <256 x double>, i32)145 146; Function Attrs: nounwind readnone147define fastcc <256 x double> @vfmsbd_vvsvmvl(<256 x double> %0, double %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4) {148; CHECK-LABEL: vfmsbd_vvsvmvl:149; CHECK:       # %bb.0:150; CHECK-NEXT:    lea %s1, 128151; CHECK-NEXT:    lvl %s1152; CHECK-NEXT:    vfmsb.d %v2, %v0, %s0, %v1, %vm1153; CHECK-NEXT:    lea %s16, 256154; CHECK-NEXT:    lvl %s16155; CHECK-NEXT:    vor %v0, (0)1, %v2156; CHECK-NEXT:    b.l.t (, %s10)157  %6 = tail call fast <256 x double> @llvm.ve.vl.vfmsbd.vvsvmvl(<256 x double> %0, double %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4, i32 128)158  ret <256 x double> %6159}160 161; Function Attrs: nounwind readnone162declare <256 x double> @llvm.ve.vl.vfmsbd.vvsvmvl(<256 x double>, double, <256 x double>, <256 x i1>, <256 x double>, i32)163 164; Function Attrs: nounwind readnone165define fastcc <256 x double> @vfmsbs_vvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2) {166; CHECK-LABEL: vfmsbs_vvvvl:167; CHECK:       # %bb.0:168; CHECK-NEXT:    lea %s0, 256169; CHECK-NEXT:    lvl %s0170; CHECK-NEXT:    vfmsb.s %v0, %v0, %v1, %v2171; CHECK-NEXT:    b.l.t (, %s10)172  %4 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, i32 256)173  ret <256 x double> %4174}175 176; Function Attrs: nounwind readnone177declare <256 x double> @llvm.ve.vl.vfmsbs.vvvvl(<256 x double>, <256 x double>, <256 x double>, i32)178 179; Function Attrs: nounwind readnone180define fastcc <256 x double> @vfmsbs_vvvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x double> %3) {181; CHECK-LABEL: vfmsbs_vvvvvl:182; CHECK:       # %bb.0:183; CHECK-NEXT:    lea %s0, 128184; CHECK-NEXT:    lvl %s0185; CHECK-NEXT:    vfmsb.s %v3, %v0, %v1, %v2186; CHECK-NEXT:    lea %s16, 256187; CHECK-NEXT:    lvl %s16188; CHECK-NEXT:    vor %v0, (0)1, %v3189; CHECK-NEXT:    b.l.t (, %s10)190  %5 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vvvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x double> %3, i32 128)191  ret <256 x double> %5192}193 194; Function Attrs: nounwind readnone195declare <256 x double> @llvm.ve.vl.vfmsbs.vvvvvl(<256 x double>, <256 x double>, <256 x double>, <256 x double>, i32)196 197; Function Attrs: nounwind readnone198define fastcc <256 x double> @vfmsbs_vsvvl(float %0, <256 x double> %1, <256 x double> %2) {199; CHECK-LABEL: vfmsbs_vsvvl:200; CHECK:       # %bb.0:201; CHECK-NEXT:    lea %s1, 256202; CHECK-NEXT:    lvl %s1203; CHECK-NEXT:    vfmsb.s %v0, %s0, %v0, %v1204; CHECK-NEXT:    b.l.t (, %s10)205  %4 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vsvvl(float %0, <256 x double> %1, <256 x double> %2, i32 256)206  ret <256 x double> %4207}208 209; Function Attrs: nounwind readnone210declare <256 x double> @llvm.ve.vl.vfmsbs.vsvvl(float, <256 x double>, <256 x double>, i32)211 212; Function Attrs: nounwind readnone213define fastcc <256 x double> @vfmsbs_vsvvvl(float %0, <256 x double> %1, <256 x double> %2, <256 x double> %3) {214; CHECK-LABEL: vfmsbs_vsvvvl:215; CHECK:       # %bb.0:216; CHECK-NEXT:    lea %s1, 128217; CHECK-NEXT:    lvl %s1218; CHECK-NEXT:    vfmsb.s %v2, %s0, %v0, %v1219; CHECK-NEXT:    lea %s16, 256220; CHECK-NEXT:    lvl %s16221; CHECK-NEXT:    vor %v0, (0)1, %v2222; CHECK-NEXT:    b.l.t (, %s10)223  %5 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vsvvvl(float %0, <256 x double> %1, <256 x double> %2, <256 x double> %3, i32 128)224  ret <256 x double> %5225}226 227; Function Attrs: nounwind readnone228declare <256 x double> @llvm.ve.vl.vfmsbs.vsvvvl(float, <256 x double>, <256 x double>, <256 x double>, i32)229 230; Function Attrs: nounwind readnone231define fastcc <256 x double> @vfmsbs_vvsvl(<256 x double> %0, float %1, <256 x double> %2) {232; CHECK-LABEL: vfmsbs_vvsvl:233; CHECK:       # %bb.0:234; CHECK-NEXT:    lea %s1, 256235; CHECK-NEXT:    lvl %s1236; CHECK-NEXT:    vfmsb.s %v0, %v0, %s0, %v1237; CHECK-NEXT:    b.l.t (, %s10)238  %4 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vvsvl(<256 x double> %0, float %1, <256 x double> %2, i32 256)239  ret <256 x double> %4240}241 242; Function Attrs: nounwind readnone243declare <256 x double> @llvm.ve.vl.vfmsbs.vvsvl(<256 x double>, float, <256 x double>, i32)244 245; Function Attrs: nounwind readnone246define fastcc <256 x double> @vfmsbs_vvsvvl(<256 x double> %0, float %1, <256 x double> %2, <256 x double> %3) {247; CHECK-LABEL: vfmsbs_vvsvvl:248; CHECK:       # %bb.0:249; CHECK-NEXT:    lea %s1, 128250; CHECK-NEXT:    lvl %s1251; CHECK-NEXT:    vfmsb.s %v2, %v0, %s0, %v1252; CHECK-NEXT:    lea %s16, 256253; CHECK-NEXT:    lvl %s16254; CHECK-NEXT:    vor %v0, (0)1, %v2255; CHECK-NEXT:    b.l.t (, %s10)256  %5 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vvsvvl(<256 x double> %0, float %1, <256 x double> %2, <256 x double> %3, i32 128)257  ret <256 x double> %5258}259 260; Function Attrs: nounwind readnone261declare <256 x double> @llvm.ve.vl.vfmsbs.vvsvvl(<256 x double>, float, <256 x double>, <256 x double>, i32)262 263; Function Attrs: nounwind readnone264define fastcc <256 x double> @vfmsbs_vvvvmvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4) {265; CHECK-LABEL: vfmsbs_vvvvmvl:266; CHECK:       # %bb.0:267; CHECK-NEXT:    lea %s0, 128268; CHECK-NEXT:    lvl %s0269; CHECK-NEXT:    vfmsb.s %v3, %v0, %v1, %v2, %vm1270; CHECK-NEXT:    lea %s16, 256271; CHECK-NEXT:    lvl %s16272; CHECK-NEXT:    vor %v0, (0)1, %v3273; CHECK-NEXT:    b.l.t (, %s10)274  %6 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vvvvmvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4, i32 128)275  ret <256 x double> %6276}277 278; Function Attrs: nounwind readnone279declare <256 x double> @llvm.ve.vl.vfmsbs.vvvvmvl(<256 x double>, <256 x double>, <256 x double>, <256 x i1>, <256 x double>, i32)280 281; Function Attrs: nounwind readnone282define fastcc <256 x double> @vfmsbs_vsvvmvl(float %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4) {283; CHECK-LABEL: vfmsbs_vsvvmvl:284; CHECK:       # %bb.0:285; CHECK-NEXT:    lea %s1, 128286; CHECK-NEXT:    lvl %s1287; CHECK-NEXT:    vfmsb.s %v2, %s0, %v0, %v1, %vm1288; CHECK-NEXT:    lea %s16, 256289; CHECK-NEXT:    lvl %s16290; CHECK-NEXT:    vor %v0, (0)1, %v2291; CHECK-NEXT:    b.l.t (, %s10)292  %6 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vsvvmvl(float %0, <256 x double> %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4, i32 128)293  ret <256 x double> %6294}295 296; Function Attrs: nounwind readnone297declare <256 x double> @llvm.ve.vl.vfmsbs.vsvvmvl(float, <256 x double>, <256 x double>, <256 x i1>, <256 x double>, i32)298 299; Function Attrs: nounwind readnone300define fastcc <256 x double> @vfmsbs_vvsvmvl(<256 x double> %0, float %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4) {301; CHECK-LABEL: vfmsbs_vvsvmvl:302; CHECK:       # %bb.0:303; CHECK-NEXT:    lea %s1, 128304; CHECK-NEXT:    lvl %s1305; CHECK-NEXT:    vfmsb.s %v2, %v0, %s0, %v1, %vm1306; CHECK-NEXT:    lea %s16, 256307; CHECK-NEXT:    lvl %s16308; CHECK-NEXT:    vor %v0, (0)1, %v2309; CHECK-NEXT:    b.l.t (, %s10)310  %6 = tail call fast <256 x double> @llvm.ve.vl.vfmsbs.vvsvmvl(<256 x double> %0, float %1, <256 x double> %2, <256 x i1> %3, <256 x double> %4, i32 128)311  ret <256 x double> %6312}313 314; Function Attrs: nounwind readnone315declare <256 x double> @llvm.ve.vl.vfmsbs.vvsvmvl(<256 x double>, float, <256 x double>, <256 x i1>, <256 x double>, i32)316 317; Function Attrs: nounwind readnone318define fastcc <256 x double> @pvfmsb_vvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2) {319; CHECK-LABEL: pvfmsb_vvvvl:320; CHECK:       # %bb.0:321; CHECK-NEXT:    lea %s0, 256322; CHECK-NEXT:    lvl %s0323; CHECK-NEXT:    pvfmsb %v0, %v0, %v1, %v2324; CHECK-NEXT:    b.l.t (, %s10)325  %4 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, i32 256)326  ret <256 x double> %4327}328 329; Function Attrs: nounwind readnone330declare <256 x double> @llvm.ve.vl.pvfmsb.vvvvl(<256 x double>, <256 x double>, <256 x double>, i32)331 332; Function Attrs: nounwind readnone333define fastcc <256 x double> @pvfmsb_vvvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x double> %3) {334; CHECK-LABEL: pvfmsb_vvvvvl:335; CHECK:       # %bb.0:336; CHECK-NEXT:    lea %s0, 128337; CHECK-NEXT:    lvl %s0338; CHECK-NEXT:    pvfmsb %v3, %v0, %v1, %v2339; CHECK-NEXT:    lea %s16, 256340; CHECK-NEXT:    lvl %s16341; CHECK-NEXT:    vor %v0, (0)1, %v3342; CHECK-NEXT:    b.l.t (, %s10)343  %5 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vvvvvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <256 x double> %3, i32 128)344  ret <256 x double> %5345}346 347; Function Attrs: nounwind readnone348declare <256 x double> @llvm.ve.vl.pvfmsb.vvvvvl(<256 x double>, <256 x double>, <256 x double>, <256 x double>, i32)349 350; Function Attrs: nounwind readnone351define fastcc <256 x double> @pvfmsb_vsvvl(i64 %0, <256 x double> %1, <256 x double> %2) {352; CHECK-LABEL: pvfmsb_vsvvl:353; CHECK:       # %bb.0:354; CHECK-NEXT:    lea %s1, 256355; CHECK-NEXT:    lvl %s1356; CHECK-NEXT:    pvfmsb %v0, %s0, %v0, %v1357; CHECK-NEXT:    b.l.t (, %s10)358  %4 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vsvvl(i64 %0, <256 x double> %1, <256 x double> %2, i32 256)359  ret <256 x double> %4360}361 362; Function Attrs: nounwind readnone363declare <256 x double> @llvm.ve.vl.pvfmsb.vsvvl(i64, <256 x double>, <256 x double>, i32)364 365; Function Attrs: nounwind readnone366define fastcc <256 x double> @pvfmsb_vsvvvl(i64 %0, <256 x double> %1, <256 x double> %2, <256 x double> %3) {367; CHECK-LABEL: pvfmsb_vsvvvl:368; CHECK:       # %bb.0:369; CHECK-NEXT:    lea %s1, 128370; CHECK-NEXT:    lvl %s1371; CHECK-NEXT:    pvfmsb %v2, %s0, %v0, %v1372; CHECK-NEXT:    lea %s16, 256373; CHECK-NEXT:    lvl %s16374; CHECK-NEXT:    vor %v0, (0)1, %v2375; CHECK-NEXT:    b.l.t (, %s10)376  %5 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vsvvvl(i64 %0, <256 x double> %1, <256 x double> %2, <256 x double> %3, i32 128)377  ret <256 x double> %5378}379 380; Function Attrs: nounwind readnone381declare <256 x double> @llvm.ve.vl.pvfmsb.vsvvvl(i64, <256 x double>, <256 x double>, <256 x double>, i32)382 383; Function Attrs: nounwind readnone384define fastcc <256 x double> @pvfmsb_vvsvl(<256 x double> %0, i64 %1, <256 x double> %2) {385; CHECK-LABEL: pvfmsb_vvsvl:386; CHECK:       # %bb.0:387; CHECK-NEXT:    lea %s1, 256388; CHECK-NEXT:    lvl %s1389; CHECK-NEXT:    pvfmsb %v0, %v0, %s0, %v1390; CHECK-NEXT:    b.l.t (, %s10)391  %4 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vvsvl(<256 x double> %0, i64 %1, <256 x double> %2, i32 256)392  ret <256 x double> %4393}394 395; Function Attrs: nounwind readnone396declare <256 x double> @llvm.ve.vl.pvfmsb.vvsvl(<256 x double>, i64, <256 x double>, i32)397 398; Function Attrs: nounwind readnone399define fastcc <256 x double> @pvfmsb_vvsvvl(<256 x double> %0, i64 %1, <256 x double> %2, <256 x double> %3) {400; CHECK-LABEL: pvfmsb_vvsvvl:401; CHECK:       # %bb.0:402; CHECK-NEXT:    lea %s1, 128403; CHECK-NEXT:    lvl %s1404; CHECK-NEXT:    pvfmsb %v2, %v0, %s0, %v1405; CHECK-NEXT:    lea %s16, 256406; CHECK-NEXT:    lvl %s16407; CHECK-NEXT:    vor %v0, (0)1, %v2408; CHECK-NEXT:    b.l.t (, %s10)409  %5 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vvsvvl(<256 x double> %0, i64 %1, <256 x double> %2, <256 x double> %3, i32 128)410  ret <256 x double> %5411}412 413; Function Attrs: nounwind readnone414declare <256 x double> @llvm.ve.vl.pvfmsb.vvsvvl(<256 x double>, i64, <256 x double>, <256 x double>, i32)415 416; Function Attrs: nounwind readnone417define fastcc <256 x double> @pvfmsb_vvvvMvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <512 x i1> %3, <256 x double> %4) {418; CHECK-LABEL: pvfmsb_vvvvMvl:419; CHECK:       # %bb.0:420; CHECK-NEXT:    lea %s0, 128421; CHECK-NEXT:    lvl %s0422; CHECK-NEXT:    pvfmsb %v3, %v0, %v1, %v2, %vm2423; CHECK-NEXT:    lea %s16, 256424; CHECK-NEXT:    lvl %s16425; CHECK-NEXT:    vor %v0, (0)1, %v3426; CHECK-NEXT:    b.l.t (, %s10)427  %6 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vvvvMvl(<256 x double> %0, <256 x double> %1, <256 x double> %2, <512 x i1> %3, <256 x double> %4, i32 128)428  ret <256 x double> %6429}430 431; Function Attrs: nounwind readnone432declare <256 x double> @llvm.ve.vl.pvfmsb.vvvvMvl(<256 x double>, <256 x double>, <256 x double>, <512 x i1>, <256 x double>, i32)433 434; Function Attrs: nounwind readnone435define fastcc <256 x double> @pvfmsb_vsvvMvl(i64 %0, <256 x double> %1, <256 x double> %2, <512 x i1> %3, <256 x double> %4) {436; CHECK-LABEL: pvfmsb_vsvvMvl:437; CHECK:       # %bb.0:438; CHECK-NEXT:    lea %s1, 128439; CHECK-NEXT:    lvl %s1440; CHECK-NEXT:    pvfmsb %v2, %s0, %v0, %v1, %vm2441; CHECK-NEXT:    lea %s16, 256442; CHECK-NEXT:    lvl %s16443; CHECK-NEXT:    vor %v0, (0)1, %v2444; CHECK-NEXT:    b.l.t (, %s10)445  %6 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vsvvMvl(i64 %0, <256 x double> %1, <256 x double> %2, <512 x i1> %3, <256 x double> %4, i32 128)446  ret <256 x double> %6447}448 449; Function Attrs: nounwind readnone450declare <256 x double> @llvm.ve.vl.pvfmsb.vsvvMvl(i64, <256 x double>, <256 x double>, <512 x i1>, <256 x double>, i32)451 452; Function Attrs: nounwind readnone453define fastcc <256 x double> @pvfmsb_vvsvMvl(<256 x double> %0, i64 %1, <256 x double> %2, <512 x i1> %3, <256 x double> %4) {454; CHECK-LABEL: pvfmsb_vvsvMvl:455; CHECK:       # %bb.0:456; CHECK-NEXT:    lea %s1, 128457; CHECK-NEXT:    lvl %s1458; CHECK-NEXT:    pvfmsb %v2, %v0, %s0, %v1, %vm2459; CHECK-NEXT:    lea %s16, 256460; CHECK-NEXT:    lvl %s16461; CHECK-NEXT:    vor %v0, (0)1, %v2462; CHECK-NEXT:    b.l.t (, %s10)463  %6 = tail call fast <256 x double> @llvm.ve.vl.pvfmsb.vvsvMvl(<256 x double> %0, i64 %1, <256 x double> %2, <512 x i1> %3, <256 x double> %4, i32 128)464  ret <256 x double> %6465}466 467; Function Attrs: nounwind readnone468declare <256 x double> @llvm.ve.vl.pvfmsb.vvsvMvl(<256 x double>, i64, <256 x double>, <512 x i1>, <256 x double>, i32)469