brintos

brintos / llvm-project-archived public Read only

0
0
Text · 45.9 KiB · 4b05de7 Raw
1242 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=riscv32 -mattr=+v,+f,+d -target-abi=ilp32d -verify-machineinstrs < %s \3; RUN:   | FileCheck %s --check-prefix=RV324; RUN: llc -mtriple=riscv64 -mattr=+v,+f,+d -target-abi=lp64d -verify-machineinstrs < %s \5; RUN:   | FileCheck %s --check-prefix=RV646 7define <1 x float> @powi_v1f32(<1 x float> %x, i32 %y) nounwind {8; RV32-LABEL: powi_v1f32:9; RV32:       # %bb.0:10; RV32-NEXT:    addi sp, sp, -1611; RV32-NEXT:    sw ra, 12(sp) # 4-byte Folded Spill12; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma13; RV32-NEXT:    vfmv.f.s fa0, v814; RV32-NEXT:    call __powisf215; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma16; RV32-NEXT:    vfmv.s.f v8, fa017; RV32-NEXT:    lw ra, 12(sp) # 4-byte Folded Reload18; RV32-NEXT:    addi sp, sp, 1619; RV32-NEXT:    ret20;21; RV64-LABEL: powi_v1f32:22; RV64:       # %bb.0:23; RV64-NEXT:    addi sp, sp, -1624; RV64-NEXT:    sd ra, 8(sp) # 8-byte Folded Spill25; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma26; RV64-NEXT:    vfmv.f.s fa0, v827; RV64-NEXT:    sext.w a0, a028; RV64-NEXT:    call __powisf229; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma30; RV64-NEXT:    vfmv.s.f v8, fa031; RV64-NEXT:    ld ra, 8(sp) # 8-byte Folded Reload32; RV64-NEXT:    addi sp, sp, 1633; RV64-NEXT:    ret34  %a = call <1 x float> @llvm.powi.v1f32.i32(<1 x float> %x, i32 %y)35  ret <1 x float> %a36}37 38define <2 x float> @powi_v2f32(<2 x float> %x, i32 %y) nounwind {39; RV32-LABEL: powi_v2f32:40; RV32:       # %bb.0:41; RV32-NEXT:    addi sp, sp, -3242; RV32-NEXT:    sw ra, 28(sp) # 4-byte Folded Spill43; RV32-NEXT:    sw s0, 24(sp) # 4-byte Folded Spill44; RV32-NEXT:    fsd fs0, 16(sp) # 8-byte Folded Spill45; RV32-NEXT:    csrr a1, vlenb46; RV32-NEXT:    sub sp, sp, a147; RV32-NEXT:    mv s0, a048; RV32-NEXT:    addi a1, sp, 1649; RV32-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill50; RV32-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma51; RV32-NEXT:    vslidedown.vi v9, v8, 152; RV32-NEXT:    vfmv.f.s fa0, v953; RV32-NEXT:    call __powisf254; RV32-NEXT:    fmv.s fs0, fa055; RV32-NEXT:    flw fa0, 16(sp) # 8-byte Folded Reload56; RV32-NEXT:    mv a0, s057; RV32-NEXT:    call __powisf258; RV32-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma59; RV32-NEXT:    vfmv.v.f v8, fa060; RV32-NEXT:    vfslide1down.vf v8, v8, fs061; RV32-NEXT:    csrr a0, vlenb62; RV32-NEXT:    add sp, sp, a063; RV32-NEXT:    lw ra, 28(sp) # 4-byte Folded Reload64; RV32-NEXT:    lw s0, 24(sp) # 4-byte Folded Reload65; RV32-NEXT:    fld fs0, 16(sp) # 8-byte Folded Reload66; RV32-NEXT:    addi sp, sp, 3267; RV32-NEXT:    ret68;69; RV64-LABEL: powi_v2f32:70; RV64:       # %bb.0:71; RV64-NEXT:    addi sp, sp, -6472; RV64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill73; RV64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill74; RV64-NEXT:    fsd fs0, 40(sp) # 8-byte Folded Spill75; RV64-NEXT:    csrr a1, vlenb76; RV64-NEXT:    sub sp, sp, a177; RV64-NEXT:    addi a1, sp, 3278; RV64-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill79; RV64-NEXT:    sext.w s0, a080; RV64-NEXT:    vsetivli zero, 1, e32, mf2, ta, ma81; RV64-NEXT:    vslidedown.vi v9, v8, 182; RV64-NEXT:    vfmv.f.s fa0, v983; RV64-NEXT:    mv a0, s084; RV64-NEXT:    call __powisf285; RV64-NEXT:    fmv.s fs0, fa086; RV64-NEXT:    flw fa0, 32(sp) # 8-byte Folded Reload87; RV64-NEXT:    mv a0, s088; RV64-NEXT:    call __powisf289; RV64-NEXT:    vsetivli zero, 2, e32, mf2, ta, ma90; RV64-NEXT:    vfmv.v.f v8, fa091; RV64-NEXT:    vfslide1down.vf v8, v8, fs092; RV64-NEXT:    csrr a0, vlenb93; RV64-NEXT:    add sp, sp, a094; RV64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload95; RV64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload96; RV64-NEXT:    fld fs0, 40(sp) # 8-byte Folded Reload97; RV64-NEXT:    addi sp, sp, 6498; RV64-NEXT:    ret99  %a = call <2 x float> @llvm.powi.v2f32.i32(<2 x float> %x, i32 %y)100  ret <2 x float> %a101}102 103define <3 x float> @powi_v3f32(<3 x float> %x, i32 %y) nounwind {104; RV32-LABEL: powi_v3f32:105; RV32:       # %bb.0:106; RV32-NEXT:    addi sp, sp, -32107; RV32-NEXT:    sw ra, 28(sp) # 4-byte Folded Spill108; RV32-NEXT:    sw s0, 24(sp) # 4-byte Folded Spill109; RV32-NEXT:    fsd fs0, 16(sp) # 8-byte Folded Spill110; RV32-NEXT:    csrr a1, vlenb111; RV32-NEXT:    slli a1, a1, 1112; RV32-NEXT:    sub sp, sp, a1113; RV32-NEXT:    mv s0, a0114; RV32-NEXT:    csrr a1, vlenb115; RV32-NEXT:    add a1, sp, a1116; RV32-NEXT:    addi a1, a1, 16117; RV32-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill118; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma119; RV32-NEXT:    vslidedown.vi v9, v8, 1120; RV32-NEXT:    vfmv.f.s fa0, v9121; RV32-NEXT:    call __powisf2122; RV32-NEXT:    fmv.s fs0, fa0123; RV32-NEXT:    csrr a0, vlenb124; RV32-NEXT:    add a0, sp, a0125; RV32-NEXT:    flw fa0, 16(a0) # 8-byte Folded Reload126; RV32-NEXT:    mv a0, s0127; RV32-NEXT:    call __powisf2128; RV32-NEXT:    vsetivli zero, 4, e32, m1, ta, ma129; RV32-NEXT:    vfmv.v.f v8, fa0130; RV32-NEXT:    vfslide1down.vf v8, v8, fs0131; RV32-NEXT:    addi a0, sp, 16132; RV32-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill133; RV32-NEXT:    csrr a0, vlenb134; RV32-NEXT:    add a0, sp, a0135; RV32-NEXT:    addi a0, a0, 16136; RV32-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload137; RV32-NEXT:    vslidedown.vi v8, v8, 2138; RV32-NEXT:    vfmv.f.s fa0, v8139; RV32-NEXT:    mv a0, s0140; RV32-NEXT:    call __powisf2141; RV32-NEXT:    addi a0, sp, 16142; RV32-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload143; RV32-NEXT:    vsetivli zero, 4, e32, m1, ta, ma144; RV32-NEXT:    vfslide1down.vf v8, v8, fa0145; RV32-NEXT:    vslidedown.vi v8, v8, 1146; RV32-NEXT:    csrr a0, vlenb147; RV32-NEXT:    slli a0, a0, 1148; RV32-NEXT:    add sp, sp, a0149; RV32-NEXT:    lw ra, 28(sp) # 4-byte Folded Reload150; RV32-NEXT:    lw s0, 24(sp) # 4-byte Folded Reload151; RV32-NEXT:    fld fs0, 16(sp) # 8-byte Folded Reload152; RV32-NEXT:    addi sp, sp, 32153; RV32-NEXT:    ret154;155; RV64-LABEL: powi_v3f32:156; RV64:       # %bb.0:157; RV64-NEXT:    addi sp, sp, -64158; RV64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill159; RV64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill160; RV64-NEXT:    fsd fs0, 40(sp) # 8-byte Folded Spill161; RV64-NEXT:    csrr a1, vlenb162; RV64-NEXT:    slli a1, a1, 1163; RV64-NEXT:    sub sp, sp, a1164; RV64-NEXT:    csrr a1, vlenb165; RV64-NEXT:    add a1, sp, a1166; RV64-NEXT:    addi a1, a1, 32167; RV64-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill168; RV64-NEXT:    sext.w s0, a0169; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma170; RV64-NEXT:    vslidedown.vi v9, v8, 1171; RV64-NEXT:    vfmv.f.s fa0, v9172; RV64-NEXT:    mv a0, s0173; RV64-NEXT:    call __powisf2174; RV64-NEXT:    fmv.s fs0, fa0175; RV64-NEXT:    csrr a0, vlenb176; RV64-NEXT:    add a0, sp, a0177; RV64-NEXT:    flw fa0, 32(a0) # 8-byte Folded Reload178; RV64-NEXT:    mv a0, s0179; RV64-NEXT:    call __powisf2180; RV64-NEXT:    vsetivli zero, 4, e32, m1, ta, ma181; RV64-NEXT:    vfmv.v.f v8, fa0182; RV64-NEXT:    vfslide1down.vf v8, v8, fs0183; RV64-NEXT:    addi a0, sp, 32184; RV64-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill185; RV64-NEXT:    csrr a0, vlenb186; RV64-NEXT:    add a0, sp, a0187; RV64-NEXT:    addi a0, a0, 32188; RV64-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload189; RV64-NEXT:    vslidedown.vi v8, v8, 2190; RV64-NEXT:    vfmv.f.s fa0, v8191; RV64-NEXT:    mv a0, s0192; RV64-NEXT:    call __powisf2193; RV64-NEXT:    addi a0, sp, 32194; RV64-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload195; RV64-NEXT:    vsetivli zero, 4, e32, m1, ta, ma196; RV64-NEXT:    vfslide1down.vf v8, v8, fa0197; RV64-NEXT:    vslidedown.vi v8, v8, 1198; RV64-NEXT:    csrr a0, vlenb199; RV64-NEXT:    slli a0, a0, 1200; RV64-NEXT:    add sp, sp, a0201; RV64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload202; RV64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload203; RV64-NEXT:    fld fs0, 40(sp) # 8-byte Folded Reload204; RV64-NEXT:    addi sp, sp, 64205; RV64-NEXT:    ret206  %a = call <3 x float> @llvm.powi.v3f32.i32(<3 x float> %x, i32 %y)207  ret <3 x float> %a208}209 210define <4 x float> @powi_v4f32(<4 x float> %x, i32 %y) nounwind {211; RV32-LABEL: powi_v4f32:212; RV32:       # %bb.0:213; RV32-NEXT:    addi sp, sp, -32214; RV32-NEXT:    sw ra, 28(sp) # 4-byte Folded Spill215; RV32-NEXT:    sw s0, 24(sp) # 4-byte Folded Spill216; RV32-NEXT:    fsd fs0, 16(sp) # 8-byte Folded Spill217; RV32-NEXT:    csrr a1, vlenb218; RV32-NEXT:    slli a1, a1, 1219; RV32-NEXT:    sub sp, sp, a1220; RV32-NEXT:    mv s0, a0221; RV32-NEXT:    csrr a1, vlenb222; RV32-NEXT:    add a1, sp, a1223; RV32-NEXT:    addi a1, a1, 16224; RV32-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill225; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma226; RV32-NEXT:    vslidedown.vi v9, v8, 1227; RV32-NEXT:    vfmv.f.s fa0, v9228; RV32-NEXT:    call __powisf2229; RV32-NEXT:    fmv.s fs0, fa0230; RV32-NEXT:    csrr a0, vlenb231; RV32-NEXT:    add a0, sp, a0232; RV32-NEXT:    flw fa0, 16(a0) # 8-byte Folded Reload233; RV32-NEXT:    mv a0, s0234; RV32-NEXT:    call __powisf2235; RV32-NEXT:    vsetivli zero, 4, e32, m1, ta, ma236; RV32-NEXT:    vfmv.v.f v8, fa0237; RV32-NEXT:    vfslide1down.vf v8, v8, fs0238; RV32-NEXT:    addi a0, sp, 16239; RV32-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill240; RV32-NEXT:    csrr a0, vlenb241; RV32-NEXT:    add a0, sp, a0242; RV32-NEXT:    addi a0, a0, 16243; RV32-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload244; RV32-NEXT:    vslidedown.vi v8, v8, 2245; RV32-NEXT:    vfmv.f.s fa0, v8246; RV32-NEXT:    mv a0, s0247; RV32-NEXT:    call __powisf2248; RV32-NEXT:    addi a0, sp, 16249; RV32-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload250; RV32-NEXT:    vsetivli zero, 4, e32, m1, ta, ma251; RV32-NEXT:    vfslide1down.vf v8, v8, fa0252; RV32-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill253; RV32-NEXT:    csrr a0, vlenb254; RV32-NEXT:    add a0, sp, a0255; RV32-NEXT:    addi a0, a0, 16256; RV32-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload257; RV32-NEXT:    vslidedown.vi v8, v8, 3258; RV32-NEXT:    vfmv.f.s fa0, v8259; RV32-NEXT:    mv a0, s0260; RV32-NEXT:    call __powisf2261; RV32-NEXT:    addi a0, sp, 16262; RV32-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload263; RV32-NEXT:    vsetivli zero, 4, e32, m1, ta, ma264; RV32-NEXT:    vfslide1down.vf v8, v8, fa0265; RV32-NEXT:    csrr a0, vlenb266; RV32-NEXT:    slli a0, a0, 1267; RV32-NEXT:    add sp, sp, a0268; RV32-NEXT:    lw ra, 28(sp) # 4-byte Folded Reload269; RV32-NEXT:    lw s0, 24(sp) # 4-byte Folded Reload270; RV32-NEXT:    fld fs0, 16(sp) # 8-byte Folded Reload271; RV32-NEXT:    addi sp, sp, 32272; RV32-NEXT:    ret273;274; RV64-LABEL: powi_v4f32:275; RV64:       # %bb.0:276; RV64-NEXT:    addi sp, sp, -64277; RV64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill278; RV64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill279; RV64-NEXT:    fsd fs0, 40(sp) # 8-byte Folded Spill280; RV64-NEXT:    csrr a1, vlenb281; RV64-NEXT:    slli a1, a1, 1282; RV64-NEXT:    sub sp, sp, a1283; RV64-NEXT:    csrr a1, vlenb284; RV64-NEXT:    add a1, sp, a1285; RV64-NEXT:    addi a1, a1, 32286; RV64-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill287; RV64-NEXT:    sext.w s0, a0288; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma289; RV64-NEXT:    vslidedown.vi v9, v8, 1290; RV64-NEXT:    vfmv.f.s fa0, v9291; RV64-NEXT:    mv a0, s0292; RV64-NEXT:    call __powisf2293; RV64-NEXT:    fmv.s fs0, fa0294; RV64-NEXT:    csrr a0, vlenb295; RV64-NEXT:    add a0, sp, a0296; RV64-NEXT:    flw fa0, 32(a0) # 8-byte Folded Reload297; RV64-NEXT:    mv a0, s0298; RV64-NEXT:    call __powisf2299; RV64-NEXT:    vsetivli zero, 4, e32, m1, ta, ma300; RV64-NEXT:    vfmv.v.f v8, fa0301; RV64-NEXT:    vfslide1down.vf v8, v8, fs0302; RV64-NEXT:    addi a0, sp, 32303; RV64-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill304; RV64-NEXT:    csrr a0, vlenb305; RV64-NEXT:    add a0, sp, a0306; RV64-NEXT:    addi a0, a0, 32307; RV64-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload308; RV64-NEXT:    vslidedown.vi v8, v8, 2309; RV64-NEXT:    vfmv.f.s fa0, v8310; RV64-NEXT:    mv a0, s0311; RV64-NEXT:    call __powisf2312; RV64-NEXT:    addi a0, sp, 32313; RV64-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload314; RV64-NEXT:    vsetivli zero, 4, e32, m1, ta, ma315; RV64-NEXT:    vfslide1down.vf v8, v8, fa0316; RV64-NEXT:    vs1r.v v8, (a0) # vscale x 8-byte Folded Spill317; RV64-NEXT:    csrr a0, vlenb318; RV64-NEXT:    add a0, sp, a0319; RV64-NEXT:    addi a0, a0, 32320; RV64-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload321; RV64-NEXT:    vslidedown.vi v8, v8, 3322; RV64-NEXT:    vfmv.f.s fa0, v8323; RV64-NEXT:    mv a0, s0324; RV64-NEXT:    call __powisf2325; RV64-NEXT:    addi a0, sp, 32326; RV64-NEXT:    vl1r.v v8, (a0) # vscale x 8-byte Folded Reload327; RV64-NEXT:    vsetivli zero, 4, e32, m1, ta, ma328; RV64-NEXT:    vfslide1down.vf v8, v8, fa0329; RV64-NEXT:    csrr a0, vlenb330; RV64-NEXT:    slli a0, a0, 1331; RV64-NEXT:    add sp, sp, a0332; RV64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload333; RV64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload334; RV64-NEXT:    fld fs0, 40(sp) # 8-byte Folded Reload335; RV64-NEXT:    addi sp, sp, 64336; RV64-NEXT:    ret337  %a = call <4 x float> @llvm.powi.v4f32.i32(<4 x float> %x, i32 %y)338  ret <4 x float> %a339}340 341define <8 x float> @powi_v8f32(<8 x float> %x, i32 %y) nounwind {342; RV32-LABEL: powi_v8f32:343; RV32:       # %bb.0:344; RV32-NEXT:    addi sp, sp, -32345; RV32-NEXT:    sw ra, 28(sp) # 4-byte Folded Spill346; RV32-NEXT:    sw s0, 24(sp) # 4-byte Folded Spill347; RV32-NEXT:    fsd fs0, 16(sp) # 8-byte Folded Spill348; RV32-NEXT:    csrr a1, vlenb349; RV32-NEXT:    slli a1, a1, 2350; RV32-NEXT:    sub sp, sp, a1351; RV32-NEXT:    mv s0, a0352; RV32-NEXT:    csrr a1, vlenb353; RV32-NEXT:    slli a1, a1, 1354; RV32-NEXT:    add a1, sp, a1355; RV32-NEXT:    addi a1, a1, 16356; RV32-NEXT:    vs2r.v v8, (a1) # vscale x 16-byte Folded Spill357; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma358; RV32-NEXT:    vslidedown.vi v10, v8, 1359; RV32-NEXT:    vfmv.f.s fa0, v10360; RV32-NEXT:    call __powisf2361; RV32-NEXT:    fmv.s fs0, fa0362; RV32-NEXT:    csrr a0, vlenb363; RV32-NEXT:    slli a0, a0, 1364; RV32-NEXT:    add a0, sp, a0365; RV32-NEXT:    addi a0, a0, 16366; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload367; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma368; RV32-NEXT:    vfmv.f.s fa0, v8369; RV32-NEXT:    mv a0, s0370; RV32-NEXT:    call __powisf2371; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma372; RV32-NEXT:    vfmv.v.f v8, fa0373; RV32-NEXT:    vfslide1down.vf v8, v8, fs0374; RV32-NEXT:    addi a0, sp, 16375; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill376; RV32-NEXT:    csrr a0, vlenb377; RV32-NEXT:    slli a0, a0, 1378; RV32-NEXT:    add a0, sp, a0379; RV32-NEXT:    addi a0, a0, 16380; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload381; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma382; RV32-NEXT:    vslidedown.vi v8, v8, 2383; RV32-NEXT:    vfmv.f.s fa0, v8384; RV32-NEXT:    mv a0, s0385; RV32-NEXT:    call __powisf2386; RV32-NEXT:    addi a0, sp, 16387; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload388; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma389; RV32-NEXT:    vfslide1down.vf v8, v8, fa0390; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill391; RV32-NEXT:    csrr a0, vlenb392; RV32-NEXT:    slli a0, a0, 1393; RV32-NEXT:    add a0, sp, a0394; RV32-NEXT:    addi a0, a0, 16395; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload396; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma397; RV32-NEXT:    vslidedown.vi v8, v8, 3398; RV32-NEXT:    vfmv.f.s fa0, v8399; RV32-NEXT:    mv a0, s0400; RV32-NEXT:    call __powisf2401; RV32-NEXT:    addi a0, sp, 16402; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload403; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma404; RV32-NEXT:    vfslide1down.vf v8, v8, fa0405; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill406; RV32-NEXT:    csrr a0, vlenb407; RV32-NEXT:    slli a0, a0, 1408; RV32-NEXT:    add a0, sp, a0409; RV32-NEXT:    addi a0, a0, 16410; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload411; RV32-NEXT:    vslidedown.vi v8, v8, 4412; RV32-NEXT:    vfmv.f.s fa0, v8413; RV32-NEXT:    mv a0, s0414; RV32-NEXT:    call __powisf2415; RV32-NEXT:    addi a0, sp, 16416; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload417; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma418; RV32-NEXT:    vfslide1down.vf v8, v8, fa0419; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill420; RV32-NEXT:    csrr a0, vlenb421; RV32-NEXT:    slli a0, a0, 1422; RV32-NEXT:    add a0, sp, a0423; RV32-NEXT:    addi a0, a0, 16424; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload425; RV32-NEXT:    vslidedown.vi v8, v8, 5426; RV32-NEXT:    vfmv.f.s fa0, v8427; RV32-NEXT:    mv a0, s0428; RV32-NEXT:    call __powisf2429; RV32-NEXT:    addi a0, sp, 16430; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload431; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma432; RV32-NEXT:    vfslide1down.vf v8, v8, fa0433; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill434; RV32-NEXT:    csrr a0, vlenb435; RV32-NEXT:    slli a0, a0, 1436; RV32-NEXT:    add a0, sp, a0437; RV32-NEXT:    addi a0, a0, 16438; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload439; RV32-NEXT:    vslidedown.vi v8, v8, 6440; RV32-NEXT:    vfmv.f.s fa0, v8441; RV32-NEXT:    mv a0, s0442; RV32-NEXT:    call __powisf2443; RV32-NEXT:    addi a0, sp, 16444; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload445; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma446; RV32-NEXT:    vfslide1down.vf v8, v8, fa0447; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill448; RV32-NEXT:    csrr a0, vlenb449; RV32-NEXT:    slli a0, a0, 1450; RV32-NEXT:    add a0, sp, a0451; RV32-NEXT:    addi a0, a0, 16452; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload453; RV32-NEXT:    vslidedown.vi v8, v8, 7454; RV32-NEXT:    vfmv.f.s fa0, v8455; RV32-NEXT:    mv a0, s0456; RV32-NEXT:    call __powisf2457; RV32-NEXT:    addi a0, sp, 16458; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload459; RV32-NEXT:    vsetivli zero, 8, e32, m2, ta, ma460; RV32-NEXT:    vfslide1down.vf v8, v8, fa0461; RV32-NEXT:    csrr a0, vlenb462; RV32-NEXT:    slli a0, a0, 2463; RV32-NEXT:    add sp, sp, a0464; RV32-NEXT:    lw ra, 28(sp) # 4-byte Folded Reload465; RV32-NEXT:    lw s0, 24(sp) # 4-byte Folded Reload466; RV32-NEXT:    fld fs0, 16(sp) # 8-byte Folded Reload467; RV32-NEXT:    addi sp, sp, 32468; RV32-NEXT:    ret469;470; RV64-LABEL: powi_v8f32:471; RV64:       # %bb.0:472; RV64-NEXT:    addi sp, sp, -64473; RV64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill474; RV64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill475; RV64-NEXT:    fsd fs0, 40(sp) # 8-byte Folded Spill476; RV64-NEXT:    csrr a1, vlenb477; RV64-NEXT:    slli a1, a1, 2478; RV64-NEXT:    sub sp, sp, a1479; RV64-NEXT:    csrr a1, vlenb480; RV64-NEXT:    slli a1, a1, 1481; RV64-NEXT:    add a1, sp, a1482; RV64-NEXT:    addi a1, a1, 32483; RV64-NEXT:    vs2r.v v8, (a1) # vscale x 16-byte Folded Spill484; RV64-NEXT:    sext.w s0, a0485; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma486; RV64-NEXT:    vslidedown.vi v10, v8, 1487; RV64-NEXT:    vfmv.f.s fa0, v10488; RV64-NEXT:    mv a0, s0489; RV64-NEXT:    call __powisf2490; RV64-NEXT:    fmv.s fs0, fa0491; RV64-NEXT:    csrr a0, vlenb492; RV64-NEXT:    slli a0, a0, 1493; RV64-NEXT:    add a0, sp, a0494; RV64-NEXT:    addi a0, a0, 32495; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload496; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma497; RV64-NEXT:    vfmv.f.s fa0, v8498; RV64-NEXT:    mv a0, s0499; RV64-NEXT:    call __powisf2500; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma501; RV64-NEXT:    vfmv.v.f v8, fa0502; RV64-NEXT:    vfslide1down.vf v8, v8, fs0503; RV64-NEXT:    addi a0, sp, 32504; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill505; RV64-NEXT:    csrr a0, vlenb506; RV64-NEXT:    slli a0, a0, 1507; RV64-NEXT:    add a0, sp, a0508; RV64-NEXT:    addi a0, a0, 32509; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload510; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma511; RV64-NEXT:    vslidedown.vi v8, v8, 2512; RV64-NEXT:    vfmv.f.s fa0, v8513; RV64-NEXT:    mv a0, s0514; RV64-NEXT:    call __powisf2515; RV64-NEXT:    addi a0, sp, 32516; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload517; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma518; RV64-NEXT:    vfslide1down.vf v8, v8, fa0519; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill520; RV64-NEXT:    csrr a0, vlenb521; RV64-NEXT:    slli a0, a0, 1522; RV64-NEXT:    add a0, sp, a0523; RV64-NEXT:    addi a0, a0, 32524; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload525; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma526; RV64-NEXT:    vslidedown.vi v8, v8, 3527; RV64-NEXT:    vfmv.f.s fa0, v8528; RV64-NEXT:    mv a0, s0529; RV64-NEXT:    call __powisf2530; RV64-NEXT:    addi a0, sp, 32531; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload532; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma533; RV64-NEXT:    vfslide1down.vf v8, v8, fa0534; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill535; RV64-NEXT:    csrr a0, vlenb536; RV64-NEXT:    slli a0, a0, 1537; RV64-NEXT:    add a0, sp, a0538; RV64-NEXT:    addi a0, a0, 32539; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload540; RV64-NEXT:    vslidedown.vi v8, v8, 4541; RV64-NEXT:    vfmv.f.s fa0, v8542; RV64-NEXT:    mv a0, s0543; RV64-NEXT:    call __powisf2544; RV64-NEXT:    addi a0, sp, 32545; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload546; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma547; RV64-NEXT:    vfslide1down.vf v8, v8, fa0548; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill549; RV64-NEXT:    csrr a0, vlenb550; RV64-NEXT:    slli a0, a0, 1551; RV64-NEXT:    add a0, sp, a0552; RV64-NEXT:    addi a0, a0, 32553; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload554; RV64-NEXT:    vslidedown.vi v8, v8, 5555; RV64-NEXT:    vfmv.f.s fa0, v8556; RV64-NEXT:    mv a0, s0557; RV64-NEXT:    call __powisf2558; RV64-NEXT:    addi a0, sp, 32559; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload560; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma561; RV64-NEXT:    vfslide1down.vf v8, v8, fa0562; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill563; RV64-NEXT:    csrr a0, vlenb564; RV64-NEXT:    slli a0, a0, 1565; RV64-NEXT:    add a0, sp, a0566; RV64-NEXT:    addi a0, a0, 32567; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload568; RV64-NEXT:    vslidedown.vi v8, v8, 6569; RV64-NEXT:    vfmv.f.s fa0, v8570; RV64-NEXT:    mv a0, s0571; RV64-NEXT:    call __powisf2572; RV64-NEXT:    addi a0, sp, 32573; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload574; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma575; RV64-NEXT:    vfslide1down.vf v8, v8, fa0576; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill577; RV64-NEXT:    csrr a0, vlenb578; RV64-NEXT:    slli a0, a0, 1579; RV64-NEXT:    add a0, sp, a0580; RV64-NEXT:    addi a0, a0, 32581; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload582; RV64-NEXT:    vslidedown.vi v8, v8, 7583; RV64-NEXT:    vfmv.f.s fa0, v8584; RV64-NEXT:    mv a0, s0585; RV64-NEXT:    call __powisf2586; RV64-NEXT:    addi a0, sp, 32587; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload588; RV64-NEXT:    vsetivli zero, 8, e32, m2, ta, ma589; RV64-NEXT:    vfslide1down.vf v8, v8, fa0590; RV64-NEXT:    csrr a0, vlenb591; RV64-NEXT:    slli a0, a0, 2592; RV64-NEXT:    add sp, sp, a0593; RV64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload594; RV64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload595; RV64-NEXT:    fld fs0, 40(sp) # 8-byte Folded Reload596; RV64-NEXT:    addi sp, sp, 64597; RV64-NEXT:    ret598  %a = call <8 x float> @llvm.powi.v8f32.i32(<8 x float> %x, i32 %y)599  ret <8 x float> %a600}601 602define <16 x float> @powi_v16f32(<16 x float> %x, i32 %y) nounwind {603; RV32-LABEL: powi_v16f32:604; RV32:       # %bb.0:605; RV32-NEXT:    addi sp, sp, -272606; RV32-NEXT:    sw ra, 268(sp) # 4-byte Folded Spill607; RV32-NEXT:    sw s0, 264(sp) # 4-byte Folded Spill608; RV32-NEXT:    sw s2, 260(sp) # 4-byte Folded Spill609; RV32-NEXT:    addi s0, sp, 272610; RV32-NEXT:    csrr a1, vlenb611; RV32-NEXT:    slli a1, a1, 2612; RV32-NEXT:    sub sp, sp, a1613; RV32-NEXT:    andi sp, sp, -64614; RV32-NEXT:    mv s2, a0615; RV32-NEXT:    addi a0, sp, 256616; RV32-NEXT:    vs4r.v v8, (a0) # vscale x 32-byte Folded Spill617; RV32-NEXT:    addi a0, sp, 64618; RV32-NEXT:    vsetivli zero, 16, e32, m4, ta, ma619; RV32-NEXT:    vse32.v v8, (a0)620; RV32-NEXT:    flw fa0, 124(sp)621; RV32-NEXT:    mv a0, s2622; RV32-NEXT:    call __powisf2623; RV32-NEXT:    fsw fa0, 188(sp)624; RV32-NEXT:    flw fa0, 120(sp)625; RV32-NEXT:    mv a0, s2626; RV32-NEXT:    call __powisf2627; RV32-NEXT:    fsw fa0, 184(sp)628; RV32-NEXT:    flw fa0, 116(sp)629; RV32-NEXT:    mv a0, s2630; RV32-NEXT:    call __powisf2631; RV32-NEXT:    fsw fa0, 180(sp)632; RV32-NEXT:    flw fa0, 112(sp)633; RV32-NEXT:    mv a0, s2634; RV32-NEXT:    call __powisf2635; RV32-NEXT:    fsw fa0, 176(sp)636; RV32-NEXT:    flw fa0, 108(sp)637; RV32-NEXT:    mv a0, s2638; RV32-NEXT:    call __powisf2639; RV32-NEXT:    fsw fa0, 172(sp)640; RV32-NEXT:    flw fa0, 104(sp)641; RV32-NEXT:    mv a0, s2642; RV32-NEXT:    call __powisf2643; RV32-NEXT:    fsw fa0, 168(sp)644; RV32-NEXT:    flw fa0, 100(sp)645; RV32-NEXT:    mv a0, s2646; RV32-NEXT:    call __powisf2647; RV32-NEXT:    fsw fa0, 164(sp)648; RV32-NEXT:    flw fa0, 96(sp)649; RV32-NEXT:    mv a0, s2650; RV32-NEXT:    call __powisf2651; RV32-NEXT:    fsw fa0, 160(sp)652; RV32-NEXT:    addi a0, sp, 256653; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload654; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma655; RV32-NEXT:    vfmv.f.s fa0, v8656; RV32-NEXT:    mv a0, s2657; RV32-NEXT:    call __powisf2658; RV32-NEXT:    fsw fa0, 128(sp)659; RV32-NEXT:    addi a0, sp, 256660; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload661; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma662; RV32-NEXT:    vslidedown.vi v8, v8, 3663; RV32-NEXT:    vfmv.f.s fa0, v8664; RV32-NEXT:    mv a0, s2665; RV32-NEXT:    call __powisf2666; RV32-NEXT:    fsw fa0, 140(sp)667; RV32-NEXT:    addi a0, sp, 256668; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload669; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma670; RV32-NEXT:    vslidedown.vi v8, v8, 2671; RV32-NEXT:    vfmv.f.s fa0, v8672; RV32-NEXT:    mv a0, s2673; RV32-NEXT:    call __powisf2674; RV32-NEXT:    fsw fa0, 136(sp)675; RV32-NEXT:    addi a0, sp, 256676; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload677; RV32-NEXT:    vsetivli zero, 1, e32, m1, ta, ma678; RV32-NEXT:    vslidedown.vi v8, v8, 1679; RV32-NEXT:    vfmv.f.s fa0, v8680; RV32-NEXT:    mv a0, s2681; RV32-NEXT:    call __powisf2682; RV32-NEXT:    fsw fa0, 132(sp)683; RV32-NEXT:    addi a0, sp, 256684; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload685; RV32-NEXT:    vsetivli zero, 1, e32, m2, ta, ma686; RV32-NEXT:    vslidedown.vi v8, v8, 7687; RV32-NEXT:    vfmv.f.s fa0, v8688; RV32-NEXT:    mv a0, s2689; RV32-NEXT:    call __powisf2690; RV32-NEXT:    fsw fa0, 156(sp)691; RV32-NEXT:    addi a0, sp, 256692; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload693; RV32-NEXT:    vsetivli zero, 1, e32, m2, ta, ma694; RV32-NEXT:    vslidedown.vi v8, v8, 6695; RV32-NEXT:    vfmv.f.s fa0, v8696; RV32-NEXT:    mv a0, s2697; RV32-NEXT:    call __powisf2698; RV32-NEXT:    fsw fa0, 152(sp)699; RV32-NEXT:    addi a0, sp, 256700; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload701; RV32-NEXT:    vsetivli zero, 1, e32, m2, ta, ma702; RV32-NEXT:    vslidedown.vi v8, v8, 5703; RV32-NEXT:    vfmv.f.s fa0, v8704; RV32-NEXT:    mv a0, s2705; RV32-NEXT:    call __powisf2706; RV32-NEXT:    fsw fa0, 148(sp)707; RV32-NEXT:    addi a0, sp, 256708; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload709; RV32-NEXT:    vsetivli zero, 1, e32, m2, ta, ma710; RV32-NEXT:    vslidedown.vi v8, v8, 4711; RV32-NEXT:    vfmv.f.s fa0, v8712; RV32-NEXT:    mv a0, s2713; RV32-NEXT:    call __powisf2714; RV32-NEXT:    fsw fa0, 144(sp)715; RV32-NEXT:    addi a0, sp, 128716; RV32-NEXT:    vsetivli zero, 16, e32, m4, ta, ma717; RV32-NEXT:    vle32.v v8, (a0)718; RV32-NEXT:    addi sp, s0, -272719; RV32-NEXT:    lw ra, 268(sp) # 4-byte Folded Reload720; RV32-NEXT:    lw s0, 264(sp) # 4-byte Folded Reload721; RV32-NEXT:    lw s2, 260(sp) # 4-byte Folded Reload722; RV32-NEXT:    addi sp, sp, 272723; RV32-NEXT:    ret724;725; RV64-LABEL: powi_v16f32:726; RV64:       # %bb.0:727; RV64-NEXT:    addi sp, sp, -272728; RV64-NEXT:    sd ra, 264(sp) # 8-byte Folded Spill729; RV64-NEXT:    sd s0, 256(sp) # 8-byte Folded Spill730; RV64-NEXT:    sd s2, 248(sp) # 8-byte Folded Spill731; RV64-NEXT:    addi s0, sp, 272732; RV64-NEXT:    csrr a1, vlenb733; RV64-NEXT:    slli a1, a1, 2734; RV64-NEXT:    sub sp, sp, a1735; RV64-NEXT:    andi sp, sp, -64736; RV64-NEXT:    addi a1, sp, 240737; RV64-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill738; RV64-NEXT:    addi a1, sp, 64739; RV64-NEXT:    vsetivli zero, 16, e32, m4, ta, ma740; RV64-NEXT:    vse32.v v8, (a1)741; RV64-NEXT:    flw fa0, 124(sp)742; RV64-NEXT:    sext.w s2, a0743; RV64-NEXT:    mv a0, s2744; RV64-NEXT:    call __powisf2745; RV64-NEXT:    fsw fa0, 188(sp)746; RV64-NEXT:    flw fa0, 120(sp)747; RV64-NEXT:    mv a0, s2748; RV64-NEXT:    call __powisf2749; RV64-NEXT:    fsw fa0, 184(sp)750; RV64-NEXT:    flw fa0, 116(sp)751; RV64-NEXT:    mv a0, s2752; RV64-NEXT:    call __powisf2753; RV64-NEXT:    fsw fa0, 180(sp)754; RV64-NEXT:    flw fa0, 112(sp)755; RV64-NEXT:    mv a0, s2756; RV64-NEXT:    call __powisf2757; RV64-NEXT:    fsw fa0, 176(sp)758; RV64-NEXT:    flw fa0, 108(sp)759; RV64-NEXT:    mv a0, s2760; RV64-NEXT:    call __powisf2761; RV64-NEXT:    fsw fa0, 172(sp)762; RV64-NEXT:    flw fa0, 104(sp)763; RV64-NEXT:    mv a0, s2764; RV64-NEXT:    call __powisf2765; RV64-NEXT:    fsw fa0, 168(sp)766; RV64-NEXT:    flw fa0, 100(sp)767; RV64-NEXT:    mv a0, s2768; RV64-NEXT:    call __powisf2769; RV64-NEXT:    fsw fa0, 164(sp)770; RV64-NEXT:    flw fa0, 96(sp)771; RV64-NEXT:    mv a0, s2772; RV64-NEXT:    call __powisf2773; RV64-NEXT:    fsw fa0, 160(sp)774; RV64-NEXT:    addi a0, sp, 240775; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload776; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma777; RV64-NEXT:    vfmv.f.s fa0, v8778; RV64-NEXT:    mv a0, s2779; RV64-NEXT:    call __powisf2780; RV64-NEXT:    fsw fa0, 128(sp)781; RV64-NEXT:    addi a0, sp, 240782; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload783; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma784; RV64-NEXT:    vslidedown.vi v8, v8, 3785; RV64-NEXT:    vfmv.f.s fa0, v8786; RV64-NEXT:    mv a0, s2787; RV64-NEXT:    call __powisf2788; RV64-NEXT:    fsw fa0, 140(sp)789; RV64-NEXT:    addi a0, sp, 240790; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload791; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma792; RV64-NEXT:    vslidedown.vi v8, v8, 2793; RV64-NEXT:    vfmv.f.s fa0, v8794; RV64-NEXT:    mv a0, s2795; RV64-NEXT:    call __powisf2796; RV64-NEXT:    fsw fa0, 136(sp)797; RV64-NEXT:    addi a0, sp, 240798; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload799; RV64-NEXT:    vsetivli zero, 1, e32, m1, ta, ma800; RV64-NEXT:    vslidedown.vi v8, v8, 1801; RV64-NEXT:    vfmv.f.s fa0, v8802; RV64-NEXT:    mv a0, s2803; RV64-NEXT:    call __powisf2804; RV64-NEXT:    fsw fa0, 132(sp)805; RV64-NEXT:    addi a0, sp, 240806; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload807; RV64-NEXT:    vsetivli zero, 1, e32, m2, ta, ma808; RV64-NEXT:    vslidedown.vi v8, v8, 7809; RV64-NEXT:    vfmv.f.s fa0, v8810; RV64-NEXT:    mv a0, s2811; RV64-NEXT:    call __powisf2812; RV64-NEXT:    fsw fa0, 156(sp)813; RV64-NEXT:    addi a0, sp, 240814; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload815; RV64-NEXT:    vsetivli zero, 1, e32, m2, ta, ma816; RV64-NEXT:    vslidedown.vi v8, v8, 6817; RV64-NEXT:    vfmv.f.s fa0, v8818; RV64-NEXT:    mv a0, s2819; RV64-NEXT:    call __powisf2820; RV64-NEXT:    fsw fa0, 152(sp)821; RV64-NEXT:    addi a0, sp, 240822; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload823; RV64-NEXT:    vsetivli zero, 1, e32, m2, ta, ma824; RV64-NEXT:    vslidedown.vi v8, v8, 5825; RV64-NEXT:    vfmv.f.s fa0, v8826; RV64-NEXT:    mv a0, s2827; RV64-NEXT:    call __powisf2828; RV64-NEXT:    fsw fa0, 148(sp)829; RV64-NEXT:    addi a0, sp, 240830; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload831; RV64-NEXT:    vsetivli zero, 1, e32, m2, ta, ma832; RV64-NEXT:    vslidedown.vi v8, v8, 4833; RV64-NEXT:    vfmv.f.s fa0, v8834; RV64-NEXT:    mv a0, s2835; RV64-NEXT:    call __powisf2836; RV64-NEXT:    fsw fa0, 144(sp)837; RV64-NEXT:    addi a0, sp, 128838; RV64-NEXT:    vsetivli zero, 16, e32, m4, ta, ma839; RV64-NEXT:    vle32.v v8, (a0)840; RV64-NEXT:    addi sp, s0, -272841; RV64-NEXT:    ld ra, 264(sp) # 8-byte Folded Reload842; RV64-NEXT:    ld s0, 256(sp) # 8-byte Folded Reload843; RV64-NEXT:    ld s2, 248(sp) # 8-byte Folded Reload844; RV64-NEXT:    addi sp, sp, 272845; RV64-NEXT:    ret846  %a = call <16 x float> @llvm.powi.v16f32.i32(<16 x float> %x, i32 %y)847  ret <16 x float> %a848}849 850define <1 x double> @powi_v1f64(<1 x double> %x, i32 %y) nounwind {851; RV32-LABEL: powi_v1f64:852; RV32:       # %bb.0:853; RV32-NEXT:    addi sp, sp, -16854; RV32-NEXT:    sw ra, 12(sp) # 4-byte Folded Spill855; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma856; RV32-NEXT:    vfmv.f.s fa0, v8857; RV32-NEXT:    call __powidf2858; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma859; RV32-NEXT:    vfmv.s.f v8, fa0860; RV32-NEXT:    lw ra, 12(sp) # 4-byte Folded Reload861; RV32-NEXT:    addi sp, sp, 16862; RV32-NEXT:    ret863;864; RV64-LABEL: powi_v1f64:865; RV64:       # %bb.0:866; RV64-NEXT:    addi sp, sp, -16867; RV64-NEXT:    sd ra, 8(sp) # 8-byte Folded Spill868; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma869; RV64-NEXT:    vfmv.f.s fa0, v8870; RV64-NEXT:    sext.w a0, a0871; RV64-NEXT:    call __powidf2872; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma873; RV64-NEXT:    vfmv.s.f v8, fa0874; RV64-NEXT:    ld ra, 8(sp) # 8-byte Folded Reload875; RV64-NEXT:    addi sp, sp, 16876; RV64-NEXT:    ret877  %a = call <1 x double> @llvm.powi.v1f64.i32(<1 x double> %x, i32 %y)878  ret <1 x double> %a879}880 881define <2 x double> @powi_v2f64(<2 x double> %x, i32 %y) nounwind {882; RV32-LABEL: powi_v2f64:883; RV32:       # %bb.0:884; RV32-NEXT:    addi sp, sp, -32885; RV32-NEXT:    sw ra, 28(sp) # 4-byte Folded Spill886; RV32-NEXT:    sw s0, 24(sp) # 4-byte Folded Spill887; RV32-NEXT:    fsd fs0, 16(sp) # 8-byte Folded Spill888; RV32-NEXT:    csrr a1, vlenb889; RV32-NEXT:    sub sp, sp, a1890; RV32-NEXT:    mv s0, a0891; RV32-NEXT:    addi a1, sp, 16892; RV32-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill893; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma894; RV32-NEXT:    vslidedown.vi v9, v8, 1895; RV32-NEXT:    vfmv.f.s fa0, v9896; RV32-NEXT:    call __powidf2897; RV32-NEXT:    fmv.d fs0, fa0898; RV32-NEXT:    fld fa0, 16(sp) # 8-byte Folded Reload899; RV32-NEXT:    mv a0, s0900; RV32-NEXT:    call __powidf2901; RV32-NEXT:    vsetivli zero, 2, e64, m1, ta, ma902; RV32-NEXT:    vfmv.v.f v8, fa0903; RV32-NEXT:    vfslide1down.vf v8, v8, fs0904; RV32-NEXT:    csrr a0, vlenb905; RV32-NEXT:    add sp, sp, a0906; RV32-NEXT:    lw ra, 28(sp) # 4-byte Folded Reload907; RV32-NEXT:    lw s0, 24(sp) # 4-byte Folded Reload908; RV32-NEXT:    fld fs0, 16(sp) # 8-byte Folded Reload909; RV32-NEXT:    addi sp, sp, 32910; RV32-NEXT:    ret911;912; RV64-LABEL: powi_v2f64:913; RV64:       # %bb.0:914; RV64-NEXT:    addi sp, sp, -64915; RV64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill916; RV64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill917; RV64-NEXT:    fsd fs0, 40(sp) # 8-byte Folded Spill918; RV64-NEXT:    csrr a1, vlenb919; RV64-NEXT:    sub sp, sp, a1920; RV64-NEXT:    addi a1, sp, 32921; RV64-NEXT:    vs1r.v v8, (a1) # vscale x 8-byte Folded Spill922; RV64-NEXT:    sext.w s0, a0923; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma924; RV64-NEXT:    vslidedown.vi v9, v8, 1925; RV64-NEXT:    vfmv.f.s fa0, v9926; RV64-NEXT:    mv a0, s0927; RV64-NEXT:    call __powidf2928; RV64-NEXT:    fmv.d fs0, fa0929; RV64-NEXT:    fld fa0, 32(sp) # 8-byte Folded Reload930; RV64-NEXT:    mv a0, s0931; RV64-NEXT:    call __powidf2932; RV64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma933; RV64-NEXT:    vfmv.v.f v8, fa0934; RV64-NEXT:    vfslide1down.vf v8, v8, fs0935; RV64-NEXT:    csrr a0, vlenb936; RV64-NEXT:    add sp, sp, a0937; RV64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload938; RV64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload939; RV64-NEXT:    fld fs0, 40(sp) # 8-byte Folded Reload940; RV64-NEXT:    addi sp, sp, 64941; RV64-NEXT:    ret942  %a = call <2 x double> @llvm.powi.v2f64.i32(<2 x double> %x, i32 %y)943  ret <2 x double> %a944}945 946define <4 x double> @powi_v4f64(<4 x double> %x, i32 %y) nounwind {947; RV32-LABEL: powi_v4f64:948; RV32:       # %bb.0:949; RV32-NEXT:    addi sp, sp, -32950; RV32-NEXT:    sw ra, 28(sp) # 4-byte Folded Spill951; RV32-NEXT:    sw s0, 24(sp) # 4-byte Folded Spill952; RV32-NEXT:    fsd fs0, 16(sp) # 8-byte Folded Spill953; RV32-NEXT:    csrr a1, vlenb954; RV32-NEXT:    slli a1, a1, 2955; RV32-NEXT:    sub sp, sp, a1956; RV32-NEXT:    mv s0, a0957; RV32-NEXT:    csrr a1, vlenb958; RV32-NEXT:    slli a1, a1, 1959; RV32-NEXT:    add a1, sp, a1960; RV32-NEXT:    addi a1, a1, 16961; RV32-NEXT:    vs2r.v v8, (a1) # vscale x 16-byte Folded Spill962; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma963; RV32-NEXT:    vslidedown.vi v10, v8, 1964; RV32-NEXT:    vfmv.f.s fa0, v10965; RV32-NEXT:    call __powidf2966; RV32-NEXT:    fmv.d fs0, fa0967; RV32-NEXT:    csrr a0, vlenb968; RV32-NEXT:    slli a0, a0, 1969; RV32-NEXT:    add a0, sp, a0970; RV32-NEXT:    addi a0, a0, 16971; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload972; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma973; RV32-NEXT:    vfmv.f.s fa0, v8974; RV32-NEXT:    mv a0, s0975; RV32-NEXT:    call __powidf2976; RV32-NEXT:    vsetivli zero, 4, e64, m2, ta, ma977; RV32-NEXT:    vfmv.v.f v8, fa0978; RV32-NEXT:    vfslide1down.vf v8, v8, fs0979; RV32-NEXT:    addi a0, sp, 16980; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill981; RV32-NEXT:    csrr a0, vlenb982; RV32-NEXT:    slli a0, a0, 1983; RV32-NEXT:    add a0, sp, a0984; RV32-NEXT:    addi a0, a0, 16985; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload986; RV32-NEXT:    vslidedown.vi v8, v8, 2987; RV32-NEXT:    vfmv.f.s fa0, v8988; RV32-NEXT:    mv a0, s0989; RV32-NEXT:    call __powidf2990; RV32-NEXT:    addi a0, sp, 16991; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload992; RV32-NEXT:    vsetivli zero, 4, e64, m2, ta, ma993; RV32-NEXT:    vfslide1down.vf v8, v8, fa0994; RV32-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill995; RV32-NEXT:    csrr a0, vlenb996; RV32-NEXT:    slli a0, a0, 1997; RV32-NEXT:    add a0, sp, a0998; RV32-NEXT:    addi a0, a0, 16999; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1000; RV32-NEXT:    vslidedown.vi v8, v8, 31001; RV32-NEXT:    vfmv.f.s fa0, v81002; RV32-NEXT:    mv a0, s01003; RV32-NEXT:    call __powidf21004; RV32-NEXT:    addi a0, sp, 161005; RV32-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1006; RV32-NEXT:    vsetivli zero, 4, e64, m2, ta, ma1007; RV32-NEXT:    vfslide1down.vf v8, v8, fa01008; RV32-NEXT:    csrr a0, vlenb1009; RV32-NEXT:    slli a0, a0, 21010; RV32-NEXT:    add sp, sp, a01011; RV32-NEXT:    lw ra, 28(sp) # 4-byte Folded Reload1012; RV32-NEXT:    lw s0, 24(sp) # 4-byte Folded Reload1013; RV32-NEXT:    fld fs0, 16(sp) # 8-byte Folded Reload1014; RV32-NEXT:    addi sp, sp, 321015; RV32-NEXT:    ret1016;1017; RV64-LABEL: powi_v4f64:1018; RV64:       # %bb.0:1019; RV64-NEXT:    addi sp, sp, -641020; RV64-NEXT:    sd ra, 56(sp) # 8-byte Folded Spill1021; RV64-NEXT:    sd s0, 48(sp) # 8-byte Folded Spill1022; RV64-NEXT:    fsd fs0, 40(sp) # 8-byte Folded Spill1023; RV64-NEXT:    csrr a1, vlenb1024; RV64-NEXT:    slli a1, a1, 21025; RV64-NEXT:    sub sp, sp, a11026; RV64-NEXT:    csrr a1, vlenb1027; RV64-NEXT:    slli a1, a1, 11028; RV64-NEXT:    add a1, sp, a11029; RV64-NEXT:    addi a1, a1, 321030; RV64-NEXT:    vs2r.v v8, (a1) # vscale x 16-byte Folded Spill1031; RV64-NEXT:    sext.w s0, a01032; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma1033; RV64-NEXT:    vslidedown.vi v10, v8, 11034; RV64-NEXT:    vfmv.f.s fa0, v101035; RV64-NEXT:    mv a0, s01036; RV64-NEXT:    call __powidf21037; RV64-NEXT:    fmv.d fs0, fa01038; RV64-NEXT:    csrr a0, vlenb1039; RV64-NEXT:    slli a0, a0, 11040; RV64-NEXT:    add a0, sp, a01041; RV64-NEXT:    addi a0, a0, 321042; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1043; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma1044; RV64-NEXT:    vfmv.f.s fa0, v81045; RV64-NEXT:    mv a0, s01046; RV64-NEXT:    call __powidf21047; RV64-NEXT:    vsetivli zero, 4, e64, m2, ta, ma1048; RV64-NEXT:    vfmv.v.f v8, fa01049; RV64-NEXT:    vfslide1down.vf v8, v8, fs01050; RV64-NEXT:    addi a0, sp, 321051; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill1052; RV64-NEXT:    csrr a0, vlenb1053; RV64-NEXT:    slli a0, a0, 11054; RV64-NEXT:    add a0, sp, a01055; RV64-NEXT:    addi a0, a0, 321056; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1057; RV64-NEXT:    vslidedown.vi v8, v8, 21058; RV64-NEXT:    vfmv.f.s fa0, v81059; RV64-NEXT:    mv a0, s01060; RV64-NEXT:    call __powidf21061; RV64-NEXT:    addi a0, sp, 321062; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1063; RV64-NEXT:    vsetivli zero, 4, e64, m2, ta, ma1064; RV64-NEXT:    vfslide1down.vf v8, v8, fa01065; RV64-NEXT:    vs2r.v v8, (a0) # vscale x 16-byte Folded Spill1066; RV64-NEXT:    csrr a0, vlenb1067; RV64-NEXT:    slli a0, a0, 11068; RV64-NEXT:    add a0, sp, a01069; RV64-NEXT:    addi a0, a0, 321070; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1071; RV64-NEXT:    vslidedown.vi v8, v8, 31072; RV64-NEXT:    vfmv.f.s fa0, v81073; RV64-NEXT:    mv a0, s01074; RV64-NEXT:    call __powidf21075; RV64-NEXT:    addi a0, sp, 321076; RV64-NEXT:    vl2r.v v8, (a0) # vscale x 16-byte Folded Reload1077; RV64-NEXT:    vsetivli zero, 4, e64, m2, ta, ma1078; RV64-NEXT:    vfslide1down.vf v8, v8, fa01079; RV64-NEXT:    csrr a0, vlenb1080; RV64-NEXT:    slli a0, a0, 21081; RV64-NEXT:    add sp, sp, a01082; RV64-NEXT:    ld ra, 56(sp) # 8-byte Folded Reload1083; RV64-NEXT:    ld s0, 48(sp) # 8-byte Folded Reload1084; RV64-NEXT:    fld fs0, 40(sp) # 8-byte Folded Reload1085; RV64-NEXT:    addi sp, sp, 641086; RV64-NEXT:    ret1087  %a = call <4 x double> @llvm.powi.v4f64.i32(<4 x double> %x, i32 %y)1088  ret <4 x double> %a1089}1090 1091define <8 x double> @powi_v8f64(<8 x double> %x, i32 %y) nounwind {1092; RV32-LABEL: powi_v8f64:1093; RV32:       # %bb.0:1094; RV32-NEXT:    addi sp, sp, -2721095; RV32-NEXT:    sw ra, 268(sp) # 4-byte Folded Spill1096; RV32-NEXT:    sw s0, 264(sp) # 4-byte Folded Spill1097; RV32-NEXT:    sw s2, 260(sp) # 4-byte Folded Spill1098; RV32-NEXT:    addi s0, sp, 2721099; RV32-NEXT:    csrr a1, vlenb1100; RV32-NEXT:    slli a1, a1, 21101; RV32-NEXT:    sub sp, sp, a11102; RV32-NEXT:    andi sp, sp, -641103; RV32-NEXT:    mv s2, a01104; RV32-NEXT:    addi a0, sp, 2561105; RV32-NEXT:    vs4r.v v8, (a0) # vscale x 32-byte Folded Spill1106; RV32-NEXT:    addi a0, sp, 641107; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1108; RV32-NEXT:    vse64.v v8, (a0)1109; RV32-NEXT:    fld fa0, 120(sp)1110; RV32-NEXT:    mv a0, s21111; RV32-NEXT:    call __powidf21112; RV32-NEXT:    fsd fa0, 184(sp)1113; RV32-NEXT:    fld fa0, 112(sp)1114; RV32-NEXT:    mv a0, s21115; RV32-NEXT:    call __powidf21116; RV32-NEXT:    fsd fa0, 176(sp)1117; RV32-NEXT:    fld fa0, 104(sp)1118; RV32-NEXT:    mv a0, s21119; RV32-NEXT:    call __powidf21120; RV32-NEXT:    fsd fa0, 168(sp)1121; RV32-NEXT:    fld fa0, 96(sp)1122; RV32-NEXT:    mv a0, s21123; RV32-NEXT:    call __powidf21124; RV32-NEXT:    fsd fa0, 160(sp)1125; RV32-NEXT:    addi a0, sp, 2561126; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1127; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma1128; RV32-NEXT:    vfmv.f.s fa0, v81129; RV32-NEXT:    mv a0, s21130; RV32-NEXT:    call __powidf21131; RV32-NEXT:    fsd fa0, 128(sp)1132; RV32-NEXT:    addi a0, sp, 2561133; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1134; RV32-NEXT:    vsetivli zero, 1, e64, m1, ta, ma1135; RV32-NEXT:    vslidedown.vi v8, v8, 11136; RV32-NEXT:    vfmv.f.s fa0, v81137; RV32-NEXT:    mv a0, s21138; RV32-NEXT:    call __powidf21139; RV32-NEXT:    fsd fa0, 136(sp)1140; RV32-NEXT:    addi a0, sp, 2561141; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1142; RV32-NEXT:    vsetivli zero, 1, e64, m2, ta, ma1143; RV32-NEXT:    vslidedown.vi v8, v8, 31144; RV32-NEXT:    vfmv.f.s fa0, v81145; RV32-NEXT:    mv a0, s21146; RV32-NEXT:    call __powidf21147; RV32-NEXT:    fsd fa0, 152(sp)1148; RV32-NEXT:    addi a0, sp, 2561149; RV32-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1150; RV32-NEXT:    vsetivli zero, 1, e64, m2, ta, ma1151; RV32-NEXT:    vslidedown.vi v8, v8, 21152; RV32-NEXT:    vfmv.f.s fa0, v81153; RV32-NEXT:    mv a0, s21154; RV32-NEXT:    call __powidf21155; RV32-NEXT:    fsd fa0, 144(sp)1156; RV32-NEXT:    addi a0, sp, 1281157; RV32-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1158; RV32-NEXT:    vle64.v v8, (a0)1159; RV32-NEXT:    addi sp, s0, -2721160; RV32-NEXT:    lw ra, 268(sp) # 4-byte Folded Reload1161; RV32-NEXT:    lw s0, 264(sp) # 4-byte Folded Reload1162; RV32-NEXT:    lw s2, 260(sp) # 4-byte Folded Reload1163; RV32-NEXT:    addi sp, sp, 2721164; RV32-NEXT:    ret1165;1166; RV64-LABEL: powi_v8f64:1167; RV64:       # %bb.0:1168; RV64-NEXT:    addi sp, sp, -2721169; RV64-NEXT:    sd ra, 264(sp) # 8-byte Folded Spill1170; RV64-NEXT:    sd s0, 256(sp) # 8-byte Folded Spill1171; RV64-NEXT:    sd s2, 248(sp) # 8-byte Folded Spill1172; RV64-NEXT:    addi s0, sp, 2721173; RV64-NEXT:    csrr a1, vlenb1174; RV64-NEXT:    slli a1, a1, 21175; RV64-NEXT:    sub sp, sp, a11176; RV64-NEXT:    andi sp, sp, -641177; RV64-NEXT:    addi a1, sp, 2401178; RV64-NEXT:    vs4r.v v8, (a1) # vscale x 32-byte Folded Spill1179; RV64-NEXT:    addi a1, sp, 641180; RV64-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1181; RV64-NEXT:    vse64.v v8, (a1)1182; RV64-NEXT:    fld fa0, 120(sp)1183; RV64-NEXT:    sext.w s2, a01184; RV64-NEXT:    mv a0, s21185; RV64-NEXT:    call __powidf21186; RV64-NEXT:    fsd fa0, 184(sp)1187; RV64-NEXT:    fld fa0, 112(sp)1188; RV64-NEXT:    mv a0, s21189; RV64-NEXT:    call __powidf21190; RV64-NEXT:    fsd fa0, 176(sp)1191; RV64-NEXT:    fld fa0, 104(sp)1192; RV64-NEXT:    mv a0, s21193; RV64-NEXT:    call __powidf21194; RV64-NEXT:    fsd fa0, 168(sp)1195; RV64-NEXT:    fld fa0, 96(sp)1196; RV64-NEXT:    mv a0, s21197; RV64-NEXT:    call __powidf21198; RV64-NEXT:    fsd fa0, 160(sp)1199; RV64-NEXT:    addi a0, sp, 2401200; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1201; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma1202; RV64-NEXT:    vfmv.f.s fa0, v81203; RV64-NEXT:    mv a0, s21204; RV64-NEXT:    call __powidf21205; RV64-NEXT:    fsd fa0, 128(sp)1206; RV64-NEXT:    addi a0, sp, 2401207; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1208; RV64-NEXT:    vsetivli zero, 1, e64, m1, ta, ma1209; RV64-NEXT:    vslidedown.vi v8, v8, 11210; RV64-NEXT:    vfmv.f.s fa0, v81211; RV64-NEXT:    mv a0, s21212; RV64-NEXT:    call __powidf21213; RV64-NEXT:    fsd fa0, 136(sp)1214; RV64-NEXT:    addi a0, sp, 2401215; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1216; RV64-NEXT:    vsetivli zero, 1, e64, m2, ta, ma1217; RV64-NEXT:    vslidedown.vi v8, v8, 31218; RV64-NEXT:    vfmv.f.s fa0, v81219; RV64-NEXT:    mv a0, s21220; RV64-NEXT:    call __powidf21221; RV64-NEXT:    fsd fa0, 152(sp)1222; RV64-NEXT:    addi a0, sp, 2401223; RV64-NEXT:    vl4r.v v8, (a0) # vscale x 32-byte Folded Reload1224; RV64-NEXT:    vsetivli zero, 1, e64, m2, ta, ma1225; RV64-NEXT:    vslidedown.vi v8, v8, 21226; RV64-NEXT:    vfmv.f.s fa0, v81227; RV64-NEXT:    mv a0, s21228; RV64-NEXT:    call __powidf21229; RV64-NEXT:    fsd fa0, 144(sp)1230; RV64-NEXT:    addi a0, sp, 1281231; RV64-NEXT:    vsetivli zero, 8, e64, m4, ta, ma1232; RV64-NEXT:    vle64.v v8, (a0)1233; RV64-NEXT:    addi sp, s0, -2721234; RV64-NEXT:    ld ra, 264(sp) # 8-byte Folded Reload1235; RV64-NEXT:    ld s0, 256(sp) # 8-byte Folded Reload1236; RV64-NEXT:    ld s2, 248(sp) # 8-byte Folded Reload1237; RV64-NEXT:    addi sp, sp, 2721238; RV64-NEXT:    ret1239  %a = call <8 x double> @llvm.powi.v8f64.i32(<8 x double> %x, i32 %y)1240  ret <8 x double> %a1241}1242