brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.7 KiB · 155a7ba Raw
818 lines · plain
1; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s2 3;;; Test vector convert to fixed point intrinsic instructions4;;;5;;; Note:6;;;   We test VCVT*vl, VCVT*vl_v, VCVT*vml_v, PVCVT*vl, PVCVT*vl_v, and7;;;   PVCVT*vml_v instructions.8 9; Function Attrs: nounwind readnone10define fastcc <256 x double> @vcvtwdsx_vvl(<256 x double> %0) {11; CHECK-LABEL: vcvtwdsx_vvl:12; CHECK:       # %bb.0:13; CHECK-NEXT:    lea %s0, 25614; CHECK-NEXT:    lvl %s015; CHECK-NEXT:    vcvt.w.d.sx %v0, %v016; CHECK-NEXT:    b.l.t (, %s10)17  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdsx.vvl(<256 x double> %0, i32 256)18  ret <256 x double> %219}20 21; Function Attrs: nounwind readnone22declare <256 x double> @llvm.ve.vl.vcvtwdsx.vvl(<256 x double>, i32)23 24; Function Attrs: nounwind readnone25define fastcc <256 x double> @vcvtwdsx_vvvl(<256 x double> %0, <256 x double> %1) {26; CHECK-LABEL: vcvtwdsx_vvvl:27; CHECK:       # %bb.0:28; CHECK-NEXT:    lea %s0, 12829; CHECK-NEXT:    lvl %s030; CHECK-NEXT:    vcvt.w.d.sx %v1, %v031; CHECK-NEXT:    lea %s16, 25632; CHECK-NEXT:    lvl %s1633; CHECK-NEXT:    vor %v0, (0)1, %v134; CHECK-NEXT:    b.l.t (, %s10)35  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdsx.vvvl(<256 x double> %0, <256 x double> %1, i32 128)36  ret <256 x double> %337}38 39; Function Attrs: nounwind readnone40declare <256 x double> @llvm.ve.vl.vcvtwdsx.vvvl(<256 x double>, <256 x double>, i32)41 42; Function Attrs: nounwind readnone43define fastcc <256 x double> @vcvtwdsx_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {44; CHECK-LABEL: vcvtwdsx_vvmvl:45; CHECK:       # %bb.0:46; CHECK-NEXT:    lea %s0, 12847; CHECK-NEXT:    lvl %s048; CHECK-NEXT:    vcvt.w.d.sx %v1, %v0, %vm149; CHECK-NEXT:    lea %s16, 25650; CHECK-NEXT:    lvl %s1651; CHECK-NEXT:    vor %v0, (0)1, %v152; CHECK-NEXT:    b.l.t (, %s10)53  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdsx.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)54  ret <256 x double> %455}56 57; Function Attrs: nounwind readnone58declare <256 x double> @llvm.ve.vl.vcvtwdsx.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)59 60; Function Attrs: nounwind readnone61define fastcc <256 x double> @vcvtwdsxrz_vvl(<256 x double> %0) {62; CHECK-LABEL: vcvtwdsxrz_vvl:63; CHECK:       # %bb.0:64; CHECK-NEXT:    lea %s0, 25665; CHECK-NEXT:    lvl %s066; CHECK-NEXT:    vcvt.w.d.sx.rz %v0, %v067; CHECK-NEXT:    b.l.t (, %s10)68  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdsxrz.vvl(<256 x double> %0, i32 256)69  ret <256 x double> %270}71 72; Function Attrs: nounwind readnone73declare <256 x double> @llvm.ve.vl.vcvtwdsxrz.vvl(<256 x double>, i32)74 75; Function Attrs: nounwind readnone76define fastcc <256 x double> @vcvtwdsxrz_vvvl(<256 x double> %0, <256 x double> %1) {77; CHECK-LABEL: vcvtwdsxrz_vvvl:78; CHECK:       # %bb.0:79; CHECK-NEXT:    lea %s0, 12880; CHECK-NEXT:    lvl %s081; CHECK-NEXT:    vcvt.w.d.sx.rz %v1, %v082; CHECK-NEXT:    lea %s16, 25683; CHECK-NEXT:    lvl %s1684; CHECK-NEXT:    vor %v0, (0)1, %v185; CHECK-NEXT:    b.l.t (, %s10)86  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdsxrz.vvvl(<256 x double> %0, <256 x double> %1, i32 128)87  ret <256 x double> %388}89 90; Function Attrs: nounwind readnone91declare <256 x double> @llvm.ve.vl.vcvtwdsxrz.vvvl(<256 x double>, <256 x double>, i32)92 93; Function Attrs: nounwind readnone94define fastcc <256 x double> @vcvtwdsxrz_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {95; CHECK-LABEL: vcvtwdsxrz_vvmvl:96; CHECK:       # %bb.0:97; CHECK-NEXT:    lea %s0, 12898; CHECK-NEXT:    lvl %s099; CHECK-NEXT:    vcvt.w.d.sx.rz %v1, %v0, %vm1100; CHECK-NEXT:    lea %s16, 256101; CHECK-NEXT:    lvl %s16102; CHECK-NEXT:    vor %v0, (0)1, %v1103; CHECK-NEXT:    b.l.t (, %s10)104  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdsxrz.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)105  ret <256 x double> %4106}107 108; Function Attrs: nounwind readnone109declare <256 x double> @llvm.ve.vl.vcvtwdsxrz.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)110 111; Function Attrs: nounwind readnone112define fastcc <256 x double> @vcvtwdzx_vvl(<256 x double> %0) {113; CHECK-LABEL: vcvtwdzx_vvl:114; CHECK:       # %bb.0:115; CHECK-NEXT:    lea %s0, 256116; CHECK-NEXT:    lvl %s0117; CHECK-NEXT:    vcvt.w.d.zx %v0, %v0118; CHECK-NEXT:    b.l.t (, %s10)119  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdzx.vvl(<256 x double> %0, i32 256)120  ret <256 x double> %2121}122 123; Function Attrs: nounwind readnone124declare <256 x double> @llvm.ve.vl.vcvtwdzx.vvl(<256 x double>, i32)125 126; Function Attrs: nounwind readnone127define fastcc <256 x double> @vcvtwdzx_vvvl(<256 x double> %0, <256 x double> %1) {128; CHECK-LABEL: vcvtwdzx_vvvl:129; CHECK:       # %bb.0:130; CHECK-NEXT:    lea %s0, 128131; CHECK-NEXT:    lvl %s0132; CHECK-NEXT:    vcvt.w.d.zx %v1, %v0133; CHECK-NEXT:    lea %s16, 256134; CHECK-NEXT:    lvl %s16135; CHECK-NEXT:    vor %v0, (0)1, %v1136; CHECK-NEXT:    b.l.t (, %s10)137  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdzx.vvvl(<256 x double> %0, <256 x double> %1, i32 128)138  ret <256 x double> %3139}140 141; Function Attrs: nounwind readnone142declare <256 x double> @llvm.ve.vl.vcvtwdzx.vvvl(<256 x double>, <256 x double>, i32)143 144; Function Attrs: nounwind readnone145define fastcc <256 x double> @vcvtwdzx_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {146; CHECK-LABEL: vcvtwdzx_vvmvl:147; CHECK:       # %bb.0:148; CHECK-NEXT:    lea %s0, 128149; CHECK-NEXT:    lvl %s0150; CHECK-NEXT:    vcvt.w.d.zx %v1, %v0, %vm1151; CHECK-NEXT:    lea %s16, 256152; CHECK-NEXT:    lvl %s16153; CHECK-NEXT:    vor %v0, (0)1, %v1154; CHECK-NEXT:    b.l.t (, %s10)155  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdzx.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)156  ret <256 x double> %4157}158 159; Function Attrs: nounwind readnone160declare <256 x double> @llvm.ve.vl.vcvtwdzx.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)161 162; Function Attrs: nounwind readnone163define fastcc <256 x double> @vcvtwdzxrz_vvl(<256 x double> %0) {164; CHECK-LABEL: vcvtwdzxrz_vvl:165; CHECK:       # %bb.0:166; CHECK-NEXT:    lea %s0, 256167; CHECK-NEXT:    lvl %s0168; CHECK-NEXT:    vcvt.w.d.zx.rz %v0, %v0169; CHECK-NEXT:    b.l.t (, %s10)170  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdzxrz.vvl(<256 x double> %0, i32 256)171  ret <256 x double> %2172}173 174; Function Attrs: nounwind readnone175declare <256 x double> @llvm.ve.vl.vcvtwdzxrz.vvl(<256 x double>, i32)176 177; Function Attrs: nounwind readnone178define fastcc <256 x double> @vcvtwdzxrz_vvvl(<256 x double> %0, <256 x double> %1) {179; CHECK-LABEL: vcvtwdzxrz_vvvl:180; CHECK:       # %bb.0:181; CHECK-NEXT:    lea %s0, 128182; CHECK-NEXT:    lvl %s0183; CHECK-NEXT:    vcvt.w.d.zx.rz %v1, %v0184; CHECK-NEXT:    lea %s16, 256185; CHECK-NEXT:    lvl %s16186; CHECK-NEXT:    vor %v0, (0)1, %v1187; CHECK-NEXT:    b.l.t (, %s10)188  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdzxrz.vvvl(<256 x double> %0, <256 x double> %1, i32 128)189  ret <256 x double> %3190}191 192; Function Attrs: nounwind readnone193declare <256 x double> @llvm.ve.vl.vcvtwdzxrz.vvvl(<256 x double>, <256 x double>, i32)194 195; Function Attrs: nounwind readnone196define fastcc <256 x double> @vcvtwdzxrz_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {197; CHECK-LABEL: vcvtwdzxrz_vvmvl:198; CHECK:       # %bb.0:199; CHECK-NEXT:    lea %s0, 128200; CHECK-NEXT:    lvl %s0201; CHECK-NEXT:    vcvt.w.d.zx.rz %v1, %v0, %vm1202; CHECK-NEXT:    lea %s16, 256203; CHECK-NEXT:    lvl %s16204; CHECK-NEXT:    vor %v0, (0)1, %v1205; CHECK-NEXT:    b.l.t (, %s10)206  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwdzxrz.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)207  ret <256 x double> %4208}209 210; Function Attrs: nounwind readnone211declare <256 x double> @llvm.ve.vl.vcvtwdzxrz.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)212 213; Function Attrs: nounwind readnone214define fastcc <256 x double> @vcvtwssx_vvl(<256 x double> %0) {215; CHECK-LABEL: vcvtwssx_vvl:216; CHECK:       # %bb.0:217; CHECK-NEXT:    lea %s0, 256218; CHECK-NEXT:    lvl %s0219; CHECK-NEXT:    vcvt.w.s.sx %v0, %v0220; CHECK-NEXT:    b.l.t (, %s10)221  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwssx.vvl(<256 x double> %0, i32 256)222  ret <256 x double> %2223}224 225; Function Attrs: nounwind readnone226declare <256 x double> @llvm.ve.vl.vcvtwssx.vvl(<256 x double>, i32)227 228; Function Attrs: nounwind readnone229define fastcc <256 x double> @vcvtwssx_vvvl(<256 x double> %0, <256 x double> %1) {230; CHECK-LABEL: vcvtwssx_vvvl:231; CHECK:       # %bb.0:232; CHECK-NEXT:    lea %s0, 128233; CHECK-NEXT:    lvl %s0234; CHECK-NEXT:    vcvt.w.s.sx %v1, %v0235; CHECK-NEXT:    lea %s16, 256236; CHECK-NEXT:    lvl %s16237; CHECK-NEXT:    vor %v0, (0)1, %v1238; CHECK-NEXT:    b.l.t (, %s10)239  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwssx.vvvl(<256 x double> %0, <256 x double> %1, i32 128)240  ret <256 x double> %3241}242 243; Function Attrs: nounwind readnone244declare <256 x double> @llvm.ve.vl.vcvtwssx.vvvl(<256 x double>, <256 x double>, i32)245 246; Function Attrs: nounwind readnone247define fastcc <256 x double> @vcvtwssx_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {248; CHECK-LABEL: vcvtwssx_vvmvl:249; CHECK:       # %bb.0:250; CHECK-NEXT:    lea %s0, 128251; CHECK-NEXT:    lvl %s0252; CHECK-NEXT:    vcvt.w.s.sx %v1, %v0, %vm1253; CHECK-NEXT:    lea %s16, 256254; CHECK-NEXT:    lvl %s16255; CHECK-NEXT:    vor %v0, (0)1, %v1256; CHECK-NEXT:    b.l.t (, %s10)257  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwssx.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)258  ret <256 x double> %4259}260 261; Function Attrs: nounwind readnone262declare <256 x double> @llvm.ve.vl.vcvtwssx.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)263 264; Function Attrs: nounwind readnone265define fastcc <256 x double> @vcvtwssxrz_vvl(<256 x double> %0) {266; CHECK-LABEL: vcvtwssxrz_vvl:267; CHECK:       # %bb.0:268; CHECK-NEXT:    lea %s0, 256269; CHECK-NEXT:    lvl %s0270; CHECK-NEXT:    vcvt.w.s.sx.rz %v0, %v0271; CHECK-NEXT:    b.l.t (, %s10)272  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwssxrz.vvl(<256 x double> %0, i32 256)273  ret <256 x double> %2274}275 276; Function Attrs: nounwind readnone277declare <256 x double> @llvm.ve.vl.vcvtwssxrz.vvl(<256 x double>, i32)278 279; Function Attrs: nounwind readnone280define fastcc <256 x double> @vcvtwssxrz_vvvl(<256 x double> %0, <256 x double> %1) {281; CHECK-LABEL: vcvtwssxrz_vvvl:282; CHECK:       # %bb.0:283; CHECK-NEXT:    lea %s0, 128284; CHECK-NEXT:    lvl %s0285; CHECK-NEXT:    vcvt.w.s.sx.rz %v1, %v0286; CHECK-NEXT:    lea %s16, 256287; CHECK-NEXT:    lvl %s16288; CHECK-NEXT:    vor %v0, (0)1, %v1289; CHECK-NEXT:    b.l.t (, %s10)290  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwssxrz.vvvl(<256 x double> %0, <256 x double> %1, i32 128)291  ret <256 x double> %3292}293 294; Function Attrs: nounwind readnone295declare <256 x double> @llvm.ve.vl.vcvtwssxrz.vvvl(<256 x double>, <256 x double>, i32)296 297; Function Attrs: nounwind readnone298define fastcc <256 x double> @vcvtwssxrz_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {299; CHECK-LABEL: vcvtwssxrz_vvmvl:300; CHECK:       # %bb.0:301; CHECK-NEXT:    lea %s0, 128302; CHECK-NEXT:    lvl %s0303; CHECK-NEXT:    vcvt.w.s.sx.rz %v1, %v0, %vm1304; CHECK-NEXT:    lea %s16, 256305; CHECK-NEXT:    lvl %s16306; CHECK-NEXT:    vor %v0, (0)1, %v1307; CHECK-NEXT:    b.l.t (, %s10)308  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwssxrz.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)309  ret <256 x double> %4310}311 312; Function Attrs: nounwind readnone313declare <256 x double> @llvm.ve.vl.vcvtwssxrz.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)314 315; Function Attrs: nounwind readnone316define fastcc <256 x double> @vcvtwszx_vvl(<256 x double> %0) {317; CHECK-LABEL: vcvtwszx_vvl:318; CHECK:       # %bb.0:319; CHECK-NEXT:    lea %s0, 256320; CHECK-NEXT:    lvl %s0321; CHECK-NEXT:    vcvt.w.s.zx %v0, %v0322; CHECK-NEXT:    b.l.t (, %s10)323  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwszx.vvl(<256 x double> %0, i32 256)324  ret <256 x double> %2325}326 327; Function Attrs: nounwind readnone328declare <256 x double> @llvm.ve.vl.vcvtwszx.vvl(<256 x double>, i32)329 330; Function Attrs: nounwind readnone331define fastcc <256 x double> @vcvtwszx_vvvl(<256 x double> %0, <256 x double> %1) {332; CHECK-LABEL: vcvtwszx_vvvl:333; CHECK:       # %bb.0:334; CHECK-NEXT:    lea %s0, 128335; CHECK-NEXT:    lvl %s0336; CHECK-NEXT:    vcvt.w.s.zx %v1, %v0337; CHECK-NEXT:    lea %s16, 256338; CHECK-NEXT:    lvl %s16339; CHECK-NEXT:    vor %v0, (0)1, %v1340; CHECK-NEXT:    b.l.t (, %s10)341  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwszx.vvvl(<256 x double> %0, <256 x double> %1, i32 128)342  ret <256 x double> %3343}344 345; Function Attrs: nounwind readnone346declare <256 x double> @llvm.ve.vl.vcvtwszx.vvvl(<256 x double>, <256 x double>, i32)347 348; Function Attrs: nounwind readnone349define fastcc <256 x double> @vcvtwszx_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {350; CHECK-LABEL: vcvtwszx_vvmvl:351; CHECK:       # %bb.0:352; CHECK-NEXT:    lea %s0, 128353; CHECK-NEXT:    lvl %s0354; CHECK-NEXT:    vcvt.w.s.zx %v1, %v0, %vm1355; CHECK-NEXT:    lea %s16, 256356; CHECK-NEXT:    lvl %s16357; CHECK-NEXT:    vor %v0, (0)1, %v1358; CHECK-NEXT:    b.l.t (, %s10)359  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwszx.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)360  ret <256 x double> %4361}362 363; Function Attrs: nounwind readnone364declare <256 x double> @llvm.ve.vl.vcvtwszx.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)365 366; Function Attrs: nounwind readnone367define fastcc <256 x double> @vcvtwszxrz_vvl(<256 x double> %0) {368; CHECK-LABEL: vcvtwszxrz_vvl:369; CHECK:       # %bb.0:370; CHECK-NEXT:    lea %s0, 256371; CHECK-NEXT:    lvl %s0372; CHECK-NEXT:    vcvt.w.s.zx.rz %v0, %v0373; CHECK-NEXT:    b.l.t (, %s10)374  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtwszxrz.vvl(<256 x double> %0, i32 256)375  ret <256 x double> %2376}377 378; Function Attrs: nounwind readnone379declare <256 x double> @llvm.ve.vl.vcvtwszxrz.vvl(<256 x double>, i32)380 381; Function Attrs: nounwind readnone382define fastcc <256 x double> @vcvtwszxrz_vvvl(<256 x double> %0, <256 x double> %1) {383; CHECK-LABEL: vcvtwszxrz_vvvl:384; CHECK:       # %bb.0:385; CHECK-NEXT:    lea %s0, 128386; CHECK-NEXT:    lvl %s0387; CHECK-NEXT:    vcvt.w.s.zx.rz %v1, %v0388; CHECK-NEXT:    lea %s16, 256389; CHECK-NEXT:    lvl %s16390; CHECK-NEXT:    vor %v0, (0)1, %v1391; CHECK-NEXT:    b.l.t (, %s10)392  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtwszxrz.vvvl(<256 x double> %0, <256 x double> %1, i32 128)393  ret <256 x double> %3394}395 396; Function Attrs: nounwind readnone397declare <256 x double> @llvm.ve.vl.vcvtwszxrz.vvvl(<256 x double>, <256 x double>, i32)398 399; Function Attrs: nounwind readnone400define fastcc <256 x double> @vcvtwszxrz_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {401; CHECK-LABEL: vcvtwszxrz_vvmvl:402; CHECK:       # %bb.0:403; CHECK-NEXT:    lea %s0, 128404; CHECK-NEXT:    lvl %s0405; CHECK-NEXT:    vcvt.w.s.zx.rz %v1, %v0, %vm1406; CHECK-NEXT:    lea %s16, 256407; CHECK-NEXT:    lvl %s16408; CHECK-NEXT:    vor %v0, (0)1, %v1409; CHECK-NEXT:    b.l.t (, %s10)410  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtwszxrz.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)411  ret <256 x double> %4412}413 414; Function Attrs: nounwind readnone415declare <256 x double> @llvm.ve.vl.vcvtwszxrz.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)416 417; Function Attrs: nounwind readnone418define fastcc <256 x double> @vcvtld_vvl(<256 x double> %0) {419; CHECK-LABEL: vcvtld_vvl:420; CHECK:       # %bb.0:421; CHECK-NEXT:    lea %s0, 256422; CHECK-NEXT:    lvl %s0423; CHECK-NEXT:    vcvt.l.d %v0, %v0424; CHECK-NEXT:    b.l.t (, %s10)425  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtld.vvl(<256 x double> %0, i32 256)426  ret <256 x double> %2427}428 429; Function Attrs: nounwind readnone430declare <256 x double> @llvm.ve.vl.vcvtld.vvl(<256 x double>, i32)431 432; Function Attrs: nounwind readnone433define fastcc <256 x double> @vcvtld_vvvl(<256 x double> %0, <256 x double> %1) {434; CHECK-LABEL: vcvtld_vvvl:435; CHECK:       # %bb.0:436; CHECK-NEXT:    lea %s0, 128437; CHECK-NEXT:    lvl %s0438; CHECK-NEXT:    vcvt.l.d %v1, %v0439; CHECK-NEXT:    lea %s16, 256440; CHECK-NEXT:    lvl %s16441; CHECK-NEXT:    vor %v0, (0)1, %v1442; CHECK-NEXT:    b.l.t (, %s10)443  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtld.vvvl(<256 x double> %0, <256 x double> %1, i32 128)444  ret <256 x double> %3445}446 447; Function Attrs: nounwind readnone448declare <256 x double> @llvm.ve.vl.vcvtld.vvvl(<256 x double>, <256 x double>, i32)449 450; Function Attrs: nounwind readnone451define fastcc <256 x double> @vcvtld_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {452; CHECK-LABEL: vcvtld_vvmvl:453; CHECK:       # %bb.0:454; CHECK-NEXT:    lea %s0, 128455; CHECK-NEXT:    lvl %s0456; CHECK-NEXT:    vcvt.l.d %v1, %v0, %vm1457; CHECK-NEXT:    lea %s16, 256458; CHECK-NEXT:    lvl %s16459; CHECK-NEXT:    vor %v0, (0)1, %v1460; CHECK-NEXT:    b.l.t (, %s10)461  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtld.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)462  ret <256 x double> %4463}464 465; Function Attrs: nounwind readnone466declare <256 x double> @llvm.ve.vl.vcvtld.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)467 468; Function Attrs: nounwind readnone469define fastcc <256 x double> @vcvtldrz_vvl(<256 x double> %0) {470; CHECK-LABEL: vcvtldrz_vvl:471; CHECK:       # %bb.0:472; CHECK-NEXT:    lea %s0, 256473; CHECK-NEXT:    lvl %s0474; CHECK-NEXT:    vcvt.l.d.rz %v0, %v0475; CHECK-NEXT:    b.l.t (, %s10)476  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtldrz.vvl(<256 x double> %0, i32 256)477  ret <256 x double> %2478}479 480; Function Attrs: nounwind readnone481declare <256 x double> @llvm.ve.vl.vcvtldrz.vvl(<256 x double>, i32)482 483; Function Attrs: nounwind readnone484define fastcc <256 x double> @vcvtldrz_vvvl(<256 x double> %0, <256 x double> %1) {485; CHECK-LABEL: vcvtldrz_vvvl:486; CHECK:       # %bb.0:487; CHECK-NEXT:    lea %s0, 128488; CHECK-NEXT:    lvl %s0489; CHECK-NEXT:    vcvt.l.d.rz %v1, %v0490; CHECK-NEXT:    lea %s16, 256491; CHECK-NEXT:    lvl %s16492; CHECK-NEXT:    vor %v0, (0)1, %v1493; CHECK-NEXT:    b.l.t (, %s10)494  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtldrz.vvvl(<256 x double> %0, <256 x double> %1, i32 128)495  ret <256 x double> %3496}497 498; Function Attrs: nounwind readnone499declare <256 x double> @llvm.ve.vl.vcvtldrz.vvvl(<256 x double>, <256 x double>, i32)500 501; Function Attrs: nounwind readnone502define fastcc <256 x double> @vcvtldrz_vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {503; CHECK-LABEL: vcvtldrz_vvmvl:504; CHECK:       # %bb.0:505; CHECK-NEXT:    lea %s0, 128506; CHECK-NEXT:    lvl %s0507; CHECK-NEXT:    vcvt.l.d.rz %v1, %v0, %vm1508; CHECK-NEXT:    lea %s16, 256509; CHECK-NEXT:    lvl %s16510; CHECK-NEXT:    vor %v0, (0)1, %v1511; CHECK-NEXT:    b.l.t (, %s10)512  %4 = tail call fast <256 x double> @llvm.ve.vl.vcvtldrz.vvmvl(<256 x double> %0, <256 x i1> %1, <256 x double> %2, i32 128)513  ret <256 x double> %4514}515 516; Function Attrs: nounwind readnone517declare <256 x double> @llvm.ve.vl.vcvtldrz.vvmvl(<256 x double>, <256 x i1>, <256 x double>, i32)518 519; Function Attrs: nounwind readnone520define fastcc <256 x double> @vcvtdw_vvl(<256 x double> %0) {521; CHECK-LABEL: vcvtdw_vvl:522; CHECK:       # %bb.0:523; CHECK-NEXT:    lea %s0, 256524; CHECK-NEXT:    lvl %s0525; CHECK-NEXT:    vcvt.d.w %v0, %v0526; CHECK-NEXT:    b.l.t (, %s10)527  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtdw.vvl(<256 x double> %0, i32 256)528  ret <256 x double> %2529}530 531; Function Attrs: nounwind readnone532declare <256 x double> @llvm.ve.vl.vcvtdw.vvl(<256 x double>, i32)533 534; Function Attrs: nounwind readnone535define fastcc <256 x double> @vcvtdw_vvvl(<256 x double> %0, <256 x double> %1) {536; CHECK-LABEL: vcvtdw_vvvl:537; CHECK:       # %bb.0:538; CHECK-NEXT:    lea %s0, 128539; CHECK-NEXT:    lvl %s0540; CHECK-NEXT:    vcvt.d.w %v1, %v0541; CHECK-NEXT:    lea %s16, 256542; CHECK-NEXT:    lvl %s16543; CHECK-NEXT:    vor %v0, (0)1, %v1544; CHECK-NEXT:    b.l.t (, %s10)545  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtdw.vvvl(<256 x double> %0, <256 x double> %1, i32 128)546  ret <256 x double> %3547}548 549; Function Attrs: nounwind readnone550declare <256 x double> @llvm.ve.vl.vcvtdw.vvvl(<256 x double>, <256 x double>, i32)551 552; Function Attrs: nounwind readnone553define fastcc <256 x double> @vcvtsw_vvl(<256 x double> %0) {554; CHECK-LABEL: vcvtsw_vvl:555; CHECK:       # %bb.0:556; CHECK-NEXT:    lea %s0, 256557; CHECK-NEXT:    lvl %s0558; CHECK-NEXT:    vcvt.s.w %v0, %v0559; CHECK-NEXT:    b.l.t (, %s10)560  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtsw.vvl(<256 x double> %0, i32 256)561  ret <256 x double> %2562}563 564; Function Attrs: nounwind readnone565declare <256 x double> @llvm.ve.vl.vcvtsw.vvl(<256 x double>, i32)566 567; Function Attrs: nounwind readnone568define fastcc <256 x double> @vcvtsw_vvvl(<256 x double> %0, <256 x double> %1) {569; CHECK-LABEL: vcvtsw_vvvl:570; CHECK:       # %bb.0:571; CHECK-NEXT:    lea %s0, 128572; CHECK-NEXT:    lvl %s0573; CHECK-NEXT:    vcvt.s.w %v1, %v0574; CHECK-NEXT:    lea %s16, 256575; CHECK-NEXT:    lvl %s16576; CHECK-NEXT:    vor %v0, (0)1, %v1577; CHECK-NEXT:    b.l.t (, %s10)578  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtsw.vvvl(<256 x double> %0, <256 x double> %1, i32 128)579  ret <256 x double> %3580}581 582; Function Attrs: nounwind readnone583declare <256 x double> @llvm.ve.vl.vcvtsw.vvvl(<256 x double>, <256 x double>, i32)584 585; Function Attrs: nounwind readnone586define fastcc <256 x double> @vcvtdl_vvl(<256 x double> %0) {587; CHECK-LABEL: vcvtdl_vvl:588; CHECK:       # %bb.0:589; CHECK-NEXT:    lea %s0, 256590; CHECK-NEXT:    lvl %s0591; CHECK-NEXT:    vcvt.d.l %v0, %v0592; CHECK-NEXT:    b.l.t (, %s10)593  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtdl.vvl(<256 x double> %0, i32 256)594  ret <256 x double> %2595}596 597; Function Attrs: nounwind readnone598declare <256 x double> @llvm.ve.vl.vcvtdl.vvl(<256 x double>, i32)599 600; Function Attrs: nounwind readnone601define fastcc <256 x double> @vcvtdl_vvvl(<256 x double> %0, <256 x double> %1) {602; CHECK-LABEL: vcvtdl_vvvl:603; CHECK:       # %bb.0:604; CHECK-NEXT:    lea %s0, 128605; CHECK-NEXT:    lvl %s0606; CHECK-NEXT:    vcvt.d.l %v1, %v0607; CHECK-NEXT:    lea %s16, 256608; CHECK-NEXT:    lvl %s16609; CHECK-NEXT:    vor %v0, (0)1, %v1610; CHECK-NEXT:    b.l.t (, %s10)611  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtdl.vvvl(<256 x double> %0, <256 x double> %1, i32 128)612  ret <256 x double> %3613}614 615; Function Attrs: nounwind readnone616declare <256 x double> @llvm.ve.vl.vcvtdl.vvvl(<256 x double>, <256 x double>, i32)617 618; Function Attrs: nounwind readnone619define fastcc <256 x double> @vcvtds_vvl(<256 x double> %0) {620; CHECK-LABEL: vcvtds_vvl:621; CHECK:       # %bb.0:622; CHECK-NEXT:    lea %s0, 256623; CHECK-NEXT:    lvl %s0624; CHECK-NEXT:    vcvt.d.s %v0, %v0625; CHECK-NEXT:    b.l.t (, %s10)626  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtds.vvl(<256 x double> %0, i32 256)627  ret <256 x double> %2628}629 630; Function Attrs: nounwind readnone631declare <256 x double> @llvm.ve.vl.vcvtds.vvl(<256 x double>, i32)632 633; Function Attrs: nounwind readnone634define fastcc <256 x double> @vcvtds_vvvl(<256 x double> %0, <256 x double> %1) {635; CHECK-LABEL: vcvtds_vvvl:636; CHECK:       # %bb.0:637; CHECK-NEXT:    lea %s0, 128638; CHECK-NEXT:    lvl %s0639; CHECK-NEXT:    vcvt.d.s %v1, %v0640; CHECK-NEXT:    lea %s16, 256641; CHECK-NEXT:    lvl %s16642; CHECK-NEXT:    vor %v0, (0)1, %v1643; CHECK-NEXT:    b.l.t (, %s10)644  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtds.vvvl(<256 x double> %0, <256 x double> %1, i32 128)645  ret <256 x double> %3646}647 648; Function Attrs: nounwind readnone649declare <256 x double> @llvm.ve.vl.vcvtds.vvvl(<256 x double>, <256 x double>, i32)650 651; Function Attrs: nounwind readnone652define fastcc <256 x double> @vcvtsd_vvl(<256 x double> %0) {653; CHECK-LABEL: vcvtsd_vvl:654; CHECK:       # %bb.0:655; CHECK-NEXT:    lea %s0, 256656; CHECK-NEXT:    lvl %s0657; CHECK-NEXT:    vcvt.s.d %v0, %v0658; CHECK-NEXT:    b.l.t (, %s10)659  %2 = tail call fast <256 x double> @llvm.ve.vl.vcvtsd.vvl(<256 x double> %0, i32 256)660  ret <256 x double> %2661}662 663; Function Attrs: nounwind readnone664declare <256 x double> @llvm.ve.vl.vcvtsd.vvl(<256 x double>, i32)665 666; Function Attrs: nounwind readnone667define fastcc <256 x double> @vcvtsd_vvvl(<256 x double> %0, <256 x double> %1) {668; CHECK-LABEL: vcvtsd_vvvl:669; CHECK:       # %bb.0:670; CHECK-NEXT:    lea %s0, 128671; CHECK-NEXT:    lvl %s0672; CHECK-NEXT:    vcvt.s.d %v1, %v0673; CHECK-NEXT:    lea %s16, 256674; CHECK-NEXT:    lvl %s16675; CHECK-NEXT:    vor %v0, (0)1, %v1676; CHECK-NEXT:    b.l.t (, %s10)677  %3 = tail call fast <256 x double> @llvm.ve.vl.vcvtsd.vvvl(<256 x double> %0, <256 x double> %1, i32 128)678  ret <256 x double> %3679}680 681; Function Attrs: nounwind readnone682declare <256 x double> @llvm.ve.vl.vcvtsd.vvvl(<256 x double>, <256 x double>, i32)683 684; Function Attrs: nounwind readnone685define fastcc <256 x double> @pvcvtws_vvl(<256 x double> %0) {686; CHECK-LABEL: pvcvtws_vvl:687; CHECK:       # %bb.0:688; CHECK-NEXT:    lea %s0, 256689; CHECK-NEXT:    lvl %s0690; CHECK-NEXT:    pvcvt.w.s %v0, %v0691; CHECK-NEXT:    b.l.t (, %s10)692  %2 = tail call fast <256 x double> @llvm.ve.vl.pvcvtws.vvl(<256 x double> %0, i32 256)693  ret <256 x double> %2694}695 696; Function Attrs: nounwind readnone697declare <256 x double> @llvm.ve.vl.pvcvtws.vvl(<256 x double>, i32)698 699; Function Attrs: nounwind readnone700define fastcc <256 x double> @pvcvtws_vvvl(<256 x double> %0, <256 x double> %1) {701; CHECK-LABEL: pvcvtws_vvvl:702; CHECK:       # %bb.0:703; CHECK-NEXT:    lea %s0, 128704; CHECK-NEXT:    lvl %s0705; CHECK-NEXT:    pvcvt.w.s %v1, %v0706; CHECK-NEXT:    lea %s16, 256707; CHECK-NEXT:    lvl %s16708; CHECK-NEXT:    vor %v0, (0)1, %v1709; CHECK-NEXT:    b.l.t (, %s10)710  %3 = tail call fast <256 x double> @llvm.ve.vl.pvcvtws.vvvl(<256 x double> %0, <256 x double> %1, i32 128)711  ret <256 x double> %3712}713 714; Function Attrs: nounwind readnone715declare <256 x double> @llvm.ve.vl.pvcvtws.vvvl(<256 x double>, <256 x double>, i32)716 717; Function Attrs: nounwind readnone718define fastcc <256 x double> @pvcvtws_vvMvl(<256 x double> %0, <512 x i1> %1, <256 x double> %2) {719; CHECK-LABEL: pvcvtws_vvMvl:720; CHECK:       # %bb.0:721; CHECK-NEXT:    lea %s0, 128722; CHECK-NEXT:    lvl %s0723; CHECK-NEXT:    pvcvt.w.s %v1, %v0, %vm2724; CHECK-NEXT:    lea %s16, 256725; CHECK-NEXT:    lvl %s16726; CHECK-NEXT:    vor %v0, (0)1, %v1727; CHECK-NEXT:    b.l.t (, %s10)728  %4 = tail call fast <256 x double> @llvm.ve.vl.pvcvtws.vvMvl(<256 x double> %0, <512 x i1> %1, <256 x double> %2, i32 128)729  ret <256 x double> %4730}731 732; Function Attrs: nounwind readnone733declare <256 x double> @llvm.ve.vl.pvcvtws.vvMvl(<256 x double>, <512 x i1>, <256 x double>, i32)734 735; Function Attrs: nounwind readnone736define fastcc <256 x double> @pvcvtwsrz_vvl(<256 x double> %0) {737; CHECK-LABEL: pvcvtwsrz_vvl:738; CHECK:       # %bb.0:739; CHECK-NEXT:    lea %s0, 256740; CHECK-NEXT:    lvl %s0741; CHECK-NEXT:    pvcvt.w.s.rz %v0, %v0742; CHECK-NEXT:    b.l.t (, %s10)743  %2 = tail call fast <256 x double> @llvm.ve.vl.pvcvtwsrz.vvl(<256 x double> %0, i32 256)744  ret <256 x double> %2745}746 747; Function Attrs: nounwind readnone748declare <256 x double> @llvm.ve.vl.pvcvtwsrz.vvl(<256 x double>, i32)749 750; Function Attrs: nounwind readnone751define fastcc <256 x double> @pvcvtwsrz_vvvl(<256 x double> %0, <256 x double> %1) {752; CHECK-LABEL: pvcvtwsrz_vvvl:753; CHECK:       # %bb.0:754; CHECK-NEXT:    lea %s0, 128755; CHECK-NEXT:    lvl %s0756; CHECK-NEXT:    pvcvt.w.s.rz %v1, %v0757; CHECK-NEXT:    lea %s16, 256758; CHECK-NEXT:    lvl %s16759; CHECK-NEXT:    vor %v0, (0)1, %v1760; CHECK-NEXT:    b.l.t (, %s10)761  %3 = tail call fast <256 x double> @llvm.ve.vl.pvcvtwsrz.vvvl(<256 x double> %0, <256 x double> %1, i32 128)762  ret <256 x double> %3763}764 765; Function Attrs: nounwind readnone766declare <256 x double> @llvm.ve.vl.pvcvtwsrz.vvvl(<256 x double>, <256 x double>, i32)767 768; Function Attrs: nounwind readnone769define fastcc <256 x double> @pvcvtwsrz_vvMvl(<256 x double> %0, <512 x i1> %1, <256 x double> %2) {770; CHECK-LABEL: pvcvtwsrz_vvMvl:771; CHECK:       # %bb.0:772; CHECK-NEXT:    lea %s0, 128773; CHECK-NEXT:    lvl %s0774; CHECK-NEXT:    pvcvt.w.s.rz %v1, %v0, %vm2775; CHECK-NEXT:    lea %s16, 256776; CHECK-NEXT:    lvl %s16777; CHECK-NEXT:    vor %v0, (0)1, %v1778; CHECK-NEXT:    b.l.t (, %s10)779  %4 = tail call fast <256 x double> @llvm.ve.vl.pvcvtwsrz.vvMvl(<256 x double> %0, <512 x i1> %1, <256 x double> %2, i32 128)780  ret <256 x double> %4781}782 783; Function Attrs: nounwind readnone784declare <256 x double> @llvm.ve.vl.pvcvtwsrz.vvMvl(<256 x double>, <512 x i1>, <256 x double>, i32)785 786; Function Attrs: nounwind readnone787define fastcc <256 x double> @pvcvtsw_vvl(<256 x double> %0) {788; CHECK-LABEL: pvcvtsw_vvl:789; CHECK:       # %bb.0:790; CHECK-NEXT:    lea %s0, 256791; CHECK-NEXT:    lvl %s0792; CHECK-NEXT:    pvcvt.s.w %v0, %v0793; CHECK-NEXT:    b.l.t (, %s10)794  %2 = tail call fast <256 x double> @llvm.ve.vl.pvcvtsw.vvl(<256 x double> %0, i32 256)795  ret <256 x double> %2796}797 798; Function Attrs: nounwind readnone799declare <256 x double> @llvm.ve.vl.pvcvtsw.vvl(<256 x double>, i32)800 801; Function Attrs: nounwind readnone802define fastcc <256 x double> @pvcvtsw_vvvl(<256 x double> %0, <256 x double> %1) {803; CHECK-LABEL: pvcvtsw_vvvl:804; CHECK:       # %bb.0:805; CHECK-NEXT:    lea %s0, 128806; CHECK-NEXT:    lvl %s0807; CHECK-NEXT:    pvcvt.s.w %v1, %v0808; CHECK-NEXT:    lea %s16, 256809; CHECK-NEXT:    lvl %s16810; CHECK-NEXT:    vor %v0, (0)1, %v1811; CHECK-NEXT:    b.l.t (, %s10)812  %3 = tail call fast <256 x double> @llvm.ve.vl.pvcvtsw.vvvl(<256 x double> %0, <256 x double> %1, i32 128)813  ret <256 x double> %3814}815 816; Function Attrs: nounwind readnone817declare <256 x double> @llvm.ve.vl.pvcvtsw.vvvl(<256 x double>, <256 x double>, i32)818