; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=riscv64 -mattr=+experimental-v,+d,+experimental-zfh,+f,+d -verify-machineinstrs \
; RUN:   < %s | FileCheck %s
declare { <vscale x 1 x i64>, i64 } @llvm.riscv.vleff.nxv1i64(
  <vscale x 1 x i64>*,
  i64);

define <vscale x 1 x i64> @intrinsic_vleff_v_nxv1i64_nxv1i64(<vscale x 1 x i64>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1i64_nxv1i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i64>, i64 } @llvm.riscv.vleff.nxv1i64(
    <vscale x 1 x i64>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i64>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x i64> %b
}

declare { <vscale x 1 x i64>, i64 } @llvm.riscv.vleff.mask.nxv1i64(
  <vscale x 1 x i64>,
  <vscale x 1 x i64>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x i64> @intrinsic_vleff_mask_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1i64_nxv1i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i64>, i64 } @llvm.riscv.vleff.mask.nxv1i64(
    <vscale x 1 x i64> %0,
    <vscale x 1 x i64>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i64>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x i64> %b
}

declare { <vscale x 2 x i64>, i64 } @llvm.riscv.vleff.nxv2i64(
  <vscale x 2 x i64>*,
  i64);

define <vscale x 2 x i64> @intrinsic_vleff_v_nxv2i64_nxv2i64(<vscale x 2 x i64>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2i64_nxv2i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m2,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i64>, i64 } @llvm.riscv.vleff.nxv2i64(
    <vscale x 2 x i64>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i64>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x i64> %b
}

declare { <vscale x 2 x i64>, i64 } @llvm.riscv.vleff.mask.nxv2i64(
  <vscale x 2 x i64>,
  <vscale x 2 x i64>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x i64> @intrinsic_vleff_mask_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2i64_nxv2i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m2,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i64>, i64 } @llvm.riscv.vleff.mask.nxv2i64(
    <vscale x 2 x i64> %0,
    <vscale x 2 x i64>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i64>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x i64> %b
}

declare { <vscale x 4 x i64>, i64 } @llvm.riscv.vleff.nxv4i64(
  <vscale x 4 x i64>*,
  i64);

define <vscale x 4 x i64> @intrinsic_vleff_v_nxv4i64_nxv4i64(<vscale x 4 x i64>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4i64_nxv4i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m4,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i64>, i64 } @llvm.riscv.vleff.nxv4i64(
    <vscale x 4 x i64>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i64>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x i64> %b
}

declare { <vscale x 4 x i64>, i64 } @llvm.riscv.vleff.mask.nxv4i64(
  <vscale x 4 x i64>,
  <vscale x 4 x i64>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x i64> @intrinsic_vleff_mask_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4i64_nxv4i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m4,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i64>, i64 } @llvm.riscv.vleff.mask.nxv4i64(
    <vscale x 4 x i64> %0,
    <vscale x 4 x i64>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i64>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x i64> %b
}

declare { <vscale x 8 x i64>, i64 } @llvm.riscv.vleff.nxv8i64(
  <vscale x 8 x i64>*,
  i64);

define <vscale x 8 x i64> @intrinsic_vleff_v_nxv8i64_nxv8i64(<vscale x 8 x i64>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8i64_nxv8i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m8,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i64>, i64 } @llvm.riscv.vleff.nxv8i64(
    <vscale x 8 x i64>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i64>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x i64> %b
}

declare { <vscale x 8 x i64>, i64 } @llvm.riscv.vleff.mask.nxv8i64(
  <vscale x 8 x i64>,
  <vscale x 8 x i64>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x i64> @intrinsic_vleff_mask_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8i64_nxv8i64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m8,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i64>, i64 } @llvm.riscv.vleff.mask.nxv8i64(
    <vscale x 8 x i64> %0,
    <vscale x 8 x i64>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x i64>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i64>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x i64> %b
}

declare { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.nxv1f64(
  <vscale x 1 x double>*,
  i64);

define <vscale x 1 x double> @intrinsic_vleff_v_nxv1f64_nxv1f64(<vscale x 1 x double>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1f64_nxv1f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.nxv1f64(
    <vscale x 1 x double>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x double>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x double> %b
}

declare { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.mask.nxv1f64(
  <vscale x 1 x double>,
  <vscale x 1 x double>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x double> @intrinsic_vleff_mask_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1f64_nxv1f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.mask.nxv1f64(
    <vscale x 1 x double> %0,
    <vscale x 1 x double>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x double>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x double> %b
}

declare { <vscale x 2 x double>, i64 } @llvm.riscv.vleff.nxv2f64(
  <vscale x 2 x double>*,
  i64);

define <vscale x 2 x double> @intrinsic_vleff_v_nxv2f64_nxv2f64(<vscale x 2 x double>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2f64_nxv2f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m2,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x double>, i64 } @llvm.riscv.vleff.nxv2f64(
    <vscale x 2 x double>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x double>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x double> %b
}

declare { <vscale x 2 x double>, i64 } @llvm.riscv.vleff.mask.nxv2f64(
  <vscale x 2 x double>,
  <vscale x 2 x double>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x double> @intrinsic_vleff_mask_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2f64_nxv2f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m2,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x double>, i64 } @llvm.riscv.vleff.mask.nxv2f64(
    <vscale x 2 x double> %0,
    <vscale x 2 x double>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x double>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x double> %b
}

declare { <vscale x 4 x double>, i64 } @llvm.riscv.vleff.nxv4f64(
  <vscale x 4 x double>*,
  i64);

define <vscale x 4 x double> @intrinsic_vleff_v_nxv4f64_nxv4f64(<vscale x 4 x double>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4f64_nxv4f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m4,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x double>, i64 } @llvm.riscv.vleff.nxv4f64(
    <vscale x 4 x double>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x double>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x double> %b
}

declare { <vscale x 4 x double>, i64 } @llvm.riscv.vleff.mask.nxv4f64(
  <vscale x 4 x double>,
  <vscale x 4 x double>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x double> @intrinsic_vleff_mask_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4f64_nxv4f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m4,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x double>, i64 } @llvm.riscv.vleff.mask.nxv4f64(
    <vscale x 4 x double> %0,
    <vscale x 4 x double>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x double>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x double> %b
}

declare { <vscale x 8 x double>, i64 } @llvm.riscv.vleff.nxv8f64(
  <vscale x 8 x double>*,
  i64);

define <vscale x 8 x double> @intrinsic_vleff_v_nxv8f64_nxv8f64(<vscale x 8 x double>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8f64_nxv8f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m8,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x double>, i64 } @llvm.riscv.vleff.nxv8f64(
    <vscale x 8 x double>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x double>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x double> %b
}

declare { <vscale x 8 x double>, i64 } @llvm.riscv.vleff.mask.nxv8f64(
  <vscale x 8 x double>,
  <vscale x 8 x double>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x double> @intrinsic_vleff_mask_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, <vscale x 8 x double>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8f64_nxv8f64:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m8,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x double>, i64 } @llvm.riscv.vleff.mask.nxv8f64(
    <vscale x 8 x double> %0,
    <vscale x 8 x double>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x double>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x double>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x double> %b
}

declare { <vscale x 1 x i32>, i64 } @llvm.riscv.vleff.nxv1i32(
  <vscale x 1 x i32>*,
  i64);

define <vscale x 1 x i32> @intrinsic_vleff_v_nxv1i32_nxv1i32(<vscale x 1 x i32>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1i32_nxv1i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,mf2,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i32>, i64 } @llvm.riscv.vleff.nxv1i32(
    <vscale x 1 x i32>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i32>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x i32> %b
}

declare { <vscale x 1 x i32>, i64 } @llvm.riscv.vleff.mask.nxv1i32(
  <vscale x 1 x i32>,
  <vscale x 1 x i32>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x i32> @intrinsic_vleff_mask_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1i32_nxv1i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,mf2,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i32>, i64 } @llvm.riscv.vleff.mask.nxv1i32(
    <vscale x 1 x i32> %0,
    <vscale x 1 x i32>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i32>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x i32> %b
}

declare { <vscale x 2 x i32>, i64 } @llvm.riscv.vleff.nxv2i32(
  <vscale x 2 x i32>*,
  i64);

define <vscale x 2 x i32> @intrinsic_vleff_v_nxv2i32_nxv2i32(<vscale x 2 x i32>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2i32_nxv2i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m1,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i32>, i64 } @llvm.riscv.vleff.nxv2i32(
    <vscale x 2 x i32>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i32>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x i32> %b
}

declare { <vscale x 2 x i32>, i64 } @llvm.riscv.vleff.mask.nxv2i32(
  <vscale x 2 x i32>,
  <vscale x 2 x i32>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x i32> @intrinsic_vleff_mask_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2i32_nxv2i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m1,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i32>, i64 } @llvm.riscv.vleff.mask.nxv2i32(
    <vscale x 2 x i32> %0,
    <vscale x 2 x i32>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i32>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x i32> %b
}

declare { <vscale x 4 x i32>, i64 } @llvm.riscv.vleff.nxv4i32(
  <vscale x 4 x i32>*,
  i64);

define <vscale x 4 x i32> @intrinsic_vleff_v_nxv4i32_nxv4i32(<vscale x 4 x i32>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4i32_nxv4i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m2,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i32>, i64 } @llvm.riscv.vleff.nxv4i32(
    <vscale x 4 x i32>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i32>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x i32> %b
}

declare { <vscale x 4 x i32>, i64 } @llvm.riscv.vleff.mask.nxv4i32(
  <vscale x 4 x i32>,
  <vscale x 4 x i32>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x i32> @intrinsic_vleff_mask_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4i32_nxv4i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m2,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i32>, i64 } @llvm.riscv.vleff.mask.nxv4i32(
    <vscale x 4 x i32> %0,
    <vscale x 4 x i32>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i32>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x i32> %b
}

declare { <vscale x 8 x i32>, i64 } @llvm.riscv.vleff.nxv8i32(
  <vscale x 8 x i32>*,
  i64);

define <vscale x 8 x i32> @intrinsic_vleff_v_nxv8i32_nxv8i32(<vscale x 8 x i32>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8i32_nxv8i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m4,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i32>, i64 } @llvm.riscv.vleff.nxv8i32(
    <vscale x 8 x i32>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i32>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x i32> %b
}

declare { <vscale x 8 x i32>, i64 } @llvm.riscv.vleff.mask.nxv8i32(
  <vscale x 8 x i32>,
  <vscale x 8 x i32>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x i32> @intrinsic_vleff_mask_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8i32_nxv8i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m4,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i32>, i64 } @llvm.riscv.vleff.mask.nxv8i32(
    <vscale x 8 x i32> %0,
    <vscale x 8 x i32>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i32>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x i32> %b
}

declare { <vscale x 16 x i32>, i64 } @llvm.riscv.vleff.nxv16i32(
  <vscale x 16 x i32>*,
  i64);

define <vscale x 16 x i32> @intrinsic_vleff_v_nxv16i32_nxv16i32(<vscale x 16 x i32>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv16i32_nxv16i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m8,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x i32>, i64 } @llvm.riscv.vleff.nxv16i32(
    <vscale x 16 x i32>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 16 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x i32>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 16 x i32> %b
}

declare { <vscale x 16 x i32>, i64 } @llvm.riscv.vleff.mask.nxv16i32(
  <vscale x 16 x i32>,
  <vscale x 16 x i32>*,
  <vscale x 16 x i1>,
  i64);

define <vscale x 16 x i32> @intrinsic_vleff_mask_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32>* %1, <vscale x 16 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv16i32_nxv16i32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m8,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x i32>, i64 } @llvm.riscv.vleff.mask.nxv16i32(
    <vscale x 16 x i32> %0,
    <vscale x 16 x i32>* %1,
    <vscale x 16 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 16 x i32>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x i32>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 16 x i32> %b
}

declare { <vscale x 1 x float>, i64 } @llvm.riscv.vleff.nxv1f32(
  <vscale x 1 x float>*,
  i64);

define <vscale x 1 x float> @intrinsic_vleff_v_nxv1f32_nxv1f32(<vscale x 1 x float>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1f32_nxv1f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,mf2,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x float>, i64 } @llvm.riscv.vleff.nxv1f32(
    <vscale x 1 x float>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x float>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x float> %b
}

declare { <vscale x 1 x float>, i64 } @llvm.riscv.vleff.mask.nxv1f32(
  <vscale x 1 x float>,
  <vscale x 1 x float>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x float> @intrinsic_vleff_mask_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1f32_nxv1f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,mf2,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x float>, i64 } @llvm.riscv.vleff.mask.nxv1f32(
    <vscale x 1 x float> %0,
    <vscale x 1 x float>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x float>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x float> %b
}

declare { <vscale x 2 x float>, i64 } @llvm.riscv.vleff.nxv2f32(
  <vscale x 2 x float>*,
  i64);

define <vscale x 2 x float> @intrinsic_vleff_v_nxv2f32_nxv2f32(<vscale x 2 x float>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2f32_nxv2f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m1,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x float>, i64 } @llvm.riscv.vleff.nxv2f32(
    <vscale x 2 x float>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x float>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x float> %b
}

declare { <vscale x 2 x float>, i64 } @llvm.riscv.vleff.mask.nxv2f32(
  <vscale x 2 x float>,
  <vscale x 2 x float>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x float> @intrinsic_vleff_mask_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2f32_nxv2f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m1,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x float>, i64 } @llvm.riscv.vleff.mask.nxv2f32(
    <vscale x 2 x float> %0,
    <vscale x 2 x float>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x float>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x float> %b
}

declare { <vscale x 4 x float>, i64 } @llvm.riscv.vleff.nxv4f32(
  <vscale x 4 x float>*,
  i64);

define <vscale x 4 x float> @intrinsic_vleff_v_nxv4f32_nxv4f32(<vscale x 4 x float>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4f32_nxv4f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m2,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x float>, i64 } @llvm.riscv.vleff.nxv4f32(
    <vscale x 4 x float>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x float>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x float> %b
}

declare { <vscale x 4 x float>, i64 } @llvm.riscv.vleff.mask.nxv4f32(
  <vscale x 4 x float>,
  <vscale x 4 x float>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x float> @intrinsic_vleff_mask_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4f32_nxv4f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m2,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x float>, i64 } @llvm.riscv.vleff.mask.nxv4f32(
    <vscale x 4 x float> %0,
    <vscale x 4 x float>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x float>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x float> %b
}

declare { <vscale x 8 x float>, i64 } @llvm.riscv.vleff.nxv8f32(
  <vscale x 8 x float>*,
  i64);

define <vscale x 8 x float> @intrinsic_vleff_v_nxv8f32_nxv8f32(<vscale x 8 x float>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8f32_nxv8f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m4,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x float>, i64 } @llvm.riscv.vleff.nxv8f32(
    <vscale x 8 x float>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x float>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x float> %b
}

declare { <vscale x 8 x float>, i64 } @llvm.riscv.vleff.mask.nxv8f32(
  <vscale x 8 x float>,
  <vscale x 8 x float>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x float> @intrinsic_vleff_mask_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8f32_nxv8f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m4,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x float>, i64 } @llvm.riscv.vleff.mask.nxv8f32(
    <vscale x 8 x float> %0,
    <vscale x 8 x float>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x float>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x float> %b
}

declare { <vscale x 16 x float>, i64 } @llvm.riscv.vleff.nxv16f32(
  <vscale x 16 x float>*,
  i64);

define <vscale x 16 x float> @intrinsic_vleff_v_nxv16f32_nxv16f32(<vscale x 16 x float>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv16f32_nxv16f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m8,ta,mu
; CHECK-NEXT:    vle32ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x float>, i64 } @llvm.riscv.vleff.nxv16f32(
    <vscale x 16 x float>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 16 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x float>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 16 x float> %b
}

declare { <vscale x 16 x float>, i64 } @llvm.riscv.vleff.mask.nxv16f32(
  <vscale x 16 x float>,
  <vscale x 16 x float>*,
  <vscale x 16 x i1>,
  i64);

define <vscale x 16 x float> @intrinsic_vleff_mask_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, <vscale x 16 x float>* %1, <vscale x 16 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv16f32_nxv16f32:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e32,m8,tu,mu
; CHECK-NEXT:    vle32ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x float>, i64 } @llvm.riscv.vleff.mask.nxv16f32(
    <vscale x 16 x float> %0,
    <vscale x 16 x float>* %1,
    <vscale x 16 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 16 x float>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x float>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 16 x float> %b
}

declare { <vscale x 1 x i16>, i64 } @llvm.riscv.vleff.nxv1i16(
  <vscale x 1 x i16>*,
  i64);

define <vscale x 1 x i16> @intrinsic_vleff_v_nxv1i16_nxv1i16(<vscale x 1 x i16>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1i16_nxv1i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf4,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i16>, i64 } @llvm.riscv.vleff.nxv1i16(
    <vscale x 1 x i16>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i16>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x i16> %b
}

declare { <vscale x 1 x i16>, i64 } @llvm.riscv.vleff.mask.nxv1i16(
  <vscale x 1 x i16>,
  <vscale x 1 x i16>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x i16> @intrinsic_vleff_mask_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1i16_nxv1i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf4,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i16>, i64 } @llvm.riscv.vleff.mask.nxv1i16(
    <vscale x 1 x i16> %0,
    <vscale x 1 x i16>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i16>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x i16> %b
}

declare { <vscale x 2 x i16>, i64 } @llvm.riscv.vleff.nxv2i16(
  <vscale x 2 x i16>*,
  i64);

define <vscale x 2 x i16> @intrinsic_vleff_v_nxv2i16_nxv2i16(<vscale x 2 x i16>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2i16_nxv2i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf2,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i16>, i64 } @llvm.riscv.vleff.nxv2i16(
    <vscale x 2 x i16>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i16>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x i16> %b
}

declare { <vscale x 2 x i16>, i64 } @llvm.riscv.vleff.mask.nxv2i16(
  <vscale x 2 x i16>,
  <vscale x 2 x i16>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x i16> @intrinsic_vleff_mask_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2i16_nxv2i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf2,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i16>, i64 } @llvm.riscv.vleff.mask.nxv2i16(
    <vscale x 2 x i16> %0,
    <vscale x 2 x i16>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i16>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x i16> %b
}

declare { <vscale x 4 x i16>, i64 } @llvm.riscv.vleff.nxv4i16(
  <vscale x 4 x i16>*,
  i64);

define <vscale x 4 x i16> @intrinsic_vleff_v_nxv4i16_nxv4i16(<vscale x 4 x i16>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4i16_nxv4i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m1,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i16>, i64 } @llvm.riscv.vleff.nxv4i16(
    <vscale x 4 x i16>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i16>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x i16> %b
}

declare { <vscale x 4 x i16>, i64 } @llvm.riscv.vleff.mask.nxv4i16(
  <vscale x 4 x i16>,
  <vscale x 4 x i16>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x i16> @intrinsic_vleff_mask_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4i16_nxv4i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m1,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i16>, i64 } @llvm.riscv.vleff.mask.nxv4i16(
    <vscale x 4 x i16> %0,
    <vscale x 4 x i16>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i16>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x i16> %b
}

declare { <vscale x 8 x i16>, i64 } @llvm.riscv.vleff.nxv8i16(
  <vscale x 8 x i16>*,
  i64);

define <vscale x 8 x i16> @intrinsic_vleff_v_nxv8i16_nxv8i16(<vscale x 8 x i16>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8i16_nxv8i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m2,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i16>, i64 } @llvm.riscv.vleff.nxv8i16(
    <vscale x 8 x i16>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i16>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x i16> %b
}

declare { <vscale x 8 x i16>, i64 } @llvm.riscv.vleff.mask.nxv8i16(
  <vscale x 8 x i16>,
  <vscale x 8 x i16>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x i16> @intrinsic_vleff_mask_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8i16_nxv8i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m2,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i16>, i64 } @llvm.riscv.vleff.mask.nxv8i16(
    <vscale x 8 x i16> %0,
    <vscale x 8 x i16>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i16>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x i16> %b
}

declare { <vscale x 16 x i16>, i64 } @llvm.riscv.vleff.nxv16i16(
  <vscale x 16 x i16>*,
  i64);

define <vscale x 16 x i16> @intrinsic_vleff_v_nxv16i16_nxv16i16(<vscale x 16 x i16>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv16i16_nxv16i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m4,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x i16>, i64 } @llvm.riscv.vleff.nxv16i16(
    <vscale x 16 x i16>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 16 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x i16>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 16 x i16> %b
}

declare { <vscale x 16 x i16>, i64 } @llvm.riscv.vleff.mask.nxv16i16(
  <vscale x 16 x i16>,
  <vscale x 16 x i16>*,
  <vscale x 16 x i1>,
  i64);

define <vscale x 16 x i16> @intrinsic_vleff_mask_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16>* %1, <vscale x 16 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv16i16_nxv16i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m4,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x i16>, i64 } @llvm.riscv.vleff.mask.nxv16i16(
    <vscale x 16 x i16> %0,
    <vscale x 16 x i16>* %1,
    <vscale x 16 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 16 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x i16>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 16 x i16> %b
}

declare { <vscale x 32 x i16>, i64 } @llvm.riscv.vleff.nxv32i16(
  <vscale x 32 x i16>*,
  i64);

define <vscale x 32 x i16> @intrinsic_vleff_v_nxv32i16_nxv32i16(<vscale x 32 x i16>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv32i16_nxv32i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m8,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 32 x i16>, i64 } @llvm.riscv.vleff.nxv32i16(
    <vscale x 32 x i16>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 32 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 32 x i16>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 32 x i16> %b
}

declare { <vscale x 32 x i16>, i64 } @llvm.riscv.vleff.mask.nxv32i16(
  <vscale x 32 x i16>,
  <vscale x 32 x i16>*,
  <vscale x 32 x i1>,
  i64);

define <vscale x 32 x i16> @intrinsic_vleff_mask_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16>* %1, <vscale x 32 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv32i16_nxv32i16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m8,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 32 x i16>, i64 } @llvm.riscv.vleff.mask.nxv32i16(
    <vscale x 32 x i16> %0,
    <vscale x 32 x i16>* %1,
    <vscale x 32 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 32 x i16>, i64 } %a, 0
  %c = extractvalue { <vscale x 32 x i16>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 32 x i16> %b
}

declare { <vscale x 1 x half>, i64 } @llvm.riscv.vleff.nxv1f16(
  <vscale x 1 x half>*,
  i64);

define <vscale x 1 x half> @intrinsic_vleff_v_nxv1half_nxv1f16(<vscale x 1 x half>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1half_nxv1f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf4,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x half>, i64 } @llvm.riscv.vleff.nxv1f16(
    <vscale x 1 x half>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x half>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x half> %b
}

declare { <vscale x 1 x half>, i64 } @llvm.riscv.vleff.mask.nxv1f16(
  <vscale x 1 x half>,
  <vscale x 1 x half>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x half> @intrinsic_vleff_mask_v_nxv1half_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1half_nxv1f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf4,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x half>, i64 } @llvm.riscv.vleff.mask.nxv1f16(
    <vscale x 1 x half> %0,
    <vscale x 1 x half>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x half>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x half> %b
}

declare { <vscale x 2 x half>, i64 } @llvm.riscv.vleff.nxv2f16(
  <vscale x 2 x half>*,
  i64);

define <vscale x 2 x half> @intrinsic_vleff_v_nxv2half_nxv2f16(<vscale x 2 x half>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2half_nxv2f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf2,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x half>, i64 } @llvm.riscv.vleff.nxv2f16(
    <vscale x 2 x half>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x half>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x half> %b
}

declare { <vscale x 2 x half>, i64 } @llvm.riscv.vleff.mask.nxv2f16(
  <vscale x 2 x half>,
  <vscale x 2 x half>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x half> @intrinsic_vleff_mask_v_nxv2half_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2half_nxv2f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,mf2,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x half>, i64 } @llvm.riscv.vleff.mask.nxv2f16(
    <vscale x 2 x half> %0,
    <vscale x 2 x half>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x half>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x half> %b
}

declare { <vscale x 4 x half>, i64 } @llvm.riscv.vleff.nxv4f16(
  <vscale x 4 x half>*,
  i64);

define <vscale x 4 x half> @intrinsic_vleff_v_nxv4half_nxv4f16(<vscale x 4 x half>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4half_nxv4f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m1,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x half>, i64 } @llvm.riscv.vleff.nxv4f16(
    <vscale x 4 x half>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x half>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x half> %b
}

declare { <vscale x 4 x half>, i64 } @llvm.riscv.vleff.mask.nxv4f16(
  <vscale x 4 x half>,
  <vscale x 4 x half>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x half> @intrinsic_vleff_mask_v_nxv4half_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4half_nxv4f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m1,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x half>, i64 } @llvm.riscv.vleff.mask.nxv4f16(
    <vscale x 4 x half> %0,
    <vscale x 4 x half>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x half>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x half> %b
}

declare { <vscale x 8 x half>, i64 } @llvm.riscv.vleff.nxv8f16(
  <vscale x 8 x half>*,
  i64);

define <vscale x 8 x half> @intrinsic_vleff_v_nxv8half_nxv8f16(<vscale x 8 x half>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8half_nxv8f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m2,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x half>, i64 } @llvm.riscv.vleff.nxv8f16(
    <vscale x 8 x half>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x half>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x half> %b
}

declare { <vscale x 8 x half>, i64 } @llvm.riscv.vleff.mask.nxv8f16(
  <vscale x 8 x half>,
  <vscale x 8 x half>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x half> @intrinsic_vleff_mask_v_nxv8half_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8half_nxv8f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m2,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x half>, i64 } @llvm.riscv.vleff.mask.nxv8f16(
    <vscale x 8 x half> %0,
    <vscale x 8 x half>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x half>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x half> %b
}

declare { <vscale x 16 x half>, i64 } @llvm.riscv.vleff.nxv16f16(
  <vscale x 16 x half>*,
  i64);

define <vscale x 16 x half> @intrinsic_vleff_v_nxv16half_nxv16f16(<vscale x 16 x half>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv16half_nxv16f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m4,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x half>, i64 } @llvm.riscv.vleff.nxv16f16(
    <vscale x 16 x half>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 16 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x half>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 16 x half> %b
}

declare { <vscale x 16 x half>, i64 } @llvm.riscv.vleff.mask.nxv16f16(
  <vscale x 16 x half>,
  <vscale x 16 x half>*,
  <vscale x 16 x i1>,
  i64);

define <vscale x 16 x half> @intrinsic_vleff_mask_v_nxv16half_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half>* %1, <vscale x 16 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv16half_nxv16f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m4,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x half>, i64 } @llvm.riscv.vleff.mask.nxv16f16(
    <vscale x 16 x half> %0,
    <vscale x 16 x half>* %1,
    <vscale x 16 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 16 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x half>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 16 x half> %b
}

declare { <vscale x 32 x half>, i64 } @llvm.riscv.vleff.nxv32f16(
  <vscale x 32 x half>*,
  i64);

define <vscale x 32 x half> @intrinsic_vleff_v_nxv32half_nxv32f16(<vscale x 32 x half>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv32half_nxv32f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m8,ta,mu
; CHECK-NEXT:    vle16ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 32 x half>, i64 } @llvm.riscv.vleff.nxv32f16(
    <vscale x 32 x half>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 32 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 32 x half>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 32 x half> %b
}

declare { <vscale x 32 x half>, i64 } @llvm.riscv.vleff.mask.nxv32f16(
  <vscale x 32 x half>,
  <vscale x 32 x half>*,
  <vscale x 32 x i1>,
  i64);

define <vscale x 32 x half> @intrinsic_vleff_mask_v_nxv32half_nxv32f16(<vscale x 32 x half> %0, <vscale x 32 x half>* %1, <vscale x 32 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv32half_nxv32f16:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e16,m8,tu,mu
; CHECK-NEXT:    vle16ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 32 x half>, i64 } @llvm.riscv.vleff.mask.nxv32f16(
    <vscale x 32 x half> %0,
    <vscale x 32 x half>* %1,
    <vscale x 32 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 32 x half>, i64 } %a, 0
  %c = extractvalue { <vscale x 32 x half>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 32 x half> %b
}

declare { <vscale x 1 x i8>, i64 } @llvm.riscv.vleff.nxv1i8(
  <vscale x 1 x i8>*,
  i64);

define <vscale x 1 x i8> @intrinsic_vleff_v_nxv1i8_nxv1i8(<vscale x 1 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv1i8_nxv1i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,mf8,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i8>, i64 } @llvm.riscv.vleff.nxv1i8(
    <vscale x 1 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 1 x i8> %b
}

declare { <vscale x 1 x i8>, i64 } @llvm.riscv.vleff.mask.nxv1i8(
  <vscale x 1 x i8>,
  <vscale x 1 x i8>*,
  <vscale x 1 x i1>,
  i64);

define <vscale x 1 x i8> @intrinsic_vleff_mask_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv1i8_nxv1i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,mf8,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x i8>, i64 } @llvm.riscv.vleff.mask.nxv1i8(
    <vscale x 1 x i8> %0,
    <vscale x 1 x i8>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 1 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 1 x i8> %b
}

declare { <vscale x 2 x i8>, i64 } @llvm.riscv.vleff.nxv2i8(
  <vscale x 2 x i8>*,
  i64);

define <vscale x 2 x i8> @intrinsic_vleff_v_nxv2i8_nxv2i8(<vscale x 2 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv2i8_nxv2i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,mf4,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i8>, i64 } @llvm.riscv.vleff.nxv2i8(
    <vscale x 2 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 2 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 2 x i8> %b
}

declare { <vscale x 2 x i8>, i64 } @llvm.riscv.vleff.mask.nxv2i8(
  <vscale x 2 x i8>,
  <vscale x 2 x i8>*,
  <vscale x 2 x i1>,
  i64);

define <vscale x 2 x i8> @intrinsic_vleff_mask_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8>* %1, <vscale x 2 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv2i8_nxv2i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,mf4,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 2 x i8>, i64 } @llvm.riscv.vleff.mask.nxv2i8(
    <vscale x 2 x i8> %0,
    <vscale x 2 x i8>* %1,
    <vscale x 2 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 2 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 2 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 2 x i8> %b
}

declare { <vscale x 4 x i8>, i64 } @llvm.riscv.vleff.nxv4i8(
  <vscale x 4 x i8>*,
  i64);

define <vscale x 4 x i8> @intrinsic_vleff_v_nxv4i8_nxv4i8(<vscale x 4 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv4i8_nxv4i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,mf2,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i8>, i64 } @llvm.riscv.vleff.nxv4i8(
    <vscale x 4 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 4 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 4 x i8> %b
}

declare { <vscale x 4 x i8>, i64 } @llvm.riscv.vleff.mask.nxv4i8(
  <vscale x 4 x i8>,
  <vscale x 4 x i8>*,
  <vscale x 4 x i1>,
  i64);

define <vscale x 4 x i8> @intrinsic_vleff_mask_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8>* %1, <vscale x 4 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv4i8_nxv4i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,mf2,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 4 x i8>, i64 } @llvm.riscv.vleff.mask.nxv4i8(
    <vscale x 4 x i8> %0,
    <vscale x 4 x i8>* %1,
    <vscale x 4 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 4 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 4 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 4 x i8> %b
}

declare { <vscale x 8 x i8>, i64 } @llvm.riscv.vleff.nxv8i8(
  <vscale x 8 x i8>*,
  i64);

define <vscale x 8 x i8> @intrinsic_vleff_v_nxv8i8_nxv8i8(<vscale x 8 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv8i8_nxv8i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m1,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i8>, i64 } @llvm.riscv.vleff.nxv8i8(
    <vscale x 8 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 8 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 8 x i8> %b
}

declare { <vscale x 8 x i8>, i64 } @llvm.riscv.vleff.mask.nxv8i8(
  <vscale x 8 x i8>,
  <vscale x 8 x i8>*,
  <vscale x 8 x i1>,
  i64);

define <vscale x 8 x i8> @intrinsic_vleff_mask_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8>* %1, <vscale x 8 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv8i8_nxv8i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m1,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 8 x i8>, i64 } @llvm.riscv.vleff.mask.nxv8i8(
    <vscale x 8 x i8> %0,
    <vscale x 8 x i8>* %1,
    <vscale x 8 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 8 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 8 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 8 x i8> %b
}

declare { <vscale x 16 x i8>, i64 } @llvm.riscv.vleff.nxv16i8(
  <vscale x 16 x i8>*,
  i64);

define <vscale x 16 x i8> @intrinsic_vleff_v_nxv16i8_nxv16i8(<vscale x 16 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv16i8_nxv16i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m2,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x i8>, i64 } @llvm.riscv.vleff.nxv16i8(
    <vscale x 16 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 16 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 16 x i8> %b
}

declare { <vscale x 16 x i8>, i64 } @llvm.riscv.vleff.mask.nxv16i8(
  <vscale x 16 x i8>,
  <vscale x 16 x i8>*,
  <vscale x 16 x i1>,
  i64);

define <vscale x 16 x i8> @intrinsic_vleff_mask_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8>* %1, <vscale x 16 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv16i8_nxv16i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m2,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 16 x i8>, i64 } @llvm.riscv.vleff.mask.nxv16i8(
    <vscale x 16 x i8> %0,
    <vscale x 16 x i8>* %1,
    <vscale x 16 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 16 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 16 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 16 x i8> %b
}

declare { <vscale x 32 x i8>, i64 } @llvm.riscv.vleff.nxv32i8(
  <vscale x 32 x i8>*,
  i64);

define <vscale x 32 x i8> @intrinsic_vleff_v_nxv32i8_nxv32i8(<vscale x 32 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv32i8_nxv32i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m4,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 32 x i8>, i64 } @llvm.riscv.vleff.nxv32i8(
    <vscale x 32 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 32 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 32 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 32 x i8> %b
}

declare { <vscale x 32 x i8>, i64 } @llvm.riscv.vleff.mask.nxv32i8(
  <vscale x 32 x i8>,
  <vscale x 32 x i8>*,
  <vscale x 32 x i1>,
  i64);

define <vscale x 32 x i8> @intrinsic_vleff_mask_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8>* %1, <vscale x 32 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv32i8_nxv32i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m4,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 32 x i8>, i64 } @llvm.riscv.vleff.mask.nxv32i8(
    <vscale x 32 x i8> %0,
    <vscale x 32 x i8>* %1,
    <vscale x 32 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 32 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 32 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 32 x i8> %b
}

declare { <vscale x 64 x i8>, i64 } @llvm.riscv.vleff.nxv64i8(
  <vscale x 64 x i8>*,
  i64);

define <vscale x 64 x i8> @intrinsic_vleff_v_nxv64i8_nxv64i8(<vscale x 64 x i8>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_v_nxv64i8_nxv64i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m8,ta,mu
; CHECK-NEXT:    vle8ff.v v8, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 64 x i8>, i64 } @llvm.riscv.vleff.nxv64i8(
    <vscale x 64 x i8>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 64 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 64 x i8>, i64 } %a, 1
  store i64 %c, i64* %2
  ret <vscale x 64 x i8> %b
}

declare { <vscale x 64 x i8>, i64 } @llvm.riscv.vleff.mask.nxv64i8(
  <vscale x 64 x i8>,
  <vscale x 64 x i8>*,
  <vscale x 64 x i1>,
  i64);

define <vscale x 64 x i8> @intrinsic_vleff_mask_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8>* %1, <vscale x 64 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_v_nxv64i8_nxv64i8:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e8,m8,tu,mu
; CHECK-NEXT:    vle8ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 64 x i8>, i64 } @llvm.riscv.vleff.mask.nxv64i8(
    <vscale x 64 x i8> %0,
    <vscale x 64 x i8>* %1,
    <vscale x 64 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 64 x i8>, i64 } %a, 0
  %c = extractvalue { <vscale x 64 x i8>, i64 } %a, 1
  store i64 %c, i64* %4

  ret <vscale x 64 x i8> %b
}

; Test with the VL output unused
define <vscale x 1 x double> @intrinsic_vleff_dead_vl(<vscale x 1 x double>* %0, i64 %1) nounwind {
; CHECK-LABEL: intrinsic_vleff_dead_vl:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,ta,mu
; CHECK-NEXT:    vle64ff.v v8, (a0)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.nxv1f64(
    <vscale x 1 x double>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x double>, i64 } %a, 0
  ret <vscale x 1 x double> %b
}

define <vscale x 1 x double> @intrinsic_vleff_mask_dead_vl(<vscale x 1 x double> %0, <vscale x 1 x double>* %1, <vscale x 1 x i1> %2, i64 %3) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_dead_vl:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.mask.nxv1f64(
    <vscale x 1 x double> %0,
    <vscale x 1 x double>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x double>, i64 } %a, 0

  ret <vscale x 1 x double> %b
}

; Test with the loaded value unused
define void @intrinsic_vleff_dead_value(<vscale x 1 x double>* %0, i64 %1, i64* %2) nounwind {
; CHECK-LABEL: intrinsic_vleff_dead_value:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,ta,mu
; CHECK-NEXT:    vle64ff.v v25, (a0)
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.nxv1f64(
    <vscale x 1 x double>* %0,
    i64 %1)
  %b = extractvalue { <vscale x 1 x double>, i64 } %a, 1
  store i64 %b, i64* %2
  ret void
}

define void @intrinsic_vleff_mask_dead_value(<vscale x 1 x double> %0, <vscale x 1 x double>* %1, <vscale x 1 x i1> %2, i64 %3, i64* %4) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_dead_value:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    csrr a0, vl
; CHECK-NEXT:    sd a0, 0(a2)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.mask.nxv1f64(
    <vscale x 1 x double> %0,
    <vscale x 1 x double>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)
  %b = extractvalue { <vscale x 1 x double>, i64 } %a, 1
  store i64 %b, i64* %4

  ret void
}

; Test with both outputs dead. Make sure the vleff isn't deleted.
define void @intrinsic_vleff_dead_all(<vscale x 1 x double>* %0, i64 %1) nounwind {
; CHECK-LABEL: intrinsic_vleff_dead_all:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,ta,mu
; CHECK-NEXT:    vle64ff.v v25, (a0)
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.nxv1f64(
    <vscale x 1 x double>* %0,
    i64 %1)
  ret void
}

define void @intrinsic_vleff_mask_dead_all(<vscale x 1 x double> %0, <vscale x 1 x double>* %1, <vscale x 1 x i1> %2, i64 %3) nounwind {
; CHECK-LABEL: intrinsic_vleff_mask_dead_all:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    vsetvli a1, a1, e64,m1,tu,mu
; CHECK-NEXT:    vle64ff.v v8, (a0), v0.t
; CHECK-NEXT:    ret
entry:
  %a = call { <vscale x 1 x double>, i64 } @llvm.riscv.vleff.mask.nxv1f64(
    <vscale x 1 x double> %0,
    <vscale x 1 x double>* %1,
    <vscale x 1 x i1> %2,
    i64 %3)

  ret void
}
