1937 lines · plain
1; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s2 3;;; Test vector gather intrinsic instructions4;;;5;;; Note:6;;; We test VGT*vrrl, VGT*vrrl_v, VGT*vrzl, VGT*vrzl_v, VGT*virl, VGT*virl_v,7;;; VGT*vizl, VGT*vizl_v, VGT*vrrml, VGT*vrrml_v, VGT*vrzml, VGT*vrzml_v,8;;; VGT*virml, VGT*virml_v, VGT*vizml, and VGT*vizml_v instructions.9 10; Function Attrs: nounwind readonly11define fastcc <256 x double> @vgt_vvssl(<256 x double> %0, i64 %1, i64 %2) {12; CHECK-LABEL: vgt_vvssl:13; CHECK: # %bb.0:14; CHECK-NEXT: lea %s2, 25615; CHECK-NEXT: lvl %s216; CHECK-NEXT: vgt %v0, %v0, %s0, %s117; CHECK-NEXT: b.l.t (, %s10)18 %4 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)19 ret <256 x double> %420}21 22; Function Attrs: nounwind readonly23declare <256 x double> @llvm.ve.vl.vgt.vvssl(<256 x double>, i64, i64, i32)24 25; Function Attrs: nounwind readonly26define fastcc <256 x double> @vgt_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {27; CHECK-LABEL: vgt_vvssvl:28; CHECK: # %bb.0:29; CHECK-NEXT: lea %s2, 12830; CHECK-NEXT: lvl %s231; CHECK-NEXT: vgt %v1, %v0, %s0, %s132; CHECK-NEXT: lea %s16, 25633; CHECK-NEXT: lvl %s1634; CHECK-NEXT: vor %v0, (0)1, %v135; CHECK-NEXT: b.l.t (, %s10)36 %5 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)37 ret <256 x double> %538}39 40; Function Attrs: nounwind readonly41declare <256 x double> @llvm.ve.vl.vgt.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)42 43; Function Attrs: nounwind readonly44define fastcc <256 x double> @vgt_vvssl_imm_1(<256 x double> %0, i64 %1) {45; CHECK-LABEL: vgt_vvssl_imm_1:46; CHECK: # %bb.0:47; CHECK-NEXT: lea %s1, 25648; CHECK-NEXT: lvl %s149; CHECK-NEXT: vgt %v0, %v0, %s0, 050; CHECK-NEXT: b.l.t (, %s10)51 %3 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)52 ret <256 x double> %353}54 55; Function Attrs: nounwind readonly56define fastcc <256 x double> @vgt_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {57; CHECK-LABEL: vgt_vvssvl_imm_1:58; CHECK: # %bb.0:59; CHECK-NEXT: lea %s1, 12860; CHECK-NEXT: lvl %s161; CHECK-NEXT: vgt %v1, %v0, %s0, 062; CHECK-NEXT: lea %s16, 25663; CHECK-NEXT: lvl %s1664; CHECK-NEXT: vor %v0, (0)1, %v165; CHECK-NEXT: b.l.t (, %s10)66 %4 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)67 ret <256 x double> %468}69 70; Function Attrs: nounwind readonly71define fastcc <256 x double> @vgt_vvssl_imm_2(<256 x double> %0, i64 %1) {72; CHECK-LABEL: vgt_vvssl_imm_2:73; CHECK: # %bb.0:74; CHECK-NEXT: lea %s1, 25675; CHECK-NEXT: lvl %s176; CHECK-NEXT: vgt %v0, %v0, 8, %s077; CHECK-NEXT: b.l.t (, %s10)78 %3 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)79 ret <256 x double> %380}81 82; Function Attrs: nounwind readonly83define fastcc <256 x double> @vgt_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {84; CHECK-LABEL: vgt_vvssvl_imm_2:85; CHECK: # %bb.0:86; CHECK-NEXT: lea %s1, 12887; CHECK-NEXT: lvl %s188; CHECK-NEXT: vgt %v1, %v0, 8, %s089; CHECK-NEXT: lea %s16, 25690; CHECK-NEXT: lvl %s1691; CHECK-NEXT: vor %v0, (0)1, %v192; CHECK-NEXT: b.l.t (, %s10)93 %4 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)94 ret <256 x double> %495}96 97; Function Attrs: nounwind readonly98define fastcc <256 x double> @vgt_vvssl_imm_3(<256 x double> %0) {99; CHECK-LABEL: vgt_vvssl_imm_3:100; CHECK: # %bb.0:101; CHECK-NEXT: lea %s0, 256102; CHECK-NEXT: lvl %s0103; CHECK-NEXT: vgt %v0, %v0, 8, 0104; CHECK-NEXT: b.l.t (, %s10)105 %2 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)106 ret <256 x double> %2107}108 109; Function Attrs: nounwind readonly110define fastcc <256 x double> @vgt_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {111; CHECK-LABEL: vgt_vvssvl_imm_3:112; CHECK: # %bb.0:113; CHECK-NEXT: lea %s0, 128114; CHECK-NEXT: lvl %s0115; CHECK-NEXT: vgt %v1, %v0, 8, 0116; CHECK-NEXT: lea %s16, 256117; CHECK-NEXT: lvl %s16118; CHECK-NEXT: vor %v0, (0)1, %v1119; CHECK-NEXT: b.l.t (, %s10)120 %3 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)121 ret <256 x double> %3122}123 124; Function Attrs: nounwind readonly125define fastcc <256 x double> @vgt_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {126; CHECK-LABEL: vgt_vvssml:127; CHECK: # %bb.0:128; CHECK-NEXT: lea %s2, 256129; CHECK-NEXT: lvl %s2130; CHECK-NEXT: vgt %v0, %v0, %s0, %s1, %vm1131; CHECK-NEXT: b.l.t (, %s10)132 %5 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)133 ret <256 x double> %5134}135 136; Function Attrs: nounwind readonly137declare <256 x double> @llvm.ve.vl.vgt.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)138 139; Function Attrs: nounwind readonly140define fastcc <256 x double> @vgt_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {141; CHECK-LABEL: vgt_vvssmvl:142; CHECK: # %bb.0:143; CHECK-NEXT: lea %s2, 128144; CHECK-NEXT: lvl %s2145; CHECK-NEXT: vgt %v1, %v0, %s0, %s1, %vm1146; CHECK-NEXT: lea %s16, 256147; CHECK-NEXT: lvl %s16148; CHECK-NEXT: vor %v0, (0)1, %v1149; CHECK-NEXT: b.l.t (, %s10)150 %6 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)151 ret <256 x double> %6152}153 154; Function Attrs: nounwind readonly155declare <256 x double> @llvm.ve.vl.vgt.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)156 157; Function Attrs: nounwind readonly158define fastcc <256 x double> @vgt_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {159; CHECK-LABEL: vgt_vvssml_imm_1:160; CHECK: # %bb.0:161; CHECK-NEXT: lea %s1, 256162; CHECK-NEXT: lvl %s1163; CHECK-NEXT: vgt %v0, %v0, %s0, 0, %vm1164; CHECK-NEXT: b.l.t (, %s10)165 %4 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)166 ret <256 x double> %4167}168 169; Function Attrs: nounwind readonly170define fastcc <256 x double> @vgt_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {171; CHECK-LABEL: vgt_vvssmvl_imm_1:172; CHECK: # %bb.0:173; CHECK-NEXT: lea %s1, 128174; CHECK-NEXT: lvl %s1175; CHECK-NEXT: vgt %v1, %v0, %s0, 0, %vm1176; CHECK-NEXT: lea %s16, 256177; CHECK-NEXT: lvl %s16178; CHECK-NEXT: vor %v0, (0)1, %v1179; CHECK-NEXT: b.l.t (, %s10)180 %5 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)181 ret <256 x double> %5182}183 184; Function Attrs: nounwind readonly185define fastcc <256 x double> @vgt_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {186; CHECK-LABEL: vgt_vvssml_imm_2:187; CHECK: # %bb.0:188; CHECK-NEXT: lea %s1, 256189; CHECK-NEXT: lvl %s1190; CHECK-NEXT: vgt %v0, %v0, 8, %s0, %vm1191; CHECK-NEXT: b.l.t (, %s10)192 %4 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)193 ret <256 x double> %4194}195 196; Function Attrs: nounwind readonly197define fastcc <256 x double> @vgt_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {198; CHECK-LABEL: vgt_vvssmvl_imm_2:199; CHECK: # %bb.0:200; CHECK-NEXT: lea %s1, 128201; CHECK-NEXT: lvl %s1202; CHECK-NEXT: vgt %v1, %v0, 8, %s0, %vm1203; CHECK-NEXT: lea %s16, 256204; CHECK-NEXT: lvl %s16205; CHECK-NEXT: vor %v0, (0)1, %v1206; CHECK-NEXT: b.l.t (, %s10)207 %5 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)208 ret <256 x double> %5209}210 211; Function Attrs: nounwind readonly212define fastcc <256 x double> @vgt_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {213; CHECK-LABEL: vgt_vvssml_imm_3:214; CHECK: # %bb.0:215; CHECK-NEXT: lea %s0, 256216; CHECK-NEXT: lvl %s0217; CHECK-NEXT: vgt %v0, %v0, 8, 0, %vm1218; CHECK-NEXT: b.l.t (, %s10)219 %3 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)220 ret <256 x double> %3221}222 223; Function Attrs: nounwind readonly224define fastcc <256 x double> @vgt_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {225; CHECK-LABEL: vgt_vvssmvl_imm_3:226; CHECK: # %bb.0:227; CHECK-NEXT: lea %s0, 128228; CHECK-NEXT: lvl %s0229; CHECK-NEXT: vgt %v1, %v0, 8, 0, %vm1230; CHECK-NEXT: lea %s16, 256231; CHECK-NEXT: lvl %s16232; CHECK-NEXT: vor %v0, (0)1, %v1233; CHECK-NEXT: b.l.t (, %s10)234 %4 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)235 ret <256 x double> %4236}237 238; Function Attrs: nounwind readonly239define fastcc <256 x double> @vgt_vvssl_no_imm_1(<256 x double> %0, i64 %1) {240; CHECK-LABEL: vgt_vvssl_no_imm_1:241; CHECK: # %bb.0:242; CHECK-NEXT: lea %s1, 256243; CHECK-NEXT: or %s2, 8, (0)1244; CHECK-NEXT: lvl %s1245; CHECK-NEXT: vgt %v0, %v0, %s0, %s2246; CHECK-NEXT: b.l.t (, %s10)247 %3 = tail call fast <256 x double> @llvm.ve.vl.vgt.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)248 ret <256 x double> %3249}250 251; Function Attrs: nounwind readonly252define fastcc <256 x double> @vgtnc_vvssl(<256 x double> %0, i64 %1, i64 %2) {253; CHECK-LABEL: vgtnc_vvssl:254; CHECK: # %bb.0:255; CHECK-NEXT: lea %s2, 256256; CHECK-NEXT: lvl %s2257; CHECK-NEXT: vgt.nc %v0, %v0, %s0, %s1258; CHECK-NEXT: b.l.t (, %s10)259 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)260 ret <256 x double> %4261}262 263; Function Attrs: nounwind readonly264declare <256 x double> @llvm.ve.vl.vgtnc.vvssl(<256 x double>, i64, i64, i32)265 266; Function Attrs: nounwind readonly267define fastcc <256 x double> @vgtnc_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {268; CHECK-LABEL: vgtnc_vvssvl:269; CHECK: # %bb.0:270; CHECK-NEXT: lea %s2, 128271; CHECK-NEXT: lvl %s2272; CHECK-NEXT: vgt.nc %v1, %v0, %s0, %s1273; CHECK-NEXT: lea %s16, 256274; CHECK-NEXT: lvl %s16275; CHECK-NEXT: vor %v0, (0)1, %v1276; CHECK-NEXT: b.l.t (, %s10)277 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)278 ret <256 x double> %5279}280 281; Function Attrs: nounwind readonly282declare <256 x double> @llvm.ve.vl.vgtnc.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)283 284; Function Attrs: nounwind readonly285define fastcc <256 x double> @vgtnc_vvssl_imm_1(<256 x double> %0, i64 %1) {286; CHECK-LABEL: vgtnc_vvssl_imm_1:287; CHECK: # %bb.0:288; CHECK-NEXT: lea %s1, 256289; CHECK-NEXT: lvl %s1290; CHECK-NEXT: vgt.nc %v0, %v0, %s0, 0291; CHECK-NEXT: b.l.t (, %s10)292 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)293 ret <256 x double> %3294}295 296; Function Attrs: nounwind readonly297define fastcc <256 x double> @vgtnc_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {298; CHECK-LABEL: vgtnc_vvssvl_imm_1:299; CHECK: # %bb.0:300; CHECK-NEXT: lea %s1, 128301; CHECK-NEXT: lvl %s1302; CHECK-NEXT: vgt.nc %v1, %v0, %s0, 0303; CHECK-NEXT: lea %s16, 256304; CHECK-NEXT: lvl %s16305; CHECK-NEXT: vor %v0, (0)1, %v1306; CHECK-NEXT: b.l.t (, %s10)307 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)308 ret <256 x double> %4309}310 311; Function Attrs: nounwind readonly312define fastcc <256 x double> @vgtnc_vvssl_imm_2(<256 x double> %0, i64 %1) {313; CHECK-LABEL: vgtnc_vvssl_imm_2:314; CHECK: # %bb.0:315; CHECK-NEXT: lea %s1, 256316; CHECK-NEXT: lvl %s1317; CHECK-NEXT: vgt.nc %v0, %v0, 8, %s0318; CHECK-NEXT: b.l.t (, %s10)319 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)320 ret <256 x double> %3321}322 323; Function Attrs: nounwind readonly324define fastcc <256 x double> @vgtnc_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {325; CHECK-LABEL: vgtnc_vvssvl_imm_2:326; CHECK: # %bb.0:327; CHECK-NEXT: lea %s1, 128328; CHECK-NEXT: lvl %s1329; CHECK-NEXT: vgt.nc %v1, %v0, 8, %s0330; CHECK-NEXT: lea %s16, 256331; CHECK-NEXT: lvl %s16332; CHECK-NEXT: vor %v0, (0)1, %v1333; CHECK-NEXT: b.l.t (, %s10)334 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)335 ret <256 x double> %4336}337 338; Function Attrs: nounwind readonly339define fastcc <256 x double> @vgtnc_vvssl_imm_3(<256 x double> %0) {340; CHECK-LABEL: vgtnc_vvssl_imm_3:341; CHECK: # %bb.0:342; CHECK-NEXT: lea %s0, 256343; CHECK-NEXT: lvl %s0344; CHECK-NEXT: vgt.nc %v0, %v0, 8, 0345; CHECK-NEXT: b.l.t (, %s10)346 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)347 ret <256 x double> %2348}349 350; Function Attrs: nounwind readonly351define fastcc <256 x double> @vgtnc_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {352; CHECK-LABEL: vgtnc_vvssvl_imm_3:353; CHECK: # %bb.0:354; CHECK-NEXT: lea %s0, 128355; CHECK-NEXT: lvl %s0356; CHECK-NEXT: vgt.nc %v1, %v0, 8, 0357; CHECK-NEXT: lea %s16, 256358; CHECK-NEXT: lvl %s16359; CHECK-NEXT: vor %v0, (0)1, %v1360; CHECK-NEXT: b.l.t (, %s10)361 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)362 ret <256 x double> %3363}364 365; Function Attrs: nounwind readonly366define fastcc <256 x double> @vgtnc_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {367; CHECK-LABEL: vgtnc_vvssml:368; CHECK: # %bb.0:369; CHECK-NEXT: lea %s2, 256370; CHECK-NEXT: lvl %s2371; CHECK-NEXT: vgt.nc %v0, %v0, %s0, %s1, %vm1372; CHECK-NEXT: b.l.t (, %s10)373 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)374 ret <256 x double> %5375}376 377; Function Attrs: nounwind readonly378declare <256 x double> @llvm.ve.vl.vgtnc.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)379 380; Function Attrs: nounwind readonly381define fastcc <256 x double> @vgtnc_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {382; CHECK-LABEL: vgtnc_vvssmvl:383; CHECK: # %bb.0:384; CHECK-NEXT: lea %s2, 128385; CHECK-NEXT: lvl %s2386; CHECK-NEXT: vgt.nc %v1, %v0, %s0, %s1, %vm1387; CHECK-NEXT: lea %s16, 256388; CHECK-NEXT: lvl %s16389; CHECK-NEXT: vor %v0, (0)1, %v1390; CHECK-NEXT: b.l.t (, %s10)391 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)392 ret <256 x double> %6393}394 395; Function Attrs: nounwind readonly396declare <256 x double> @llvm.ve.vl.vgtnc.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)397 398; Function Attrs: nounwind readonly399define fastcc <256 x double> @vgtnc_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {400; CHECK-LABEL: vgtnc_vvssml_imm_1:401; CHECK: # %bb.0:402; CHECK-NEXT: lea %s1, 256403; CHECK-NEXT: lvl %s1404; CHECK-NEXT: vgt.nc %v0, %v0, %s0, 0, %vm1405; CHECK-NEXT: b.l.t (, %s10)406 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)407 ret <256 x double> %4408}409 410; Function Attrs: nounwind readonly411define fastcc <256 x double> @vgtnc_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {412; CHECK-LABEL: vgtnc_vvssmvl_imm_1:413; CHECK: # %bb.0:414; CHECK-NEXT: lea %s1, 128415; CHECK-NEXT: lvl %s1416; CHECK-NEXT: vgt.nc %v1, %v0, %s0, 0, %vm1417; CHECK-NEXT: lea %s16, 256418; CHECK-NEXT: lvl %s16419; CHECK-NEXT: vor %v0, (0)1, %v1420; CHECK-NEXT: b.l.t (, %s10)421 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)422 ret <256 x double> %5423}424 425; Function Attrs: nounwind readonly426define fastcc <256 x double> @vgtnc_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {427; CHECK-LABEL: vgtnc_vvssml_imm_2:428; CHECK: # %bb.0:429; CHECK-NEXT: lea %s1, 256430; CHECK-NEXT: lvl %s1431; CHECK-NEXT: vgt.nc %v0, %v0, 8, %s0, %vm1432; CHECK-NEXT: b.l.t (, %s10)433 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)434 ret <256 x double> %4435}436 437; Function Attrs: nounwind readonly438define fastcc <256 x double> @vgtnc_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {439; CHECK-LABEL: vgtnc_vvssmvl_imm_2:440; CHECK: # %bb.0:441; CHECK-NEXT: lea %s1, 128442; CHECK-NEXT: lvl %s1443; CHECK-NEXT: vgt.nc %v1, %v0, 8, %s0, %vm1444; CHECK-NEXT: lea %s16, 256445; CHECK-NEXT: lvl %s16446; CHECK-NEXT: vor %v0, (0)1, %v1447; CHECK-NEXT: b.l.t (, %s10)448 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)449 ret <256 x double> %5450}451 452; Function Attrs: nounwind readonly453define fastcc <256 x double> @vgtnc_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {454; CHECK-LABEL: vgtnc_vvssml_imm_3:455; CHECK: # %bb.0:456; CHECK-NEXT: lea %s0, 256457; CHECK-NEXT: lvl %s0458; CHECK-NEXT: vgt.nc %v0, %v0, 8, 0, %vm1459; CHECK-NEXT: b.l.t (, %s10)460 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)461 ret <256 x double> %3462}463 464; Function Attrs: nounwind readonly465define fastcc <256 x double> @vgtnc_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {466; CHECK-LABEL: vgtnc_vvssmvl_imm_3:467; CHECK: # %bb.0:468; CHECK-NEXT: lea %s0, 128469; CHECK-NEXT: lvl %s0470; CHECK-NEXT: vgt.nc %v1, %v0, 8, 0, %vm1471; CHECK-NEXT: lea %s16, 256472; CHECK-NEXT: lvl %s16473; CHECK-NEXT: vor %v0, (0)1, %v1474; CHECK-NEXT: b.l.t (, %s10)475 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)476 ret <256 x double> %4477}478 479; Function Attrs: nounwind readonly480define fastcc <256 x double> @vgtnc_vvssl_no_imm_1(<256 x double> %0, i64 %1) {481; CHECK-LABEL: vgtnc_vvssl_no_imm_1:482; CHECK: # %bb.0:483; CHECK-NEXT: lea %s1, 256484; CHECK-NEXT: or %s2, 8, (0)1485; CHECK-NEXT: lvl %s1486; CHECK-NEXT: vgt.nc %v0, %v0, %s0, %s2487; CHECK-NEXT: b.l.t (, %s10)488 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtnc.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)489 ret <256 x double> %3490}491 492; Function Attrs: nounwind readonly493define fastcc <256 x double> @vgtu_vvssl(<256 x double> %0, i64 %1, i64 %2) {494; CHECK-LABEL: vgtu_vvssl:495; CHECK: # %bb.0:496; CHECK-NEXT: lea %s2, 256497; CHECK-NEXT: lvl %s2498; CHECK-NEXT: vgtu %v0, %v0, %s0, %s1499; CHECK-NEXT: b.l.t (, %s10)500 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)501 ret <256 x double> %4502}503 504; Function Attrs: nounwind readonly505declare <256 x double> @llvm.ve.vl.vgtu.vvssl(<256 x double>, i64, i64, i32)506 507; Function Attrs: nounwind readonly508define fastcc <256 x double> @vgtu_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {509; CHECK-LABEL: vgtu_vvssvl:510; CHECK: # %bb.0:511; CHECK-NEXT: lea %s2, 128512; CHECK-NEXT: lvl %s2513; CHECK-NEXT: vgtu %v1, %v0, %s0, %s1514; CHECK-NEXT: lea %s16, 256515; CHECK-NEXT: lvl %s16516; CHECK-NEXT: vor %v0, (0)1, %v1517; CHECK-NEXT: b.l.t (, %s10)518 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)519 ret <256 x double> %5520}521 522; Function Attrs: nounwind readonly523declare <256 x double> @llvm.ve.vl.vgtu.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)524 525; Function Attrs: nounwind readonly526define fastcc <256 x double> @vgtu_vvssl_imm_1(<256 x double> %0, i64 %1) {527; CHECK-LABEL: vgtu_vvssl_imm_1:528; CHECK: # %bb.0:529; CHECK-NEXT: lea %s1, 256530; CHECK-NEXT: lvl %s1531; CHECK-NEXT: vgtu %v0, %v0, %s0, 0532; CHECK-NEXT: b.l.t (, %s10)533 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)534 ret <256 x double> %3535}536 537; Function Attrs: nounwind readonly538define fastcc <256 x double> @vgtu_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {539; CHECK-LABEL: vgtu_vvssvl_imm_1:540; CHECK: # %bb.0:541; CHECK-NEXT: lea %s1, 128542; CHECK-NEXT: lvl %s1543; CHECK-NEXT: vgtu %v1, %v0, %s0, 0544; CHECK-NEXT: lea %s16, 256545; CHECK-NEXT: lvl %s16546; CHECK-NEXT: vor %v0, (0)1, %v1547; CHECK-NEXT: b.l.t (, %s10)548 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)549 ret <256 x double> %4550}551 552; Function Attrs: nounwind readonly553define fastcc <256 x double> @vgtu_vvssl_imm_2(<256 x double> %0, i64 %1) {554; CHECK-LABEL: vgtu_vvssl_imm_2:555; CHECK: # %bb.0:556; CHECK-NEXT: lea %s1, 256557; CHECK-NEXT: lvl %s1558; CHECK-NEXT: vgtu %v0, %v0, 8, %s0559; CHECK-NEXT: b.l.t (, %s10)560 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)561 ret <256 x double> %3562}563 564; Function Attrs: nounwind readonly565define fastcc <256 x double> @vgtu_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {566; CHECK-LABEL: vgtu_vvssvl_imm_2:567; CHECK: # %bb.0:568; CHECK-NEXT: lea %s1, 128569; CHECK-NEXT: lvl %s1570; CHECK-NEXT: vgtu %v1, %v0, 8, %s0571; CHECK-NEXT: lea %s16, 256572; CHECK-NEXT: lvl %s16573; CHECK-NEXT: vor %v0, (0)1, %v1574; CHECK-NEXT: b.l.t (, %s10)575 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)576 ret <256 x double> %4577}578 579; Function Attrs: nounwind readonly580define fastcc <256 x double> @vgtu_vvssl_imm_3(<256 x double> %0) {581; CHECK-LABEL: vgtu_vvssl_imm_3:582; CHECK: # %bb.0:583; CHECK-NEXT: lea %s0, 256584; CHECK-NEXT: lvl %s0585; CHECK-NEXT: vgtu %v0, %v0, 8, 0586; CHECK-NEXT: b.l.t (, %s10)587 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)588 ret <256 x double> %2589}590 591; Function Attrs: nounwind readonly592define fastcc <256 x double> @vgtu_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {593; CHECK-LABEL: vgtu_vvssvl_imm_3:594; CHECK: # %bb.0:595; CHECK-NEXT: lea %s0, 128596; CHECK-NEXT: lvl %s0597; CHECK-NEXT: vgtu %v1, %v0, 8, 0598; CHECK-NEXT: lea %s16, 256599; CHECK-NEXT: lvl %s16600; CHECK-NEXT: vor %v0, (0)1, %v1601; CHECK-NEXT: b.l.t (, %s10)602 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)603 ret <256 x double> %3604}605 606; Function Attrs: nounwind readonly607define fastcc <256 x double> @vgtu_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {608; CHECK-LABEL: vgtu_vvssml:609; CHECK: # %bb.0:610; CHECK-NEXT: lea %s2, 256611; CHECK-NEXT: lvl %s2612; CHECK-NEXT: vgtu %v0, %v0, %s0, %s1, %vm1613; CHECK-NEXT: b.l.t (, %s10)614 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)615 ret <256 x double> %5616}617 618; Function Attrs: nounwind readonly619declare <256 x double> @llvm.ve.vl.vgtu.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)620 621; Function Attrs: nounwind readonly622define fastcc <256 x double> @vgtu_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {623; CHECK-LABEL: vgtu_vvssmvl:624; CHECK: # %bb.0:625; CHECK-NEXT: lea %s2, 128626; CHECK-NEXT: lvl %s2627; CHECK-NEXT: vgtu %v1, %v0, %s0, %s1, %vm1628; CHECK-NEXT: lea %s16, 256629; CHECK-NEXT: lvl %s16630; CHECK-NEXT: vor %v0, (0)1, %v1631; CHECK-NEXT: b.l.t (, %s10)632 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)633 ret <256 x double> %6634}635 636; Function Attrs: nounwind readonly637declare <256 x double> @llvm.ve.vl.vgtu.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)638 639; Function Attrs: nounwind readonly640define fastcc <256 x double> @vgtu_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {641; CHECK-LABEL: vgtu_vvssml_imm_1:642; CHECK: # %bb.0:643; CHECK-NEXT: lea %s1, 256644; CHECK-NEXT: lvl %s1645; CHECK-NEXT: vgtu %v0, %v0, %s0, 0, %vm1646; CHECK-NEXT: b.l.t (, %s10)647 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)648 ret <256 x double> %4649}650 651; Function Attrs: nounwind readonly652define fastcc <256 x double> @vgtu_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {653; CHECK-LABEL: vgtu_vvssmvl_imm_1:654; CHECK: # %bb.0:655; CHECK-NEXT: lea %s1, 128656; CHECK-NEXT: lvl %s1657; CHECK-NEXT: vgtu %v1, %v0, %s0, 0, %vm1658; CHECK-NEXT: lea %s16, 256659; CHECK-NEXT: lvl %s16660; CHECK-NEXT: vor %v0, (0)1, %v1661; CHECK-NEXT: b.l.t (, %s10)662 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)663 ret <256 x double> %5664}665 666; Function Attrs: nounwind readonly667define fastcc <256 x double> @vgtu_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {668; CHECK-LABEL: vgtu_vvssml_imm_2:669; CHECK: # %bb.0:670; CHECK-NEXT: lea %s1, 256671; CHECK-NEXT: lvl %s1672; CHECK-NEXT: vgtu %v0, %v0, 8, %s0, %vm1673; CHECK-NEXT: b.l.t (, %s10)674 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)675 ret <256 x double> %4676}677 678; Function Attrs: nounwind readonly679define fastcc <256 x double> @vgtu_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {680; CHECK-LABEL: vgtu_vvssmvl_imm_2:681; CHECK: # %bb.0:682; CHECK-NEXT: lea %s1, 128683; CHECK-NEXT: lvl %s1684; CHECK-NEXT: vgtu %v1, %v0, 8, %s0, %vm1685; CHECK-NEXT: lea %s16, 256686; CHECK-NEXT: lvl %s16687; CHECK-NEXT: vor %v0, (0)1, %v1688; CHECK-NEXT: b.l.t (, %s10)689 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)690 ret <256 x double> %5691}692 693; Function Attrs: nounwind readonly694define fastcc <256 x double> @vgtu_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {695; CHECK-LABEL: vgtu_vvssml_imm_3:696; CHECK: # %bb.0:697; CHECK-NEXT: lea %s0, 256698; CHECK-NEXT: lvl %s0699; CHECK-NEXT: vgtu %v0, %v0, 8, 0, %vm1700; CHECK-NEXT: b.l.t (, %s10)701 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)702 ret <256 x double> %3703}704 705; Function Attrs: nounwind readonly706define fastcc <256 x double> @vgtu_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {707; CHECK-LABEL: vgtu_vvssmvl_imm_3:708; CHECK: # %bb.0:709; CHECK-NEXT: lea %s0, 128710; CHECK-NEXT: lvl %s0711; CHECK-NEXT: vgtu %v1, %v0, 8, 0, %vm1712; CHECK-NEXT: lea %s16, 256713; CHECK-NEXT: lvl %s16714; CHECK-NEXT: vor %v0, (0)1, %v1715; CHECK-NEXT: b.l.t (, %s10)716 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)717 ret <256 x double> %4718}719 720; Function Attrs: nounwind readonly721define fastcc <256 x double> @vgtu_vvssl_no_imm_1(<256 x double> %0, i64 %1) {722; CHECK-LABEL: vgtu_vvssl_no_imm_1:723; CHECK: # %bb.0:724; CHECK-NEXT: lea %s1, 256725; CHECK-NEXT: or %s2, 8, (0)1726; CHECK-NEXT: lvl %s1727; CHECK-NEXT: vgtu %v0, %v0, %s0, %s2728; CHECK-NEXT: b.l.t (, %s10)729 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtu.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)730 ret <256 x double> %3731}732 733; Function Attrs: nounwind readonly734define fastcc <256 x double> @vgtunc_vvssl(<256 x double> %0, i64 %1, i64 %2) {735; CHECK-LABEL: vgtunc_vvssl:736; CHECK: # %bb.0:737; CHECK-NEXT: lea %s2, 256738; CHECK-NEXT: lvl %s2739; CHECK-NEXT: vgtu.nc %v0, %v0, %s0, %s1740; CHECK-NEXT: b.l.t (, %s10)741 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)742 ret <256 x double> %4743}744 745; Function Attrs: nounwind readonly746declare <256 x double> @llvm.ve.vl.vgtunc.vvssl(<256 x double>, i64, i64, i32)747 748; Function Attrs: nounwind readonly749define fastcc <256 x double> @vgtunc_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {750; CHECK-LABEL: vgtunc_vvssvl:751; CHECK: # %bb.0:752; CHECK-NEXT: lea %s2, 128753; CHECK-NEXT: lvl %s2754; CHECK-NEXT: vgtu.nc %v1, %v0, %s0, %s1755; CHECK-NEXT: lea %s16, 256756; CHECK-NEXT: lvl %s16757; CHECK-NEXT: vor %v0, (0)1, %v1758; CHECK-NEXT: b.l.t (, %s10)759 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)760 ret <256 x double> %5761}762 763; Function Attrs: nounwind readonly764declare <256 x double> @llvm.ve.vl.vgtunc.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)765 766; Function Attrs: nounwind readonly767define fastcc <256 x double> @vgtunc_vvssl_imm_1(<256 x double> %0, i64 %1) {768; CHECK-LABEL: vgtunc_vvssl_imm_1:769; CHECK: # %bb.0:770; CHECK-NEXT: lea %s1, 256771; CHECK-NEXT: lvl %s1772; CHECK-NEXT: vgtu.nc %v0, %v0, %s0, 0773; CHECK-NEXT: b.l.t (, %s10)774 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)775 ret <256 x double> %3776}777 778; Function Attrs: nounwind readonly779define fastcc <256 x double> @vgtunc_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {780; CHECK-LABEL: vgtunc_vvssvl_imm_1:781; CHECK: # %bb.0:782; CHECK-NEXT: lea %s1, 128783; CHECK-NEXT: lvl %s1784; CHECK-NEXT: vgtu.nc %v1, %v0, %s0, 0785; CHECK-NEXT: lea %s16, 256786; CHECK-NEXT: lvl %s16787; CHECK-NEXT: vor %v0, (0)1, %v1788; CHECK-NEXT: b.l.t (, %s10)789 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)790 ret <256 x double> %4791}792 793; Function Attrs: nounwind readonly794define fastcc <256 x double> @vgtunc_vvssl_imm_2(<256 x double> %0, i64 %1) {795; CHECK-LABEL: vgtunc_vvssl_imm_2:796; CHECK: # %bb.0:797; CHECK-NEXT: lea %s1, 256798; CHECK-NEXT: lvl %s1799; CHECK-NEXT: vgtu.nc %v0, %v0, 8, %s0800; CHECK-NEXT: b.l.t (, %s10)801 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)802 ret <256 x double> %3803}804 805; Function Attrs: nounwind readonly806define fastcc <256 x double> @vgtunc_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {807; CHECK-LABEL: vgtunc_vvssvl_imm_2:808; CHECK: # %bb.0:809; CHECK-NEXT: lea %s1, 128810; CHECK-NEXT: lvl %s1811; CHECK-NEXT: vgtu.nc %v1, %v0, 8, %s0812; CHECK-NEXT: lea %s16, 256813; CHECK-NEXT: lvl %s16814; CHECK-NEXT: vor %v0, (0)1, %v1815; CHECK-NEXT: b.l.t (, %s10)816 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)817 ret <256 x double> %4818}819 820; Function Attrs: nounwind readonly821define fastcc <256 x double> @vgtunc_vvssl_imm_3(<256 x double> %0) {822; CHECK-LABEL: vgtunc_vvssl_imm_3:823; CHECK: # %bb.0:824; CHECK-NEXT: lea %s0, 256825; CHECK-NEXT: lvl %s0826; CHECK-NEXT: vgtu.nc %v0, %v0, 8, 0827; CHECK-NEXT: b.l.t (, %s10)828 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)829 ret <256 x double> %2830}831 832; Function Attrs: nounwind readonly833define fastcc <256 x double> @vgtunc_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {834; CHECK-LABEL: vgtunc_vvssvl_imm_3:835; CHECK: # %bb.0:836; CHECK-NEXT: lea %s0, 128837; CHECK-NEXT: lvl %s0838; CHECK-NEXT: vgtu.nc %v1, %v0, 8, 0839; CHECK-NEXT: lea %s16, 256840; CHECK-NEXT: lvl %s16841; CHECK-NEXT: vor %v0, (0)1, %v1842; CHECK-NEXT: b.l.t (, %s10)843 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)844 ret <256 x double> %3845}846 847; Function Attrs: nounwind readonly848define fastcc <256 x double> @vgtunc_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {849; CHECK-LABEL: vgtunc_vvssml:850; CHECK: # %bb.0:851; CHECK-NEXT: lea %s2, 256852; CHECK-NEXT: lvl %s2853; CHECK-NEXT: vgtu.nc %v0, %v0, %s0, %s1, %vm1854; CHECK-NEXT: b.l.t (, %s10)855 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)856 ret <256 x double> %5857}858 859; Function Attrs: nounwind readonly860declare <256 x double> @llvm.ve.vl.vgtunc.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)861 862; Function Attrs: nounwind readonly863define fastcc <256 x double> @vgtunc_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {864; CHECK-LABEL: vgtunc_vvssmvl:865; CHECK: # %bb.0:866; CHECK-NEXT: lea %s2, 128867; CHECK-NEXT: lvl %s2868; CHECK-NEXT: vgtu.nc %v1, %v0, %s0, %s1, %vm1869; CHECK-NEXT: lea %s16, 256870; CHECK-NEXT: lvl %s16871; CHECK-NEXT: vor %v0, (0)1, %v1872; CHECK-NEXT: b.l.t (, %s10)873 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)874 ret <256 x double> %6875}876 877; Function Attrs: nounwind readonly878declare <256 x double> @llvm.ve.vl.vgtunc.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)879 880; Function Attrs: nounwind readonly881define fastcc <256 x double> @vgtunc_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {882; CHECK-LABEL: vgtunc_vvssml_imm_1:883; CHECK: # %bb.0:884; CHECK-NEXT: lea %s1, 256885; CHECK-NEXT: lvl %s1886; CHECK-NEXT: vgtu.nc %v0, %v0, %s0, 0, %vm1887; CHECK-NEXT: b.l.t (, %s10)888 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)889 ret <256 x double> %4890}891 892; Function Attrs: nounwind readonly893define fastcc <256 x double> @vgtunc_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {894; CHECK-LABEL: vgtunc_vvssmvl_imm_1:895; CHECK: # %bb.0:896; CHECK-NEXT: lea %s1, 128897; CHECK-NEXT: lvl %s1898; CHECK-NEXT: vgtu.nc %v1, %v0, %s0, 0, %vm1899; CHECK-NEXT: lea %s16, 256900; CHECK-NEXT: lvl %s16901; CHECK-NEXT: vor %v0, (0)1, %v1902; CHECK-NEXT: b.l.t (, %s10)903 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)904 ret <256 x double> %5905}906 907; Function Attrs: nounwind readonly908define fastcc <256 x double> @vgtunc_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {909; CHECK-LABEL: vgtunc_vvssml_imm_2:910; CHECK: # %bb.0:911; CHECK-NEXT: lea %s1, 256912; CHECK-NEXT: lvl %s1913; CHECK-NEXT: vgtu.nc %v0, %v0, 8, %s0, %vm1914; CHECK-NEXT: b.l.t (, %s10)915 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)916 ret <256 x double> %4917}918 919; Function Attrs: nounwind readonly920define fastcc <256 x double> @vgtunc_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {921; CHECK-LABEL: vgtunc_vvssmvl_imm_2:922; CHECK: # %bb.0:923; CHECK-NEXT: lea %s1, 128924; CHECK-NEXT: lvl %s1925; CHECK-NEXT: vgtu.nc %v1, %v0, 8, %s0, %vm1926; CHECK-NEXT: lea %s16, 256927; CHECK-NEXT: lvl %s16928; CHECK-NEXT: vor %v0, (0)1, %v1929; CHECK-NEXT: b.l.t (, %s10)930 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)931 ret <256 x double> %5932}933 934; Function Attrs: nounwind readonly935define fastcc <256 x double> @vgtunc_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {936; CHECK-LABEL: vgtunc_vvssml_imm_3:937; CHECK: # %bb.0:938; CHECK-NEXT: lea %s0, 256939; CHECK-NEXT: lvl %s0940; CHECK-NEXT: vgtu.nc %v0, %v0, 8, 0, %vm1941; CHECK-NEXT: b.l.t (, %s10)942 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)943 ret <256 x double> %3944}945 946; Function Attrs: nounwind readonly947define fastcc <256 x double> @vgtunc_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {948; CHECK-LABEL: vgtunc_vvssmvl_imm_3:949; CHECK: # %bb.0:950; CHECK-NEXT: lea %s0, 128951; CHECK-NEXT: lvl %s0952; CHECK-NEXT: vgtu.nc %v1, %v0, 8, 0, %vm1953; CHECK-NEXT: lea %s16, 256954; CHECK-NEXT: lvl %s16955; CHECK-NEXT: vor %v0, (0)1, %v1956; CHECK-NEXT: b.l.t (, %s10)957 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)958 ret <256 x double> %4959}960 961; Function Attrs: nounwind readonly962define fastcc <256 x double> @vgtunc_vvssl_no_imm_1(<256 x double> %0, i64 %1) {963; CHECK-LABEL: vgtunc_vvssl_no_imm_1:964; CHECK: # %bb.0:965; CHECK-NEXT: lea %s1, 256966; CHECK-NEXT: or %s2, 8, (0)1967; CHECK-NEXT: lvl %s1968; CHECK-NEXT: vgtu.nc %v0, %v0, %s0, %s2969; CHECK-NEXT: b.l.t (, %s10)970 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtunc.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)971 ret <256 x double> %3972}973 974; Function Attrs: nounwind readonly975define fastcc <256 x double> @vgtlsx_vvssl(<256 x double> %0, i64 %1, i64 %2) {976; CHECK-LABEL: vgtlsx_vvssl:977; CHECK: # %bb.0:978; CHECK-NEXT: lea %s2, 256979; CHECK-NEXT: lvl %s2980; CHECK-NEXT: vgtl.sx %v0, %v0, %s0, %s1981; CHECK-NEXT: b.l.t (, %s10)982 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)983 ret <256 x double> %4984}985 986; Function Attrs: nounwind readonly987declare <256 x double> @llvm.ve.vl.vgtlsx.vvssl(<256 x double>, i64, i64, i32)988 989; Function Attrs: nounwind readonly990define fastcc <256 x double> @vgtlsx_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {991; CHECK-LABEL: vgtlsx_vvssvl:992; CHECK: # %bb.0:993; CHECK-NEXT: lea %s2, 128994; CHECK-NEXT: lvl %s2995; CHECK-NEXT: vgtl.sx %v1, %v0, %s0, %s1996; CHECK-NEXT: lea %s16, 256997; CHECK-NEXT: lvl %s16998; CHECK-NEXT: vor %v0, (0)1, %v1999; CHECK-NEXT: b.l.t (, %s10)1000 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)1001 ret <256 x double> %51002}1003 1004; Function Attrs: nounwind readonly1005declare <256 x double> @llvm.ve.vl.vgtlsx.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)1006 1007; Function Attrs: nounwind readonly1008define fastcc <256 x double> @vgtlsx_vvssl_imm_1(<256 x double> %0, i64 %1) {1009; CHECK-LABEL: vgtlsx_vvssl_imm_1:1010; CHECK: # %bb.0:1011; CHECK-NEXT: lea %s1, 2561012; CHECK-NEXT: lvl %s11013; CHECK-NEXT: vgtl.sx %v0, %v0, %s0, 01014; CHECK-NEXT: b.l.t (, %s10)1015 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)1016 ret <256 x double> %31017}1018 1019; Function Attrs: nounwind readonly1020define fastcc <256 x double> @vgtlsx_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {1021; CHECK-LABEL: vgtlsx_vvssvl_imm_1:1022; CHECK: # %bb.0:1023; CHECK-NEXT: lea %s1, 1281024; CHECK-NEXT: lvl %s11025; CHECK-NEXT: vgtl.sx %v1, %v0, %s0, 01026; CHECK-NEXT: lea %s16, 2561027; CHECK-NEXT: lvl %s161028; CHECK-NEXT: vor %v0, (0)1, %v11029; CHECK-NEXT: b.l.t (, %s10)1030 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)1031 ret <256 x double> %41032}1033 1034; Function Attrs: nounwind readonly1035define fastcc <256 x double> @vgtlsx_vvssl_imm_2(<256 x double> %0, i64 %1) {1036; CHECK-LABEL: vgtlsx_vvssl_imm_2:1037; CHECK: # %bb.0:1038; CHECK-NEXT: lea %s1, 2561039; CHECK-NEXT: lvl %s11040; CHECK-NEXT: vgtl.sx %v0, %v0, 8, %s01041; CHECK-NEXT: b.l.t (, %s10)1042 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)1043 ret <256 x double> %31044}1045 1046; Function Attrs: nounwind readonly1047define fastcc <256 x double> @vgtlsx_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {1048; CHECK-LABEL: vgtlsx_vvssvl_imm_2:1049; CHECK: # %bb.0:1050; CHECK-NEXT: lea %s1, 1281051; CHECK-NEXT: lvl %s11052; CHECK-NEXT: vgtl.sx %v1, %v0, 8, %s01053; CHECK-NEXT: lea %s16, 2561054; CHECK-NEXT: lvl %s161055; CHECK-NEXT: vor %v0, (0)1, %v11056; CHECK-NEXT: b.l.t (, %s10)1057 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)1058 ret <256 x double> %41059}1060 1061; Function Attrs: nounwind readonly1062define fastcc <256 x double> @vgtlsx_vvssl_imm_3(<256 x double> %0) {1063; CHECK-LABEL: vgtlsx_vvssl_imm_3:1064; CHECK: # %bb.0:1065; CHECK-NEXT: lea %s0, 2561066; CHECK-NEXT: lvl %s01067; CHECK-NEXT: vgtl.sx %v0, %v0, 8, 01068; CHECK-NEXT: b.l.t (, %s10)1069 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)1070 ret <256 x double> %21071}1072 1073; Function Attrs: nounwind readonly1074define fastcc <256 x double> @vgtlsx_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {1075; CHECK-LABEL: vgtlsx_vvssvl_imm_3:1076; CHECK: # %bb.0:1077; CHECK-NEXT: lea %s0, 1281078; CHECK-NEXT: lvl %s01079; CHECK-NEXT: vgtl.sx %v1, %v0, 8, 01080; CHECK-NEXT: lea %s16, 2561081; CHECK-NEXT: lvl %s161082; CHECK-NEXT: vor %v0, (0)1, %v11083; CHECK-NEXT: b.l.t (, %s10)1084 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)1085 ret <256 x double> %31086}1087 1088; Function Attrs: nounwind readonly1089define fastcc <256 x double> @vgtlsx_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {1090; CHECK-LABEL: vgtlsx_vvssml:1091; CHECK: # %bb.0:1092; CHECK-NEXT: lea %s2, 2561093; CHECK-NEXT: lvl %s21094; CHECK-NEXT: vgtl.sx %v0, %v0, %s0, %s1, %vm11095; CHECK-NEXT: b.l.t (, %s10)1096 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)1097 ret <256 x double> %51098}1099 1100; Function Attrs: nounwind readonly1101declare <256 x double> @llvm.ve.vl.vgtlsx.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)1102 1103; Function Attrs: nounwind readonly1104define fastcc <256 x double> @vgtlsx_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {1105; CHECK-LABEL: vgtlsx_vvssmvl:1106; CHECK: # %bb.0:1107; CHECK-NEXT: lea %s2, 1281108; CHECK-NEXT: lvl %s21109; CHECK-NEXT: vgtl.sx %v1, %v0, %s0, %s1, %vm11110; CHECK-NEXT: lea %s16, 2561111; CHECK-NEXT: lvl %s161112; CHECK-NEXT: vor %v0, (0)1, %v11113; CHECK-NEXT: b.l.t (, %s10)1114 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)1115 ret <256 x double> %61116}1117 1118; Function Attrs: nounwind readonly1119declare <256 x double> @llvm.ve.vl.vgtlsx.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)1120 1121; Function Attrs: nounwind readonly1122define fastcc <256 x double> @vgtlsx_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {1123; CHECK-LABEL: vgtlsx_vvssml_imm_1:1124; CHECK: # %bb.0:1125; CHECK-NEXT: lea %s1, 2561126; CHECK-NEXT: lvl %s11127; CHECK-NEXT: vgtl.sx %v0, %v0, %s0, 0, %vm11128; CHECK-NEXT: b.l.t (, %s10)1129 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)1130 ret <256 x double> %41131}1132 1133; Function Attrs: nounwind readonly1134define fastcc <256 x double> @vgtlsx_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1135; CHECK-LABEL: vgtlsx_vvssmvl_imm_1:1136; CHECK: # %bb.0:1137; CHECK-NEXT: lea %s1, 1281138; CHECK-NEXT: lvl %s11139; CHECK-NEXT: vgtl.sx %v1, %v0, %s0, 0, %vm11140; CHECK-NEXT: lea %s16, 2561141; CHECK-NEXT: lvl %s161142; CHECK-NEXT: vor %v0, (0)1, %v11143; CHECK-NEXT: b.l.t (, %s10)1144 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)1145 ret <256 x double> %51146}1147 1148; Function Attrs: nounwind readonly1149define fastcc <256 x double> @vgtlsx_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {1150; CHECK-LABEL: vgtlsx_vvssml_imm_2:1151; CHECK: # %bb.0:1152; CHECK-NEXT: lea %s1, 2561153; CHECK-NEXT: lvl %s11154; CHECK-NEXT: vgtl.sx %v0, %v0, 8, %s0, %vm11155; CHECK-NEXT: b.l.t (, %s10)1156 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)1157 ret <256 x double> %41158}1159 1160; Function Attrs: nounwind readonly1161define fastcc <256 x double> @vgtlsx_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1162; CHECK-LABEL: vgtlsx_vvssmvl_imm_2:1163; CHECK: # %bb.0:1164; CHECK-NEXT: lea %s1, 1281165; CHECK-NEXT: lvl %s11166; CHECK-NEXT: vgtl.sx %v1, %v0, 8, %s0, %vm11167; CHECK-NEXT: lea %s16, 2561168; CHECK-NEXT: lvl %s161169; CHECK-NEXT: vor %v0, (0)1, %v11170; CHECK-NEXT: b.l.t (, %s10)1171 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)1172 ret <256 x double> %51173}1174 1175; Function Attrs: nounwind readonly1176define fastcc <256 x double> @vgtlsx_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {1177; CHECK-LABEL: vgtlsx_vvssml_imm_3:1178; CHECK: # %bb.0:1179; CHECK-NEXT: lea %s0, 2561180; CHECK-NEXT: lvl %s01181; CHECK-NEXT: vgtl.sx %v0, %v0, 8, 0, %vm11182; CHECK-NEXT: b.l.t (, %s10)1183 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)1184 ret <256 x double> %31185}1186 1187; Function Attrs: nounwind readonly1188define fastcc <256 x double> @vgtlsx_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {1189; CHECK-LABEL: vgtlsx_vvssmvl_imm_3:1190; CHECK: # %bb.0:1191; CHECK-NEXT: lea %s0, 1281192; CHECK-NEXT: lvl %s01193; CHECK-NEXT: vgtl.sx %v1, %v0, 8, 0, %vm11194; CHECK-NEXT: lea %s16, 2561195; CHECK-NEXT: lvl %s161196; CHECK-NEXT: vor %v0, (0)1, %v11197; CHECK-NEXT: b.l.t (, %s10)1198 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)1199 ret <256 x double> %41200}1201 1202; Function Attrs: nounwind readonly1203define fastcc <256 x double> @vgtlsx_vvssl_no_imm_1(<256 x double> %0, i64 %1) {1204; CHECK-LABEL: vgtlsx_vvssl_no_imm_1:1205; CHECK: # %bb.0:1206; CHECK-NEXT: lea %s1, 2561207; CHECK-NEXT: or %s2, 8, (0)11208; CHECK-NEXT: lvl %s11209; CHECK-NEXT: vgtl.sx %v0, %v0, %s0, %s21210; CHECK-NEXT: b.l.t (, %s10)1211 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsx.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)1212 ret <256 x double> %31213}1214 1215; Function Attrs: nounwind readonly1216define fastcc <256 x double> @vgtlsxnc_vvssl(<256 x double> %0, i64 %1, i64 %2) {1217; CHECK-LABEL: vgtlsxnc_vvssl:1218; CHECK: # %bb.0:1219; CHECK-NEXT: lea %s2, 2561220; CHECK-NEXT: lvl %s21221; CHECK-NEXT: vgtl.sx.nc %v0, %v0, %s0, %s11222; CHECK-NEXT: b.l.t (, %s10)1223 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)1224 ret <256 x double> %41225}1226 1227; Function Attrs: nounwind readonly1228declare <256 x double> @llvm.ve.vl.vgtlsxnc.vvssl(<256 x double>, i64, i64, i32)1229 1230; Function Attrs: nounwind readonly1231define fastcc <256 x double> @vgtlsxnc_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {1232; CHECK-LABEL: vgtlsxnc_vvssvl:1233; CHECK: # %bb.0:1234; CHECK-NEXT: lea %s2, 1281235; CHECK-NEXT: lvl %s21236; CHECK-NEXT: vgtl.sx.nc %v1, %v0, %s0, %s11237; CHECK-NEXT: lea %s16, 2561238; CHECK-NEXT: lvl %s161239; CHECK-NEXT: vor %v0, (0)1, %v11240; CHECK-NEXT: b.l.t (, %s10)1241 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)1242 ret <256 x double> %51243}1244 1245; Function Attrs: nounwind readonly1246declare <256 x double> @llvm.ve.vl.vgtlsxnc.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)1247 1248; Function Attrs: nounwind readonly1249define fastcc <256 x double> @vgtlsxnc_vvssl_imm_1(<256 x double> %0, i64 %1) {1250; CHECK-LABEL: vgtlsxnc_vvssl_imm_1:1251; CHECK: # %bb.0:1252; CHECK-NEXT: lea %s1, 2561253; CHECK-NEXT: lvl %s11254; CHECK-NEXT: vgtl.sx.nc %v0, %v0, %s0, 01255; CHECK-NEXT: b.l.t (, %s10)1256 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)1257 ret <256 x double> %31258}1259 1260; Function Attrs: nounwind readonly1261define fastcc <256 x double> @vgtlsxnc_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {1262; CHECK-LABEL: vgtlsxnc_vvssvl_imm_1:1263; CHECK: # %bb.0:1264; CHECK-NEXT: lea %s1, 1281265; CHECK-NEXT: lvl %s11266; CHECK-NEXT: vgtl.sx.nc %v1, %v0, %s0, 01267; CHECK-NEXT: lea %s16, 2561268; CHECK-NEXT: lvl %s161269; CHECK-NEXT: vor %v0, (0)1, %v11270; CHECK-NEXT: b.l.t (, %s10)1271 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)1272 ret <256 x double> %41273}1274 1275; Function Attrs: nounwind readonly1276define fastcc <256 x double> @vgtlsxnc_vvssl_imm_2(<256 x double> %0, i64 %1) {1277; CHECK-LABEL: vgtlsxnc_vvssl_imm_2:1278; CHECK: # %bb.0:1279; CHECK-NEXT: lea %s1, 2561280; CHECK-NEXT: lvl %s11281; CHECK-NEXT: vgtl.sx.nc %v0, %v0, 8, %s01282; CHECK-NEXT: b.l.t (, %s10)1283 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)1284 ret <256 x double> %31285}1286 1287; Function Attrs: nounwind readonly1288define fastcc <256 x double> @vgtlsxnc_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {1289; CHECK-LABEL: vgtlsxnc_vvssvl_imm_2:1290; CHECK: # %bb.0:1291; CHECK-NEXT: lea %s1, 1281292; CHECK-NEXT: lvl %s11293; CHECK-NEXT: vgtl.sx.nc %v1, %v0, 8, %s01294; CHECK-NEXT: lea %s16, 2561295; CHECK-NEXT: lvl %s161296; CHECK-NEXT: vor %v0, (0)1, %v11297; CHECK-NEXT: b.l.t (, %s10)1298 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)1299 ret <256 x double> %41300}1301 1302; Function Attrs: nounwind readonly1303define fastcc <256 x double> @vgtlsxnc_vvssl_imm_3(<256 x double> %0) {1304; CHECK-LABEL: vgtlsxnc_vvssl_imm_3:1305; CHECK: # %bb.0:1306; CHECK-NEXT: lea %s0, 2561307; CHECK-NEXT: lvl %s01308; CHECK-NEXT: vgtl.sx.nc %v0, %v0, 8, 01309; CHECK-NEXT: b.l.t (, %s10)1310 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)1311 ret <256 x double> %21312}1313 1314; Function Attrs: nounwind readonly1315define fastcc <256 x double> @vgtlsxnc_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {1316; CHECK-LABEL: vgtlsxnc_vvssvl_imm_3:1317; CHECK: # %bb.0:1318; CHECK-NEXT: lea %s0, 1281319; CHECK-NEXT: lvl %s01320; CHECK-NEXT: vgtl.sx.nc %v1, %v0, 8, 01321; CHECK-NEXT: lea %s16, 2561322; CHECK-NEXT: lvl %s161323; CHECK-NEXT: vor %v0, (0)1, %v11324; CHECK-NEXT: b.l.t (, %s10)1325 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)1326 ret <256 x double> %31327}1328 1329; Function Attrs: nounwind readonly1330define fastcc <256 x double> @vgtlsxnc_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {1331; CHECK-LABEL: vgtlsxnc_vvssml:1332; CHECK: # %bb.0:1333; CHECK-NEXT: lea %s2, 2561334; CHECK-NEXT: lvl %s21335; CHECK-NEXT: vgtl.sx.nc %v0, %v0, %s0, %s1, %vm11336; CHECK-NEXT: b.l.t (, %s10)1337 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)1338 ret <256 x double> %51339}1340 1341; Function Attrs: nounwind readonly1342declare <256 x double> @llvm.ve.vl.vgtlsxnc.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)1343 1344; Function Attrs: nounwind readonly1345define fastcc <256 x double> @vgtlsxnc_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {1346; CHECK-LABEL: vgtlsxnc_vvssmvl:1347; CHECK: # %bb.0:1348; CHECK-NEXT: lea %s2, 1281349; CHECK-NEXT: lvl %s21350; CHECK-NEXT: vgtl.sx.nc %v1, %v0, %s0, %s1, %vm11351; CHECK-NEXT: lea %s16, 2561352; CHECK-NEXT: lvl %s161353; CHECK-NEXT: vor %v0, (0)1, %v11354; CHECK-NEXT: b.l.t (, %s10)1355 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)1356 ret <256 x double> %61357}1358 1359; Function Attrs: nounwind readonly1360declare <256 x double> @llvm.ve.vl.vgtlsxnc.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)1361 1362; Function Attrs: nounwind readonly1363define fastcc <256 x double> @vgtlsxnc_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {1364; CHECK-LABEL: vgtlsxnc_vvssml_imm_1:1365; CHECK: # %bb.0:1366; CHECK-NEXT: lea %s1, 2561367; CHECK-NEXT: lvl %s11368; CHECK-NEXT: vgtl.sx.nc %v0, %v0, %s0, 0, %vm11369; CHECK-NEXT: b.l.t (, %s10)1370 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)1371 ret <256 x double> %41372}1373 1374; Function Attrs: nounwind readonly1375define fastcc <256 x double> @vgtlsxnc_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1376; CHECK-LABEL: vgtlsxnc_vvssmvl_imm_1:1377; CHECK: # %bb.0:1378; CHECK-NEXT: lea %s1, 1281379; CHECK-NEXT: lvl %s11380; CHECK-NEXT: vgtl.sx.nc %v1, %v0, %s0, 0, %vm11381; CHECK-NEXT: lea %s16, 2561382; CHECK-NEXT: lvl %s161383; CHECK-NEXT: vor %v0, (0)1, %v11384; CHECK-NEXT: b.l.t (, %s10)1385 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)1386 ret <256 x double> %51387}1388 1389; Function Attrs: nounwind readonly1390define fastcc <256 x double> @vgtlsxnc_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {1391; CHECK-LABEL: vgtlsxnc_vvssml_imm_2:1392; CHECK: # %bb.0:1393; CHECK-NEXT: lea %s1, 2561394; CHECK-NEXT: lvl %s11395; CHECK-NEXT: vgtl.sx.nc %v0, %v0, 8, %s0, %vm11396; CHECK-NEXT: b.l.t (, %s10)1397 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)1398 ret <256 x double> %41399}1400 1401; Function Attrs: nounwind readonly1402define fastcc <256 x double> @vgtlsxnc_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1403; CHECK-LABEL: vgtlsxnc_vvssmvl_imm_2:1404; CHECK: # %bb.0:1405; CHECK-NEXT: lea %s1, 1281406; CHECK-NEXT: lvl %s11407; CHECK-NEXT: vgtl.sx.nc %v1, %v0, 8, %s0, %vm11408; CHECK-NEXT: lea %s16, 2561409; CHECK-NEXT: lvl %s161410; CHECK-NEXT: vor %v0, (0)1, %v11411; CHECK-NEXT: b.l.t (, %s10)1412 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)1413 ret <256 x double> %51414}1415 1416; Function Attrs: nounwind readonly1417define fastcc <256 x double> @vgtlsxnc_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {1418; CHECK-LABEL: vgtlsxnc_vvssml_imm_3:1419; CHECK: # %bb.0:1420; CHECK-NEXT: lea %s0, 2561421; CHECK-NEXT: lvl %s01422; CHECK-NEXT: vgtl.sx.nc %v0, %v0, 8, 0, %vm11423; CHECK-NEXT: b.l.t (, %s10)1424 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)1425 ret <256 x double> %31426}1427 1428; Function Attrs: nounwind readonly1429define fastcc <256 x double> @vgtlsxnc_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {1430; CHECK-LABEL: vgtlsxnc_vvssmvl_imm_3:1431; CHECK: # %bb.0:1432; CHECK-NEXT: lea %s0, 1281433; CHECK-NEXT: lvl %s01434; CHECK-NEXT: vgtl.sx.nc %v1, %v0, 8, 0, %vm11435; CHECK-NEXT: lea %s16, 2561436; CHECK-NEXT: lvl %s161437; CHECK-NEXT: vor %v0, (0)1, %v11438; CHECK-NEXT: b.l.t (, %s10)1439 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)1440 ret <256 x double> %41441}1442 1443; Function Attrs: nounwind readonly1444define fastcc <256 x double> @vgtlsxnc_vvssl_no_imm_1(<256 x double> %0, i64 %1) {1445; CHECK-LABEL: vgtlsxnc_vvssl_no_imm_1:1446; CHECK: # %bb.0:1447; CHECK-NEXT: lea %s1, 2561448; CHECK-NEXT: or %s2, 8, (0)11449; CHECK-NEXT: lvl %s11450; CHECK-NEXT: vgtl.sx.nc %v0, %v0, %s0, %s21451; CHECK-NEXT: b.l.t (, %s10)1452 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlsxnc.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)1453 ret <256 x double> %31454}1455 1456; Function Attrs: nounwind readonly1457define fastcc <256 x double> @vgtlzx_vvssl(<256 x double> %0, i64 %1, i64 %2) {1458; CHECK-LABEL: vgtlzx_vvssl:1459; CHECK: # %bb.0:1460; CHECK-NEXT: lea %s2, 2561461; CHECK-NEXT: lvl %s21462; CHECK-NEXT: vgtl.zx %v0, %v0, %s0, %s11463; CHECK-NEXT: b.l.t (, %s10)1464 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)1465 ret <256 x double> %41466}1467 1468; Function Attrs: nounwind readonly1469declare <256 x double> @llvm.ve.vl.vgtlzx.vvssl(<256 x double>, i64, i64, i32)1470 1471; Function Attrs: nounwind readonly1472define fastcc <256 x double> @vgtlzx_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {1473; CHECK-LABEL: vgtlzx_vvssvl:1474; CHECK: # %bb.0:1475; CHECK-NEXT: lea %s2, 1281476; CHECK-NEXT: lvl %s21477; CHECK-NEXT: vgtl.zx %v1, %v0, %s0, %s11478; CHECK-NEXT: lea %s16, 2561479; CHECK-NEXT: lvl %s161480; CHECK-NEXT: vor %v0, (0)1, %v11481; CHECK-NEXT: b.l.t (, %s10)1482 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)1483 ret <256 x double> %51484}1485 1486; Function Attrs: nounwind readonly1487declare <256 x double> @llvm.ve.vl.vgtlzx.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)1488 1489; Function Attrs: nounwind readonly1490define fastcc <256 x double> @vgtlzx_vvssl_imm_1(<256 x double> %0, i64 %1) {1491; CHECK-LABEL: vgtlzx_vvssl_imm_1:1492; CHECK: # %bb.0:1493; CHECK-NEXT: lea %s1, 2561494; CHECK-NEXT: lvl %s11495; CHECK-NEXT: vgtl.zx %v0, %v0, %s0, 01496; CHECK-NEXT: b.l.t (, %s10)1497 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)1498 ret <256 x double> %31499}1500 1501; Function Attrs: nounwind readonly1502define fastcc <256 x double> @vgtlzx_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {1503; CHECK-LABEL: vgtlzx_vvssvl_imm_1:1504; CHECK: # %bb.0:1505; CHECK-NEXT: lea %s1, 1281506; CHECK-NEXT: lvl %s11507; CHECK-NEXT: vgtl.zx %v1, %v0, %s0, 01508; CHECK-NEXT: lea %s16, 2561509; CHECK-NEXT: lvl %s161510; CHECK-NEXT: vor %v0, (0)1, %v11511; CHECK-NEXT: b.l.t (, %s10)1512 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)1513 ret <256 x double> %41514}1515 1516; Function Attrs: nounwind readonly1517define fastcc <256 x double> @vgtlzx_vvssl_imm_2(<256 x double> %0, i64 %1) {1518; CHECK-LABEL: vgtlzx_vvssl_imm_2:1519; CHECK: # %bb.0:1520; CHECK-NEXT: lea %s1, 2561521; CHECK-NEXT: lvl %s11522; CHECK-NEXT: vgtl.zx %v0, %v0, 8, %s01523; CHECK-NEXT: b.l.t (, %s10)1524 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)1525 ret <256 x double> %31526}1527 1528; Function Attrs: nounwind readonly1529define fastcc <256 x double> @vgtlzx_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {1530; CHECK-LABEL: vgtlzx_vvssvl_imm_2:1531; CHECK: # %bb.0:1532; CHECK-NEXT: lea %s1, 1281533; CHECK-NEXT: lvl %s11534; CHECK-NEXT: vgtl.zx %v1, %v0, 8, %s01535; CHECK-NEXT: lea %s16, 2561536; CHECK-NEXT: lvl %s161537; CHECK-NEXT: vor %v0, (0)1, %v11538; CHECK-NEXT: b.l.t (, %s10)1539 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)1540 ret <256 x double> %41541}1542 1543; Function Attrs: nounwind readonly1544define fastcc <256 x double> @vgtlzx_vvssl_imm_3(<256 x double> %0) {1545; CHECK-LABEL: vgtlzx_vvssl_imm_3:1546; CHECK: # %bb.0:1547; CHECK-NEXT: lea %s0, 2561548; CHECK-NEXT: lvl %s01549; CHECK-NEXT: vgtl.zx %v0, %v0, 8, 01550; CHECK-NEXT: b.l.t (, %s10)1551 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)1552 ret <256 x double> %21553}1554 1555; Function Attrs: nounwind readonly1556define fastcc <256 x double> @vgtlzx_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {1557; CHECK-LABEL: vgtlzx_vvssvl_imm_3:1558; CHECK: # %bb.0:1559; CHECK-NEXT: lea %s0, 1281560; CHECK-NEXT: lvl %s01561; CHECK-NEXT: vgtl.zx %v1, %v0, 8, 01562; CHECK-NEXT: lea %s16, 2561563; CHECK-NEXT: lvl %s161564; CHECK-NEXT: vor %v0, (0)1, %v11565; CHECK-NEXT: b.l.t (, %s10)1566 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)1567 ret <256 x double> %31568}1569 1570; Function Attrs: nounwind readonly1571define fastcc <256 x double> @vgtlzx_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {1572; CHECK-LABEL: vgtlzx_vvssml:1573; CHECK: # %bb.0:1574; CHECK-NEXT: lea %s2, 2561575; CHECK-NEXT: lvl %s21576; CHECK-NEXT: vgtl.zx %v0, %v0, %s0, %s1, %vm11577; CHECK-NEXT: b.l.t (, %s10)1578 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)1579 ret <256 x double> %51580}1581 1582; Function Attrs: nounwind readonly1583declare <256 x double> @llvm.ve.vl.vgtlzx.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)1584 1585; Function Attrs: nounwind readonly1586define fastcc <256 x double> @vgtlzx_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {1587; CHECK-LABEL: vgtlzx_vvssmvl:1588; CHECK: # %bb.0:1589; CHECK-NEXT: lea %s2, 1281590; CHECK-NEXT: lvl %s21591; CHECK-NEXT: vgtl.zx %v1, %v0, %s0, %s1, %vm11592; CHECK-NEXT: lea %s16, 2561593; CHECK-NEXT: lvl %s161594; CHECK-NEXT: vor %v0, (0)1, %v11595; CHECK-NEXT: b.l.t (, %s10)1596 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)1597 ret <256 x double> %61598}1599 1600; Function Attrs: nounwind readonly1601declare <256 x double> @llvm.ve.vl.vgtlzx.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)1602 1603; Function Attrs: nounwind readonly1604define fastcc <256 x double> @vgtlzx_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {1605; CHECK-LABEL: vgtlzx_vvssml_imm_1:1606; CHECK: # %bb.0:1607; CHECK-NEXT: lea %s1, 2561608; CHECK-NEXT: lvl %s11609; CHECK-NEXT: vgtl.zx %v0, %v0, %s0, 0, %vm11610; CHECK-NEXT: b.l.t (, %s10)1611 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)1612 ret <256 x double> %41613}1614 1615; Function Attrs: nounwind readonly1616define fastcc <256 x double> @vgtlzx_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1617; CHECK-LABEL: vgtlzx_vvssmvl_imm_1:1618; CHECK: # %bb.0:1619; CHECK-NEXT: lea %s1, 1281620; CHECK-NEXT: lvl %s11621; CHECK-NEXT: vgtl.zx %v1, %v0, %s0, 0, %vm11622; CHECK-NEXT: lea %s16, 2561623; CHECK-NEXT: lvl %s161624; CHECK-NEXT: vor %v0, (0)1, %v11625; CHECK-NEXT: b.l.t (, %s10)1626 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)1627 ret <256 x double> %51628}1629 1630; Function Attrs: nounwind readonly1631define fastcc <256 x double> @vgtlzx_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {1632; CHECK-LABEL: vgtlzx_vvssml_imm_2:1633; CHECK: # %bb.0:1634; CHECK-NEXT: lea %s1, 2561635; CHECK-NEXT: lvl %s11636; CHECK-NEXT: vgtl.zx %v0, %v0, 8, %s0, %vm11637; CHECK-NEXT: b.l.t (, %s10)1638 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)1639 ret <256 x double> %41640}1641 1642; Function Attrs: nounwind readonly1643define fastcc <256 x double> @vgtlzx_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1644; CHECK-LABEL: vgtlzx_vvssmvl_imm_2:1645; CHECK: # %bb.0:1646; CHECK-NEXT: lea %s1, 1281647; CHECK-NEXT: lvl %s11648; CHECK-NEXT: vgtl.zx %v1, %v0, 8, %s0, %vm11649; CHECK-NEXT: lea %s16, 2561650; CHECK-NEXT: lvl %s161651; CHECK-NEXT: vor %v0, (0)1, %v11652; CHECK-NEXT: b.l.t (, %s10)1653 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)1654 ret <256 x double> %51655}1656 1657; Function Attrs: nounwind readonly1658define fastcc <256 x double> @vgtlzx_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {1659; CHECK-LABEL: vgtlzx_vvssml_imm_3:1660; CHECK: # %bb.0:1661; CHECK-NEXT: lea %s0, 2561662; CHECK-NEXT: lvl %s01663; CHECK-NEXT: vgtl.zx %v0, %v0, 8, 0, %vm11664; CHECK-NEXT: b.l.t (, %s10)1665 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)1666 ret <256 x double> %31667}1668 1669; Function Attrs: nounwind readonly1670define fastcc <256 x double> @vgtlzx_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {1671; CHECK-LABEL: vgtlzx_vvssmvl_imm_3:1672; CHECK: # %bb.0:1673; CHECK-NEXT: lea %s0, 1281674; CHECK-NEXT: lvl %s01675; CHECK-NEXT: vgtl.zx %v1, %v0, 8, 0, %vm11676; CHECK-NEXT: lea %s16, 2561677; CHECK-NEXT: lvl %s161678; CHECK-NEXT: vor %v0, (0)1, %v11679; CHECK-NEXT: b.l.t (, %s10)1680 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)1681 ret <256 x double> %41682}1683 1684; Function Attrs: nounwind readonly1685define fastcc <256 x double> @vgtlzx_vvssl_no_imm_1(<256 x double> %0, i64 %1) {1686; CHECK-LABEL: vgtlzx_vvssl_no_imm_1:1687; CHECK: # %bb.0:1688; CHECK-NEXT: lea %s1, 2561689; CHECK-NEXT: or %s2, 8, (0)11690; CHECK-NEXT: lvl %s11691; CHECK-NEXT: vgtl.zx %v0, %v0, %s0, %s21692; CHECK-NEXT: b.l.t (, %s10)1693 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzx.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)1694 ret <256 x double> %31695}1696 1697; Function Attrs: nounwind readonly1698define fastcc <256 x double> @vgtlzxnc_vvssl(<256 x double> %0, i64 %1, i64 %2) {1699; CHECK-LABEL: vgtlzxnc_vvssl:1700; CHECK: # %bb.0:1701; CHECK-NEXT: lea %s2, 2561702; CHECK-NEXT: lvl %s21703; CHECK-NEXT: vgtl.zx.nc %v0, %v0, %s0, %s11704; CHECK-NEXT: b.l.t (, %s10)1705 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssl(<256 x double> %0, i64 %1, i64 %2, i32 256)1706 ret <256 x double> %41707}1708 1709; Function Attrs: nounwind readonly1710declare <256 x double> @llvm.ve.vl.vgtlzxnc.vvssl(<256 x double>, i64, i64, i32)1711 1712; Function Attrs: nounwind readonly1713define fastcc <256 x double> @vgtlzxnc_vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3) {1714; CHECK-LABEL: vgtlzxnc_vvssvl:1715; CHECK: # %bb.0:1716; CHECK-NEXT: lea %s2, 1281717; CHECK-NEXT: lvl %s21718; CHECK-NEXT: vgtl.zx.nc %v1, %v0, %s0, %s11719; CHECK-NEXT: lea %s16, 2561720; CHECK-NEXT: lvl %s161721; CHECK-NEXT: vor %v0, (0)1, %v11722; CHECK-NEXT: b.l.t (, %s10)1723 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssvl(<256 x double> %0, i64 %1, i64 %2, <256 x double> %3, i32 128)1724 ret <256 x double> %51725}1726 1727; Function Attrs: nounwind readonly1728declare <256 x double> @llvm.ve.vl.vgtlzxnc.vvssvl(<256 x double>, i64, i64, <256 x double>, i32)1729 1730; Function Attrs: nounwind readonly1731define fastcc <256 x double> @vgtlzxnc_vvssl_imm_1(<256 x double> %0, i64 %1) {1732; CHECK-LABEL: vgtlzxnc_vvssl_imm_1:1733; CHECK: # %bb.0:1734; CHECK-NEXT: lea %s1, 2561735; CHECK-NEXT: lvl %s11736; CHECK-NEXT: vgtl.zx.nc %v0, %v0, %s0, 01737; CHECK-NEXT: b.l.t (, %s10)1738 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssl(<256 x double> %0, i64 %1, i64 0, i32 256)1739 ret <256 x double> %31740}1741 1742; Function Attrs: nounwind readonly1743define fastcc <256 x double> @vgtlzxnc_vvssvl_imm_1(<256 x double> %0, i64 %1, <256 x double> %2) {1744; CHECK-LABEL: vgtlzxnc_vvssvl_imm_1:1745; CHECK: # %bb.0:1746; CHECK-NEXT: lea %s1, 1281747; CHECK-NEXT: lvl %s11748; CHECK-NEXT: vgtl.zx.nc %v1, %v0, %s0, 01749; CHECK-NEXT: lea %s16, 2561750; CHECK-NEXT: lvl %s161751; CHECK-NEXT: vor %v0, (0)1, %v11752; CHECK-NEXT: b.l.t (, %s10)1753 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssvl(<256 x double> %0, i64 %1, i64 0, <256 x double> %2, i32 128)1754 ret <256 x double> %41755}1756 1757; Function Attrs: nounwind readonly1758define fastcc <256 x double> @vgtlzxnc_vvssl_imm_2(<256 x double> %0, i64 %1) {1759; CHECK-LABEL: vgtlzxnc_vvssl_imm_2:1760; CHECK: # %bb.0:1761; CHECK-NEXT: lea %s1, 2561762; CHECK-NEXT: lvl %s11763; CHECK-NEXT: vgtl.zx.nc %v0, %v0, 8, %s01764; CHECK-NEXT: b.l.t (, %s10)1765 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssl(<256 x double> %0, i64 8, i64 %1, i32 256)1766 ret <256 x double> %31767}1768 1769; Function Attrs: nounwind readonly1770define fastcc <256 x double> @vgtlzxnc_vvssvl_imm_2(<256 x double> %0, i64 %1, <256 x double> %2) {1771; CHECK-LABEL: vgtlzxnc_vvssvl_imm_2:1772; CHECK: # %bb.0:1773; CHECK-NEXT: lea %s1, 1281774; CHECK-NEXT: lvl %s11775; CHECK-NEXT: vgtl.zx.nc %v1, %v0, 8, %s01776; CHECK-NEXT: lea %s16, 2561777; CHECK-NEXT: lvl %s161778; CHECK-NEXT: vor %v0, (0)1, %v11779; CHECK-NEXT: b.l.t (, %s10)1780 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssvl(<256 x double> %0, i64 8, i64 %1, <256 x double> %2, i32 128)1781 ret <256 x double> %41782}1783 1784; Function Attrs: nounwind readonly1785define fastcc <256 x double> @vgtlzxnc_vvssl_imm_3(<256 x double> %0) {1786; CHECK-LABEL: vgtlzxnc_vvssl_imm_3:1787; CHECK: # %bb.0:1788; CHECK-NEXT: lea %s0, 2561789; CHECK-NEXT: lvl %s01790; CHECK-NEXT: vgtl.zx.nc %v0, %v0, 8, 01791; CHECK-NEXT: b.l.t (, %s10)1792 %2 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssl(<256 x double> %0, i64 8, i64 0, i32 256)1793 ret <256 x double> %21794}1795 1796; Function Attrs: nounwind readonly1797define fastcc <256 x double> @vgtlzxnc_vvssvl_imm_3(<256 x double> %0, <256 x double> %1) {1798; CHECK-LABEL: vgtlzxnc_vvssvl_imm_3:1799; CHECK: # %bb.0:1800; CHECK-NEXT: lea %s0, 1281801; CHECK-NEXT: lvl %s01802; CHECK-NEXT: vgtl.zx.nc %v1, %v0, 8, 01803; CHECK-NEXT: lea %s16, 2561804; CHECK-NEXT: lvl %s161805; CHECK-NEXT: vor %v0, (0)1, %v11806; CHECK-NEXT: b.l.t (, %s10)1807 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssvl(<256 x double> %0, i64 8, i64 0, <256 x double> %1, i32 128)1808 ret <256 x double> %31809}1810 1811; Function Attrs: nounwind readonly1812define fastcc <256 x double> @vgtlzxnc_vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3) {1813; CHECK-LABEL: vgtlzxnc_vvssml:1814; CHECK: # %bb.0:1815; CHECK-NEXT: lea %s2, 2561816; CHECK-NEXT: lvl %s21817; CHECK-NEXT: vgtl.zx.nc %v0, %v0, %s0, %s1, %vm11818; CHECK-NEXT: b.l.t (, %s10)1819 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssml(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, i32 256)1820 ret <256 x double> %51821}1822 1823; Function Attrs: nounwind readonly1824declare <256 x double> @llvm.ve.vl.vgtlzxnc.vvssml(<256 x double>, i64, i64, <256 x i1>, i32)1825 1826; Function Attrs: nounwind readonly1827define fastcc <256 x double> @vgtlzxnc_vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4) {1828; CHECK-LABEL: vgtlzxnc_vvssmvl:1829; CHECK: # %bb.0:1830; CHECK-NEXT: lea %s2, 1281831; CHECK-NEXT: lvl %s21832; CHECK-NEXT: vgtl.zx.nc %v1, %v0, %s0, %s1, %vm11833; CHECK-NEXT: lea %s16, 2561834; CHECK-NEXT: lvl %s161835; CHECK-NEXT: vor %v0, (0)1, %v11836; CHECK-NEXT: b.l.t (, %s10)1837 %6 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssmvl(<256 x double> %0, i64 %1, i64 %2, <256 x i1> %3, <256 x double> %4, i32 128)1838 ret <256 x double> %61839}1840 1841; Function Attrs: nounwind readonly1842declare <256 x double> @llvm.ve.vl.vgtlzxnc.vvssmvl(<256 x double>, i64, i64, <256 x i1>, <256 x double>, i32)1843 1844; Function Attrs: nounwind readonly1845define fastcc <256 x double> @vgtlzxnc_vvssml_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2) {1846; CHECK-LABEL: vgtlzxnc_vvssml_imm_1:1847; CHECK: # %bb.0:1848; CHECK-NEXT: lea %s1, 2561849; CHECK-NEXT: lvl %s11850; CHECK-NEXT: vgtl.zx.nc %v0, %v0, %s0, 0, %vm11851; CHECK-NEXT: b.l.t (, %s10)1852 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssml(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, i32 256)1853 ret <256 x double> %41854}1855 1856; Function Attrs: nounwind readonly1857define fastcc <256 x double> @vgtlzxnc_vvssmvl_imm_1(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1858; CHECK-LABEL: vgtlzxnc_vvssmvl_imm_1:1859; CHECK: # %bb.0:1860; CHECK-NEXT: lea %s1, 1281861; CHECK-NEXT: lvl %s11862; CHECK-NEXT: vgtl.zx.nc %v1, %v0, %s0, 0, %vm11863; CHECK-NEXT: lea %s16, 2561864; CHECK-NEXT: lvl %s161865; CHECK-NEXT: vor %v0, (0)1, %v11866; CHECK-NEXT: b.l.t (, %s10)1867 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssmvl(<256 x double> %0, i64 %1, i64 0, <256 x i1> %2, <256 x double> %3, i32 128)1868 ret <256 x double> %51869}1870 1871; Function Attrs: nounwind readonly1872define fastcc <256 x double> @vgtlzxnc_vvssml_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2) {1873; CHECK-LABEL: vgtlzxnc_vvssml_imm_2:1874; CHECK: # %bb.0:1875; CHECK-NEXT: lea %s1, 2561876; CHECK-NEXT: lvl %s11877; CHECK-NEXT: vgtl.zx.nc %v0, %v0, 8, %s0, %vm11878; CHECK-NEXT: b.l.t (, %s10)1879 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssml(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, i32 256)1880 ret <256 x double> %41881}1882 1883; Function Attrs: nounwind readonly1884define fastcc <256 x double> @vgtlzxnc_vvssmvl_imm_2(<256 x double> %0, i64 %1, <256 x i1> %2, <256 x double> %3) {1885; CHECK-LABEL: vgtlzxnc_vvssmvl_imm_2:1886; CHECK: # %bb.0:1887; CHECK-NEXT: lea %s1, 1281888; CHECK-NEXT: lvl %s11889; CHECK-NEXT: vgtl.zx.nc %v1, %v0, 8, %s0, %vm11890; CHECK-NEXT: lea %s16, 2561891; CHECK-NEXT: lvl %s161892; CHECK-NEXT: vor %v0, (0)1, %v11893; CHECK-NEXT: b.l.t (, %s10)1894 %5 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssmvl(<256 x double> %0, i64 8, i64 %1, <256 x i1> %2, <256 x double> %3, i32 128)1895 ret <256 x double> %51896}1897 1898; Function Attrs: nounwind readonly1899define fastcc <256 x double> @vgtlzxnc_vvssml_imm_3(<256 x double> %0, <256 x i1> %1) {1900; CHECK-LABEL: vgtlzxnc_vvssml_imm_3:1901; CHECK: # %bb.0:1902; CHECK-NEXT: lea %s0, 2561903; CHECK-NEXT: lvl %s01904; CHECK-NEXT: vgtl.zx.nc %v0, %v0, 8, 0, %vm11905; CHECK-NEXT: b.l.t (, %s10)1906 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssml(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, i32 256)1907 ret <256 x double> %31908}1909 1910; Function Attrs: nounwind readonly1911define fastcc <256 x double> @vgtlzxnc_vvssmvl_imm_3(<256 x double> %0, <256 x i1> %1, <256 x double> %2) {1912; CHECK-LABEL: vgtlzxnc_vvssmvl_imm_3:1913; CHECK: # %bb.0:1914; CHECK-NEXT: lea %s0, 1281915; CHECK-NEXT: lvl %s01916; CHECK-NEXT: vgtl.zx.nc %v1, %v0, 8, 0, %vm11917; CHECK-NEXT: lea %s16, 2561918; CHECK-NEXT: lvl %s161919; CHECK-NEXT: vor %v0, (0)1, %v11920; CHECK-NEXT: b.l.t (, %s10)1921 %4 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssmvl(<256 x double> %0, i64 8, i64 0, <256 x i1> %1, <256 x double> %2, i32 128)1922 ret <256 x double> %41923}1924 1925; Function Attrs: nounwind readonly1926define fastcc <256 x double> @vgtlzxnc_vvssl_no_imm_1(<256 x double> %0, i64 %1) {1927; CHECK-LABEL: vgtlzxnc_vvssl_no_imm_1:1928; CHECK: # %bb.0:1929; CHECK-NEXT: lea %s1, 2561930; CHECK-NEXT: or %s2, 8, (0)11931; CHECK-NEXT: lvl %s11932; CHECK-NEXT: vgtl.zx.nc %v0, %v0, %s0, %s21933; CHECK-NEXT: b.l.t (, %s10)1934 %3 = tail call fast <256 x double> @llvm.ve.vl.vgtlzxnc.vvssl(<256 x double> %0, i64 %1, i64 8, i32 256)1935 ret <256 x double> %31936}1937