brintos

brintos / llvm-project-archived public Read only

0
0
Text · 70.7 KiB · cba5078 Raw
1821 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv64 -mattr=+m,+v -verify-machineinstrs < %s \3; RUN:    | FileCheck %s --check-prefixes=CHECK,NOZBA4; RUN: llc -mtriple=riscv64 -mattr=+m,+v,+zba -verify-machineinstrs < %s \5; RUN:    | FileCheck %s --check-prefixes=CHECK,ZBA6; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \7; RUN:    | FileCheck %s --check-prefixes=CHECK,NOMUL8; RUN: llc -mtriple=riscv64 -mattr=+m,+v,+prefer-vsetvli-over-read-vlenb  -verify-machineinstrs < %s \9; RUN:    | FileCheck %s --check-prefixes=CHECK-NOZBA-VSETVLI10; RUN: llc -mtriple=riscv64 -mattr=+m,+v,+zba,+prefer-vsetvli-over-read-vlenb  -verify-machineinstrs < %s \11; RUN:    | FileCheck %s --check-prefixes=CHECK-ZBA-VSETVLI12; RUN: llc -mtriple=riscv64 -mattr=+v,+prefer-vsetvli-over-read-vlenb  -verify-machineinstrs < %s \13; RUN:    | FileCheck %s --check-prefixes=CHECK-NOMUL-VSETVLI14 15define void @lmul1() nounwind {16; CHECK-LABEL: lmul1:17; CHECK:       # %bb.0:18; CHECK-NEXT:    csrr a0, vlenb19; CHECK-NEXT:    sub sp, sp, a020; CHECK-NEXT:    csrr a0, vlenb21; CHECK-NEXT:    add sp, sp, a022; CHECK-NEXT:    ret23;24; CHECK-NOZBA-VSETVLI-LABEL: lmul1:25; CHECK-NOZBA-VSETVLI:       # %bb.0:26; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma27; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a028; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma29; CHECK-NOZBA-VSETVLI-NEXT:    add sp, sp, a030; CHECK-NOZBA-VSETVLI-NEXT:    ret31;32; CHECK-ZBA-VSETVLI-LABEL: lmul1:33; CHECK-ZBA-VSETVLI:       # %bb.0:34; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma35; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a036; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma37; CHECK-ZBA-VSETVLI-NEXT:    add sp, sp, a038; CHECK-ZBA-VSETVLI-NEXT:    ret39;40; CHECK-NOMUL-VSETVLI-LABEL: lmul1:41; CHECK-NOMUL-VSETVLI:       # %bb.0:42; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma43; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a044; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma45; CHECK-NOMUL-VSETVLI-NEXT:    add sp, sp, a046; CHECK-NOMUL-VSETVLI-NEXT:    ret47  %v = alloca <vscale x 1 x i64>48  ret void49}50 51define void @lmul2() nounwind {52; NOZBA-LABEL: lmul2:53; NOZBA:       # %bb.0:54; NOZBA-NEXT:    csrr a0, vlenb55; NOZBA-NEXT:    slli a0, a0, 156; NOZBA-NEXT:    sub sp, sp, a057; NOZBA-NEXT:    csrr a0, vlenb58; NOZBA-NEXT:    slli a0, a0, 159; NOZBA-NEXT:    add sp, sp, a060; NOZBA-NEXT:    ret61;62; ZBA-LABEL: lmul2:63; ZBA:       # %bb.0:64; ZBA-NEXT:    csrr a0, vlenb65; ZBA-NEXT:    slli a0, a0, 166; ZBA-NEXT:    sub sp, sp, a067; ZBA-NEXT:    csrr a0, vlenb68; ZBA-NEXT:    sh1add sp, a0, sp69; ZBA-NEXT:    ret70;71; NOMUL-LABEL: lmul2:72; NOMUL:       # %bb.0:73; NOMUL-NEXT:    csrr a0, vlenb74; NOMUL-NEXT:    slli a0, a0, 175; NOMUL-NEXT:    sub sp, sp, a076; NOMUL-NEXT:    csrr a0, vlenb77; NOMUL-NEXT:    slli a0, a0, 178; NOMUL-NEXT:    add sp, sp, a079; NOMUL-NEXT:    ret80;81; CHECK-NOZBA-VSETVLI-LABEL: lmul2:82; CHECK-NOZBA-VSETVLI:       # %bb.0:83; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m2, ta, ma84; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a085; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m2, ta, ma86; CHECK-NOZBA-VSETVLI-NEXT:    add sp, sp, a087; CHECK-NOZBA-VSETVLI-NEXT:    ret88;89; CHECK-ZBA-VSETVLI-LABEL: lmul2:90; CHECK-ZBA-VSETVLI:       # %bb.0:91; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m2, ta, ma92; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a093; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m2, ta, ma94; CHECK-ZBA-VSETVLI-NEXT:    add sp, sp, a095; CHECK-ZBA-VSETVLI-NEXT:    ret96;97; CHECK-NOMUL-VSETVLI-LABEL: lmul2:98; CHECK-NOMUL-VSETVLI:       # %bb.0:99; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m2, ta, ma100; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0101; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m2, ta, ma102; CHECK-NOMUL-VSETVLI-NEXT:    add sp, sp, a0103; CHECK-NOMUL-VSETVLI-NEXT:    ret104  %v = alloca <vscale x 2 x i64>105  ret void106}107 108define void @lmul4() nounwind {109; CHECK-LABEL: lmul4:110; CHECK:       # %bb.0:111; CHECK-NEXT:    addi sp, sp, -48112; CHECK-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill113; CHECK-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill114; CHECK-NEXT:    addi s0, sp, 48115; CHECK-NEXT:    csrr a0, vlenb116; CHECK-NEXT:    slli a0, a0, 2117; CHECK-NEXT:    sub sp, sp, a0118; CHECK-NEXT:    andi sp, sp, -32119; CHECK-NEXT:    addi sp, s0, -48120; CHECK-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload121; CHECK-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload122; CHECK-NEXT:    addi sp, sp, 48123; CHECK-NEXT:    ret124;125; CHECK-NOZBA-VSETVLI-LABEL: lmul4:126; CHECK-NOZBA-VSETVLI:       # %bb.0:127; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48128; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill129; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill130; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48131; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma132; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0133; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32134; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48135; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload136; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload137; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48138; CHECK-NOZBA-VSETVLI-NEXT:    ret139;140; CHECK-ZBA-VSETVLI-LABEL: lmul4:141; CHECK-ZBA-VSETVLI:       # %bb.0:142; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48143; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill144; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill145; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48146; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma147; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0148; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32149; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48150; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload151; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload152; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48153; CHECK-ZBA-VSETVLI-NEXT:    ret154;155; CHECK-NOMUL-VSETVLI-LABEL: lmul4:156; CHECK-NOMUL-VSETVLI:       # %bb.0:157; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48158; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill159; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill160; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48161; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma162; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0163; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32164; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48165; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload166; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload167; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48168; CHECK-NOMUL-VSETVLI-NEXT:    ret169  %v = alloca <vscale x 4 x i64>170  ret void171}172 173define void @lmul8() nounwind {174; CHECK-LABEL: lmul8:175; CHECK:       # %bb.0:176; CHECK-NEXT:    addi sp, sp, -80177; CHECK-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill178; CHECK-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill179; CHECK-NEXT:    addi s0, sp, 80180; CHECK-NEXT:    csrr a0, vlenb181; CHECK-NEXT:    slli a0, a0, 3182; CHECK-NEXT:    sub sp, sp, a0183; CHECK-NEXT:    andi sp, sp, -64184; CHECK-NEXT:    addi sp, s0, -80185; CHECK-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload186; CHECK-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload187; CHECK-NEXT:    addi sp, sp, 80188; CHECK-NEXT:    ret189;190; CHECK-NOZBA-VSETVLI-LABEL: lmul8:191; CHECK-NOZBA-VSETVLI:       # %bb.0:192; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -80193; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill194; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill195; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 80196; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma197; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0198; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -64199; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -80200; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload201; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload202; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 80203; CHECK-NOZBA-VSETVLI-NEXT:    ret204;205; CHECK-ZBA-VSETVLI-LABEL: lmul8:206; CHECK-ZBA-VSETVLI:       # %bb.0:207; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -80208; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill209; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill210; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 80211; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma212; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0213; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -64214; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -80215; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload216; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload217; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 80218; CHECK-ZBA-VSETVLI-NEXT:    ret219;220; CHECK-NOMUL-VSETVLI-LABEL: lmul8:221; CHECK-NOMUL-VSETVLI:       # %bb.0:222; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -80223; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill224; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill225; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 80226; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma227; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0228; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -64229; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -80230; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload231; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload232; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 80233; CHECK-NOMUL-VSETVLI-NEXT:    ret234  %v = alloca <vscale x 8 x i64>235  ret void236}237 238define void @lmul1_and_2() nounwind {239; NOZBA-LABEL: lmul1_and_2:240; NOZBA:       # %bb.0:241; NOZBA-NEXT:    csrr a0, vlenb242; NOZBA-NEXT:    slli a0, a0, 2243; NOZBA-NEXT:    sub sp, sp, a0244; NOZBA-NEXT:    csrr a0, vlenb245; NOZBA-NEXT:    slli a0, a0, 2246; NOZBA-NEXT:    add sp, sp, a0247; NOZBA-NEXT:    ret248;249; ZBA-LABEL: lmul1_and_2:250; ZBA:       # %bb.0:251; ZBA-NEXT:    csrr a0, vlenb252; ZBA-NEXT:    slli a0, a0, 2253; ZBA-NEXT:    sub sp, sp, a0254; ZBA-NEXT:    csrr a0, vlenb255; ZBA-NEXT:    sh2add sp, a0, sp256; ZBA-NEXT:    ret257;258; NOMUL-LABEL: lmul1_and_2:259; NOMUL:       # %bb.0:260; NOMUL-NEXT:    csrr a0, vlenb261; NOMUL-NEXT:    slli a0, a0, 2262; NOMUL-NEXT:    sub sp, sp, a0263; NOMUL-NEXT:    csrr a0, vlenb264; NOMUL-NEXT:    slli a0, a0, 2265; NOMUL-NEXT:    add sp, sp, a0266; NOMUL-NEXT:    ret267;268; CHECK-NOZBA-VSETVLI-LABEL: lmul1_and_2:269; CHECK-NOZBA-VSETVLI:       # %bb.0:270; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma271; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0272; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma273; CHECK-NOZBA-VSETVLI-NEXT:    add sp, sp, a0274; CHECK-NOZBA-VSETVLI-NEXT:    ret275;276; CHECK-ZBA-VSETVLI-LABEL: lmul1_and_2:277; CHECK-ZBA-VSETVLI:       # %bb.0:278; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma279; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0280; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma281; CHECK-ZBA-VSETVLI-NEXT:    add sp, sp, a0282; CHECK-ZBA-VSETVLI-NEXT:    ret283;284; CHECK-NOMUL-VSETVLI-LABEL: lmul1_and_2:285; CHECK-NOMUL-VSETVLI:       # %bb.0:286; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma287; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0288; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma289; CHECK-NOMUL-VSETVLI-NEXT:    add sp, sp, a0290; CHECK-NOMUL-VSETVLI-NEXT:    ret291  %v1 = alloca <vscale x 1 x i64>292  %v2 = alloca <vscale x 2 x i64>293  ret void294}295 296define void @lmul2_and_4() nounwind {297; CHECK-LABEL: lmul2_and_4:298; CHECK:       # %bb.0:299; CHECK-NEXT:    addi sp, sp, -48300; CHECK-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill301; CHECK-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill302; CHECK-NEXT:    addi s0, sp, 48303; CHECK-NEXT:    csrr a0, vlenb304; CHECK-NEXT:    slli a0, a0, 3305; CHECK-NEXT:    sub sp, sp, a0306; CHECK-NEXT:    andi sp, sp, -32307; CHECK-NEXT:    addi sp, s0, -48308; CHECK-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload309; CHECK-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload310; CHECK-NEXT:    addi sp, sp, 48311; CHECK-NEXT:    ret312;313; CHECK-NOZBA-VSETVLI-LABEL: lmul2_and_4:314; CHECK-NOZBA-VSETVLI:       # %bb.0:315; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48316; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill317; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill318; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48319; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma320; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0321; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32322; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48323; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload324; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload325; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48326; CHECK-NOZBA-VSETVLI-NEXT:    ret327;328; CHECK-ZBA-VSETVLI-LABEL: lmul2_and_4:329; CHECK-ZBA-VSETVLI:       # %bb.0:330; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48331; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill332; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill333; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48334; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma335; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0336; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32337; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48338; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload339; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload340; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48341; CHECK-ZBA-VSETVLI-NEXT:    ret342;343; CHECK-NOMUL-VSETVLI-LABEL: lmul2_and_4:344; CHECK-NOMUL-VSETVLI:       # %bb.0:345; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48346; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill347; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill348; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48349; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma350; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0351; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32352; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48353; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload354; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload355; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48356; CHECK-NOMUL-VSETVLI-NEXT:    ret357  %v1 = alloca <vscale x 2 x i64>358  %v2 = alloca <vscale x 4 x i64>359  ret void360}361 362define void @lmul1_and_4() nounwind {363; CHECK-LABEL: lmul1_and_4:364; CHECK:       # %bb.0:365; CHECK-NEXT:    addi sp, sp, -48366; CHECK-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill367; CHECK-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill368; CHECK-NEXT:    addi s0, sp, 48369; CHECK-NEXT:    csrr a0, vlenb370; CHECK-NEXT:    slli a0, a0, 3371; CHECK-NEXT:    sub sp, sp, a0372; CHECK-NEXT:    andi sp, sp, -32373; CHECK-NEXT:    addi sp, s0, -48374; CHECK-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload375; CHECK-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload376; CHECK-NEXT:    addi sp, sp, 48377; CHECK-NEXT:    ret378;379; CHECK-NOZBA-VSETVLI-LABEL: lmul1_and_4:380; CHECK-NOZBA-VSETVLI:       # %bb.0:381; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48382; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill383; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill384; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48385; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma386; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0387; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32388; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48389; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload390; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload391; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48392; CHECK-NOZBA-VSETVLI-NEXT:    ret393;394; CHECK-ZBA-VSETVLI-LABEL: lmul1_and_4:395; CHECK-ZBA-VSETVLI:       # %bb.0:396; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48397; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill398; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill399; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48400; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma401; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0402; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32403; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48404; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload405; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload406; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48407; CHECK-ZBA-VSETVLI-NEXT:    ret408;409; CHECK-NOMUL-VSETVLI-LABEL: lmul1_and_4:410; CHECK-NOMUL-VSETVLI:       # %bb.0:411; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48412; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill413; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill414; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48415; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma416; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0417; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32418; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48419; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload420; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload421; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48422; CHECK-NOMUL-VSETVLI-NEXT:    ret423  %v1 = alloca <vscale x 1 x i64>424  %v2 = alloca <vscale x 4 x i64>425  ret void426}427 428define void @lmul2_and_1() nounwind {429; NOZBA-LABEL: lmul2_and_1:430; NOZBA:       # %bb.0:431; NOZBA-NEXT:    csrr a0, vlenb432; NOZBA-NEXT:    slli a1, a0, 1433; NOZBA-NEXT:    add a0, a1, a0434; NOZBA-NEXT:    sub sp, sp, a0435; NOZBA-NEXT:    csrr a0, vlenb436; NOZBA-NEXT:    slli a1, a0, 1437; NOZBA-NEXT:    add a0, a1, a0438; NOZBA-NEXT:    add sp, sp, a0439; NOZBA-NEXT:    ret440;441; ZBA-LABEL: lmul2_and_1:442; ZBA:       # %bb.0:443; ZBA-NEXT:    csrr a0, vlenb444; ZBA-NEXT:    sh1add a0, a0, a0445; ZBA-NEXT:    sub sp, sp, a0446; ZBA-NEXT:    csrr a0, vlenb447; ZBA-NEXT:    sh1add a0, a0, a0448; ZBA-NEXT:    add sp, sp, a0449; ZBA-NEXT:    ret450;451; NOMUL-LABEL: lmul2_and_1:452; NOMUL:       # %bb.0:453; NOMUL-NEXT:    csrr a0, vlenb454; NOMUL-NEXT:    slli a1, a0, 1455; NOMUL-NEXT:    add a0, a1, a0456; NOMUL-NEXT:    sub sp, sp, a0457; NOMUL-NEXT:    csrr a0, vlenb458; NOMUL-NEXT:    slli a1, a0, 1459; NOMUL-NEXT:    add a0, a1, a0460; NOMUL-NEXT:    add sp, sp, a0461; NOMUL-NEXT:    ret462;463; CHECK-NOZBA-VSETVLI-LABEL: lmul2_and_1:464; CHECK-NOZBA-VSETVLI:       # %bb.0:465; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma466; CHECK-NOZBA-VSETVLI-NEXT:    slli a1, a0, 1467; CHECK-NOZBA-VSETVLI-NEXT:    add a0, a1, a0468; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0469; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma470; CHECK-NOZBA-VSETVLI-NEXT:    slli a1, a0, 1471; CHECK-NOZBA-VSETVLI-NEXT:    add a0, a1, a0472; CHECK-NOZBA-VSETVLI-NEXT:    add sp, sp, a0473; CHECK-NOZBA-VSETVLI-NEXT:    ret474;475; CHECK-ZBA-VSETVLI-LABEL: lmul2_and_1:476; CHECK-ZBA-VSETVLI:       # %bb.0:477; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma478; CHECK-ZBA-VSETVLI-NEXT:    sh1add a0, a0, a0479; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0480; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma481; CHECK-ZBA-VSETVLI-NEXT:    sh1add a0, a0, a0482; CHECK-ZBA-VSETVLI-NEXT:    add sp, sp, a0483; CHECK-ZBA-VSETVLI-NEXT:    ret484;485; CHECK-NOMUL-VSETVLI-LABEL: lmul2_and_1:486; CHECK-NOMUL-VSETVLI:       # %bb.0:487; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma488; CHECK-NOMUL-VSETVLI-NEXT:    slli a1, a0, 1489; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a1, a0490; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0491; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma492; CHECK-NOMUL-VSETVLI-NEXT:    slli a1, a0, 1493; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a1, a0494; CHECK-NOMUL-VSETVLI-NEXT:    add sp, sp, a0495; CHECK-NOMUL-VSETVLI-NEXT:    ret496  %v1 = alloca <vscale x 2 x i64>497  %v2 = alloca <vscale x 1 x i64>498  ret void499}500 501define void @lmul4_and_1() nounwind {502; NOZBA-LABEL: lmul4_and_1:503; NOZBA:       # %bb.0:504; NOZBA-NEXT:    addi sp, sp, -48505; NOZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill506; NOZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill507; NOZBA-NEXT:    addi s0, sp, 48508; NOZBA-NEXT:    csrr a0, vlenb509; NOZBA-NEXT:    li a1, 6510; NOZBA-NEXT:    mul a0, a0, a1511; NOZBA-NEXT:    sub sp, sp, a0512; NOZBA-NEXT:    andi sp, sp, -32513; NOZBA-NEXT:    addi sp, s0, -48514; NOZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload515; NOZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload516; NOZBA-NEXT:    addi sp, sp, 48517; NOZBA-NEXT:    ret518;519; ZBA-LABEL: lmul4_and_1:520; ZBA:       # %bb.0:521; ZBA-NEXT:    addi sp, sp, -48522; ZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill523; ZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill524; ZBA-NEXT:    addi s0, sp, 48525; ZBA-NEXT:    csrr a0, vlenb526; ZBA-NEXT:    slli a0, a0, 1527; ZBA-NEXT:    sh1add a0, a0, a0528; ZBA-NEXT:    sub sp, sp, a0529; ZBA-NEXT:    andi sp, sp, -32530; ZBA-NEXT:    addi sp, s0, -48531; ZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload532; ZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload533; ZBA-NEXT:    addi sp, sp, 48534; ZBA-NEXT:    ret535;536; NOMUL-LABEL: lmul4_and_1:537; NOMUL:       # %bb.0:538; NOMUL-NEXT:    addi sp, sp, -48539; NOMUL-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill540; NOMUL-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill541; NOMUL-NEXT:    addi s0, sp, 48542; NOMUL-NEXT:    csrr a0, vlenb543; NOMUL-NEXT:    slli a0, a0, 1544; NOMUL-NEXT:    mv a1, a0545; NOMUL-NEXT:    slli a0, a0, 1546; NOMUL-NEXT:    add a0, a0, a1547; NOMUL-NEXT:    sub sp, sp, a0548; NOMUL-NEXT:    andi sp, sp, -32549; NOMUL-NEXT:    addi sp, s0, -48550; NOMUL-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload551; NOMUL-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload552; NOMUL-NEXT:    addi sp, sp, 48553; NOMUL-NEXT:    ret554;555; CHECK-NOZBA-VSETVLI-LABEL: lmul4_and_1:556; CHECK-NOZBA-VSETVLI:       # %bb.0:557; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48558; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill559; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill560; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48561; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma562; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 6563; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a1564; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0565; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32566; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48567; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload568; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload569; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48570; CHECK-NOZBA-VSETVLI-NEXT:    ret571;572; CHECK-ZBA-VSETVLI-LABEL: lmul4_and_1:573; CHECK-ZBA-VSETVLI:       # %bb.0:574; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48575; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill576; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill577; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48578; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma579; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 1580; CHECK-ZBA-VSETVLI-NEXT:    sh1add a0, a0, a0581; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0582; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32583; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48584; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload585; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload586; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48587; CHECK-ZBA-VSETVLI-NEXT:    ret588;589; CHECK-NOMUL-VSETVLI-LABEL: lmul4_and_1:590; CHECK-NOMUL-VSETVLI:       # %bb.0:591; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48592; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill593; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill594; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48595; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma596; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1597; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a0598; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1599; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a1600; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0601; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32602; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48603; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload604; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload605; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48606; CHECK-NOMUL-VSETVLI-NEXT:    ret607  %v1 = alloca <vscale x 4 x i64>608  %v2 = alloca <vscale x 1 x i64>609  ret void610}611 612define void @lmul4_and_2() nounwind {613; NOZBA-LABEL: lmul4_and_2:614; NOZBA:       # %bb.0:615; NOZBA-NEXT:    addi sp, sp, -48616; NOZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill617; NOZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill618; NOZBA-NEXT:    addi s0, sp, 48619; NOZBA-NEXT:    csrr a0, vlenb620; NOZBA-NEXT:    li a1, 6621; NOZBA-NEXT:    mul a0, a0, a1622; NOZBA-NEXT:    sub sp, sp, a0623; NOZBA-NEXT:    andi sp, sp, -32624; NOZBA-NEXT:    addi sp, s0, -48625; NOZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload626; NOZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload627; NOZBA-NEXT:    addi sp, sp, 48628; NOZBA-NEXT:    ret629;630; ZBA-LABEL: lmul4_and_2:631; ZBA:       # %bb.0:632; ZBA-NEXT:    addi sp, sp, -48633; ZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill634; ZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill635; ZBA-NEXT:    addi s0, sp, 48636; ZBA-NEXT:    csrr a0, vlenb637; ZBA-NEXT:    slli a0, a0, 1638; ZBA-NEXT:    sh1add a0, a0, a0639; ZBA-NEXT:    sub sp, sp, a0640; ZBA-NEXT:    andi sp, sp, -32641; ZBA-NEXT:    addi sp, s0, -48642; ZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload643; ZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload644; ZBA-NEXT:    addi sp, sp, 48645; ZBA-NEXT:    ret646;647; NOMUL-LABEL: lmul4_and_2:648; NOMUL:       # %bb.0:649; NOMUL-NEXT:    addi sp, sp, -48650; NOMUL-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill651; NOMUL-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill652; NOMUL-NEXT:    addi s0, sp, 48653; NOMUL-NEXT:    csrr a0, vlenb654; NOMUL-NEXT:    slli a0, a0, 1655; NOMUL-NEXT:    mv a1, a0656; NOMUL-NEXT:    slli a0, a0, 1657; NOMUL-NEXT:    add a0, a0, a1658; NOMUL-NEXT:    sub sp, sp, a0659; NOMUL-NEXT:    andi sp, sp, -32660; NOMUL-NEXT:    addi sp, s0, -48661; NOMUL-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload662; NOMUL-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload663; NOMUL-NEXT:    addi sp, sp, 48664; NOMUL-NEXT:    ret665;666; CHECK-NOZBA-VSETVLI-LABEL: lmul4_and_2:667; CHECK-NOZBA-VSETVLI:       # %bb.0:668; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48669; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill670; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill671; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48672; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma673; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 6674; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a1675; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0676; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32677; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48678; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload679; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload680; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48681; CHECK-NOZBA-VSETVLI-NEXT:    ret682;683; CHECK-ZBA-VSETVLI-LABEL: lmul4_and_2:684; CHECK-ZBA-VSETVLI:       # %bb.0:685; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48686; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill687; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill688; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48689; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma690; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 1691; CHECK-ZBA-VSETVLI-NEXT:    sh1add a0, a0, a0692; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0693; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32694; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48695; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload696; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload697; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48698; CHECK-ZBA-VSETVLI-NEXT:    ret699;700; CHECK-NOMUL-VSETVLI-LABEL: lmul4_and_2:701; CHECK-NOMUL-VSETVLI:       # %bb.0:702; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48703; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill704; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill705; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48706; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma707; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1708; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a0709; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1710; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a1711; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0712; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32713; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48714; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload715; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload716; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48717; CHECK-NOMUL-VSETVLI-NEXT:    ret718  %v1 = alloca <vscale x 4 x i64>719  %v2 = alloca <vscale x 2 x i64>720  ret void721}722 723define void @lmul4_and_2_x2_0() nounwind {724; NOZBA-LABEL: lmul4_and_2_x2_0:725; NOZBA:       # %bb.0:726; NOZBA-NEXT:    addi sp, sp, -48727; NOZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill728; NOZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill729; NOZBA-NEXT:    addi s0, sp, 48730; NOZBA-NEXT:    csrr a0, vlenb731; NOZBA-NEXT:    li a1, 14732; NOZBA-NEXT:    mul a0, a0, a1733; NOZBA-NEXT:    sub sp, sp, a0734; NOZBA-NEXT:    andi sp, sp, -32735; NOZBA-NEXT:    addi sp, s0, -48736; NOZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload737; NOZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload738; NOZBA-NEXT:    addi sp, sp, 48739; NOZBA-NEXT:    ret740;741; ZBA-LABEL: lmul4_and_2_x2_0:742; ZBA:       # %bb.0:743; ZBA-NEXT:    addi sp, sp, -48744; ZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill745; ZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill746; ZBA-NEXT:    addi s0, sp, 48747; ZBA-NEXT:    csrr a0, vlenb748; ZBA-NEXT:    li a1, 14749; ZBA-NEXT:    mul a0, a0, a1750; ZBA-NEXT:    sub sp, sp, a0751; ZBA-NEXT:    andi sp, sp, -32752; ZBA-NEXT:    addi sp, s0, -48753; ZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload754; ZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload755; ZBA-NEXT:    addi sp, sp, 48756; ZBA-NEXT:    ret757;758; NOMUL-LABEL: lmul4_and_2_x2_0:759; NOMUL:       # %bb.0:760; NOMUL-NEXT:    addi sp, sp, -48761; NOMUL-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill762; NOMUL-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill763; NOMUL-NEXT:    addi s0, sp, 48764; NOMUL-NEXT:    csrr a0, vlenb765; NOMUL-NEXT:    slli a0, a0, 1766; NOMUL-NEXT:    mv a1, a0767; NOMUL-NEXT:    slli a0, a0, 1768; NOMUL-NEXT:    add a1, a1, a0769; NOMUL-NEXT:    slli a0, a0, 1770; NOMUL-NEXT:    add a0, a0, a1771; NOMUL-NEXT:    sub sp, sp, a0772; NOMUL-NEXT:    andi sp, sp, -32773; NOMUL-NEXT:    addi sp, s0, -48774; NOMUL-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload775; NOMUL-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload776; NOMUL-NEXT:    addi sp, sp, 48777; NOMUL-NEXT:    ret778;779; CHECK-NOZBA-VSETVLI-LABEL: lmul4_and_2_x2_0:780; CHECK-NOZBA-VSETVLI:       # %bb.0:781; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48782; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill783; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill784; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48785; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma786; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 14787; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a1788; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0789; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32790; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48791; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload792; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload793; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48794; CHECK-NOZBA-VSETVLI-NEXT:    ret795;796; CHECK-ZBA-VSETVLI-LABEL: lmul4_and_2_x2_0:797; CHECK-ZBA-VSETVLI:       # %bb.0:798; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48799; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill800; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill801; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48802; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma803; CHECK-ZBA-VSETVLI-NEXT:    li a1, 14804; CHECK-ZBA-VSETVLI-NEXT:    mul a0, a0, a1805; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0806; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32807; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48808; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload809; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload810; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48811; CHECK-ZBA-VSETVLI-NEXT:    ret812;813; CHECK-NOMUL-VSETVLI-LABEL: lmul4_and_2_x2_0:814; CHECK-NOMUL-VSETVLI:       # %bb.0:815; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48816; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill817; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill818; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48819; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma820; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1821; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a0822; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1823; CHECK-NOMUL-VSETVLI-NEXT:    add a1, a1, a0824; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1825; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a1826; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0827; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32828; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48829; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload830; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload831; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48832; CHECK-NOMUL-VSETVLI-NEXT:    ret833  %v1 = alloca <vscale x 4 x i64>834  %v2 = alloca <vscale x 2 x i64>835  %v3 = alloca <vscale x 4 x i64>836  %v4 = alloca <vscale x 2 x i64>837  ret void838}839 840define void @lmul4_and_2_x2_1() nounwind {841; NOZBA-LABEL: lmul4_and_2_x2_1:842; NOZBA:       # %bb.0:843; NOZBA-NEXT:    addi sp, sp, -48844; NOZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill845; NOZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill846; NOZBA-NEXT:    addi s0, sp, 48847; NOZBA-NEXT:    csrr a0, vlenb848; NOZBA-NEXT:    li a1, 12849; NOZBA-NEXT:    mul a0, a0, a1850; NOZBA-NEXT:    sub sp, sp, a0851; NOZBA-NEXT:    andi sp, sp, -32852; NOZBA-NEXT:    addi sp, s0, -48853; NOZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload854; NOZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload855; NOZBA-NEXT:    addi sp, sp, 48856; NOZBA-NEXT:    ret857;858; ZBA-LABEL: lmul4_and_2_x2_1:859; ZBA:       # %bb.0:860; ZBA-NEXT:    addi sp, sp, -48861; ZBA-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill862; ZBA-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill863; ZBA-NEXT:    addi s0, sp, 48864; ZBA-NEXT:    csrr a0, vlenb865; ZBA-NEXT:    slli a0, a0, 2866; ZBA-NEXT:    sh1add a0, a0, a0867; ZBA-NEXT:    sub sp, sp, a0868; ZBA-NEXT:    andi sp, sp, -32869; ZBA-NEXT:    addi sp, s0, -48870; ZBA-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload871; ZBA-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload872; ZBA-NEXT:    addi sp, sp, 48873; ZBA-NEXT:    ret874;875; NOMUL-LABEL: lmul4_and_2_x2_1:876; NOMUL:       # %bb.0:877; NOMUL-NEXT:    addi sp, sp, -48878; NOMUL-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill879; NOMUL-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill880; NOMUL-NEXT:    addi s0, sp, 48881; NOMUL-NEXT:    csrr a0, vlenb882; NOMUL-NEXT:    slli a0, a0, 2883; NOMUL-NEXT:    mv a1, a0884; NOMUL-NEXT:    slli a0, a0, 1885; NOMUL-NEXT:    add a0, a0, a1886; NOMUL-NEXT:    sub sp, sp, a0887; NOMUL-NEXT:    andi sp, sp, -32888; NOMUL-NEXT:    addi sp, s0, -48889; NOMUL-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload890; NOMUL-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload891; NOMUL-NEXT:    addi sp, sp, 48892; NOMUL-NEXT:    ret893;894; CHECK-NOZBA-VSETVLI-LABEL: lmul4_and_2_x2_1:895; CHECK-NOZBA-VSETVLI:       # %bb.0:896; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -48897; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill898; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill899; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 48900; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma901; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 12902; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a1903; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a0904; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -32905; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -48906; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload907; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload908; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 48909; CHECK-NOZBA-VSETVLI-NEXT:    ret910;911; CHECK-ZBA-VSETVLI-LABEL: lmul4_and_2_x2_1:912; CHECK-ZBA-VSETVLI:       # %bb.0:913; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -48914; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill915; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill916; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 48917; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma918; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 2919; CHECK-ZBA-VSETVLI-NEXT:    sh1add a0, a0, a0920; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a0921; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -32922; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -48923; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload924; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload925; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 48926; CHECK-ZBA-VSETVLI-NEXT:    ret927;928; CHECK-NOMUL-VSETVLI-LABEL: lmul4_and_2_x2_1:929; CHECK-NOMUL-VSETVLI:       # %bb.0:930; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -48931; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill932; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill933; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 48934; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma935; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 2936; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a0937; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 1938; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a1939; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a0940; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -32941; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -48942; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload943; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload944; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 48945; CHECK-NOMUL-VSETVLI-NEXT:    ret946  %v1 = alloca <vscale x 4 x i64>947  %v3 = alloca <vscale x 4 x i64>948  %v2 = alloca <vscale x 2 x i64>949  %v4 = alloca <vscale x 2 x i64>950  ret void951}952 953 954define void @gpr_and_lmul1_and_2() nounwind {955; NOZBA-LABEL: gpr_and_lmul1_and_2:956; NOZBA:       # %bb.0:957; NOZBA-NEXT:    addi sp, sp, -16958; NOZBA-NEXT:    csrr a0, vlenb959; NOZBA-NEXT:    slli a0, a0, 2960; NOZBA-NEXT:    sub sp, sp, a0961; NOZBA-NEXT:    li a0, 3962; NOZBA-NEXT:    sd a0, 8(sp)963; NOZBA-NEXT:    csrr a0, vlenb964; NOZBA-NEXT:    slli a0, a0, 2965; NOZBA-NEXT:    add sp, sp, a0966; NOZBA-NEXT:    addi sp, sp, 16967; NOZBA-NEXT:    ret968;969; ZBA-LABEL: gpr_and_lmul1_and_2:970; ZBA:       # %bb.0:971; ZBA-NEXT:    addi sp, sp, -16972; ZBA-NEXT:    csrr a0, vlenb973; ZBA-NEXT:    slli a0, a0, 2974; ZBA-NEXT:    sub sp, sp, a0975; ZBA-NEXT:    li a0, 3976; ZBA-NEXT:    sd a0, 8(sp)977; ZBA-NEXT:    csrr a0, vlenb978; ZBA-NEXT:    sh2add sp, a0, sp979; ZBA-NEXT:    addi sp, sp, 16980; ZBA-NEXT:    ret981;982; NOMUL-LABEL: gpr_and_lmul1_and_2:983; NOMUL:       # %bb.0:984; NOMUL-NEXT:    addi sp, sp, -16985; NOMUL-NEXT:    csrr a0, vlenb986; NOMUL-NEXT:    slli a0, a0, 2987; NOMUL-NEXT:    sub sp, sp, a0988; NOMUL-NEXT:    li a0, 3989; NOMUL-NEXT:    sd a0, 8(sp)990; NOMUL-NEXT:    csrr a0, vlenb991; NOMUL-NEXT:    slli a0, a0, 2992; NOMUL-NEXT:    add sp, sp, a0993; NOMUL-NEXT:    addi sp, sp, 16994; NOMUL-NEXT:    ret995;996; CHECK-NOZBA-VSETVLI-LABEL: gpr_and_lmul1_and_2:997; CHECK-NOZBA-VSETVLI:       # %bb.0:998; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -16999; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1000; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01001; CHECK-NOZBA-VSETVLI-NEXT:    li a0, 31002; CHECK-NOZBA-VSETVLI-NEXT:    sd a0, 8(sp)1003; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1004; CHECK-NOZBA-VSETVLI-NEXT:    add sp, sp, a01005; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 161006; CHECK-NOZBA-VSETVLI-NEXT:    ret1007;1008; CHECK-ZBA-VSETVLI-LABEL: gpr_and_lmul1_and_2:1009; CHECK-ZBA-VSETVLI:       # %bb.0:1010; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -161011; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1012; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01013; CHECK-ZBA-VSETVLI-NEXT:    li a0, 31014; CHECK-ZBA-VSETVLI-NEXT:    sd a0, 8(sp)1015; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1016; CHECK-ZBA-VSETVLI-NEXT:    add sp, sp, a01017; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 161018; CHECK-ZBA-VSETVLI-NEXT:    ret1019;1020; CHECK-NOMUL-VSETVLI-LABEL: gpr_and_lmul1_and_2:1021; CHECK-NOMUL-VSETVLI:       # %bb.0:1022; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -161023; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1024; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01025; CHECK-NOMUL-VSETVLI-NEXT:    li a0, 31026; CHECK-NOMUL-VSETVLI-NEXT:    sd a0, 8(sp)1027; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1028; CHECK-NOMUL-VSETVLI-NEXT:    add sp, sp, a01029; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 161030; CHECK-NOMUL-VSETVLI-NEXT:    ret1031  %x1 = alloca i641032  %v1 = alloca <vscale x 1 x i64>1033  %v2 = alloca <vscale x 2 x i64>1034  store volatile i64 3, ptr %x11035  ret void1036}1037 1038define void @gpr_and_lmul1_and_4() nounwind {1039; CHECK-LABEL: gpr_and_lmul1_and_4:1040; CHECK:       # %bb.0:1041; CHECK-NEXT:    addi sp, sp, -481042; CHECK-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill1043; CHECK-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill1044; CHECK-NEXT:    addi s0, sp, 481045; CHECK-NEXT:    csrr a0, vlenb1046; CHECK-NEXT:    slli a0, a0, 31047; CHECK-NEXT:    sub sp, sp, a01048; CHECK-NEXT:    andi sp, sp, -321049; CHECK-NEXT:    li a0, 31050; CHECK-NEXT:    sd a0, 8(sp)1051; CHECK-NEXT:    addi sp, s0, -481052; CHECK-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload1053; CHECK-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload1054; CHECK-NEXT:    addi sp, sp, 481055; CHECK-NEXT:    ret1056;1057; CHECK-NOZBA-VSETVLI-LABEL: gpr_and_lmul1_and_4:1058; CHECK-NOZBA-VSETVLI:       # %bb.0:1059; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -481060; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill1061; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill1062; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 481063; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma1064; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01065; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -321066; CHECK-NOZBA-VSETVLI-NEXT:    li a0, 31067; CHECK-NOZBA-VSETVLI-NEXT:    sd a0, 8(sp)1068; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -481069; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload1070; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload1071; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 481072; CHECK-NOZBA-VSETVLI-NEXT:    ret1073;1074; CHECK-ZBA-VSETVLI-LABEL: gpr_and_lmul1_and_4:1075; CHECK-ZBA-VSETVLI:       # %bb.0:1076; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -481077; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill1078; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill1079; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 481080; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma1081; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01082; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -321083; CHECK-ZBA-VSETVLI-NEXT:    li a0, 31084; CHECK-ZBA-VSETVLI-NEXT:    sd a0, 8(sp)1085; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -481086; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload1087; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload1088; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 481089; CHECK-ZBA-VSETVLI-NEXT:    ret1090;1091; CHECK-NOMUL-VSETVLI-LABEL: gpr_and_lmul1_and_4:1092; CHECK-NOMUL-VSETVLI:       # %bb.0:1093; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -481094; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 40(sp) # 8-byte Folded Spill1095; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 32(sp) # 8-byte Folded Spill1096; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 481097; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m8, ta, ma1098; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01099; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -321100; CHECK-NOMUL-VSETVLI-NEXT:    li a0, 31101; CHECK-NOMUL-VSETVLI-NEXT:    sd a0, 8(sp)1102; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -481103; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 40(sp) # 8-byte Folded Reload1104; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 32(sp) # 8-byte Folded Reload1105; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 481106; CHECK-NOMUL-VSETVLI-NEXT:    ret1107  %x1 = alloca i641108  %v1 = alloca <vscale x 1 x i64>1109  %v2 = alloca <vscale x 4 x i64>1110  store volatile i64 3, ptr %x11111  ret void1112}1113 1114define void @lmul_1_2_4_8() nounwind {1115; CHECK-LABEL: lmul_1_2_4_8:1116; CHECK:       # %bb.0:1117; CHECK-NEXT:    addi sp, sp, -801118; CHECK-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1119; CHECK-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1120; CHECK-NEXT:    addi s0, sp, 801121; CHECK-NEXT:    csrr a0, vlenb1122; CHECK-NEXT:    slli a0, a0, 41123; CHECK-NEXT:    sub sp, sp, a01124; CHECK-NEXT:    andi sp, sp, -641125; CHECK-NEXT:    addi sp, s0, -801126; CHECK-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1127; CHECK-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1128; CHECK-NEXT:    addi sp, sp, 801129; CHECK-NEXT:    ret1130;1131; CHECK-NOZBA-VSETVLI-LABEL: lmul_1_2_4_8:1132; CHECK-NOZBA-VSETVLI:       # %bb.0:1133; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -801134; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1135; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1136; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 801137; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1138; CHECK-NOZBA-VSETVLI-NEXT:    slli a0, a0, 41139; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01140; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -641141; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -801142; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1143; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1144; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 801145; CHECK-NOZBA-VSETVLI-NEXT:    ret1146;1147; CHECK-ZBA-VSETVLI-LABEL: lmul_1_2_4_8:1148; CHECK-ZBA-VSETVLI:       # %bb.0:1149; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -801150; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1151; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1152; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 801153; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1154; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 41155; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01156; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -641157; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -801158; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1159; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1160; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 801161; CHECK-ZBA-VSETVLI-NEXT:    ret1162;1163; CHECK-NOMUL-VSETVLI-LABEL: lmul_1_2_4_8:1164; CHECK-NOMUL-VSETVLI:       # %bb.0:1165; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -801166; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1167; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1168; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 801169; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1170; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 41171; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01172; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -641173; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -801174; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1175; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1176; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 801177; CHECK-NOMUL-VSETVLI-NEXT:    ret1178  %v1 = alloca <vscale x 1 x i64>1179  %v2 = alloca <vscale x 2 x i64>1180  %v4 = alloca <vscale x 4 x i64>1181  %v8 = alloca <vscale x 8 x i64>1182  ret void1183}1184 1185define void @lmul_1_2_4_8_x2_0() nounwind {1186; CHECK-LABEL: lmul_1_2_4_8_x2_0:1187; CHECK:       # %bb.0:1188; CHECK-NEXT:    addi sp, sp, -801189; CHECK-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1190; CHECK-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1191; CHECK-NEXT:    addi s0, sp, 801192; CHECK-NEXT:    csrr a0, vlenb1193; CHECK-NEXT:    slli a0, a0, 51194; CHECK-NEXT:    sub sp, sp, a01195; CHECK-NEXT:    andi sp, sp, -641196; CHECK-NEXT:    addi sp, s0, -801197; CHECK-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1198; CHECK-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1199; CHECK-NEXT:    addi sp, sp, 801200; CHECK-NEXT:    ret1201;1202; CHECK-NOZBA-VSETVLI-LABEL: lmul_1_2_4_8_x2_0:1203; CHECK-NOZBA-VSETVLI:       # %bb.0:1204; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -801205; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1206; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1207; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 801208; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1209; CHECK-NOZBA-VSETVLI-NEXT:    slli a0, a0, 51210; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01211; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -641212; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -801213; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1214; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1215; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 801216; CHECK-NOZBA-VSETVLI-NEXT:    ret1217;1218; CHECK-ZBA-VSETVLI-LABEL: lmul_1_2_4_8_x2_0:1219; CHECK-ZBA-VSETVLI:       # %bb.0:1220; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -801221; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1222; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1223; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 801224; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1225; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 51226; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01227; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -641228; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -801229; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1230; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1231; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 801232; CHECK-ZBA-VSETVLI-NEXT:    ret1233;1234; CHECK-NOMUL-VSETVLI-LABEL: lmul_1_2_4_8_x2_0:1235; CHECK-NOMUL-VSETVLI:       # %bb.0:1236; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -801237; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1238; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1239; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 801240; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1241; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 51242; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01243; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -641244; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -801245; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1246; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1247; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 801248; CHECK-NOMUL-VSETVLI-NEXT:    ret1249  %v1 = alloca <vscale x 1 x i64>1250  %v2 = alloca <vscale x 1 x i64>1251  %v3 = alloca <vscale x 2 x i64>1252  %v4 = alloca <vscale x 2 x i64>1253  %v5 = alloca <vscale x 4 x i64>1254  %v6 = alloca <vscale x 4 x i64>1255  %v7 = alloca <vscale x 8 x i64>1256  %v8 = alloca <vscale x 8 x i64>1257  ret void1258}1259 1260define void @lmul_1_2_4_8_x2_1() nounwind {1261; CHECK-LABEL: lmul_1_2_4_8_x2_1:1262; CHECK:       # %bb.0:1263; CHECK-NEXT:    addi sp, sp, -801264; CHECK-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1265; CHECK-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1266; CHECK-NEXT:    addi s0, sp, 801267; CHECK-NEXT:    csrr a0, vlenb1268; CHECK-NEXT:    slli a0, a0, 51269; CHECK-NEXT:    sub sp, sp, a01270; CHECK-NEXT:    andi sp, sp, -641271; CHECK-NEXT:    addi sp, s0, -801272; CHECK-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1273; CHECK-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1274; CHECK-NEXT:    addi sp, sp, 801275; CHECK-NEXT:    ret1276;1277; CHECK-NOZBA-VSETVLI-LABEL: lmul_1_2_4_8_x2_1:1278; CHECK-NOZBA-VSETVLI:       # %bb.0:1279; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -801280; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1281; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1282; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 801283; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1284; CHECK-NOZBA-VSETVLI-NEXT:    slli a0, a0, 51285; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01286; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -641287; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -801288; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1289; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1290; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 801291; CHECK-NOZBA-VSETVLI-NEXT:    ret1292;1293; CHECK-ZBA-VSETVLI-LABEL: lmul_1_2_4_8_x2_1:1294; CHECK-ZBA-VSETVLI:       # %bb.0:1295; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -801296; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1297; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1298; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 801299; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1300; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 51301; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01302; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -641303; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -801304; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1305; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1306; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 801307; CHECK-ZBA-VSETVLI-NEXT:    ret1308;1309; CHECK-NOMUL-VSETVLI-LABEL: lmul_1_2_4_8_x2_1:1310; CHECK-NOMUL-VSETVLI:       # %bb.0:1311; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -801312; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1313; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1314; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 801315; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1316; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 51317; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01318; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -641319; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -801320; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1321; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1322; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 801323; CHECK-NOMUL-VSETVLI-NEXT:    ret1324  %v8 = alloca <vscale x 8 x i64>1325  %v7 = alloca <vscale x 8 x i64>1326  %v6 = alloca <vscale x 4 x i64>1327  %v5 = alloca <vscale x 4 x i64>1328  %v4 = alloca <vscale x 2 x i64>1329  %v3 = alloca <vscale x 2 x i64>1330  %v2 = alloca <vscale x 1 x i64>1331  %v1 = alloca <vscale x 1 x i64>1332  ret void1333}1334 1335define void @masks() nounwind {1336; NOZBA-LABEL: masks:1337; NOZBA:       # %bb.0:1338; NOZBA-NEXT:    csrr a0, vlenb1339; NOZBA-NEXT:    slli a0, a0, 21340; NOZBA-NEXT:    sub sp, sp, a01341; NOZBA-NEXT:    csrr a0, vlenb1342; NOZBA-NEXT:    slli a0, a0, 21343; NOZBA-NEXT:    add sp, sp, a01344; NOZBA-NEXT:    ret1345;1346; ZBA-LABEL: masks:1347; ZBA:       # %bb.0:1348; ZBA-NEXT:    csrr a0, vlenb1349; ZBA-NEXT:    slli a0, a0, 21350; ZBA-NEXT:    sub sp, sp, a01351; ZBA-NEXT:    csrr a0, vlenb1352; ZBA-NEXT:    sh2add sp, a0, sp1353; ZBA-NEXT:    ret1354;1355; NOMUL-LABEL: masks:1356; NOMUL:       # %bb.0:1357; NOMUL-NEXT:    csrr a0, vlenb1358; NOMUL-NEXT:    slli a0, a0, 21359; NOMUL-NEXT:    sub sp, sp, a01360; NOMUL-NEXT:    csrr a0, vlenb1361; NOMUL-NEXT:    slli a0, a0, 21362; NOMUL-NEXT:    add sp, sp, a01363; NOMUL-NEXT:    ret1364;1365; CHECK-NOZBA-VSETVLI-LABEL: masks:1366; CHECK-NOZBA-VSETVLI:       # %bb.0:1367; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1368; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01369; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1370; CHECK-NOZBA-VSETVLI-NEXT:    add sp, sp, a01371; CHECK-NOZBA-VSETVLI-NEXT:    ret1372;1373; CHECK-ZBA-VSETVLI-LABEL: masks:1374; CHECK-ZBA-VSETVLI:       # %bb.0:1375; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1376; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01377; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1378; CHECK-ZBA-VSETVLI-NEXT:    add sp, sp, a01379; CHECK-ZBA-VSETVLI-NEXT:    ret1380;1381; CHECK-NOMUL-VSETVLI-LABEL: masks:1382; CHECK-NOMUL-VSETVLI:       # %bb.0:1383; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1384; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01385; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m4, ta, ma1386; CHECK-NOMUL-VSETVLI-NEXT:    add sp, sp, a01387; CHECK-NOMUL-VSETVLI-NEXT:    ret1388  %v1 = alloca <vscale x 1 x i1>1389  %v2 = alloca <vscale x 2 x i1>1390  %v4 = alloca <vscale x 4 x i1>1391  %v8 = alloca <vscale x 8 x i1>1392  ret void1393}1394 1395define void @lmul_8_x5() nounwind {1396; NOZBA-LABEL: lmul_8_x5:1397; NOZBA:       # %bb.0:1398; NOZBA-NEXT:    addi sp, sp, -801399; NOZBA-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1400; NOZBA-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1401; NOZBA-NEXT:    addi s0, sp, 801402; NOZBA-NEXT:    csrr a0, vlenb1403; NOZBA-NEXT:    li a1, 401404; NOZBA-NEXT:    mul a0, a0, a11405; NOZBA-NEXT:    sub sp, sp, a01406; NOZBA-NEXT:    andi sp, sp, -641407; NOZBA-NEXT:    addi sp, s0, -801408; NOZBA-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1409; NOZBA-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1410; NOZBA-NEXT:    addi sp, sp, 801411; NOZBA-NEXT:    ret1412;1413; ZBA-LABEL: lmul_8_x5:1414; ZBA:       # %bb.0:1415; ZBA-NEXT:    addi sp, sp, -801416; ZBA-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1417; ZBA-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1418; ZBA-NEXT:    addi s0, sp, 801419; ZBA-NEXT:    csrr a0, vlenb1420; ZBA-NEXT:    slli a0, a0, 31421; ZBA-NEXT:    sh2add a0, a0, a01422; ZBA-NEXT:    sub sp, sp, a01423; ZBA-NEXT:    andi sp, sp, -641424; ZBA-NEXT:    addi sp, s0, -801425; ZBA-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1426; ZBA-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1427; ZBA-NEXT:    addi sp, sp, 801428; ZBA-NEXT:    ret1429;1430; NOMUL-LABEL: lmul_8_x5:1431; NOMUL:       # %bb.0:1432; NOMUL-NEXT:    addi sp, sp, -801433; NOMUL-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1434; NOMUL-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1435; NOMUL-NEXT:    addi s0, sp, 801436; NOMUL-NEXT:    csrr a0, vlenb1437; NOMUL-NEXT:    slli a0, a0, 31438; NOMUL-NEXT:    mv a1, a01439; NOMUL-NEXT:    slli a0, a0, 21440; NOMUL-NEXT:    add a0, a0, a11441; NOMUL-NEXT:    sub sp, sp, a01442; NOMUL-NEXT:    andi sp, sp, -641443; NOMUL-NEXT:    addi sp, s0, -801444; NOMUL-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1445; NOMUL-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1446; NOMUL-NEXT:    addi sp, sp, 801447; NOMUL-NEXT:    ret1448;1449; CHECK-NOZBA-VSETVLI-LABEL: lmul_8_x5:1450; CHECK-NOZBA-VSETVLI:       # %bb.0:1451; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -801452; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1453; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1454; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 801455; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1456; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 401457; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a11458; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01459; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -641460; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -801461; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1462; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1463; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 801464; CHECK-NOZBA-VSETVLI-NEXT:    ret1465;1466; CHECK-ZBA-VSETVLI-LABEL: lmul_8_x5:1467; CHECK-ZBA-VSETVLI:       # %bb.0:1468; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -801469; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1470; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1471; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 801472; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1473; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 31474; CHECK-ZBA-VSETVLI-NEXT:    sh2add a0, a0, a01475; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01476; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -641477; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -801478; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1479; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1480; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 801481; CHECK-ZBA-VSETVLI-NEXT:    ret1482;1483; CHECK-NOMUL-VSETVLI-LABEL: lmul_8_x5:1484; CHECK-NOMUL-VSETVLI:       # %bb.0:1485; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -801486; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1487; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1488; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 801489; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1490; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 31491; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a01492; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 21493; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a11494; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01495; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -641496; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -801497; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1498; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1499; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 801500; CHECK-NOMUL-VSETVLI-NEXT:    ret1501  %v1 = alloca <vscale x 8 x i64>1502  %v2 = alloca <vscale x 8 x i64>1503  %v3 = alloca <vscale x 8 x i64>1504  %v4 = alloca <vscale x 8 x i64>1505  %v5 = alloca <vscale x 8 x i64>1506  ret void1507}1508 1509define void @lmul_8_x9() nounwind {1510; NOZBA-LABEL: lmul_8_x9:1511; NOZBA:       # %bb.0:1512; NOZBA-NEXT:    addi sp, sp, -801513; NOZBA-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1514; NOZBA-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1515; NOZBA-NEXT:    addi s0, sp, 801516; NOZBA-NEXT:    csrr a0, vlenb1517; NOZBA-NEXT:    li a1, 721518; NOZBA-NEXT:    mul a0, a0, a11519; NOZBA-NEXT:    sub sp, sp, a01520; NOZBA-NEXT:    andi sp, sp, -641521; NOZBA-NEXT:    addi sp, s0, -801522; NOZBA-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1523; NOZBA-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1524; NOZBA-NEXT:    addi sp, sp, 801525; NOZBA-NEXT:    ret1526;1527; ZBA-LABEL: lmul_8_x9:1528; ZBA:       # %bb.0:1529; ZBA-NEXT:    addi sp, sp, -801530; ZBA-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1531; ZBA-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1532; ZBA-NEXT:    addi s0, sp, 801533; ZBA-NEXT:    csrr a0, vlenb1534; ZBA-NEXT:    slli a0, a0, 31535; ZBA-NEXT:    sh3add a0, a0, a01536; ZBA-NEXT:    sub sp, sp, a01537; ZBA-NEXT:    andi sp, sp, -641538; ZBA-NEXT:    addi sp, s0, -801539; ZBA-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1540; ZBA-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1541; ZBA-NEXT:    addi sp, sp, 801542; ZBA-NEXT:    ret1543;1544; NOMUL-LABEL: lmul_8_x9:1545; NOMUL:       # %bb.0:1546; NOMUL-NEXT:    addi sp, sp, -801547; NOMUL-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1548; NOMUL-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1549; NOMUL-NEXT:    addi s0, sp, 801550; NOMUL-NEXT:    csrr a0, vlenb1551; NOMUL-NEXT:    slli a0, a0, 31552; NOMUL-NEXT:    mv a1, a01553; NOMUL-NEXT:    slli a0, a0, 31554; NOMUL-NEXT:    add a0, a0, a11555; NOMUL-NEXT:    sub sp, sp, a01556; NOMUL-NEXT:    andi sp, sp, -641557; NOMUL-NEXT:    addi sp, s0, -801558; NOMUL-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1559; NOMUL-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1560; NOMUL-NEXT:    addi sp, sp, 801561; NOMUL-NEXT:    ret1562;1563; CHECK-NOZBA-VSETVLI-LABEL: lmul_8_x9:1564; CHECK-NOZBA-VSETVLI:       # %bb.0:1565; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -801566; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1567; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1568; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 801569; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1570; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 721571; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a11572; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01573; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -641574; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -801575; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1576; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1577; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 801578; CHECK-NOZBA-VSETVLI-NEXT:    ret1579;1580; CHECK-ZBA-VSETVLI-LABEL: lmul_8_x9:1581; CHECK-ZBA-VSETVLI:       # %bb.0:1582; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -801583; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1584; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1585; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 801586; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1587; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 31588; CHECK-ZBA-VSETVLI-NEXT:    sh3add a0, a0, a01589; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01590; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -641591; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -801592; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1593; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1594; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 801595; CHECK-ZBA-VSETVLI-NEXT:    ret1596;1597; CHECK-NOMUL-VSETVLI-LABEL: lmul_8_x9:1598; CHECK-NOMUL-VSETVLI:       # %bb.0:1599; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -801600; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 72(sp) # 8-byte Folded Spill1601; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 64(sp) # 8-byte Folded Spill1602; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 801603; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1604; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 31605; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a01606; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 31607; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a11608; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01609; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -641610; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -801611; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 72(sp) # 8-byte Folded Reload1612; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 64(sp) # 8-byte Folded Reload1613; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 801614; CHECK-NOMUL-VSETVLI-NEXT:    ret1615  %v1 = alloca <vscale x 8 x i64>1616  %v2 = alloca <vscale x 8 x i64>1617  %v3 = alloca <vscale x 8 x i64>1618  %v4 = alloca <vscale x 8 x i64>1619  %v5 = alloca <vscale x 8 x i64>1620  %v6 = alloca <vscale x 8 x i64>1621  %v7 = alloca <vscale x 8 x i64>1622  %v8 = alloca <vscale x 8 x i64>1623  %v9 = alloca <vscale x 8 x i64>1624  ret void1625}1626 1627define void @lmul_16_align() nounwind {1628; NOZBA-LABEL: lmul_16_align:1629; NOZBA:       # %bb.0:1630; NOZBA-NEXT:    addi sp, sp, -1441631; NOZBA-NEXT:    sd ra, 136(sp) # 8-byte Folded Spill1632; NOZBA-NEXT:    sd s0, 128(sp) # 8-byte Folded Spill1633; NOZBA-NEXT:    addi s0, sp, 1441634; NOZBA-NEXT:    csrr a0, vlenb1635; NOZBA-NEXT:    li a1, 241636; NOZBA-NEXT:    mul a0, a0, a11637; NOZBA-NEXT:    sub sp, sp, a01638; NOZBA-NEXT:    andi sp, sp, -1281639; NOZBA-NEXT:    vsetvli a0, zero, e64, m8, ta, ma1640; NOZBA-NEXT:    vmv.v.i v8, 01641; NOZBA-NEXT:    csrr a0, vlenb1642; NOZBA-NEXT:    add a0, sp, a01643; NOZBA-NEXT:    addi a0, a0, 1281644; NOZBA-NEXT:    csrr a1, vlenb1645; NOZBA-NEXT:    vs8r.v v8, (a0)1646; NOZBA-NEXT:    slli a1, a1, 31647; NOZBA-NEXT:    add a0, a0, a11648; NOZBA-NEXT:    vs8r.v v8, (a0)1649; NOZBA-NEXT:    vsetvli a0, zero, e64, m1, ta, ma1650; NOZBA-NEXT:    vmv.v.i v8, 01651; NOZBA-NEXT:    addi a0, sp, 1281652; NOZBA-NEXT:    vs1r.v v8, (a0)1653; NOZBA-NEXT:    addi sp, s0, -1441654; NOZBA-NEXT:    ld ra, 136(sp) # 8-byte Folded Reload1655; NOZBA-NEXT:    ld s0, 128(sp) # 8-byte Folded Reload1656; NOZBA-NEXT:    addi sp, sp, 1441657; NOZBA-NEXT:    ret1658;1659; ZBA-LABEL: lmul_16_align:1660; ZBA:       # %bb.0:1661; ZBA-NEXT:    addi sp, sp, -1441662; ZBA-NEXT:    sd ra, 136(sp) # 8-byte Folded Spill1663; ZBA-NEXT:    sd s0, 128(sp) # 8-byte Folded Spill1664; ZBA-NEXT:    addi s0, sp, 1441665; ZBA-NEXT:    csrr a0, vlenb1666; ZBA-NEXT:    slli a0, a0, 31667; ZBA-NEXT:    sh1add a0, a0, a01668; ZBA-NEXT:    sub sp, sp, a01669; ZBA-NEXT:    andi sp, sp, -1281670; ZBA-NEXT:    vsetvli a0, zero, e64, m8, ta, ma1671; ZBA-NEXT:    vmv.v.i v8, 01672; ZBA-NEXT:    csrr a0, vlenb1673; ZBA-NEXT:    add a0, sp, a01674; ZBA-NEXT:    addi a0, a0, 1281675; ZBA-NEXT:    csrr a1, vlenb1676; ZBA-NEXT:    vs8r.v v8, (a0)1677; ZBA-NEXT:    sh3add a0, a1, a01678; ZBA-NEXT:    vs8r.v v8, (a0)1679; ZBA-NEXT:    vsetvli a0, zero, e64, m1, ta, ma1680; ZBA-NEXT:    vmv.v.i v8, 01681; ZBA-NEXT:    addi a0, sp, 1281682; ZBA-NEXT:    vs1r.v v8, (a0)1683; ZBA-NEXT:    addi sp, s0, -1441684; ZBA-NEXT:    ld ra, 136(sp) # 8-byte Folded Reload1685; ZBA-NEXT:    ld s0, 128(sp) # 8-byte Folded Reload1686; ZBA-NEXT:    addi sp, sp, 1441687; ZBA-NEXT:    ret1688;1689; NOMUL-LABEL: lmul_16_align:1690; NOMUL:       # %bb.0:1691; NOMUL-NEXT:    addi sp, sp, -1441692; NOMUL-NEXT:    sd ra, 136(sp) # 8-byte Folded Spill1693; NOMUL-NEXT:    sd s0, 128(sp) # 8-byte Folded Spill1694; NOMUL-NEXT:    addi s0, sp, 1441695; NOMUL-NEXT:    csrr a0, vlenb1696; NOMUL-NEXT:    slli a0, a0, 31697; NOMUL-NEXT:    mv a1, a01698; NOMUL-NEXT:    slli a0, a0, 11699; NOMUL-NEXT:    add a0, a0, a11700; NOMUL-NEXT:    sub sp, sp, a01701; NOMUL-NEXT:    andi sp, sp, -1281702; NOMUL-NEXT:    vsetvli a0, zero, e64, m8, ta, ma1703; NOMUL-NEXT:    vmv.v.i v8, 01704; NOMUL-NEXT:    csrr a0, vlenb1705; NOMUL-NEXT:    add a0, sp, a01706; NOMUL-NEXT:    addi a0, a0, 1281707; NOMUL-NEXT:    csrr a1, vlenb1708; NOMUL-NEXT:    vs8r.v v8, (a0)1709; NOMUL-NEXT:    slli a1, a1, 31710; NOMUL-NEXT:    add a0, a0, a11711; NOMUL-NEXT:    vs8r.v v8, (a0)1712; NOMUL-NEXT:    vsetvli a0, zero, e64, m1, ta, ma1713; NOMUL-NEXT:    vmv.v.i v8, 01714; NOMUL-NEXT:    addi a0, sp, 1281715; NOMUL-NEXT:    vs1r.v v8, (a0)1716; NOMUL-NEXT:    addi sp, s0, -1441717; NOMUL-NEXT:    ld ra, 136(sp) # 8-byte Folded Reload1718; NOMUL-NEXT:    ld s0, 128(sp) # 8-byte Folded Reload1719; NOMUL-NEXT:    addi sp, sp, 1441720; NOMUL-NEXT:    ret1721;1722; CHECK-NOZBA-VSETVLI-LABEL: lmul_16_align:1723; CHECK-NOZBA-VSETVLI:       # %bb.0:1724; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, -1441725; CHECK-NOZBA-VSETVLI-NEXT:    sd ra, 136(sp) # 8-byte Folded Spill1726; CHECK-NOZBA-VSETVLI-NEXT:    sd s0, 128(sp) # 8-byte Folded Spill1727; CHECK-NOZBA-VSETVLI-NEXT:    addi s0, sp, 1441728; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1729; CHECK-NOZBA-VSETVLI-NEXT:    li a1, 241730; CHECK-NOZBA-VSETVLI-NEXT:    mul a0, a0, a11731; CHECK-NOZBA-VSETVLI-NEXT:    sub sp, sp, a01732; CHECK-NOZBA-VSETVLI-NEXT:    andi sp, sp, -1281733; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e64, m8, ta, ma1734; CHECK-NOZBA-VSETVLI-NEXT:    vmv.v.i v8, 01735; CHECK-NOZBA-VSETVLI-NEXT:    csrr a0, vlenb1736; CHECK-NOZBA-VSETVLI-NEXT:    add a0, sp, a01737; CHECK-NOZBA-VSETVLI-NEXT:    addi a0, a0, 1281738; CHECK-NOZBA-VSETVLI-NEXT:    csrr a1, vlenb1739; CHECK-NOZBA-VSETVLI-NEXT:    vs8r.v v8, (a0)1740; CHECK-NOZBA-VSETVLI-NEXT:    slli a1, a1, 31741; CHECK-NOZBA-VSETVLI-NEXT:    add a0, a0, a11742; CHECK-NOZBA-VSETVLI-NEXT:    vs8r.v v8, (a0)1743; CHECK-NOZBA-VSETVLI-NEXT:    vsetvli a0, zero, e64, m1, ta, ma1744; CHECK-NOZBA-VSETVLI-NEXT:    vmv.v.i v8, 01745; CHECK-NOZBA-VSETVLI-NEXT:    addi a0, sp, 1281746; CHECK-NOZBA-VSETVLI-NEXT:    vs1r.v v8, (a0)1747; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, s0, -1441748; CHECK-NOZBA-VSETVLI-NEXT:    ld ra, 136(sp) # 8-byte Folded Reload1749; CHECK-NOZBA-VSETVLI-NEXT:    ld s0, 128(sp) # 8-byte Folded Reload1750; CHECK-NOZBA-VSETVLI-NEXT:    addi sp, sp, 1441751; CHECK-NOZBA-VSETVLI-NEXT:    ret1752;1753; CHECK-ZBA-VSETVLI-LABEL: lmul_16_align:1754; CHECK-ZBA-VSETVLI:       # %bb.0:1755; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, -1441756; CHECK-ZBA-VSETVLI-NEXT:    sd ra, 136(sp) # 8-byte Folded Spill1757; CHECK-ZBA-VSETVLI-NEXT:    sd s0, 128(sp) # 8-byte Folded Spill1758; CHECK-ZBA-VSETVLI-NEXT:    addi s0, sp, 1441759; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1760; CHECK-ZBA-VSETVLI-NEXT:    slli a0, a0, 31761; CHECK-ZBA-VSETVLI-NEXT:    sh1add a0, a0, a01762; CHECK-ZBA-VSETVLI-NEXT:    sub sp, sp, a01763; CHECK-ZBA-VSETVLI-NEXT:    andi sp, sp, -1281764; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e64, m8, ta, ma1765; CHECK-ZBA-VSETVLI-NEXT:    vmv.v.i v8, 01766; CHECK-ZBA-VSETVLI-NEXT:    csrr a0, vlenb1767; CHECK-ZBA-VSETVLI-NEXT:    add a0, sp, a01768; CHECK-ZBA-VSETVLI-NEXT:    addi a0, a0, 1281769; CHECK-ZBA-VSETVLI-NEXT:    csrr a1, vlenb1770; CHECK-ZBA-VSETVLI-NEXT:    vs8r.v v8, (a0)1771; CHECK-ZBA-VSETVLI-NEXT:    sh3add a0, a1, a01772; CHECK-ZBA-VSETVLI-NEXT:    vs8r.v v8, (a0)1773; CHECK-ZBA-VSETVLI-NEXT:    vsetvli a0, zero, e64, m1, ta, ma1774; CHECK-ZBA-VSETVLI-NEXT:    vmv.v.i v8, 01775; CHECK-ZBA-VSETVLI-NEXT:    addi a0, sp, 1281776; CHECK-ZBA-VSETVLI-NEXT:    vs1r.v v8, (a0)1777; CHECK-ZBA-VSETVLI-NEXT:    addi sp, s0, -1441778; CHECK-ZBA-VSETVLI-NEXT:    ld ra, 136(sp) # 8-byte Folded Reload1779; CHECK-ZBA-VSETVLI-NEXT:    ld s0, 128(sp) # 8-byte Folded Reload1780; CHECK-ZBA-VSETVLI-NEXT:    addi sp, sp, 1441781; CHECK-ZBA-VSETVLI-NEXT:    ret1782;1783; CHECK-NOMUL-VSETVLI-LABEL: lmul_16_align:1784; CHECK-NOMUL-VSETVLI:       # %bb.0:1785; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, -1441786; CHECK-NOMUL-VSETVLI-NEXT:    sd ra, 136(sp) # 8-byte Folded Spill1787; CHECK-NOMUL-VSETVLI-NEXT:    sd s0, 128(sp) # 8-byte Folded Spill1788; CHECK-NOMUL-VSETVLI-NEXT:    addi s0, sp, 1441789; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e8, m1, ta, ma1790; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 31791; CHECK-NOMUL-VSETVLI-NEXT:    mv a1, a01792; CHECK-NOMUL-VSETVLI-NEXT:    slli a0, a0, 11793; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a11794; CHECK-NOMUL-VSETVLI-NEXT:    sub sp, sp, a01795; CHECK-NOMUL-VSETVLI-NEXT:    andi sp, sp, -1281796; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e64, m8, ta, ma1797; CHECK-NOMUL-VSETVLI-NEXT:    vmv.v.i v8, 01798; CHECK-NOMUL-VSETVLI-NEXT:    csrr a0, vlenb1799; CHECK-NOMUL-VSETVLI-NEXT:    add a0, sp, a01800; CHECK-NOMUL-VSETVLI-NEXT:    addi a0, a0, 1281801; CHECK-NOMUL-VSETVLI-NEXT:    csrr a1, vlenb1802; CHECK-NOMUL-VSETVLI-NEXT:    vs8r.v v8, (a0)1803; CHECK-NOMUL-VSETVLI-NEXT:    slli a1, a1, 31804; CHECK-NOMUL-VSETVLI-NEXT:    add a0, a0, a11805; CHECK-NOMUL-VSETVLI-NEXT:    vs8r.v v8, (a0)1806; CHECK-NOMUL-VSETVLI-NEXT:    vsetvli a0, zero, e64, m1, ta, ma1807; CHECK-NOMUL-VSETVLI-NEXT:    vmv.v.i v8, 01808; CHECK-NOMUL-VSETVLI-NEXT:    addi a0, sp, 1281809; CHECK-NOMUL-VSETVLI-NEXT:    vs1r.v v8, (a0)1810; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, s0, -1441811; CHECK-NOMUL-VSETVLI-NEXT:    ld ra, 136(sp) # 8-byte Folded Reload1812; CHECK-NOMUL-VSETVLI-NEXT:    ld s0, 128(sp) # 8-byte Folded Reload1813; CHECK-NOMUL-VSETVLI-NEXT:    addi sp, sp, 1441814; CHECK-NOMUL-VSETVLI-NEXT:    ret1815  %v1 = alloca <vscale x 16 x i64>1816  %v2 = alloca <vscale x 1 x i64>1817  store <vscale x 16 x i64> zeroinitializer, ptr %v11818  store <vscale x 1 x i64> zeroinitializer, ptr %v21819  ret void1820}1821